Yohan Boniface
49ea7ed4a5
feat(forms): add a debounce for Input and Textarea fields
...
fix #2415
2025-01-27 17:25:56 +01:00
Yohan Boniface
d20943a487
feat: move star button to caption ( #2442 )
...
fix #2282


2025-01-27 17:18:28 +01:00
Yohan Boniface
250579eaa2
chore: better styling for star button in caption panel
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-27 16:50:27 +01:00
Yohan Boniface
60918e6ca5
wip(sync): POC of using Redis for pubsub ( #2426 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
## TODO
- [x] add expire to peers registry hash in redis, as for now when the
server closes the connection we have extra users (edit: we cleaned
manually, as HEXPIRE is not available in FOSS version of Redis)
- [x] make that the peer uuid is created by the client, so when it
reconnects, it uses the same, and does not create a new one
- [ ] see if we can use a connection_pool
- [x] use dynamic websocket_uri (that must include the map id)
- [x] integrate Redis in playwright tests
2025-01-27 15:58:30 +01:00
Yohan Boniface
d4afd5646f
feat: allow to define sortKey at layer level ( #2449 )
...
In some situation, we do not want the same sortKey for each layer.
2025-01-27 10:08:53 +01:00
Yohan Boniface
485bd94531
feat: allow to define sortKey at layer level
...
In some situation, we do not want the same sortKey for each layer.
2025-01-26 22:20:19 +01:00
Yohan Boniface
8603774778
chore: do not use hx for non structural headings
2025-01-24 18:52:24 +01:00
Yohan Boniface
8f2bbc6765
fix: re-compute layer settings when type changed
2025-01-24 18:24:33 +01:00
Yohan Boniface
d5efe6b8e2
fix: get COLORS from Utils now that it has been moved there
2025-01-24 18:23:41 +01:00
Yohan Boniface
8111cf5522
fix: add a label for default colors scheme in categorized layer type
2025-01-24 18:22:33 +01:00
Yohan Boniface
609b251303
chore: use datalayer.allProperties() instead of private property
2025-01-24 18:21:29 +01:00
Yohan Boniface
29d70552dd
fix: always index properties when feature properties as changed
...
We want the datalayer index properties to be updated when a user set
a property on the feature, as this property name may not yet be in the
index (which is used later for autocomplete, select…).
2025-01-24 18:19:57 +01:00
Yohan Boniface
ea2bdba270
fix: display a more usefull message when error in remote data ( #2443 )
...
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled
Test & Docs / docs (push) Has been cancelled
fix #2379

2025-01-24 09:09:14 +01:00
Yohan Boniface
22846acb99
fix: fix circle icon no longer hihlighted ( #2440 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
fix #2429
2025-01-23 18:30:23 +01:00
Yohan Boniface
693e775ca8
fix: keep layer visibility after clicking on toggle all ( #2439 )
...
fix #2430
Not exactly sure how to make this DRY. What we want is to mark the layer
visibility as "controlled by user" as soon as they click on a
show/hide/showAll/hideAll button, so we do not try to infer the
visibility from the from/toZoom settings.
2025-01-23 18:29:37 +01:00
Yohan Boniface
62be6450bb
feat(sync): show a very minimal list of connected peers
...
cf #2267
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-23 18:27:47 +01:00
Yohan Boniface
3e3ce0b8f5
fix: better computation of tooltip bottom position
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-23 18:08:04 +01:00
Yohan Boniface
476c160fd5
wip(sync): clean stale username from redis
...
We wanted to use the HEXPIRE command, but discovered that this command
is only available since the Redis 7.4 version (the latest), and this version
does not have an OSI compliant licence, so it is generally not installable
through common packages managers. The OSS fork is Valkey, but it still does
not have the HEXPIRE command.
So we decide to clean those keys manually, and in order no do this clean
task at each websocket connection, we only do it when we are the first user
to connect to a given map.
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-23 17:20:21 +01:00
Yohan Boniface
0d5e3047f4
wip(sync): only return peers with an active connection
2025-01-23 17:20:21 +01:00
Yohan Boniface
11fb29c456
wip(sync): log but do not crash when sending fail
...
This should be a race condition when sending to a closed websocket. Let's
log to track them.
2025-01-23 17:20:21 +01:00
Yohan Boniface
ef7c769abe
wip(sync): remove a bit of server prints
2025-01-23 17:20:21 +01:00
Yohan Boniface
82342ea00f
wip(sync): try a better pattern to unsubscribe to pubsub channels
...
When publishing a "STOP", this would unsubscribe every listener of the
channel.
2025-01-23 17:20:21 +01:00
Yohan Boniface
7e42331533
wip(sync): add Redis to CI and configure tests settings
2025-01-23 17:20:21 +01:00
Yohan Boniface
a07ee482ce
wip(sync): use our async_live_server for websocket related PW tests
...
As now both http and ws are on the same domain, let's use one test server
able to serve both.
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-23 17:20:20 +01:00
Yohan Boniface
1bf100d7a8
wip(sync): make the client set its peer id
2025-01-23 17:17:16 +01:00
Yohan Boniface
36d9e9bf06
wip(sync): use the correct URL for websocket
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-23 17:17:16 +01:00
Yohan Boniface
acb2e967b8
wip(sync): POC of using Redis for pubsub
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-23 17:17:16 +01:00
Yohan Boniface
ab7119e0a4
wip(sync): use Daphne as live_server for tests
...
Also clean dependencies.
We still use the channels live server for our tests, but do not use it
anymore for the actual websocket handling.
2025-01-23 17:17:13 +01:00
Yohan Boniface
460a0c9997
wip(sync): only open listen connections after authentication
2025-01-23 17:16:44 +01:00
Yohan Boniface
698c74b427
wip(sync): only save Peer after authentication
2025-01-23 17:16:44 +01:00
Yohan Boniface
a29eae138e
wip(sync): websocket server with ASGI and PostgreSQL LISTEN/NOTIFY
2025-01-23 17:16:44 +01:00
Yohan Boniface
31546d6ff4
wip(sync): use django-channels to serve websockets
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-23 17:16:44 +01:00
Yohan Boniface
83c3a41be5
fix: display a more usefull message when error in remote data
...
fix #2379
2025-01-23 12:04:25 +01:00
Yohan Boniface
48f9afdedd
feat: move star button to caption
...
fix #2282
2025-01-23 11:25:09 +01:00
Yohan Boniface
122d470e31
fix: do not consume ctrl-Z in textarea or input
...
fix #2422
2025-01-21 18:19:16 +01:00
Yohan Boniface
44dbf2f0df
fix: fix circle icon no longer hihlighted
...
fix #2429
2025-01-21 11:46:57 +01:00
Yohan Boniface
f3b11b03bc
fix: keep layer visibility after clicking on toggle all
...
fix #2430
Not exactly sure how to make this DRY. What we want is to mark the
layer visibility as "controlled by user" as soon as they click on a
show/hide/showAll/hideAll button, so we do not try to infer the
visibility from the from/toZoom settings.
2025-01-21 11:33:08 +01:00
Yohan Boniface
dc5a3a6b62
fix: test failing due to unstable FS ordering between OS
2025-01-20 21:12:06 +01:00
Yohan Boniface
f53d435dfd
chore: internalize FormBuilder ( #2420 )
...
Test & Docs / lint (push) Has been cancelled
Test & Docs / docs (push) Has been cancelled
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
fix #2280
That's a first step, which:
- internalize Formbuilder as a bunch of modules
- use Javascript classes instead of Leaflet ones
- remove dependencies to Leaflet (L.DomUtil…)
- replaces `L.FormBuilder` by `Form` (in theory generic, but not quite)
and `U.FormBuilder` by `MutatingForm` (knows about isDirty,
`inheritable` and such)
There is much more room for refactor, but let's do it step by step!
2025-01-11 14:29:55 +01:00
Yohan Boniface
07c29abbec
chore(utils): use native events instead of array of callbacks for WithEvents
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-10 16:44:48 +01:00
Yohan Boniface
86a8e17aec
fix(sync): handle sync of datalayer delete ( #2416 )
...
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
fix #2268
There is a tricky choice to do: the delete actually occurs in two
times, first the datalayer is hidden from the UI and set as "deleted"
(this can then be undone) then at next "save" it will totally removed.
When syncing, given we removed the "reset/undo" feature for now, and
because it was simpler, I decide to do both step in once.
When working on a proper "undo/redo", we may challenge this choice
again.
2025-01-10 16:34:47 +01:00
Yohan Boniface
75af1a4855
fix(sync): handle sync of datalayer delete
...
fix #2268
There is a tricky choice to do: the delete actually occurs in two
times, first the datalayer is hidden from the UI and set as "deleted"
(this can then be undone) then at next "save" it will totally removed.
When syncing, given we removed the "reset/undo" feature for now, and
because it was simpler, I decide to do both step in once.
When working on a proper "undo/redo", we may challenge this choice
again.
2025-01-10 16:33:46 +01:00
Yohan Boniface
0c52c35ae3
chore(tests): use name from data when defined in DataLayerFactory
2025-01-10 16:33:06 +01:00
Yohan Boniface
49cde00361
feat: display map's "created at" and "modified at" in the caption ( #2424 )
...
fix #2110

2025-01-10 16:23:42 +01:00
Yohan Boniface
e7fe92c070
feat: display map's "created at" and "modified at" in the caption
2025-01-10 15:49:05 +01:00
Yohan Boniface
92b7be3ad9
fix: update map.modified_at when saving a datalayer
...
fix #2421
2025-01-10 12:01:13 +01:00
Yohan Boniface
0ba69e41d0
wip(forms): use events instead of callback
2025-01-09 13:02:04 +01:00
Yohan Boniface
fb4fecd337
chore(tests): fix sync tests
2025-01-09 13:00:59 +01:00
Yohan Boniface
b6c8d64c47
chore(forms): remove duplicate NullableBoolean field
2025-01-08 16:15:27 +01:00
Yohan Boniface
63e84d94c4
chore(forms): refactor icon preview of IconURL field
2025-01-08 16:14:36 +01:00
Yohan Boniface
176b8bdbcc
wip(forms): refactor forms templating
2025-01-07 18:08:48 +01:00
Yohan Boniface
e0fadea749
chore: remove Leaflet dependency from form modules
2025-01-07 18:07:14 +01:00
Yohan Boniface
b88a0cc49f
wip: internalize FormBuilder and move to module
2025-01-07 18:07:14 +01:00
Yohan Boniface
ebae9a8cd0
fix(sync): do not try to reconnect after end edit ( #2412 )
...
Test & Docs / docs (push) Has been cancelled
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled
We now set the "closeRequested" on the receiver itself, otherwise there
is a race condition between the reconnect (which create a new transport)
and the onclose checking closeRequest on an old transport.
2025-01-01 11:31:32 +01:00
Yohan Boniface
ddeebd758c
fix(sync): deactivate cancel and hide button when sync is active
...
cf #2265
Let's reactivate when we have a proper undo-redo (cf #1107 )
2024-12-31 14:23:57 +01:00
Yohan Boniface
424cb70ac4
fix(sync): do not try to reconnect after end edit
...
We now save the "closeRequested" on the receiver itself, other wise
there is a race condition between the reconnect (which create a new
transport) and the onclose checking closeRequest on an old transport.
2024-12-31 14:17:30 +01:00
Yohan Boniface
eb50d8adf4
2.8.2
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled
Test & Docs / docs (push) Has been cancelled
2024-12-26 11:24:46 +01:00
Yohan Boniface
7d7ff7066e
i18n
2024-12-26 11:23:28 +01:00
Yohan Boniface
48ae4123ec
fix: fix startMarker/Polyline/Polygon on right click ( #2403 )
...
fix #2392
2024-12-26 11:02:48 +01:00
Yohan Boniface
f4cb3509b0
fix: fix create marker from search result
...
cf https://github.com/umap-project/umap/issues/2392#issuecomment-2561151836
2024-12-25 19:36:53 +01:00
Yohan Boniface
ed33b1611a
fix: fix startMarker/Polyline/Polygon on right click
...
fix #2392
2024-12-25 19:33:35 +01:00
Yohan Boniface
52785e22ad
2.8.1
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled
Test & Docs / docs (push) Has been cancelled
2024-12-24 09:56:52 +01:00
Yohan Boniface
5dd56a93d6
i18n
2024-12-24 09:47:03 +01:00
David Larlet
18c8258f2c
wip: add a 403.html template ( #2396 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
fix #2390
2024-12-23 13:36:18 -05:00
David Larlet
a62bcf6d57
fix: do not load all datalayers at once ( #2402 )
...
Some maps have dozens, even hundreds of layers
2024-12-23 13:36:04 -05:00
David Larlet
76cad4a24b
chore: lint python imports
2024-12-23 13:16:11 -05:00
Yohan Boniface
f7b4cb252d
fix: do not load all datalayers at once
...
Some maps have dozens, even hundreds of layers
Co-authored-by: David Larlet <david@larlet.fr>
2024-12-23 19:16:09 +01:00
David Larlet
dc85b2461f
chore: lint templates
2024-12-23 12:29:35 -05:00
David Larlet
4cc8ae3d1f
chore: extract DropControl to a module
2024-12-23 12:26:40 -05:00
David Larlet
3fff54baab
fix: zoom to droped file once loaded
2024-12-23 12:09:16 -05:00
David Larlet
f69e8217cb
chore: better wording and style for the 403 page
2024-12-23 10:44:34 -05:00
David Larlet
e314fa18ad
chore: optimize logocyan’s SVG code
...
With https://jakearchibald.github.io/svgomg/
2024-12-23 10:33:15 -05:00
David Larlet
aedc26fe6d
docs: add English documentation for map statuses
...
Refs #2390
2024-12-23 10:28:24 -05:00
Yohan Boniface
ddddf4ece3
wip: add a 403.html template
2024-12-23 15:58:11 +01:00
David Larlet
7cb6c0c45f
fix( #2391 ): split zoomTo to accept bounds
...
Since de921660c9 (diff-4a01a166046bdf7e4ea7d41d97cd82a57c82f63d10d1697f76e6fe22bfa769ebR954)
we were calling it with bounds but also with the click event sometimes.
2024-12-20 09:25:25 -05:00
Yohan Boniface
a9d9beacb2
fix: main help button was broken
2024-12-20 14:12:13 +01:00
Yohan Boniface
d4fb92ec56
Fix duplicated content during sync ( #2388 )
...
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Here are the main fixes:
- mark a synched datalayer as loaded (so the peer does not try to get
data from the server)
- do not mark synched datalayers as dirty
- properly consume the lastKnownHLC, so to get an accurate list of
operations
fix #2219
2024-12-19 17:38:39 +01:00
Yohan Boniface
650110fe8a
feat: reconnect websocket on disconnection ( #2389 )
...
This is a port of this PR: #2235
(But it was easier to copy-paste than rebase, given the split of umap.js
and co.)
2024-12-19 17:38:02 +01:00
Yohan Boniface
36fdb8190c
chore: stringify sync payload before putting it in the console
...
This allow to have them displayed by playwright in the python
console.
Co-authored-by: David Larlet <david@larlet.fr>
2024-12-19 17:00:30 +01:00
Yohan Boniface
56f2d3d2f9
feat: reconnect websocket on disconnection
...
This is a port of this PR: #2235
(But it was easier to copy-paste than rebase, given the split of umap.js
and co.)
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
Co-authored-by: David Larlet <david@larlet.fr>
2024-12-19 16:51:10 +01:00
Yohan Boniface
80152bf4fb
fix: update star icon on star/unstar ( #2387 )
2024-12-19 15:23:36 +01:00
Yohan Boniface
1996e315e4
chore: allow to create non dirty DataLayer
...
There are two situations where we want to create "non dirty" datalayers:
- at normal load, we create datalayers that already exist in DB
- at sync, we create datalayers that will be saved by other peer
2024-12-19 13:38:09 +01:00
Yohan Boniface
dd7641c92e
chore: mark synched datalayers as "loaded"
...
Otherwise, when they will get the "_referenceVersion" later, they
will call the server to fetch the data (while they already have
the data, from the sync itself)
2024-12-19 13:38:09 +01:00
Yohan Boniface
6caf4c3ed1
chore: properly consumme lastKnownHLC on list operations call
2024-12-19 13:38:09 +01:00
Yohan Boniface
471abe1f1b
chore: honour "sync" parameter in layer.setReferenceVersion
2024-12-19 13:38:09 +01:00
Yohan Boniface
4ea5a28f04
chore: no need to call layer.redraw in layer.render()
...
We already call hide/show, which is what redraw does
2024-12-19 13:38:09 +01:00
Yohan Boniface
d24f05907c
chore: add failing test for #2219
2024-12-19 13:38:09 +01:00
Yohan Boniface
0bc4900b16
fix(caption): honour carriage returns in datalayer description
...
fix #2385
2024-12-19 11:10:57 +01:00
Yohan Boniface
0e78d58c03
chore: use WithTemplate for Caption
2024-12-19 11:10:57 +01:00
Yohan Boniface
f93d0b5ca7
fix: update star icon on star/unstar
2024-12-19 10:44:32 +01:00
Yohan Boniface
24511d796d
chore(tests): use new_page fixture in login one
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
So to have the js console relayed in the terminal
2024-12-18 17:44:30 +01:00
Yohan Boniface
0eedc47079
2.8.0
Test & Docs / docs (push) Waiting to run
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
2024-12-18 12:16:58 +01:00
Yohan Boniface
631e3a7fd3
fix: do not unset map dirty status if it has not yet been saved once ( #2382 )
2024-12-18 11:45:43 +01:00
Yohan Boniface
d00b4e1da9
fix: do not unset map dirty status if it has not yet been saved once
2024-12-18 11:36:54 +01:00
Yohan Boniface
1ead369487
fix: do not try to restore a newly created layer on reset
...
When asking for cancel, a layer that has not yet been saved to the
server should only be erased, no need to try to restore its previous
state.
2024-12-18 11:21:36 +01:00
Yohan Boniface
32acdc2070
feat: experimental popup template for wikipedia ( #2365 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
When the data contain a `wikipedia` attribute, like used in OSM data
(see https://wiki.openstreetmap.org/wiki/Key:wikipedia ), this template
will fetch the image and an extract for the given page.

fix #661
2024-12-17 20:29:28 +01:00
Yohan Boniface
a8ed8c0d3d
2.8.0b0
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
2024-12-17 19:03:55 +01:00
Yohan Boniface
b444380daa
fix: store the "active" status of a feature ( #2378 )
...
Otherwise, when the marker is redrawn by Leaflet itself, it will lose
the status (the class we added manually will not be added by Leaflet).
Eg. if we click on a marker on the map border, this will move the map to
make the marker popup fit the screen, and thus this will redraw the
marker icon, which will then lose the "active" flag class.
2024-12-17 18:50:39 +01:00
Yohan Boniface
92df1d792a
fixup: escape Wikipedia HTML, just in case
2024-12-17 18:49:49 +01:00
Yohan Boniface
6e5540fe79
fixup: cache wikipedia calls and be a bit more defensive
2024-12-17 18:44:21 +01:00
Yohan Boniface
b7173d4629
fixup: allow to display asynchronous content in the panel too
2024-12-17 18:44:21 +01:00
Yohan Boniface
8a929d2352
fixup: allow aynchronous popups
2024-12-17 18:44:21 +01:00
Yohan Boniface
7670989798
fixup: bigger images from wikipedia
2024-12-17 18:44:21 +01:00
Yohan Boniface
573a065e05
wip
2024-12-17 18:44:21 +01:00
Yohan Boniface
dcaddef57c
feat: allow to edit datalayer name in datalayers list ( #2349 )
...
fix #1995
https://github.com/user-attachments/assets/b16d7d1b-eee1-4da2-93b9-2aac127051ba
2024-12-17 18:43:51 +01:00
Yohan Boniface
2bee0bf3d2
fix: store the "active" status of a feature
...
Otherwise, when the marker is redrawn by Leaflet itself, it will lose
the status (the class we added manually will not be added by Leaflet).
Eg. if we click on a marker on the map border, this will move the map
to make the marker popup fit the screen, and thus this will redraw the
marker icon, which will then lose the "active" flag class.
2024-12-17 18:41:37 +01:00
Yohan Boniface
8f3e9ee546
fix: do not autoescape static tag ( #2376 )
...
When using django-storage S3, this will escape the final static URL,
containing query string (so & will become &).
2024-12-17 18:30:06 +01:00
Yohan Boniface
df3adbc85e
fix: bring marker to front on highlight ( #2377 )
...
fix #2351
The actual zIndex of a marker is computed by Leaflet, not set in CSS.
2024-12-17 18:28:52 +01:00
Yohan Boniface
7c986e5aea
fix: teach FormBuilder where to look for default values ( #2374 )
...
UMap will look into the schema for default values, but untill now
FormBuilder wasn't.
This fix is not the real fix we want, but let's make this last until
then.
The real fix is to refactor schema and make obj.properties a Proxy
object that will then be consumed by FormBuilder as it is now.
2024-12-17 18:19:07 +01:00
Yohan Boniface
1be00ed8ca
fix: show private/draft maps in team maps for members ( #2373 )
2024-12-17 18:16:55 +01:00
Yohan Boniface
3eba27f6ea
fixup: fix tilelayer switch not saved anymore ( #2367 )
...
Since map split.
2024-12-17 18:14:48 +01:00
Yohan Boniface
82708b1e53
fix: bring marker to front on highlight
...
fix #2351
2024-12-17 15:29:55 +01:00
Yohan Boniface
6db3032bdb
fix: do not autoescape static tag
...
When using django-storage S3, this will escape the final static URL,
containing query string (so & will become &).
2024-12-17 13:07:46 +01:00
Yohan Boniface
bf631f07de
fix: display current configured oauth as icon instead of text
2024-12-17 11:44:13 +01:00
Yohan Boniface
9473a8552f
fix: teach FormBuilder where to look for default values
...
UMap will look into the schema for default values, but untill now
FormBuilder wasn't.
This fix is not the real fix we want, but let's make this last until
then.
The real fix is to refactor schema and make obj.properties a Proxy
object that will then be consumed by FormBuilder as it is now.
2024-12-17 11:19:03 +01:00
Yohan Boniface
8a38dd63c9
fix: show private/draft maps in team maps for members
2024-12-17 10:37:07 +01:00
Yohan Boniface
05c27aed98
feat: parse files in parallel at import when multiple ( #2372 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
cf https://github.com/umap-project/umap/pull/2363#discussion_r1882966275
2024-12-16 21:36:42 +01:00
Yohan Boniface
d08531121b
feat: parse files in parallel at import when multiple
2024-12-16 19:49:58 +01:00
Yohan Boniface
06c2438ff1
fixup: fix save center and zoom ( #2371 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
Broken since map split.
2024-12-16 18:30:37 +01:00
Yohan Boniface
b92490eacc
feat: load all datalayers in parallel ( #2370 )
2024-12-16 18:26:55 +01:00
Yohan Boniface
cdb5d79297
chore: clean CSS loader ( #2369 )
...
- change the CSS (cf
https://github.com/umap-project/umap/issues/564#issuecomment-2541883101 )
- change the way we pass events (and their id) to Leaflet.Loading
2024-12-16 18:24:43 +01:00
Yohan Boniface
ecdc58948f
fixup: fix save center and zoom
...
Broken since map split.
2024-12-16 18:22:44 +01:00
Yohan Boniface
e3f02a475f
feat: load all datalayers in parallel
2024-12-16 18:03:45 +01:00
Yohan Boniface
9c3f8db548
chore: clean CSS loader
...
- change the CSS (cf https://github.com/umap-project/umap/issues/564#issuecomment-2541883101 )
- change the way we pass events (and their id) to Leaflet.Loading
2024-12-16 18:01:01 +01:00
Yohan Boniface
ce765efefc
fixup: fix tilelayer switch not saved anymore
...
Since map split.
2024-12-16 17:00:43 +01:00
Yohan Boniface
09faa763f9
feat: add a back button to importers dialog ( #2364 )
...
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled
Test & Docs / docs (push) Has been cancelled

2024-12-13 15:49:45 +01:00
Yohan Boniface
fe06a0ff8e
chore: add more tests for team related views
2024-12-13 14:44:54 +01:00
Yohan Boniface
b578ceced4
feat: add a back button to importers dialog
2024-12-13 12:27:41 +01:00
Yohan Boniface
45a0ec5d42
fix: add default saved message
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
Now that we do not always do a save on the map itself, we may have
no feedback message in case we only save layers.
2024-12-13 10:05:20 +01:00
Yohan Boniface
cbab6e03f8
fix: properly close the translate parentesis
2024-12-13 09:48:03 +01:00
Yohan Boniface
54aa687ba1
2.8.0a2
2024-12-13 09:33:24 +01:00
Yohan Boniface
8346459f28
i18n
2024-12-13 09:31:02 +01:00
Yohan Boniface
cd24bf0b3d
feat: refactor importer feedback ( #2363 )
...
We basically make the all import chain return the results as promise, so
the importer can act at the end of the process and:
- zoom only to the imported data (in case the layer already as some)
- display a counter of imported data when import is successfull
- display an alert when nothing has been imported
cf #564
2024-12-13 09:18:08 +01:00
Yohan Boniface
de921660c9
feat: refactor importer feedback
...
We basically make the all import chain return the results as promise, so
the importer can act at the end of the process and:
- zoom only to the imported data (in case the layer already as some)
- display a counter of imported data when import is successfull
- display an alert when nothing has been imported
cf #564
2024-12-12 21:52:54 +01:00
Yohan Boniface
8db974b96a
chore: more logs in the ajax proxy validate url
...
This should only be used in localhost, but there are a bunch of
check and it's often that we need to add print to understand why
the URL does not validate, which is usually an issue with the SITE_URL
or this kind. So let's make those print permanent.
2024-12-12 21:06:09 +01:00
Yohan Boniface
dd89984e28
fix: make sure we set X-DataLayer-Version even when using X-Accel-Redirect ( #2361 )
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
2024-12-12 18:20:14 +01:00
Yohan Boniface
86c634db28
fix: make sure we set X-DataLayer-Version even when using X-Accel-Redirect
2024-12-12 18:19:02 +01:00
Yohan Boniface
5d0b7dff4c
chore: review empty_trash command
...
- do not try to print map.id after delete (it's None)
- rely on date instead of minutes/microseconds
2024-12-12 13:47:40 +01:00
Yohan Boniface
ddfef9cbe7
2.8.0a1
2024-12-11 19:25:10 +01:00
Yohan Boniface
8b65674e0a
chore: make S3 dependencies optional
2024-12-11 19:16:17 +01:00
Yohan Boniface
8f9ee89d18
2.8.0a0
2024-12-11 18:40:35 +01:00
Yohan Boniface
5370c9311a
i18n
2024-12-11 18:16:31 +01:00
Yohan Boniface
eebef3420a
feat: add elevation gain and loss in extended properties ( #2343 )
...

2024-12-11 17:56:15 +01:00
Yohan Boniface
80ff4ed899
feat: move labelKey field on the top datalayer form ( #2350 )
...
fix #2331
2024-12-11 17:49:24 +01:00
Yohan Boniface
c41bf9129d
feat: display wikipedia link in OSM popup template when possible ( #2358 )
...

(And move popup related CSS to a dedicated file.)
cf #661
2024-12-11 17:48:40 +01:00
Yohan Boniface
c4ded4404e
feat: display wikipedia link in OpenStreetMap popup template
2024-12-11 16:09:13 +01:00
Yohan Boniface
71389edca7
chore: move popup related CSS to a separate file
2024-12-11 16:08:29 +01:00
Yohan Boniface
8fb3c27445
fixup: properly read gzipped content from S3
...
We did not find a native way to do this from django-storages API.
2024-12-10 19:03:19 +01:00
Yohan Boniface
47524dacce
chore: cache DataLayer._reference_version
...
Prevent to send a HEAD request head time to S3 (when using S3)
2024-12-10 19:03:19 +01:00
David Larlet
834970b725
chore: add command to migrate from fs to S3
2024-12-10 19:03:19 +01:00
David Larlet
14e74d15c1
chore: always gzip geojson in S3 storage
2024-12-10 19:03:19 +01:00
Yohan Boniface
1ac9a06195
chore: do not fail if S3 bucket does not handle versions
...
And mention the need of activating versioning in the doc.
2024-12-10 19:03:19 +01:00
Yohan Boniface
81fa31f50b
chore: add basic tests for S3 storage
2024-12-10 19:03:19 +01:00
Yohan Boniface
a04624c4c8
feat: support storing layer data in S3 like servers
...
fix #2290
2024-12-10 18:51:58 +01:00
Yohan Boniface
82b81706ab
chore: add missing migration for new share_status values
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
2024-12-10 17:54:58 +01:00
Yohan Boniface
c8e171eb91
chore: make both save buttons hidden by default
2024-12-10 17:40:40 +01:00
Yohan Boniface
88ed5af776
Update umap/management/commands/empty_trash.py
...
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2024-12-10 17:31:08 +01:00
Yohan Boniface
c4c874c5c2
chore: delete all datalayers version on delete
2024-12-10 16:51:32 +01:00
Yohan Boniface
cc457e9634
chore: do not use datetime.UTC yet, which is py>=3.11 only
2024-12-10 16:37:38 +01:00
Yohan Boniface
29d243b3c5
feat: move map to trash on delete
...
This also:
- adds a `umap empty_trash` command
- remove the previous purgatory concept
2024-12-10 16:30:23 +01:00
Yohan Boniface
1aaea0beb9
feat: introduce Map.share_status=DRAFT and DELETED
2024-12-10 15:14:12 +01:00
David Larlet
5b32e2ac03
fix( #2355 ): correctly reset Dialog’s returnValue
...
Fixes #2355
2024-12-09 18:16:41 -05:00
Yohan Boniface
89acf8f0ec
feat: add elevation gain and loss in extended properties
2024-12-09 13:14:34 +01:00
Yohan Boniface
0f7b7d94f7
feat: allow to edit datalayer name in datalayers list
...
fix #1995
2024-12-09 13:14:16 +01:00
Yohan Boniface
d8abb28e35
feat: move labelKey field on the top datalayer form
...
fix #2331
2024-12-09 13:13:56 +01:00
Yohan Boniface
d0156bc7a6
fixup: make sure to redraw tile after a .umap import ( #2347 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
Broken since
20b2290d00
Since started as a simple fix, but:
- I first thought my previous fix of the failing test
`test_import_umap_from_textarea` was not a real fix, so I changed a bit
the way we mock tiles URL in tests, but at the end the test was failing
for good reasons
- since 20b2290d00
the reset of tilelayer
was not called anymore after importing a umap file, so I first made a
quick fix for this
- then I decided to refactor a bit more render and propagate, so
`importRaw` would pass the exact imported properties (instead of trying
to blindly target with some properties), and to remove a call to
`propagate`, which at the end should disappear in favor of `render` with
better targeting
2024-12-09 13:12:56 +01:00
Yohan Boniface
f3c95bd13d
chore: refactor render and propagate to better target UI changes
2024-12-07 15:41:16 +01:00
Yohan Boniface
bf2ed185db
fix: make sure to redraw tile after a .umap import
...
Broken since 20b2290d00
2024-12-07 13:02:04 +01:00
Yohan Boniface
4070da392a
chore: catch all "tile*" URL in playwright
2024-12-07 13:01:41 +01:00
Yohan Boniface
42f74e1554
fix: disable for real dragging the map on mobile when scrollWheelZoom is false
...
Changing map options at this stage is too late.
cf #2340
2024-12-06 11:27:30 +01:00
Yohan Boniface
97ff26b6e8
fix: make that renderUI also recompute scrollWheelZoom
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
Otherwise it does not change the behaviour when changing the setting.
2024-12-05 18:39:40 +01:00
Yohan Boniface
b7649a5e47
fix: Avoid map-panning on mobile using two fingers navigation ( #2340 )
...
If scrollWheelZoom option is false we deactivate leaflet dragging
options only on mobile
2024-12-05 18:38:08 +01:00
Yohan Boniface
92431d3b83
fix: do not redraw tilelayers each time a map property is changed ( #2342 )
2024-12-05 18:32:47 +01:00
Yohan Boniface
20b2290d00
fix: do not redraw tilelayers each time a map property is changed
2024-12-05 18:32:05 +01:00
Yohan Boniface
b692cb0cd1
chore: rename Importer.isValid to Importer.canSubmit
...
We are not really checking the validity of the form.
2024-12-05 18:03:30 +01:00
Yohan Boniface
a9b13c709d
feat(importer): check "copy" as default action
...
Let's make it simpler for new comers, and advanced users will know
where to click to change the behaviour.
2024-12-05 18:00:34 +01:00
Yohan Boniface
50efbc25be
feat: add a disabled/active mode to the submit button of import panel
...
cf #2302
2024-12-05 18:00:26 +01:00
Yohan Boniface
d99fe70e36
feat: display importers in a dialog instead of direclty in the form
...
The goal is to keep the form smaller, specifically to keep the
submit button visible as much as possible.
2024-12-05 17:59:03 +01:00
Yohan Boniface
d64cdae987
chore: make that Importer extends WithTemplate
...
Another step is needed to use this.elements instead of this.qs
2024-12-05 17:59:03 +01:00
Yohan Boniface
da86020a0b
feat: add icon-magic in 16-white.svg
2024-12-05 17:59:03 +01:00
Yohan Boniface
7f3726ddd1
feat: display an image from Panoramax in OSM template when tag is defined ( #2338 )
...

I initially just wanted to work on that simple Panoramax feature, but
faced a bunch of bugs!
- one bad var remaining since whatever refactor (and no tests for this
popup template!)
- title was duplicated, since whatever refactor (and not tests for
this…)
- title text was in black on blue background
2024-12-05 17:36:07 +01:00
Yohan Boniface
2c601e483d
feat: allow to configure the default label keys per instance ( #2291 )
...
fix #2289
Let's add "nom" in OSM France and ANCT instances, then, to make users
experience smoother (a lot of imported data contains a "nom" column, and
no "name" nor "title").
2024-12-05 17:35:48 +01:00
Yohan Boniface
171aba6676
feat: add basic autocompletion on inputs expecting a field name ( #2281 )
...
Eg. the labelKey or filterKey input.
2024-12-05 17:32:27 +01:00
Yohan Boniface
82853f7ade
chore: add very minimal test for OSM popup template
2024-12-05 17:29:30 +01:00
Florent Triquet
acbdfda581
fix: Avoid map-panning on mobile using two fingers navigation
...
If scrollWheelZoom option is false we deactivate leaflet dragging options only on mobile
2024-12-05 14:11:05 +01:00
Yohan Boniface
e012d57e5c
feat: make expression persistent in the overpass importer
...
In other words: fill in the "tags" input with the latest
typed expression.
Otherwise, when making tries with overpass imports, one have to
type it again and again (it's available through the autocomplete,
though, but it's not obvious and it's less friendly IMHO).
2024-12-05 12:42:21 +01:00
Yohan Boniface
6a0bc9443b
feat: display an image from Panoramax in OSM template when tag is defined
2024-12-05 11:57:48 +01:00
Yohan Boniface
4949fcb4a4
feat: try to guess RGB from color name when element is not in DOM
...
We often need to compute the text/icon constrast color, but often
the element is not yet in the DOM, so we can't get the background
easily. Let's have a fallback for that instead of trying to have
"load" events everywhere.
2024-12-05 11:53:01 +01:00
Yohan Boniface
430dede0dd
fix: fix broken OSM template
2024-12-05 11:46:52 +01:00
Yohan Boniface
d9c04c7d0a
fix: do not render normal popup title in OSM template
2024-12-05 11:46:26 +01:00
Yohan Boniface
8f7e5c7252
chore: add missing import in cadastrefr
Test & Docs / docs (push) Has been cancelled
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled
2024-12-03 18:07:26 +01:00
Yohan Boniface
c9d532508d
chore: change cadastrefr buttons ( #2333 )
...
We remove the cancel button and change the accept label.
2024-12-03 17:56:57 +01:00
Yohan Boniface
6221b709f4
fix: importer.map is undefined in geodatamine importer ( #2332 )
...
Broken since the map split I guess.
2024-12-03 17:54:20 +01:00
Yohan Boniface
26ff82e838
chore: change cadastrefr buttons
...
We remove the cancel button and change the accept label.
2024-12-03 16:24:30 +01:00
Yohan Boniface
8fa26a02a2
fix: importer.map is undefined
...
Broken this the map split I guess.
2024-12-03 16:21:37 +01:00
Yohan Boniface
9a900319af
feat: swap import and settings buttons in edit toolbar
...
fix #2297
2024-12-03 15:20:22 +01:00
Yohan Boniface
8569b827ca
fix: compute length of all shapes for MultiLineString (not only first) ( #2310 )
2024-12-02 19:46:45 +01:00
Yohan Boniface
666a92ec44
fix: compute length of all shapes for MultiLineString not only first
2024-12-02 19:39:57 +01:00
Yohan Boniface
2f776dab59
feat: highlight importer URL field when it is fulfilled ( #2323 )
...
Very small step of #2302

2024-12-02 19:04:04 +01:00
Yohan Boniface
bba9487847
feat: highlight importer URL field when it is fulfilled
...
cf #2302
2024-12-02 18:56:24 +01:00