Commit graph

308 commits

Author SHA1 Message Date
David Larlet
0be42d39cb
Full map download endpoint 2023-11-14 12:07:17 -05:00
3cc5d3b2af Speedup the tests by using a weaker hash algo.
On my machine, it reduced the time to run the
test suite from 86s to 53s.

(Most of the remaining time is consumed by the
integration tests spawning chrome in the background)
2023-11-14 17:45:14 +01:00
Yohan Boniface
7810cba660 Test: reset MEDIA_ROOT after each test
We need uploaded pictograms path to be deterministic.
2023-11-13 19:28:30 +01:00
Yohan Boniface
0562055b65 Picot fied: add test for changing picto from marker itself 2023-11-13 19:28:07 +01:00
Yohan Boniface
00a13acb83 Add test covering changing picto from the datalayer 2023-11-13 16:58:54 +01:00
Yohan Boniface
d63d81fec3 Refactor icon search 2023-11-09 08:31:24 +01:00
Yohan Boniface
e509687956 Add first test for pictogram selection 2023-11-09 00:02:44 +01:00
Yohan Boniface
e5c616b49c Fix tests 2023-10-27 20:51:50 +02:00
Yohan Boniface
a0da0b31a7
Merge pull request #1383 from umap-project/default-view-datalayer
Split defaultDatalayer in defaultView/EditDatalayer
2023-10-27 16:03:14 +02:00
Yohan Boniface
882cc74bcf Fix displayOnLoad not honoured at import
fix #1043
2023-10-27 12:25:40 +02:00
Yohan Boniface
29ab98ede3 Split defaultDatalayer in defaultView/EditDatalayer
In view mode, we don't want the fallback to create a new datalayer.
2023-10-27 11:54:35 +02:00
Yohan Boniface
78b6025ef1 Add minimal CSV export
cf https://forum.openstreetmap.fr/t/export-csv-depuis-une-umap/18290
cf #123
fix #608
2023-10-26 14:28:18 +02:00
Yohan Boniface
739626351c Choropleth: replace chromajs by colorbrewer + simple-statistics
simple-statistics has a few advantages:
- faster
- more accurate kmeans algo
- Jenks-Fisher algo

Also, I suspect will use it again for next step, which is Bubble
mode layer.
2023-10-11 19:36:12 +02:00
Yohan Boniface
7be238a4ab Add minimal Choropleth integration test 2023-10-10 21:22:17 +02:00
Yohan Boniface
3b304e5249 Tests: populate settings from _umap_options when data is passed 2023-10-10 21:19:20 +02:00
Yohan Boniface
547485e50f Allow to hide a datalayer from the caption list 2023-10-06 22:26:31 +02:00
Yohan Boniface
de6c9f3b84 Make sure we don't use DataLayer.settings by reference 2023-10-06 22:25:56 +02:00
Yohan Boniface
677fd3d982
Merge pull request #1336 from umap-project/shared-edit-url
Redirect to canonical when URL contains the ?edit parameter
2023-09-27 07:17:29 +02:00
Yohan Boniface
013d2fd5ee Always remove ?edit from URL, so users do not share it by mistake 2023-09-27 07:13:30 +02:00
Yohan Boniface
0ad6e425b5 Refactor data browser
- move a dedicated class (function was becoming big)
- user FormBuilder instead of custom form elements
2023-09-25 13:42:14 +02:00
Yohan Boniface
e0e7fc5844 Better way to set DataLayer.geojson content during tests 2023-09-25 13:40:01 +02:00
Yohan Boniface
dcbec3534c Fix datalayer's data duplicated at first save 2023-09-22 20:48:08 +02:00
Yohan Boniface
27f3e08bc1 Fix anonymous maps displayed by mistake in user dashboard 2023-09-22 19:00:42 +02:00
Yohan Boniface
c36ea1e4b8 Fix error when trying to change map owner
This bug has been introduced with this change:

8b4842ff21

That was not the correct fix, and this one should be the proper one.

We don't want to edit the permissions reference until we do save, otherwise user
cannot save as it is already no more the owner.

So:
- change permissions.options
- save
- commit those changes to map.options.permissions
- use only those values to check for isOwner and isAnonymousMap
2023-09-22 17:34:44 +02:00
Yohan Boniface
a9b9a7e955 Tests: reuse name var 2023-09-22 17:32:19 +02:00
Yohan Boniface
dfd04c33b0 Fix typo in tests 2023-09-22 17:32:19 +02:00
Yohan Boniface
e13f3ac235 Add DataLayer.isDataReadonly
In some places we need to know if a given datalayer can accept new
features, or not, whether because being readonly or being remote
2023-09-22 17:32:19 +02:00
Yohan Boniface
5ffd1a1b10 Expose DataLayer.edit_status separately to the front
They now differ from the Map.edit_status ones
2023-09-22 17:32:19 +02:00
Yohan Boniface
4e54a93ee0 Add DataLayer.INHERIT edit status option 2023-09-22 17:32:19 +02:00
Yohan Boniface
3cbd6cca40 Add back Map.edit_status
Revert "Fix existing permissions related tests"

This reverts commit 36d7d87301.

WIP
2023-09-22 17:32:19 +02:00
Yohan Boniface
5f5196a52d Make sure to select only editable layers for attachin to features 2023-09-22 17:32:19 +02:00
Yohan Boniface
6b269125d4 Make sure only owner see the delete map button 2023-09-22 17:32:19 +02:00
Yohan Boniface
24e4aed8d3 Rename allowEdit in editMode 2023-09-22 17:32:17 +02:00
Yohan Boniface
af44b3a0a6 Add playwright test for editor's permissions form 2023-09-22 17:30:07 +02:00
Yohan Boniface
a15aa3566a Add playwright tests for anonymous map 2023-09-22 17:30:07 +02:00
Yohan Boniface
d902546da4 Add map update playwright tests 2023-09-22 17:30:07 +02:00
Yohan Boniface
42eb0e6ded Add more tests for datalayer permissions 2023-09-22 17:30:06 +02:00
Yohan Boniface
d6d55e619a Fix existing permissions related tests 2023-09-22 17:26:57 +02:00
Yohan Boniface
73d19e849f Refactor share_status check in datalayers views 2023-09-22 17:24:01 +02:00
Yohan Boniface
b6b9943264 Prune old .gz when saving a datalayer
We'll not consume them.

fix #1317
2023-09-21 19:12:07 +02:00
Yohan Boniface
43e5391c49 Fix map displayed more than once in user dashboard when multiple editors
fix #1325
2023-09-20 11:30:05 +02:00
Yohan Boniface
3a5174c003 Fix tests with playwright
Basically:
- when using playwright, we use live_server
- live_server make django-pytest switch in "transactional db" mode
- when in this mode, it will reset all data of all tables in db
- we relied on data created during the migrations, so only available
  for first test run
2023-09-04 15:04:00 +02:00
Yohan Boniface
c35c6ee78c test: allow to run playwright tests directly with py.test cli 2023-09-04 15:00:51 +02:00
David Larlet
29547d0bd6 Add a test to verify marker creation at position 2023-09-04 11:03:31 +02:00
David Larlet
95bf685159 Setup to create integration tests with Playwright 2023-09-04 11:03:28 +02:00
Yohan Boniface
bcdac413be ajax proxy: quote URL before passing it to Nginx 2023-08-28 18:00:40 +02:00
Yohan Boniface
8c9ee91b42 Add test for ajax-proxy internal redirect 2023-08-28 16:49:32 +02:00
Yohan Boniface
8095c5721d
Merge pull request #1266 from umap-project/zoom-from-to-at-load
Store DataLayer's settings in DB
2023-08-21 17:18:48 +02:00
Yohan Boniface
2b471be171 Very lite "My Profile" page to allow changing username 2023-08-21 15:09:30 +02:00
Yohan Boniface
fa090b89df Store DataLayer's settings in DB
This allows to known the full datalayer behaviour without needing
to load all the data, including the zoom from and to (new settings),
but also the color for example.

This will help also understanding datalayers usage and making
stats.

But no data migration is provided, it's retrocompatible (data
migration in OSM FR servers would be huge, so let's see if it's
really needed).
2023-08-20 09:48:01 +02:00
Yohan Boniface
48750b3fde
Merge pull request #1245 from umap-project/dynamic-default-status
Allow to configure default share and edit status
2023-08-15 07:26:29 +02:00
Yohan Boniface
0c3dc02fc1 Allow to configure default share and edit status
fix #1244
2023-08-07 08:16:49 +02:00
Yohan Boniface
fc37ad7c17 Adapt logout behaviour in ajax/not ajax modes 2023-07-27 15:02:51 +02:00
Yohan Boniface
f69c959f2a Use ns time for geojson and gzipped geojson mtime 2023-07-19 14:16:57 +02:00
Yohan Boniface
2f00ddb8c5 Fix test 2023-07-17 15:55:37 +02:00
Yohan Boniface
77cedd3288 Display share status in dashboard 2023-07-17 09:08:59 +02:00
Yohan Boniface
bb4c027ec7 Allow to use http://umap.fr/map/xxxx?share to open shareBox on load
That way is more consistent with ?download and ?edit
2023-07-15 09:31:37 +02:00
Yohan Boniface
d2cc6e101d Minimal user_dashboard tests 2023-07-12 09:09:01 +02:00
Yohan Boniface
1d5c1a067a Expose version in /stats/ endpoint 2023-06-20 15:14:28 +02:00
Yohan Boniface
b324e59cd4 Fix stars link in header 2023-06-17 15:59:16 +02:00
Yohan Boniface
02a14a32f4 add tests for user display and slug customization 2023-06-17 06:35:21 +02:00
Yohan Boniface
51a904dc07 Only return anonymous_url in anonymous context
Otherwise the frontend will treat map as anonymous even with
and owner and display a wrong message creation.

Also, this edit URL does not make sense (and will not work)
when there is an owner.
2023-06-04 08:05:48 +02:00
Yohan Boniface
6e0c4723a4
Merge pull request #1102 from umap-project/mail-link
Add a button to send edit link by email in anonymous mode
2023-06-02 23:32:34 +02:00
Yohan Boniface
1b791347d8 Also catch InvalidURL in ajax-proxy
fix #1119
2023-06-02 22:45:13 +02:00
David Larlet
4ba1946868
Fix test about subject
Introduced in 5460876ff4
2023-06-02 11:54:44 -04:00
David Larlet
bf4a84de99
Apply black on test map views file 2023-06-02 11:54:09 -04:00
Yohan Boniface
8f52d34bb2 WIP: final bit to make sending edit link working 2023-05-31 17:05:57 +02:00
Yohan Boniface
eb32dcc9b6 Make that Map.get_anonymous_edit_url returns full URL 2023-05-31 16:30:07 +02:00
David Larlet
3f28c04241
Banner + no create buttons when in read only mode
Fix #1095
2023-05-30 16:17:12 -04:00
David Larlet
6f72df82b7 Improve stats view testing with another user 2023-05-23 12:09:10 -04:00
David Larlet
9d752ea306 Add a very basic /stats/ JSON view
Will be useful to feed munin for instance.
2023-05-22 17:47:04 -04:00
Yohan Boniface
40f40038f8 Fix url order for retrieving user stars
Since that initial PR, the username regex has been more gready.
2023-05-15 12:22:28 +02:00
Yohan Boniface
37b4d05da5 (WIP) Allow to star map and retrieve starred maps 2023-05-15 12:22:26 +02:00
Yohan Boniface
1038836a72 Use Django full text instead of custom SQL 2023-05-11 11:33:08 +02:00
Luc Didry
123af0a7c9
🐛 — Allow to use SHA1-signed anonymous edit URL
The default django.core.signing Signer uses SHA256 algorithm since Django 3.
Umap used Django 2 in the paste, so people had SHA1 signed anonymous edit URLs,
which became unusable when umap switch to Django 3.
This commit makes them usable again (the new SHA256-signed anonymous edit URLs
still works, obviously).
2023-03-29 12:49:32 +02:00
Yohan Boniface
90607c7581 Black on test_datalayer_views 2023-02-28 17:14:57 +01:00
Yohan Boniface
1c39245af8 iwyu 2023-02-27 13:50:37 +01:00
Yohan Boniface
e343ddb636 Do not deal with gzip while serving without x-accel-redirect
Let's keep this path simple, as it should not be used in normal
production context.
2023-02-27 13:49:21 +01:00
Yohan Boniface
6694306660 Use If-Unmodified-Since istead of If-Match
If-Match relies on ETag, which depends on the Content-Encoding,
which is more fragile given we updated the etag on save, while normal
files are served by nginx. So this may occurs false mismatch.
2023-02-27 13:45:15 +01:00
Yohan Boniface
a8dee3fa07 Add Vary: Accept-Encoding header 2023-02-23 11:17:19 +01:00
Yohan Boniface
ebf0dee216 Travis stuff 2021-05-30 22:53:16 +02:00
Yohan Boniface
1200b82838 First attempt to upgrade to Django 3.X
Bloqued by https://github.com/peopledoc/django-agnocomplete/issues/119
2021-05-17 10:51:24 +02:00
Yohan Boniface
462e7a8a0f Try to upgrade Postgis on travis 2019-04-07 14:05:56 +02:00
Yohan Boniface
17db76d003 Specify Postgis version in settings for Travis 2019-04-07 13:59:00 +02:00
Yohan Boniface
5b8a8904cc Add Map.BLOCKED share status 2019-04-07 11:12:38 +02:00
Yohan Boniface
7e38a08fb8 Switch from DictField to JSONField 2019-04-07 10:40:30 +02:00
Yohan Boniface
f3ecc8ce28 Update permissions metadata at each map save
This fix the issue where the permissions panel was not available
on first save (without reloading the page).
2018-09-23 09:57:00 +02:00
Yohan Boniface
c5ca7e5d73 Change Map.center.widget SRID to 4326 as it should be
By default, a PointField uses a OpenLayersWidget, which forces the
SRID to 3857 when casting geojson (no idea why, given geojson SRID
is 4326).
2018-09-08 22:42:11 +02:00
Yohan Boniface
da4ee13deb Display a message on the site when trying to do a POST in readonly mode 2018-09-08 16:49:25 +02:00
Yohan Boniface
7941e8fa60 Add a readonly mode
Activable with UMAP_READONLY=True
2018-09-07 22:12:39 +02:00
Yohan Boniface
81f6b429bc allow to cache proxied remote data requests
cf #513
cf #510
cf #160
2018-08-04 20:50:03 +02:00
Yohan Boniface
408bbd81aa Fix map/id/geojson content_type 2018-07-14 23:55:21 +02:00
Yohan Boniface
72b943d779 Remove Map.tilelayer foreignkey
Map tilelayer is saved in the settings since a long time now.
2018-07-14 13:59:40 +02:00
Yohan Boniface
1a815b313d Add an explicit button to attach an owner to an anonymous map
fix #568
2018-07-07 16:44:40 +02:00
Yohan Boniface
705d0cbb73 Add back TileLayer and Licence creation migration
Lost during merge with django-leaflet-storage
2018-07-07 14:42:25 +02:00
Yohan Boniface
ac8b68b0e5 Remove OldMapUrl 2018-06-15 23:31:45 +02:00
Yohan Boniface
8655061817 Rename in JS/CSS: storage_ => umap_ storage- => umap- 2018-06-02 15:47:57 +02:00
Yohan Boniface
62a825e6ed Replace LEAFLET_STORAGE_XXX settings by UMAP_XXXX
We keep a retrocompatibility for now.
2018-05-19 17:16:34 +02:00
Yohan Boniface
8fd541955e Disable compressor during unittests for now 2018-05-19 16:28:56 +02:00
Yohan Boniface
53c738abaf Merge leaflet_storage tests 2018-05-19 11:54:08 +02:00
Yohan Boniface
e55d03bd5e Django 2.0
And update other deps
2018-05-19 10:05:18 +02:00
Yohan Boniface
0104337406 Add travis.yml 2017-05-12 10:42:02 +02:00
Yohan Boniface
6b207e2811 Add minimal tests for password login 2016-09-09 21:30:05 +02:00
Yohan Boniface
805bca7a97 Switch to pytest 2016-08-20 12:33:05 +02:00
Yohan Boniface
7b5ea8df67 First shot in Django 1.8 / python 3 support
This also replaced pg_index with a simple builting seach
based on tsvector, as pg_index is not compliant with Django 1.8,
and as some old dependencies that would need to be upgrade too.
2015-08-02 18:08:31 +02:00
Yohan Boniface
469187e4f1 Catch unkown domain in validate_url 2014-07-18 23:26:16 +02:00
Yohan Boniface
3ca24f5838 Quick hack to prevent django from adding vary:cookie on proxy view 2014-04-20 12:24:13 +02:00
Yohan Boniface
1fd245830e iwyu 2014-04-19 20:26:28 +02:00