David Larlet
ac607370d0
a11y: include site description within page titles ( #2455 )
...
This is not the same as the short `SITE_NAME` which is displayed as the
title of the (home)page for instance.
The plan is to set `SITE_DESCRIPTION` as `uMap OpenStreetMap` for the
OSM instance and `uMap agents publics` for the ANCT one.
2025-01-30 10:45:22 -05:00
David Larlet
44aa914658
a11y: include site description within page titles
...
This is not the same as the short SITE_NAME which is displayed as the title of the (home)page for instance.
2025-01-30 10:36:31 -05:00
David Larlet
0e5cdec97e
fix: better buttons positionning for the homepage
2025-01-30 10:16:09 -05:00
Yohan Boniface
c27e675152
fix: allow to set choices for a nullablechoices field
...
fix #2380
2025-01-30 14:55:11 +01:00
Yohan Boniface
ee1a87cdeb
feat: add DEPRECATED_AUTHENTICATION_PROVIDERS setting
2025-01-30 11:04:02 +01:00
Yohan Boniface
96895feea0
fix: display current configured oauth as icon instead of text ( #2375 )
...
Before:

After:

2025-01-30 11:03:21 +01:00
Yohan Boniface
359b0b41ca
chore: make djlint happy
2025-01-30 09:45:56 +01:00
Yohan Boniface
3aa42d6f0f
feat: soft delete datalayers ( #2459 )
...
When deleting a datalayer, it will now be moved to a state "deleted",
and it will only be deleted for real when running the command `umap
empty_trash`.
This is what we already do for the map itself, but until now if a user
deleted a only a datalayer by mistake (not the map itself) it could not
retrieve it.
2025-01-30 09:19:58 +01:00
Yohan Boniface
f0751ec5dd
fix: correctly parse http link including another http link in the path
...
fix #2457
2025-01-29 20:23:43 +01:00
Yohan Boniface
fd8a1971f8
feat: soft delete datalayers
...
When deleting a datalayer, it will now be moved to a state "deleted", and
it will only be deleted for real when running the command `umap empty_trash`.
This is what we already do for the map itself, but until now if a user
deleted a only a datalayer by mistake (not the map itself) it could not retrieve
it.
2025-01-29 19:08:59 +01:00
Yohan Boniface
a3baf82b7b
chore(templates): use images for oauth providers list
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-27 19:04:13 +01:00
Yohan Boniface
70f87d8636
feat: add "accent" mode for tooltip, and use it for peers list
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-27 18:43:36 +01:00
Yohan Boniface
bcd21d3697
feat(forms): add a debounce for Input and Textarea fields ( #2445 )
...
fix #2415
I'm a bit afraid this will add more hiccup to the playwright tests,
tough :(
2025-01-27 18:40:11 +01:00
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
Yohan Boniface
177a4edc1d
fix: broken ctrl+i and ctrl+o ( #2322 )
2024-12-02 17:19:53 +01:00
Yohan Boniface
31c8bf95ba
fix: broken ctrl+i and ctrl+o
2024-12-02 17:10:06 +01:00
Yohan Boniface
f6f42f5e6b
chore: move form css to a separate file
2024-12-02 17:07:06 +01:00
Yohan Boniface
d9998efc0f
Fix reordering of layers ( #2316 )
...
Broken in the map split I guess.
(Only the first line is the fix, the other are just naming, cf the two
commits.)
2024-12-02 15:43:14 +01:00
Yohan Boniface
30d9e43cd4
Add logo for social_core.backends.keycloak.KeycloakOAuth2 ( #2258 )
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-02 13:14:06 +01:00
Yohan Boniface
1a88c11289
fix: don't show default label if another is found in features edit
2024-12-02 12:58:19 +01:00
Yohan Boniface
78d6699a81
feat: allow to configure the default label keys per instance
...
fix #2289
2024-12-02 12:58:19 +01:00
Yohan Boniface
35b541f200
chore: better naming in layer reordering
2024-12-02 12:55:57 +01:00
Yohan Boniface
8624209e1b
fix: iter on the right elements after reordering layers
2024-12-02 12:55:57 +01:00
Yohan Boniface
471de78ab3
chore: fix failing test
2024-12-02 12:46:09 +01:00
Yohan Boniface
e33fc787ab
fix: do not fail when navigating with popup arrows in cluster mode ( #2307 )
...
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
- make sure we have correct `this` in callback
- do not call anymatePan if icon is not added to map (because
clusterized)
2024-11-29 21:43:52 +01:00
Yohan Boniface
ca127c8c3c
fix: do not fail when navigating with popup arrows in cluster mode
...
- make sure we have correct `this` in callback
- do not call anymatePan if icon is not added to map (because clusterized)
2024-11-29 18:32:14 +01:00
David Larlet
b6229a05b7
Better login page styles and incentive ( #2293 )
...
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
Fixes https://github.com/umap-project/umap-dsfr/issues/21
Rel.
24f23874f7
2024-11-22 09:29:47 -05:00
Yohan Boniface
4350f55e67
fix: do not fail when editing map infos if no licence is set ( #2287 )
2024-11-22 10:17:37 +01:00
Yohan Boniface
735c74dcb3
fix: allow spaces in iframe query strings in HTML formatting ( #2292 )
...
fix #2269
2024-11-22 09:46:56 +01:00
David Larlet
1073fe6142
Better login page styles and incentive
...
Fixes https://github.com/umap-project/umap-dsfr/issues/21
Rel. 24f23874f7
2024-11-21 15:37:21 -05:00
Yohan Boniface
95710a4dab
fix: allow spaces in iframe query strings in HTML formatting
...
fix #2269
2024-11-21 15:21:35 +01:00
Yohan Boniface
f7c1b8f123
fix: do not fail when editing map infos if no licence is set
2024-11-20 16:44:15 +01:00
Yohan Boniface
ccd6a21958
chore: explicitely set postgis as db engine ( #2285 )
...
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
While working on a helm chart, we do not control the creation of the db
URL, which use "postgres://" instead of "postgis://", so Django does not
set the correct engine. So let's be explicit here.
2024-11-20 10:49:38 +01:00
Yohan Boniface
5cef79d395
i18n
2024-11-20 10:47:28 +01:00
Yohan Boniface
833941a9e6
chore: set an explicit db engine (postgis)
...
While working on a helm chart, we do not control the creation of
the db URL, which use "postgres://" instead of "postgis://", so
Django does not set the correct engine.
2024-11-19 18:44:35 +01:00
Yohan Boniface
4acb20f3bb
feat: add basic autocompletion on inputs expecting a field name
...
Eg. the labelKey or filterKey input.
2024-11-19 13:59:55 +01:00
Yohan Boniface
346597533c
chore: a bit of CSS cleaning in bar.css
2024-11-19 13:16:02 +01:00
Yohan Boniface
5ceda7b2a3
chore: move editToolBar and captionBar to modules
...
This also tries to rework a bit the "reflow" process, which how
to edit the UI when something changes in the data.
The idea is to build the whole HTML, then:
- the `propagate` method tries to change the UI with targetted CSS
selector, but anywhere
- while `render` hide/show some elements
This is not the destination, but just another step. We certainly
need to refactor the SCHEMA to make the next step (as we want to associate
some data change to UI change).
2024-11-18 19:43:28 +01:00
Yohan Boniface
2c64745c52
fix: honour rules
and slideshow
when importing a umap file ( #2270 )
...
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
Side note (for another PR I'd say): this usually occurs on a non saved
map, but in case the map already exist and is in sync mode, should we
sync each property (safer but one call per property) or the whole
properties object (lighter, but may override unwanted things in remote,
and currently there is no method to do so).
2024-11-18 19:41:40 +01:00
Yohan Boniface
4b170df1c2
fix: honour custom labelKey in default popup template
...
The default popup template expects a `name` key, so let's populate
it.
2024-11-16 11:20:23 +01:00
Yohan Boniface
123a6ea508
fix: honour rules
and slideshow
when importing a umap file
...
Side note (for another PR I'd say): this usually occurs on a non
saved map, but in case the map already exist and is in sync mode,
should we sync each property (safer but one call per property)
or the whole properties object (lighter, but may override unwanted
things in remote, and currently there is no method to do so).
2024-11-16 10:30:15 +01:00
Yohan Boniface
7de3ebd2d1
fix: fix event name in drop util ( #2261 )
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-11-15 18:45:43 +01:00
Yohan Boniface
8c6766157a
chore: add test for CSV latlng parsing with commas
2024-11-15 18:24:57 +01:00
Yohan Boniface
92ef4b25b4
fix: use our fork of csv2geojson to be able to parse lat/lon with commas
2024-11-15 18:10:08 +01:00
Yohan Boniface
4acf0db17f
fix: fix evenet name in drop util
2024-11-15 16:43:58 +01:00
7dadb83ff5
feat(sync): Let the clients set layers UUID
...
This make it possible to synchronize datalayers before their creation on
the server, allowing at the same time to solve issues related to them
not being saved (e.g. duplication of geometries)
We use the DataLayer._referenceVersion to track if a DataLayer has been
saved on the server.
After a save, the _referenceVersion is synched with other peers.
To pass the reference version from the server to the frontend, we have two
options:
- use a header
- populate the `options.version` field
In the case of a GET on a Datalayer, we could not use the `options` scenario
because:
- the value in the file is not up to date (it was the value the client has
before the save)
- the python cannot change it on the fly, as the file is served by nginx
So we decided to keep using a header. But on the map view, we load all
datalayers metadatas in the map options, so here we cannot use the header
scenario, so in this specific case we had to populate `options._referenceVersion`.
At the same time, we also changed:
- Umap.options.umap_id => Umap.id
- DataLayer.umap_id => Datalayer.id
- fixed the version number returned by DataLayer.version_metadata
2024-11-15 15:22:36 +01:00
Yohan Boniface
378e0f3ad3
chore: review with Alexis
2024-11-13 14:27:39 +01:00
Thomas Legay
4bd7bd7d48
Add logo for social_core.backends.keycloak.KeycloakOAuth2
2024-11-12 23:58:30 +01:00
Yohan Boniface
51e41b7bce
chore: remove unused imports from global.js
2024-11-12 15:28:05 +01:00
Yohan Boniface
b49f3d7633
chore: remove old umap.js file
2024-11-12 15:06:34 +01:00
Yohan Boniface
0dbac92853
chore: remove 'postsync' event
2024-11-12 14:50:08 +01:00
Yohan Boniface
6d56bbb5de
chore: refactore LeafletMap.setup/update
2024-11-12 14:36:59 +01:00
Yohan Boniface
e1a24b6180
chore: fix updaters to use umap instead of map and properties instead of options
2024-11-12 13:27:29 +01:00
Yohan Boniface
b0eb263d93
chore: remove use of L.
in umap.js
2024-11-12 11:38:38 +01:00
Yohan Boniface
491d0515cd
chore: fix help module not using umap module
2024-11-12 11:31:14 +01:00
Yohan Boniface
55f04a2f10
chore: remove DomEvent import from umap.js
2024-11-12 11:23:18 +01:00
Yohan Boniface
c952fed96a
chore: split umap.js in two modules
2024-11-12 10:17:12 +01:00
Yohan Boniface
36efa9c4cc
chore: use SAVEMANAGER as a module singleton
2024-10-30 17:14:35 +01:00
Yohan Boniface
488b5882e7
fixup: renaming
2024-10-30 09:43:31 +01:00
Yohan Boniface
7f65b1de57
chore: listen for later _trySave status
2024-10-30 09:42:06 +01:00
Yohan Boniface
ed232e59b8
chore: introduce SaveManager class
...
The last refactor of the save process (0fdb70ce66
)
has introduced a bug: the save flow was not more stopped when a layer fail to save.
This ends with a broken UI, as the map is not dirty anymore, so the save button
is not active anymore, while at least one layer still needs to be saved.
Save can fail in two scenarios:
- there is a conflict (status 412)
- the server is down or as an issue (eg. disk is full)
I tried a more modest scenario (listening for status in map.save and
recallign the map save after a conflict), but this ended with calling
map.save uselessly even more.
So I decided to try this refactor, which also totally remove the useless
map.save we were sending at each save until now.
2024-10-28 18:15:18 +01:00
Yohan Boniface
bcea419bfd
2.7.1
2024-10-25 15:44:52 +02:00
Yohan Boniface
b36c03a203
fix: prevent feature.edit to be called twice on polygon/line end edit
...
When finishing drawing a polygon/line, Leaflet.Editable will send
both `editable:drawing:end` and `editable:drawing:commit`. In normal
flow, we only need to listen to the later, and we only need to
listen for the former in the case of pressing escape while drawing.
2024-10-24 21:07:58 +02:00
Yohan Boniface
71b55e7759
fix: always unset editedFeature on editPanel close
...
And only this panel.
This was creating a weird bug, steps to reproduce:
- create a marker
- shift-click on the marker to edit the layer (so without explicitly
closing the panel)
- try to type the layer name: the panel would close
This is also because currently the schema and render() are too
dump, and when any `name` is changed then the `data` reflow is
called, while it should not when editing the datalayer name.
We want to:
- have more targeted schema
- have more specific reflow in render
But that's for other PRs!
2024-10-24 19:22:46 +02:00
Yohan Boniface
023f48ee94
chore: use shutil.move instead of Path.rename to move to purgatory ( #2236 )
...
Otherwise it will fail if src and dest are not on the same FS.
2024-10-24 19:18:21 +02:00
Yohan Boniface
bdf0bee156
2.7.0
2024-10-24 18:03:11 +02:00
Yohan Boniface
9fe96a98d1
i18n
2024-10-24 17:51:20 +02:00
Yohan Boniface
bda1984f44
chore: explicitely add geojson extension when downloading a layer ( #2228 )
...
This was added by the browser I think, but let's be explicit, just in
case.
cf
https://github.com/umap-project/umap/pull/2224#pullrequestreview-2382243375
2024-10-24 17:47:11 +02:00
Yohan Boniface
2dcd61a96d
Allow to run umap with asgi ( #2209 )
...
Follow up of #1701
cf #2174
2024-10-24 17:46:33 +02:00
Yohan Boniface
455ddd455d
fix: do not try to create legend for non loaded classified layer ( #2234 )
...
fix #2232
A classified layer needs to have compiled the data to known its
classes/categories.
This commit review the way we build the legend: instead of creating with
the whole caption panel, we just set a container and we populate it
later. This opens the door for live changing the legend when editing the
layer.
But we have to clarify that "reactive" pattern at some point, as we have
some concurrent pattern laying around: the `render()`, which coupled
with the schema and this is nice, but for now it's a bit rough (changing
the whole UI each time); the `propagate` way, which is more specific,
but not coupled to the schema; the `dataChanged`; and the `onDataLoaded`
now, which is a bit different, as it's about the data being loaded, not
changed/modified, but for the DOM it may at the end be the same. Well,
food for thoughts…
2024-10-24 17:39:12 +02:00
Yohan Boniface
200e12e0d9
chore: apply Biome hints
...
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
2024-10-24 12:39:22 +02:00
Yohan Boniface
3477be99b8
fix: do not try to create legend for non loaded classified layer
...
fix #2232
A classified layer needs to have compiled the data to known its
classes/categories.
This commit review the way we build the legend: instead of creating
with the whole caption panel, we just set a container and we populate
it later. This opens the door for live changing the legend when
editing the layer.
But we have to clarify that "reactive" pattern at some point, as we
have some concurrent pattern laying around: the `render()`, which
coupled with the schema and this is nice, but for now it's a bit rough
(changing the whole UI each time); the `propagate` way, which is
more specific, but not coupled to the schema; the `dataChanged`; and
the `onDataLoaded` now, which is a bit different, as it's about the
data being loaded, not changed/modified, but for the DOM it may at
the end be the same. Well, food for thoughts…
2024-10-23 18:56:26 +02:00
45f1221d00
Use fake timers on the HLC tests
2024-10-22 13:50:46 +02:00
8eae7990dd
Add a fieldInSchema
utility function.
...
Check that fields are present in the schema before calling render
2024-10-22 13:50:46 +02:00
4f0404149e
feat(sync): Display the number of connected peers in the interface.
2024-10-22 13:50:46 +02:00
Yohan Boniface
c6c255e216
chore: use shutil.move instead of Path.rename to move to purgatory
...
Otherwise it will fail if src and dest are not on the same FS.
2024-10-22 12:14:04 +02:00
Yohan Boniface
d2832be6d5
fix: always call propagate at end of save ( #2226 )
...
Otherwise the renderEditToolbar will reset name and all.
fix #2225
2024-10-21 16:40:01 +02:00
Yohan Boniface
e0e7e0961c
chore: explicitely add geojson extension when downloading a layer
...
This was added by the browser I think, but let's be explicit, just
in case.
2024-10-21 16:38:08 +02:00
Yohan Boniface
a2af7171d9
chore: call render at end of save
...
All changes at some point should call render, and render should
become more subtle to update only the needed part according to
the actual changes
2024-10-21 16:25:07 +02:00
Yohan Boniface
132be80a48
chore: remove postsync in captionBar and let map.propagate do its job
2024-10-21 16:05:26 +02:00
Yohan Boniface
ae79daec7e
fix: always call propagate at end of save
...
Otherwise the renderEditToolbar will reset name and all.
fix #2225
2024-10-21 15:41:30 +02:00
Yohan Boniface
e100809d24
fix: use correct icon for layer download advanced action ( #2224 )
...
Replace #2221
2024-10-21 12:15:05 +02:00
Yohan Boniface
c74971bc0e
chore: move pydantic and websocket in sync dependencies target
2024-10-21 11:50:10 +02:00
Yohan Boniface
9520a99d11
feat: add importer for French cadastre
2024-10-21 11:28:15 +02:00
Yohan Boniface
a1a4904f02
fix: use correct icon for layer download advanced action
2024-10-21 10:41:41 +02:00
Yohan Boniface
e0da3163ec
fix: fix dispeared icons from panel titles
2024-10-18 12:08:28 +02:00
Yohan Boniface
0b23f1acd1
2.7.0b3
2024-10-16 19:55:32 +02:00
Yohan Boniface
0b6c66a841
i18n
2024-10-16 19:51:20 +02:00
Yohan Boniface
ab703e081b
feat: add a global toolbox in browser ( #2160 )
...
fix #2097
cf #1500

This is an alternative proposal for #2097 :
- adding the button near the "Filter" toggle was a bit ugly, CSS/HTML
talking, because this "Filters" box is a details/summary
- I thought that other needs could live in the same place: a link to
download the filtered/visible data, and a button to show the map data
extent
The "toggle all" button works this way:
- if one or more layers are shown, it will hide those layers
- otherwise it will show all layers
I've preferred not to change the button icon according to map state,
because I didn't find a reliable way to do so, thus I'm afraid to have
inconsistency, but I can't try harder if needed.
Related: I'm thinking of adding a "Download" button for each layers, as
it's a request that comes quite often.
@Aurelie-Jallut could you have a look ? :)
2024-10-16 19:45:56 +02:00
Yohan Boniface
47364904bd
chore: simplify contextmenu items ( #2216 )
...
Do not show generic map items when clicking on a feature.
cf #2109
Click on map:

Click on feature:

2024-10-16 19:25:06 +02:00
Yohan Boniface
f8e53e7c48
feat: only add visible markers (and tooltips) to DOM ( #2204 )
2024-10-16 19:20:05 +02:00
Yohan Boniface
d8383dafba
fix: do not show browser counter when layer is empty or not loaded
...
fix #2215
2024-10-16 09:48:03 +02:00
Yohan Boniface
61c3be59a8
chore: use colorbrewer as ES module
2024-10-16 09:01:31 +02:00
Yohan Boniface
8daf4cd652
chore: bump and pin front facing JS deps
2024-10-15 11:28:39 +02:00
Yohan Boniface
966c74b85b
chore: simplify contextmenu items
...
Do not show generic map items when clicking on a feature.
cf #2109
2024-10-15 10:32:07 +02:00
Yohan Boniface
b3e88b6096
chore: make daphne/asgi optional for now
2024-10-14 12:10:13 +02:00
aa246aaf05
WIP: Add an async route for WS
2024-10-14 12:04:46 +02:00
71943c0ab3
chore: use asgi rather than wsgi
...
By relying on Django Channels and Daphne.
This requires a change in how the application is deployed to take that into account.
2024-10-14 12:04:44 +02:00
Yohan Boniface
a2b8145cde
fix: make sure maps of demo instances of uMap are no indexed ( #2203 )
...
fix #2201
2024-10-10 21:00:27 +02:00
Yohan Boniface
ca3451ce14
chore: do not try to remove an icon not in DOM
...
This occurs when using cluster, which already add/remove markers
2024-10-10 19:50:40 +02:00
Yohan Boniface
c6da1f91cf
feat: only add visible markers (and tooltips) to DOM
2024-10-10 19:50:40 +02:00
Yohan Boniface
8635ebf330
chore: use pytest-rerunfailed ( #2205 )
...
I first thought about marking test as flaky one by one, but my
impression is mainly all playwright test can become flacky, and we
actually only see some as their appear in the list.
2024-10-10 19:48:54 +02:00
Yohan Boniface
7aa445f01b
Update umap/templates/umap/map_detail.html
...
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2024-10-10 11:00:46 +02:00
Yohan Boniface
60c2b07f9b
fix: honour carriage returns in permanent credits
...
fix #2197
2024-10-10 10:33:12 +02:00
Yohan Boniface
1be7c8d3a9
chore: use pytest-rerunfailed
2024-10-10 10:31:25 +02:00
Yohan Boniface
97d2ebae34
fix: make sure maps of demo instances of uMap are no indexed
...
fix #2201
2024-10-09 10:15:54 +02:00
Yohan Boniface
b7ee50980f
chore: deactivate contextmenu and shortcuts in map preview ( #2199 )
...
Contextmenu and keyboard shortcuts open controls, which are not fully
initiated when in mode `noControl`, which is the case for preview.
2024-10-07 22:28:30 +02:00
David Larlet
76ebe1c0ea
tests: use at.least
to compare dates on the hlc tests. ( #2196 )
...
Should fix [this
error](https://github.com/umap-project/umap/actions/runs/11165503827/job/31037336947?pr=2188 )
2024-10-07 08:20:58 -04:00
Yohan Boniface
e7ed14f216
chore: deactivate contextmenu and shortcuts in map preview
...
Contextmenu and keyboard shortcuts open controls, which are not
fully initiated when in mode `noControl`, which is the case for
preview.
2024-10-07 12:27:33 +02:00
Yohan Boniface
4b66e0fa83
chore: add border top to browser toolbox
2024-10-07 11:57:37 +02:00
Yohan Boniface
36afe0ead5
chore: open dropdown on download click in browser
...
Instead of switching context and opening the share panel.
2024-10-07 11:46:01 +02:00
Yohan Boniface
2923e1ca51
feat: add a global toolbox in browser
...
fix #2097
cf #1500
2024-10-07 10:20:17 +02:00
Yohan Boniface
2ca6ffd5ca
2.7.0b2
2024-10-06 10:20:18 +02:00
Yohan Boniface
581ec242b8
chore: always insert contextmenu on map container parent
...
offsetParent will return whatever positionned parent element, so
when clicking on a marker it will be the marker container.
And we cannot add the contextmenu inside the map container, as it
the focusout element will be sent before the click action happen
on any item of the contextmenu.
2024-10-06 09:46:23 +02:00
37ffea97a9
FIXUP: adapt the tests to a slow CI
2024-10-05 21:16:45 +02:00
Yohan Boniface
3c0d2b79ef
fix: allow to call contextmenu with given positions
2024-10-05 11:26:05 +02:00
Yohan Boniface
c844e1c03d
chore: use position: fixed for contextmenu
2024-10-05 11:22:02 +02:00
Yohan Boniface
70f06e7852
fix: insert contextmenu in the offsetParent
...
Otherwise when parent is a dialog, if the the contextemenu is in
the body, it will be below the dialog forever
2024-10-05 11:08:50 +02:00
Yohan Boniface
89c13a3b7e
fix: window.offsetHeight does not means anything
2024-10-05 11:08:36 +02:00
Yohan Boniface
42e7fb8dae
chore: pass event to ContextMenu.open
2024-10-05 10:41:33 +02:00
Yohan Boniface
c4b80afb15
fix: simpler way to deal with positionning contextmenu
...
Use pageX/Y from the begginning instead of recomputing it later.
2024-10-05 10:38:51 +02:00
Yohan Boniface
cba0af96f6
fix: fix contextmenu positionning when map is not full screen
2024-10-05 10:02:41 +02:00
Yohan Boniface
c90618a248
fix: do not show separator in contextmenu when nothing before
2024-10-05 09:09:30 +02:00
979d34f3fa
tests: use at.least
to compare dates on the hlc tests.
2024-10-04 22:46:33 +02:00
Yohan Boniface
16b759973b
2.7.0b1
2024-10-04 19:31:57 +02:00
Yohan Boniface
8788f97791
2.7.0b0
2024-10-04 19:18:07 +02:00
Yohan Boniface
a8d04a6abb
i18n
2024-10-04 18:38:00 +02:00
Yohan Boniface
f9cf923684
feat: add a profile drop-down menu ( #2194 )
...
fix #2115
2024-10-04 18:26:49 +02:00
Yohan Boniface
8d59220d05
fix: make sure anonymous is owner at create ( #2189 )
...
The tricky thing is that the Map.is_owner() method check for cookies on
the request, but at create this cookie is not set yet on the request, so
we have to deal with an exception here.
fix #2176
2024-10-04 17:55:29 +02:00
Yohan Boniface
21be2e4fd0
fix: hide "my profile" from dropdown menu if ALLOW_EDIT_PROFILE=False
2024-10-04 17:54:13 +02:00
Yohan Boniface
6876bb1ba5
fix: listen just once for escape key in contextmenu
2024-10-04 17:44:50 +02:00
Yohan Boniface
1029c2655e
wip: add a profile drop-down menu
...
fix #2113
2024-10-04 17:44:50 +02:00
Yohan Boniface
de93446af2
clean: remove zoom in and out from contextmenu ( #2195 )
...
Let's make it smaller (unless proven otherwise!).
2024-10-04 17:43:23 +02:00
Yohan Boniface
03ae31c18b
chore: remove map.dirty_datalayers
...
Let's try to make it simpler.
map.datalayers stores all datalayers
map.datalayers_index the non deleted ones sorted
2024-10-04 17:35:35 +02:00
Yohan Boniface
a35b37f423
chore: use map getter instead of getMap in permissions
2024-10-04 17:35:35 +02:00
Yohan Boniface
0d7c6e451d
chore: new strategy to update map name when editing it
...
Also propagate share_status (this may be moved to permissions)
2024-10-04 17:35:33 +02:00
Yohan Boniface
0fdb70ce66
chore: review save strategy
...
All is now orchestrated from a single method, instead of chaining
calls.
2024-10-04 17:34:59 +02:00
Yohan Boniface
73c83cfa86
chore: always return user infos on map save
2024-10-04 17:34:59 +02:00
Yohan Boniface
13a7a2257d
fix: do not fail in autocomplete if on_unselect is undefined
2024-10-04 17:34:59 +02:00
Yohan Boniface
ff5195a787
fix: make sure anonymous is owner at create
...
The tricky thing is that the Map.is_owner() method check for cookies
on the request, but at create this cookie is not set yet on the
request, so we have to deal with an exception here.
fix #2176
2024-10-04 17:34:59 +02:00
Yohan Boniface
ebd3896e91
chore: replace native confirm by our styled ones
2024-10-04 17:34:20 +02:00
Yohan Boniface
9b29b705da
clean: remove zoom in and out from contextmenu
...
Let's make it smaller (unless proven otherwise!).
2024-10-04 17:32:39 +02:00
Yohan Boniface
4940f6c329
test: fix playwright selector
2024-10-04 17:31:05 +02:00
Yohan Boniface
c8ffe4273f
fix: allow to draw new proprotional circles and to drag them ( #2172 )
...
The main issue was because we overrided the `getLatLngs` function in our
PointMixin class, so I changed the way feature get the latlngs from the
UI classes. Plus getting CircleMarker to inherit more from Marker,
through PointMixin.
fix #2171
2024-10-04 16:43:49 +02:00
Yohan Boniface
4b4546991a
chore: display user maps in admin and add in csv export ( #2169 )
...
maps are owned maps + maps as editor
cf https://github.com/umap-project/umap/pull/2131#discussion_r1772775039
2024-10-04 16:42:53 +02:00
Yohan Boniface
5d5be52337
feat: delete datalayer's files on delete ( #2158 )
...
Until now, uMap was not deleting files on delete, which can increase
file storage a lot after some time.
The files are not deleted, but moved to a "purgatory" folder, from where
they can be deleted after some time.
2024-10-04 16:41:11 +02:00
Yohan Boniface
91800d104d
fix: polygon with interactive=false was still interactive ( #2151 )
...
This bug has been introduced when spliting features, as we now only set
the Leaflet Polygon options with setStyle, will the `interactive` option
is only used in the init by Leaflet.
See https://github.com/Leaflet/Leaflet/pull/9475
2024-10-04 16:36:21 +02:00
Yohan Boniface
d95f06abab
chore: use our own contextmenu ( #2109 )
...
Let's start from here to clean the contextmenu items.
Current status:
### Some entries are generic, and always present:
In preview mode:

In edit mode:

### Some entries are specific to a clicked feature
In preview mode (Marker):

In edit mode (Marker):

In preview mode (Polygon):

In edit mode (Polygon):

In preview mode (Line):

In edit mode (Line):

@Aurelie-Jallut Do you want to make suggestion on what to show or not in
this menu, depending on the context (feature or not, preview or edit
mode) ?
2024-10-04 16:34:06 +02:00
Yohan Boniface
f1619579a4
feat: allow to search by code INSEE in communes importer
2024-10-03 18:03:43 +02:00
Yohan Boniface
c2833987b7
fix: remoteData helpEntries were not on the right format
...
Should be now an array (not guessing anymore).
2024-10-01 08:55:58 +02:00
0a1d98b146
ci: Skip intermittent-failing tests when on the CI.
...
A few tests have been failing randomly, leading to developers not having
a lot of trust in the CI, and having to retrigger the runs.
Here is the list of tests:
- `test_should_honor_toZoom`
- `test_default_view_locate`
- `test_umap_import_from_textarea`
This skips these tests when running in the CI, by looking at the `CI`
environment variable, set by Github Actions [0]
[0] https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables#default-environment-variables
2024-09-27 18:26:47 +02:00