Commit graph

4265 commits

Author SHA1 Message Date
Yohan Boniface
aea422a247
feat: add title attribute to layers in browser (#2489)
Some checks are pending
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
Usefull when the layer title is truncated because too long.


![image](https://github.com/user-attachments/assets/267a4639-e929-4be9-8934-373afb24b6fe)


![image](https://github.com/user-attachments/assets/0c8953df-77a5-4b7f-93b3-92bf9d7894ff)
2025-02-10 17:17:55 +01:00
Yohan Boniface
46c319e5cf
chore: smaller star button and invert author and dates (#2488)
Also make created/modified lower case on caption.


![image](https://github.com/user-attachments/assets/72117435-d4ba-439d-a9c6-862bdee439a9)

cf #2424
cf #2442

cc @Aurelie-Jallut
2025-02-10 17:16:04 +01:00
Yohan Boniface
f105336d48
chore: read datalayer metadata from file if missing in DB (#2494)
When we introduced the DataLayer.settings property, we did not run a
migration for existing datalayers (because there are millions in the
French server).
Now that we simplified the `DataLayer.isLoaded()` logic in the client,
we want to be sure that created DataLayer on the client have full
metadata.
2025-02-10 16:59:49 +01:00
Yohan Boniface
9b01a4b77a chore: read datalayer metadata from file if missing in DB
When we introduced the DataLayer.settings property, we did not run
a migration for existing datalayers (because there are millions in the
French server).
Now that we simplified the `DataLayer.isLoaded()` logic in the client,
we want to be sure that created DataLayer on the client have full
metadata.

Co-authored-by: David Larlet <david@larlet.fr>
2025-02-10 16:56:15 +01:00
Yohan Boniface
e827e77bb9
chore: refactor layer.isLoaded() (#2492) 2025-02-10 16:39:15 +01:00
Yohan Boniface
a8e18c167c chore: no need to reset datalayer._needsFetch after a save
It is reset only after loading the layer data.

Co-authored-by: David Larlet <david@larlet.fr>
2025-02-10 16:30:00 +01:00
Yohan Boniface
175e27a535 chore: remove DataLayer._dataloaded in favor of isLoaded()
At the end, we only need two states: has this datalayer loaded the
data it should load ? yes / no.
Whether it local or remote data should not be a matter.
2025-02-10 15:44:41 +01:00
Yohan Boniface
ba0582deb1 chore: refactor layer.isLoaded() 2025-02-10 13:13:56 +01:00
Yohan Boniface
9fe744573c feat: add title attribute to layers in browser
Usefull when the layer title is truncated because too long.
2025-02-10 09:41:16 +01:00
Yohan Boniface
64068af393 fix: do not save "null" instead of null for showLabel 2025-02-07 21:56:02 +01:00
Yohan Boniface
6793a6bdc7 fix: do not modify schema while iterating on it 2025-02-07 21:50:11 +01:00
Yohan Boniface
c7681c0304 chore: smaller star button and invert author and dates
Also make created/modified lower case on caption.

cf #2424
cf #2442
2025-02-07 19:00:30 +01:00
Yohan Boniface
eca7ad4772 fixup: prevent to reload a datalayer after other peer has saved it
The scenario to reproduce is:
- peer A creates a datalayer
- peer B add a marker on that datalayer
- peer B saves the datalayer

Before this fix, after the save, peer A would get a new _referenceVersion
for this datalayer, and the render method would make a hide/show,
which would refetch the data from the server, duplicating it.
So forcing the _loaded to be true in this situation prevent this.

We may want to rework the "_loaded" pattern, maybe with the server
returning in a datalayer metadata the length of the data it get for
this given datalayer, so the client knows if it is worth getting
data for a layer when itself (the client) does not have any.

Co-authored-by: David Larlet <david@larlet.fr>
2025-02-07 17:58:27 +01:00
Yohan Boniface
a172c4abea fixup: do not try to sync saved state when not in sync mode
Co-authored-by: David Larlet <david@larlet.fr>
2025-02-07 17:53:48 +01:00
Yohan Boniface
b8db07a4ce chore: sync save state
When a peer save the map, other peers in dirty state should not need
to save the map anymore.

That implementation uses the lastKnownHLC as a reference, but it changes
all dirty states at once. Another impementation could be to have each
object sync its dirty state, but in this case we do not have a HLC per
object as reference, and it also creates more messages.

Co-authored-by: David Larlet <david@larlet.fr>
2025-02-07 16:47:45 +01:00
Yohan Boniface
815ff046ff chore: mention nginx mapping in asgi documentation
Some checks failed
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
Co-authored-by: David Larlet <david@larlet.fr>
2025-02-07 16:25:34 +01:00
Yohan Boniface
76c13a61a6 fixup: do not show empty helpText for editors and owner fields 2025-02-07 15:35:49 +01:00
Yohan Boniface
ad51f674ef
fix: do not import empty features (#2485) 2025-02-07 15:26:42 +01:00
Yohan Boniface
8949d6fa71
fix: do not sync twice a point move (#2486) 2025-02-07 15:26:25 +01:00
Yohan Boniface
009b32c818 fix: do not sync twice a point move 2025-02-07 10:08:58 +01:00
Yohan Boniface
c5ee9fc283
chore: use editable-edited event to sync changes (#2478)
Some checks are pending
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
This is more unified between markers and paths, and it allows paths to
be synced as soon as they have been drawn (instead of when closing the
edit panel, which created a race condition when changing its properties
that were then synced to other while the feature itself was not).
2025-02-07 09:12:45 +01:00
Yohan Boniface
9af74b0a4e fix: do not import empty features 2025-02-07 09:11:16 +01:00
David Larlet
fb03c6a39e
feat: Expose teams in users’ CSV export (#2484)
Some checks are pending
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
2025-02-06 11:50:52 -05:00
David Larlet
2331f4103e
chore: add very minimal documentation for deploying uMap with ASGI (#2480)
This is just about ASGI, not the websockets and the sync itself.

We may merge it, or just keep it and amend it until we have the sync
official.
2025-02-06 11:29:00 -05:00
Yohan Boniface
a1372b5f4d
chore: move DrawToolbar and SettingsToolbar to bar.js module (#2482)
This also:
- change the "set center and zoom" to be a panel instead of a direct
action (including the "defaultView" setting
- refactor the "get started dialog"

This is a first step to remove our dependency to the unmaintained
Leaflet.Toolbar plugin.


![image](https://github.com/user-attachments/assets/d9a76df1-0392-45c8-9a2f-f1a2995754d1)


![image](https://github.com/user-attachments/assets/7f40e2f5-c816-4086-9a16-b792621948de)


![image](https://github.com/user-attachments/assets/a02fd480-c50b-4d2d-9919-ca483c1c8def)

The mockup on figma glues the edit toolbar to the edit panel, but I
didn't not implement this as I don't know how to make it work in
portrait/mobile view. This step is mainly a code refactor.
2025-02-06 17:28:43 +01:00
David Larlet
0cba3ab158
fix: Do not error when escape during marker creation (#2483) 2025-02-06 11:28:26 -05:00
David Larlet
17b8d73978
feat: Expose teams in users’ CSV export
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-02-06 11:26:47 -05:00
David Larlet
519302b53d
fix: Do not error when escape during marker creation
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-02-06 11:14:58 -05:00
David Larlet
cbe50a0112
fixup: back to original dark grey
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-02-06 11:02:38 -05:00
David Larlet
b214f4109c
fixup: restore help contents and fix button icon
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-02-06 10:28:05 -05:00
David Larlet
e8e06da149
fix: consistent border radius for edit bar
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-02-06 10:05:55 -05:00
David Larlet
0451b4a882
chore: highlight bar buttons according to open panel
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-02-06 10:02:32 -05:00
Yohan Boniface
99db1c82f4 chore: move DrawToolbar and SettingsToolbar to bar.js module
This also:
- change the "set center and zoom" to be a panel instead of
  a direct action (including the "defaultView" setting
- refactor the "get started dialog"

This is a first step to remove our dependency to the unmaintained
Leaflet.Toolbar plugin.
2025-02-06 12:26:58 +01:00
Yohan Boniface
fe011d89e2
chore: use logging.debug instead of print for sync debugging (#2481)
Some checks are pending
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
2025-02-05 19:59:59 +01:00
Yohan Boniface
3e4601c7a3 chore: use logging.debug instead of print for sync debugging 2025-02-05 09:57:58 +01:00
Yohan Boniface
e2ed239d23 chore: add very minimal documentation for deploying uMap with ASGI 2025-02-04 18:42:38 +01:00
Yohan Boniface
b35740b029
fix: error after deleting a path that was previously moved (#2479)
Some checks are pending
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
When moving a path, this will put a once time listener on "moveend". If
we delete this feature, and move the map, we should not execute the
event callback.

A better fix would be to cancel the event listener on delete, but that
is much more work given how we deal with Leaflet events right now.
2025-02-04 18:00:09 +01:00
Yohan Boniface
c985cb3de5 fix: error after deleting a path that was previously moved
When moving a path, this will put a once time listener on "moveend".
If we delete this feature, and move the map, we should not execute the
event callback.

A better fix would be to cancel the event listener on delete, but that
is much more work given how we deal with Leaflet events right now.
2025-02-04 17:40:49 +01:00
Yohan Boniface
4a82f587fa
chore: bump isort from 5.13.2 to 6.0.0 (#2472) 2025-02-04 16:55:57 +01:00
dependabot[bot]
ed9ae0590b
chore: bump isort from 5.13.2 to 6.0.0
Bumps [isort](https://github.com/pycqa/isort) from 5.13.2 to 6.0.0.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.13.2...6.0.0)

---
updated-dependencies:
- dependency-name: isort
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-04 15:38:50 +00:00
Yohan Boniface
a48513fcd7
chore: make redis python dep optional (#2470) 2025-02-04 16:38:24 +01:00
Yohan Boniface
4da5d2682a
chore: bump pymdown-extensions from 10.14.1 to 10.14.3 (#2474) 2025-02-04 16:37:45 +01:00
Yohan Boniface
79352d8a82 chore: use editable-edited event to sync changes
This is more unified between markers and paths, and it allows paths to
be synced as soon as they have been drawn (instead of when closing the
edit panel, which created a race condition when changing its properties
that were then synced to other while the feature itself was not).
2025-02-04 16:36:14 +01:00
dependabot[bot]
22293c8a44
chore: bump pymdown-extensions from 10.14.1 to 10.14.3
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.14.1 to 10.14.3.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.14.1...10.14.3)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-04 15:26:06 +00:00
Yohan Boniface
0dee5b1a3a
chore: bump mkdocs-static-i18n from 1.2.3 to 1.3.0 (#2475) 2025-02-04 16:24:44 +01:00
Yohan Boniface
97dadf0101
chore: bump pytest-playwright from 0.6.2 to 0.7.0 (#2473) 2025-02-04 16:24:07 +01:00
Yohan Boniface
22ca072364
chore: bump factory-boy from 3.3.1 to 3.3.3 (#2476) 2025-02-04 16:23:11 +01:00
Yohan Boniface
17be255ed6
fix: center "Plus" button (#2477)
Before:


![image](https://github.com/user-attachments/assets/916c6fc1-188c-442b-b364-772191531eed)

After:


![image](https://github.com/user-attachments/assets/8b07b624-b1d2-40fe-b940-20ec51cfa050)
2025-02-04 16:02:20 +01:00
Yohan Boniface
9606bd864b fix: center "Plus" button 2025-02-04 11:45:28 +01:00
David Larlet
57fa820875
docs-users: add an article in French
Some checks are pending
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
2025-02-03 13:56:24 -05:00