Commit graph

165 commits

Author SHA1 Message Date
Yohan Boniface
cafd651560 feat: associate icons to tags
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 16:50:05 +01:00
Yohan Boniface
2a52017f76 feat: add Map.tags and allow to edit from client
cf #2283
2025-03-28 16:50:05 +01:00
Yohan Boniface
284ca8fd9c chore: be more persuasive in deprecating twitter login backend
- always redirect user from map to their profile page when they
  used a deprecated backend to log in
- change the Twitter image to make clear it is to be removed

Co-authored-by: David Larlet <david@larlet.fr>
2025-03-03 18:24:23 +01:00
David Larlet
ea58f93940
a11y: update URLs and (underlined) styles for help 2025-03-03 09:10:37 -05:00
Yohan Boniface
5ae83a571b
feat: add DEPRECATED_AUTHENTICATION_PROVIDERS setting (#2461)
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
![image](https://github.com/user-attachments/assets/00a55dfa-2e41-40bf-a6aa-bf70903645e4)
2025-01-30 17:15:53 +01: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
Yohan Boniface
ee1a87cdeb feat: add DEPRECATED_AUTHENTICATION_PROVIDERS setting 2025-01-30 11:04:02 +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
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
8b65674e0a chore: make S3 dependencies optional 2024-12-11 19:16:17 +01:00
David Larlet
14e74d15c1 chore: always gzip geojson in 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
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
78d6699a81 feat: allow to configure the default label keys per instance
fix #2289
2024-12-02 12:58:19 +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
b3e88b6096 chore: make daphne/asgi optional for now 2024-10-14 12:10:13 +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
49eb121c68 feat: delete datalayer's files on delete
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-09-23 09:56:20 +02:00
David Larlet
d159fdc2cb
feat: add a setting to prevent users from editing their profile
In some situations, the profile comes from the OAuth provider and shouldn’t be modified by users.
2024-09-12 14:23:50 -04:00
Yohan Boniface
9bde88a513 fix: register fa-ir in LANG_INFO
fix #2086
2024-09-04 11:31:56 +02:00
Yohan Boniface
a72691e390 feat: display contact infos in the footer
This adds a new settings: UMAP_HOST_INFOS

Also, renames UMAP_FEEDBACK_LINK in UMAP_HELP_URL.

cf #2004
2024-08-29 11:41:11 +02:00
Yohan Boniface
3bdd5bedf1 fix: catch login_required from map page and add a way to login 2024-07-30 14:41:10 +02:00
Yohan Boniface
ca18c5b7df chore: move alert.html inside templates and update translations
When alert.html was in static, Django was creating a new translation
file, while we want it to just add those strings in the backend
po file.
2024-06-14 20:41:53 +02:00
Yohan Boniface
d928195a5b wip: rename and document UMAP_IMPORTERS 2024-06-14 18:40:05 +02:00
Yohan Boniface
a70307ea29 wip: rename presets to datasets 2024-06-14 18:40:05 +02:00
Yohan Boniface
f5eea1fe3f wip(naming): replace "plugin" by "importer"
We are not ready yet to talk about plugins
2024-06-14 18:38:30 +02:00
Yohan Boniface
93a189497b wip: control plugins from settings 2024-06-14 18:38:29 +02:00
David Larlet
5c2528900e
chore: Use web components to display alerts + a11y roles 2024-06-12 18:03:04 -04:00
940ae77602 settings: Make the websocket settings clearer.
It is now using `WEBSOCKET_BACK_HOST`, `WEBSOCKET_BACK_PORT` and
`WEBSOCKET_FRONT_URI`.

We need to take in consideration that the "front" WebSocket address
(that clients will connect to) might be different than the "back" ip and
port which are bound in the host.

This happens for instance for reverse proxies, or when running inside
a container.

We considered using a `WEBSOCKET_TLS` setting, to try guessing the
"front" address based on `WEBSOCKET_HOST`, `WEBSOCKET_PORT` and
`WEBSOCKET_TLS`, but as the back and front address can differ, this
would need to introduce a `WEBSOCKET_URI` in any case, so we went with
just using it, and not adding an extra `WEBSOCKET_TLS`.
2024-06-07 18:21:30 +02:00
def915c561 feat(settings): allow reading socket-related settings from ENV variables 2024-06-07 18:21:30 +02:00
32a4f3feda feat(sync): Add WebSocket specific settings
`WEBSOCKET_ENABLED`, `WEBSOCKET_HOST`, `WEBSOCKET_PORT` and
`WEBSOCKET_URI` have been added.

They are being transmitted to the client via the `map.options`.
When `WEBSOCKET_ENABLED` is set to `False`, the client doesn't have
the ability to be synced.
2024-06-07 18:21:30 +02:00
f255c3c8a5 feat(websockets): Authenticate with signed tokens.
Authentication is now done using a signed token provided by the Django
server, sent by the JS client and checked by the WebSocket server.

The token contains a `permissions` key that's checked to ensure the user
has access to the map "room", where events will be shared by the peers.
2024-06-07 18:21:30 +02:00
2daeaf12e0 WIP 2024-06-07 18:21:30 +02:00
Yohan Boniface
87e2467a4c feat: add link in contextmenu to edit map in OSM
fix #1651
2024-04-17 09:34:39 +02:00
Yohan Boniface
bfcdfdcfc1 chore: bump ruff 2024-03-05 17:23:49 +01:00
Yohan Boniface
217aec5556
Merge pull request #1615 from umap-project/default-from-email
chore: replace settings.FROM_EMAIL by settings.DEFAULT_FROM_EMAIL
2024-02-16 16:40:16 +01:00
Yohan Boniface
1a67d01c61 chore: replace deprecated FORM_RENDERER setting 2024-02-16 12:40:37 +01:00
Yohan Boniface
1db2455d51 chore: replace settings.FROM_EMAIL by settings.DEFAULT_FROM_EMAIL
DEFAULT_FROM_EMAIL is a Django standard setting
2024-02-16 11:49:38 +01:00
Yohan Boniface
a99ee90e15 chore: migrate to OAuth 2 for OpenStreetMap backend
fix #1279
2024-02-14 11:30:16 +01:00
Yohan Boniface
caeb9d5b44
Merge pull request #1531 from umap-project/home-highlighted
Introduce UMAP_HOME_FEED to control which maps are shown on the home page
2024-01-29 12:48:24 +01:00
Yohan Boniface
23af4c60cd chore: move UmapManifestStaticFilesStorage to a dedicated file 2024-01-19 17:16:35 +01:00
David Larlet
656e29c72b
Use custom storage instead of django-compressor 2024-01-17 09:09:00 -05:00
Yohan Boniface
9f377da1b2 Introduce UMAP_HOME_FEED to control which maps are shown on the home page
For now we have only three modes:
- latest, which is the default and shows the last updated maps
- highlighted, which shows only the map that have been starred by a least
  one staff member
- None, which does not show any map
2024-01-16 12:31:50 +01:00
aff0181636 [style] Format the code 2023-11-24 23:31:18 +01:00
David Larlet
af3518ad08
Apply Black to settings files 2023-09-26 09:40:41 -04:00
David Larlet
27e8fd0cac
Merge pull request #1324 from openbrian/add-username-to-features
Add username to features
2023-09-25 11:08:32 -04:00
Brian DeRocher
6720f76d85 Set the map option. No need for setting boolean from query string.
Only add the owner property if the feature flag (map.options.featuresHaveOwner) is enabled.

Default to features do NOT have owners.
2023-09-20 13:16:52 -04:00
Brian DeRocher
e25fb5d04f Add FeaturesHaveOwners map option.
WIP
2023-09-20 12:48:32 -04:00