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
b62085b7aa
chore: add REDIS_HOST and REDIS_PORT env vars in CI
2025-01-23 18:02:28 +01:00
Yohan Boniface
222213ec87
fix(sync): add python redis package
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-23 17:26:39 +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
8a207afaea
fix: do not consume ctrl-Z in textarea or input ( #2441 )
...
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 #2422
2025-01-22 10:40:26 +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
e7388f6cb0
chore: bump pymdown-extensions from 10.13 to 10.14 ( #2435 )
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-01-21 18:02:24 +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
dependabot[bot]
bb7cc86538
chore: bump pymdown-extensions from 10.13 to 10.14
...
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions ) from 10.13 to 10.14.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases )
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.13...10.14 )
---
updated-dependencies:
- dependency-name: pymdown-extensions
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 09:53:57 +00:00
Yohan Boniface
30690bcb35
chore: bump mkdocs-material from 9.5.49 to 9.5.50 ( #2433 )
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-01-21 10:52:54 +01:00
dependabot[bot]
f7c9c469d1
chore: bump mkdocs-material from 9.5.49 to 9.5.50
...
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material ) from 9.5.49 to 9.5.50.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases )
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG )
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.49...9.5.50 )
---
updated-dependencies:
- dependency-name: mkdocs-material
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 21:33:09 +00:00
Yohan Boniface
3c38a5e55e
chore: bump moto[s3] from 5.0.25 to 5.0.27 ( #2436 )
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-01-20 22:32:28 +01:00
Yohan Boniface
4430bddcc9
chore: bump ruff from 0.9.1 to 0.9.2 ( #2434 )
2025-01-20 22:32:06 +01:00
dependabot[bot]
9ba5dda507
chore: bump ruff from 0.9.1 to 0.9.2
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.9.1 to 0.9.2.
- [Release notes](https://github.com/astral-sh/ruff/releases )
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md )
- [Commits](https://github.com/astral-sh/ruff/compare/0.9.1...0.9.2 )
---
updated-dependencies:
- dependency-name: ruff
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 20:36:06 +00:00
dependabot[bot]
b15e333f6c
chore: bump moto[s3] from 5.0.25 to 5.0.27
...
Bumps [moto[s3]](https://github.com/getmoto/moto ) from 5.0.25 to 5.0.27.
- [Release notes](https://github.com/getmoto/moto/releases )
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md )
- [Commits](https://github.com/getmoto/moto/compare/5.0.25...5.0.27 )
---
updated-dependencies:
- dependency-name: moto[s3]
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 20:35:47 +00:00
Yohan Boniface
4ce8f6515d
fix: test failing due to unstable FS ordering between OS ( #2438 )
2025-01-20 21:34:28 +01:00
Yohan Boniface
dc5a3a6b62
fix: test failing due to unstable FS ordering between OS
2025-01-20 21:12:06 +01:00
David Larlet
2ff2ee29ed
chore: bump pillow from 11.0.0 to 11.1.0 ( #2417 )
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
2025-01-16 10:01:25 -05:00
David Larlet
02afc783cf
chore: bump django from 5.1.4 to 5.1.5 ( #2432 )
2025-01-16 10:00:56 -05:00
dependabot[bot]
f3fc24addf
chore: bump django from 5.1.4 to 5.1.5
...
Bumps [django](https://github.com/django/django ) from 5.1.4 to 5.1.5.
- [Commits](https://github.com/django/django/compare/5.1.4...5.1.5 )
---
updated-dependencies:
- dependency-name: django
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-16 14:52:18 +00:00
David Larlet
2beeda3c2f
chore: bump pydantic from 2.10.4 to 2.10.5 ( #2427 )
2025-01-16 09:51:48 -05:00
David Larlet
ac6e9a1021
chore: bump ruff from 0.8.4 to 0.9.1 ( #2428 )
2025-01-16 09:51:22 -05:00
dependabot[bot]
2428b0fd47
chore: bump ruff from 0.8.4 to 0.9.1
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.8.4 to 0.9.1.
- [Release notes](https://github.com/astral-sh/ruff/releases )
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md )
- [Commits](https://github.com/astral-sh/ruff/compare/0.8.4...0.9.1 )
---
updated-dependencies:
- dependency-name: ruff
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 17:24:40 +00:00
dependabot[bot]
20a1cf0c55
chore: bump pydantic from 2.10.4 to 2.10.5
...
Bumps [pydantic](https://github.com/pydantic/pydantic ) from 2.10.4 to 2.10.5.
- [Release notes](https://github.com/pydantic/pydantic/releases )
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md )
- [Commits](https://github.com/pydantic/pydantic/compare/v2.10.4...v2.10.5 )
---
updated-dependencies:
- dependency-name: pydantic
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 17:24:27 +00: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