Commit graph

4083 commits

Author SHA1 Message Date
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
5ab11428a5
fix: correctly parse http link including another http link in the path (#2460)
Some checks are pending
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
fix #2457

Thoughts @jschleic ?
2025-01-30 09:12:05 +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
3b9a0c0951
chore: bump ruff from 0.9.2 to 0.9.3 (#2451)
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
2025-01-27 19:05:20 +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
cb5e13b218
chore: bump django-environ from 0.11.2 to 0.12.0 (#2454) 2025-01-27 18:41:12 +01:00
Yohan Boniface
c42a2b7129
chore: bump psycopg from 3.2.3 to 3.2.4 (#2453) 2025-01-27 18:40:55 +01:00
Yohan Boniface
2482111d24
chore: bump pydantic from 2.10.5 to 2.10.6 (#2450) 2025-01-27 18:40:31 +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
b6b47cc0d0
chore: bump pymdown-extensions from 10.14 to 10.14.1 (#2452) 2025-01-27 18:39:50 +01:00
dependabot[bot]
cb4ea1b1d2
chore: bump django-environ from 0.11.2 to 0.12.0
Bumps [django-environ](https://github.com/joke2k/django-environ) from 0.11.2 to 0.12.0.
- [Release notes](https://github.com/joke2k/django-environ/releases)
- [Changelog](https://github.com/joke2k/django-environ/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/joke2k/django-environ/compare/v0.11.2...v0.12.0)

---
updated-dependencies:
- dependency-name: django-environ
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 17:32:18 +00:00
dependabot[bot]
99fff916d5
chore: bump psycopg from 3.2.3 to 3.2.4
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.2.3 to 3.2.4.
- [Changelog](https://github.com/psycopg/psycopg/blob/master/docs/news.rst)
- [Commits](https://github.com/psycopg/psycopg/compare/3.2.3...3.2.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 17:31:06 +00:00
dependabot[bot]
151beb6d4c
chore: bump pymdown-extensions from 10.14 to 10.14.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.14 to 10.14.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.14...10.14.1)

---
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-01-27 17:30:59 +00:00
dependabot[bot]
fe40effaaa
chore: bump ruff from 0.9.2 to 0.9.3
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.2 to 0.9.3.
- [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.2...0.9.3)

---
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-27 17:30:53 +00:00
dependabot[bot]
0e1fa6965d
chore: bump pydantic from 2.10.5 to 2.10.6
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.10.5 to 2.10.6.
- [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.5...v2.10.6)

---
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-27 17:30:34 +00: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


![image](https://github.com/user-attachments/assets/45fda270-035b-4ec2-9ac1-3e2f2798663b)
![Screenshot From 2025-01-23
10-42-23](https://github.com/user-attachments/assets/ef323c82-bb12-41ef-97e6-b21dfeef01ba)
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)
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
## 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
David Larlet
088f682247
fix(helm): reference secret-env by fullname instead release-name (#2406)
Related to helm Charts:
Currently the reference to secret is done by
```          
envFrom:
- secretRef:
  name: {{ .Release.Name }}-env
```

[Link](https://github.com/umap-project/umap/blob/master/charts/umap/templates/deployment.yaml#L67C1-L69C44)

but secret object is created like this:
```
metadata:
  name: {{ include "umap.fullname" . }}-env
```

[Link](https://github.com/umap-project/umap/blob/master/charts/umap/templates/secret-env.yaml#L4C3-L4C4)

Works as long as no Sub-Chart feature is used, when individual
configuration is stored within a git repo.
Then the subchart name is added to fullname. (And I think if custom
fullName is set)

To be safe, `{{ include "umap.fullname" . }}` is correct. 

Should be no breaking change, when it is working at the moment. (Because
then both return same value)
It is only a breaking change, if it is not working at the moment.
2025-01-27 09:56:29 -05: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
a2936d74de
Fix categorized layers colors palette not updating (#2447)
Some checks are pending
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 #2446 

A bunch of small commits, but real fixes are:
29d70552dd
and
d5efe6b8e2
and
8f2bbc6765
2025-01-26 22:21:39 +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
1d47bfce0a chore: add redis port in Github workflow 2025-01-24 10:13:00 +01:00
Yohan Boniface
ea2bdba270
fix: display a more usefull message when error in remote data (#2443)
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
fix #2379

![Screenshot From 2025-01-23
11-54-29](https://github.com/user-attachments/assets/b2000003-b9c3-404f-be91-0a9b13f512c2)
2025-01-24 09:09:14 +01:00
Yohan Boniface
22846acb99
fix: fix circle icon no longer hihlighted (#2440)
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
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