Compare commits

..

2085 commits

Author SHA1 Message Date
Yohan Boniface
a3a520dec4 3.0.5
Some checks failed
Release Charts / release (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
2025-04-25 17:45:37 +02:00
Yohan Boniface
4b4f9bbc5c i18n 2025-04-25 17:40:47 +02:00
Yohan Boniface
279717e630 chore: fix badge visibility in filter tab in browser panel
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-25 17:29:18 +02:00
Yohan Boniface
39e4e2a33c
fix: make sure DataLayer rank is always set (#2682) 2025-04-25 17:20:10 +02:00
Yohan Boniface
e5dbca21b0 fix: make sure DataLayer rank is always set
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-25 17:12:17 +02:00
Yohan Boniface
1ecddc1c02
chore: use details/summary for datalayers boxes in browser (#2680)
![image](https://github.com/user-attachments/assets/978e2f05-b7f3-4648-afec-92a24a88226a)
2025-04-25 16:29:06 +02:00
Yohan Boniface
8658e7eba7 chore: use details/summary for datalayers boxes in browser 2025-04-25 16:20:37 +02:00
Yohan Boniface
6ac3685172
fix: fix error when saving and deleting heatmap layer (#2681) 2025-04-25 15:57:17 +02:00
Yohan Boniface
1085861d42 chore: add --maxfail to py.test in make test command
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-25 15:56:20 +02:00
Yohan Boniface
fab0c8f9ea fix: fix error when saving and deleting heatmap layer
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-25 15:47:33 +02:00
Yohan Boniface
858768896e
fix: loading remote data should not make the map dirty (#2679)
See the second commit for the logic change.
2025-04-25 15:35:38 +02:00
Yohan Boniface
bffbeb5230
fix: allow to save/undo/sync drag'n'drop of datalayers (#2677)
This also:
- introduces a new DataLayerManager
- removes the _umap_options coming from the geojson form the server
- removes all backup related functions (now we have undo/redo)

fix #2674
2025-04-25 15:35:23 +02:00
Yohan Boniface
f01a74f19f i18n 2025-04-25 11:29:43 +02:00
Yohan Boniface
00228ccf92 fix: loading remote data should not make the map dirty 2025-04-25 11:25:54 +02:00
Yohan Boniface
6c8046456a chore: remove unused isDirty flags 2025-04-25 09:44:49 +02:00
Yohan Boniface
626b669d89 fixup: fix tests 2025-04-25 07:09:31 +02:00
Yohan Boniface
5af41b4528 fix: allow to save/undo/sync drag'n'drop of datalayers
This also:
- introduces a new DataLayerManager
- removes the _umap_options coming from the geojson form the server
- removes all backup related functions (now we have undo/redo)

Co-authored-by: David Larlet <david@larlet.fr>
2025-04-24 18:38:02 +02:00
Yohan Boniface
1a9c325f16
fix: setting center and zoom manually should set dirty status (#2676)
Some checks failed
Release Charts / release (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
2025-04-23 18:51:36 +02:00
Yohan Boniface
19d16ac01b fix: setting center and zoom manually should set dirty status
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-23 18:00:48 +02:00
Yohan Boniface
efaa765b82
chore: cleaning core utils and removing DomUtil/DomEvent from modules (#2671) 2025-04-23 17:51:45 +02:00
Yohan Boniface
92ca581fb6
fix: allow to save a remote data with unloaded data (#2657)
When loading remote data fails, the layer is in state "unloaded", and
thus it was not possible to save it.
This "isLoaded" check is made for non remote layer so that we don't save
it by mistake with no data.

Also, let's allow to edit non loaded layers, this check was there when
settings was not on db, so not all loaded at map init, again not to
override with incomplete metadata.
2025-04-23 17:49:12 +02:00
Yohan Boniface
6687cd53ba
feat: add a back button in rules form (#2673)
To go back in rules list.

fix #2631


![image](https://github.com/user-attachments/assets/d0ad67fe-90c1-45c5-8bca-5ac30ef8366a)
2025-04-23 17:43:22 +02:00
Yohan Boniface
4997ee8860
feat: naive support for GeometryCollection as Feature geometry (#2658)
Currently, we just skip those, but sometimes togeojson produces this
output from a KML.
This will create one feature per geometry, while in an ideal world this
should be a multi, but we lack reliable geometry tools to merge the
geometries without risking to create mistakes.
So let's say it's a first improvement.
2025-04-23 17:43:05 +02:00
Yohan Boniface
a708316604
fix: make rules reordering syncable, savable and undoable (#2672) 2025-04-23 17:42:47 +02:00
Yohan Boniface
71d92aa610
fix: show an error message if saving layer failed (#2670)
This could occur when server is down or there is no network.
2025-04-23 17:40:19 +02:00
Yohan Boniface
41752bd0c6
fix: do not display "saved" message if some request failed (#2669) 2025-04-23 17:39:59 +02:00
Yohan Boniface
5b6138a210
chore: move pure Leaflet controls to modules (#2668)
pure == inheriting from Leaflet itself, not from some plugin (which
aren't ESM ready…)
2025-04-23 17:39:33 +02:00
Yohan Boniface
07363fa5fe chore: remove unused DomEvent.once 2025-04-23 16:52:55 +02:00
Yohan Boniface
7991d6cdbe chore: remove DomUtil.after/before 2025-04-23 16:50:13 +02:00
Yohan Boniface
60ac4b35f2 chore: remove most of DomUtil/DomEvent from browser.js 2025-04-23 16:24:15 +02:00
Yohan Boniface
bf2e9dc175 chore: remove call to DomUtil.createIcon in umap.js 2025-04-23 11:33:12 +02:00
Yohan Boniface
67ed6d5b44 feat: add a back button in rules form
To go back in rules list.

fix #2631
2025-04-23 10:55:39 +02:00
Yohan Boniface
fad182c5f3 fix: make rules reordering syncable, savable and undoable 2025-04-23 10:19:19 +02:00
Yohan Boniface
3f5d282477 chore: remove DomUtil and DomEvent dependency from rules.js 2025-04-23 10:14:22 +02:00
Yohan Boniface
49496348d2 chore: remove unused L.DomUtil.createLink method 2025-04-23 09:21:35 +02:00
Yohan Boniface
f8b13639aa fix: show an error message if saving layer failed
This could occur when server is down or there is no network.
2025-04-23 09:02:25 +02:00
Yohan Boniface
4c71710641 fix: do not display "saved" message if some request failed 2025-04-23 08:58:17 +02:00
Yohan Boniface
92d5c47844 chore: move pure Leaflet controls to modules
pure == inheriting from Leaflet itself, not from some plugin
(which aren't ESM ready…)
2025-04-22 20:14:06 +02:00
Yohan Boniface
05493d8a48
chore: bump uvicorn from 0.34.1 to 0.34.2 (#2664)
Some checks failed
Release Charts / release (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
2025-04-22 15:06:34 +02:00
Yohan Boniface
fd8f403a69
chore: bump mkdocs-material from 9.6.11 to 9.6.12 (#2665) 2025-04-22 15:06:19 +02:00
Yohan Boniface
a6412c9539
chore: bump ruff from 0.11.4 to 0.11.6 (#2666) 2025-04-22 15:06:01 +02:00
Yohan Boniface
fe65a5351b
chore: bump moto[s3] from 5.1.3 to 5.1.4 (#2667) 2025-04-22 15:05:44 +02:00
dependabot[bot]
2ede25f541
chore: bump moto[s3] from 5.1.3 to 5.1.4
Bumps [moto[s3]](https://github.com/getmoto/moto) from 5.1.3 to 5.1.4.
- [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.1.3...5.1.4)

---
updated-dependencies:
- dependency-name: moto[s3]
  dependency-version: 5.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-21 17:46:08 +00:00
dependabot[bot]
b7acdcfd93
chore: bump ruff from 0.11.4 to 0.11.6
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.11.4 to 0.11.6.
- [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.11.4...0.11.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-21 17:39:19 +00:00
dependabot[bot]
a3d2330661
chore: bump mkdocs-material from 9.6.11 to 9.6.12
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.6.11 to 9.6.12.
- [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.6.11...9.6.12)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-version: 9.6.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-21 17:33:21 +00:00
dependabot[bot]
20ae374173
chore: bump uvicorn from 0.34.1 to 0.34.2
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.34.1 to 0.34.2.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/docs/release-notes.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.34.1...0.34.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-21 17:29:12 +00:00
David Larlet
162473da9d
chore: more design system elements (#2661)
Some checks failed
Release Charts / release (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
2025-04-18 10:03:12 -04:00
David Larlet
78d333c217
chore: more design system elements 2025-04-17 17:29:43 -04:00
Yohan Boniface
b0fe95dbd9 feat: naive support for GeometryCollection as Feature geometry
Currently, we just skip those, but sometimes togeojson produces this
output from a KML.
This will create one feature per geometry, while in an ideal world this
should be a multi, but we lack reliable geometry tools to merge the
geometries without risking to create mistakes.
So let's say it's a first improvement.
2025-04-16 18:28:23 +02:00
Yohan Boniface
23b82975f5 chore: bump togeojson
Some checks failed
Release Charts / release (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
2025-04-16 17:30:17 +02:00
Yohan Boniface
169be73488 fix: allow to save a remote data with unloaded data
When loading remote data fails, the layer is in state "unloaded",
and thus it was not possible to save it.
This "isLoaded" check is made for non remote layer so that we don't
save it by mistake with no data.

Also, let's allow to edit non loaded layers, this check was there
when settings was not on db, so not all loaded at map init, again
not to override with incomplete metadata.
2025-04-16 16:00:26 +02:00
Yohan Boniface
6945a5e867
feat: pass CSRF_TRUSTED_ORIGINS env to settings (#2656)
Some checks are pending
Release Charts / release (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
Allow to manage djangos CSRF_TRUSTED_ORIGINS by environment variables.

Closes #2655
2025-04-16 12:34:49 +02:00
Oliver Lippert
2ed890202e
code formatting 2025-04-16 12:25:17 +02:00
Oliver Lippert
cc7685ca3f
pass CSRF_TRUSTED_ORIGINS env to settings
fixes https://github.com/umap-project/umap/issues/2655
2025-04-16 12:23:09 +02:00
David Larlet
23688b6444
feat: implement a design system for UI consistency (#2654)
Some checks are pending
Release Charts / release (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
2025-04-15 08:19:31 -04:00
David Larlet
d3c0947fa5
feat: implement a design system for UI consistency 2025-04-14 23:20:55 -04:00
Yohan Boniface
a135e5c3e1
chore: bump pytest-django from 4.10.0 to 4.11.1 (#2653)
Some checks are pending
Release Charts / release (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
2025-04-14 19:50:30 +02:00
Yohan Boniface
2ad46046f8
chore: bump uvicorn from 0.34.0 to 0.34.1 (#2651) 2025-04-14 19:50:14 +02:00
Yohan Boniface
5271d7c19d
chore: bump pydantic from 2.11.2 to 2.11.3 (#2652) 2025-04-14 19:36:42 +02:00
Yohan Boniface
a535c86f6b
chore: bump mkdocs-material from 9.6.10 to 9.6.11 (#2649) 2025-04-14 19:36:16 +02:00
Yohan Boniface
9aa1f58dc8
chore: bump pillow from 11.1.0 to 11.2.1 (#2650)
Bumps [pillow](https://github.com/python-pillow/Pillow) from 11.1.0 to
11.2.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/python-pillow/Pillow/releases">pillow's
releases</a>.</em></p>
<blockquote>
<h2>11.2.1</h2>
<p><a
href="https://pillow.readthedocs.io/en/stable/releasenotes/11.2.1.html">https://pillow.readthedocs.io/en/stable/releasenotes/11.2.1.html</a></p>
<h2>Deprecations</h2>
<ul>
<li>Moved get_child_images() to ImageFile <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8689">#8689</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>Add 11.2.1 release notes <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8885">#8885</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Added avif to config settings <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8875">#8875</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Added release notes for <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8330">#8330</a>
<a
href="https://redirect.github.com/python-pillow/Pillow/issues/8853">#8853</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Added release notes for <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8781">#8781</a>
and <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8837">#8837</a>
<a
href="https://redirect.github.com/python-pillow/Pillow/issues/8843">#8843</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Added media_white_point to ImageCms documentation <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8829">#8829</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Removed FIXME <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8825">#8825</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Updated comment <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8822">#8822</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Added release notes for <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8807">#8807</a>
<a
href="https://redirect.github.com/python-pillow/Pillow/issues/8824">#8824</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>DXT3 images are read in RGBA mode <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8817">#8817</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>JPEG comments are from the COM marker <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8788">#8788</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Update Sphinx to 8.2 to remove nitpick ignore <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8763">#8763</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Updated AffineTransform docstring to mention it uses the inverse
matrix <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8735">#8735</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Added MozJPEG documentation <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8699">#8699</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Added Sphinx configuration key <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8691">#8691</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Updated macOS tested Pillow versions <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8654">#8654</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
</ul>
<h2>Dependencies</h2>
<ul>
<li>Updated xz to 5.8.1 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8868">#8868</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Updated harfbuzz to 11.0.1 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8870">#8870</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Update scientific-python/upload-nightly-action action to v0.6.2 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8865">#8865</a>
[@<a href="https://github.com/apps/renovate">renovate[bot]</a>]</li>
<li>Updated xz to 5.8.0 in macOS and Linux wheels, but not on
manylinux2014 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8836">#8836</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Update dependency cibuildwheel to v2.23.2 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8832">#8832</a>
[@<a href="https://github.com/apps/renovate">renovate[bot]</a>]</li>
<li>Updated harfbuzz to 11.0.0 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8830">#8830</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Update dependency cibuildwheel to v2.23.1 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8818">#8818</a>
[@<a href="https://github.com/apps/renovate">renovate[bot]</a>]</li>
<li>Updated Ghostscript to 10.5.0 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8814">#8814</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Updated libtiff to 4.7.0 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8812">#8812</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>[pre-commit.ci] pre-commit autoupdate <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8795">#8795</a>
[@<a
href="https://github.com/apps/pre-commit-ci">pre-commit-ci[bot]</a>]</li>
<li>Updated harfbuzz to 10.4.0 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8770">#8770</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Update dependency mypy to v1.15.0 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8791">#8791</a>
[@<a href="https://github.com/apps/renovate">renovate[bot]</a>]</li>
<li>Updated libpng to 1.6.47 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8764">#8764</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Updated lcms2 to 2.17 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8742">#8742</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Update dependency cibuildwheel to v2.23.0 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8785">#8785</a>
[@<a href="https://github.com/apps/renovate">renovate[bot]</a>]</li>
<li>Updated zlib-ng to 2.2.4 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8745">#8745</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Updated libimagequant to 4.3.4 on Windows <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8744">#8744</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>[pre-commit.ci] pre-commit autoupdate <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8729">#8729</a>
[@<a
href="https://github.com/apps/pre-commit-ci">pre-commit-ci[bot]</a>]</li>
<li>Updated harfbuzz to 10.2.0 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8688">#8688</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Updated xz to 5.6.4 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8711">#8711</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Updated libpng to 1.6.46 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8712">#8712</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Updated libimagequant to 4.3.4 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8710">#8710</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Updated libpng to 1.6.45 <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8670">#8670</a>
[<a
href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst">pillow's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog (Pillow)</h1>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="339bc5db93"><code>339bc5d</code></a>
11.2.1 version bump</li>
<li><a
href="857b8846ea"><code>857b884</code></a>
Merge pull request <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8885">#8885</a>
from radarhere/releasenotes</li>
<li><a
href="7a0092f207"><code>7a0092f</code></a>
Remove incomplete 11.2.0 release, bill as 11.2.1 instead</li>
<li><a
href="d52c2db317"><code>d52c2db</code></a>
Do not include libavif in wheels</li>
<li><a
href="8dafc38371"><code>8dafc38</code></a>
Added 11.2.1 release notes</li>
<li><a
href="07d7800248"><code>07d7800</code></a>
Removed release notes update</li>
<li><a
href="04909483a7"><code>0490948</code></a>
Remove GPL v2 license (<a
href="https://redirect.github.com/python-pillow/Pillow/issues/8884">#8884</a>)</li>
<li><a
href="774d0aedce"><code>774d0ae</code></a>
Merge pull request <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8868">#8868</a>
from radarhere/xz_upgrade</li>
<li><a
href="d1e27fc86c"><code>d1e27fc</code></a>
Merge pull request <a
href="https://redirect.github.com/python-pillow/Pillow/issues/8870">#8870</a>
from radarhere/harfbuzz_upgrade</li>
<li><a
href="c8d98d56a0"><code>c8d98d5</code></a>
Added avif to config settings (<a
href="https://redirect.github.com/python-pillow/Pillow/issues/8875">#8875</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/python-pillow/Pillow/compare/11.1.0...11.2.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pillow&package-manager=pip&previous-version=11.1.0&new-version=11.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2025-04-14 19:36:00 +02:00
dependabot[bot]
102104f818
chore: bump pytest-django from 4.10.0 to 4.11.1
Bumps [pytest-django](https://github.com/pytest-dev/pytest-django) from 4.10.0 to 4.11.1.
- [Release notes](https://github.com/pytest-dev/pytest-django/releases)
- [Changelog](https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pytest-dev/pytest-django/compare/v4.10.0...v4.11.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 17:30:01 +00:00
dependabot[bot]
35e5a4bda6
chore: bump pydantic from 2.11.2 to 2.11.3
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.11.2 to 2.11.3.
- [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.11.2...v2.11.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 17:29:38 +00:00
dependabot[bot]
6bae315efe
chore: bump uvicorn from 0.34.0 to 0.34.1
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.34.0 to 0.34.1.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/docs/release-notes.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.34.0...0.34.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 17:29:19 +00:00
dependabot[bot]
93120d91d6
chore: bump pillow from 11.1.0 to 11.2.1
Bumps [pillow](https://github.com/python-pillow/Pillow) from 11.1.0 to 11.2.1.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/11.1.0...11.2.1)

---
updated-dependencies:
- dependency-name: pillow
  dependency-version: 11.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 17:29:05 +00:00
dependabot[bot]
f037973a03
chore: bump mkdocs-material from 9.6.10 to 9.6.11
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.6.10 to 9.6.11.
- [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.6.10...9.6.11)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-version: 9.6.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 17:28:43 +00:00
Yohan Boniface
c4614354ae 3.0.4 2025-04-14 17:57:12 +02:00
Yohan Boniface
9ed466ea9b
chore: update colors (#2647) 2025-04-14 17:55:19 +02:00
Yohan Boniface
168cc0c996 i18n 2025-04-14 17:49:09 +02:00
Yohan Boniface
ae4e7eb3e2 chore: update colors
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-14 17:45:11 +02:00
Yohan Boniface
3670b7dca6
Adapt chart to match La Suite's expectations (#2646)
- env vars and config files can be loaded from existing secrets
- chart is deployed on a helm repository

to make the helm repository work with github pages, create an empty
orphaned branch called gh-pages, and under settings>pages>source select
deploy from branch and use gh-pages
2025-04-14 17:36:31 +02:00
David Larlet
1c3cf9a7c5
chore: switch helm chart job to master branch 2025-04-14 11:31:06 -04:00
Yohan Boniface
ada44fc0fc
fix: remove "hide home button" shown twice in map settings (#2645) 2025-04-14 17:30:52 +02:00
Yohan Boniface
ac6964c9f4 fix: remove "hide home button" shown twice in map settings
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-14 16:30:38 +02:00
David Larlet
82dcd90405
fix: do not show "back to home" button in iframes (#2644) 2025-04-14 10:21:21 -04:00
Yohan Boniface
d9e983aed4 fix: do not show "back to home" button in iframes
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-14 16:12:35 +02:00
Yohan Boniface
071a8c539d 3.0.3
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
2025-04-11 18:09:14 +02:00
Yohan Boniface
ec8fa87b41 i18n 2025-04-11 17:33:22 +02:00
Yohan Boniface
ef072f0a8e
feat: allow to hide the back to home button (#2638) 2025-04-11 17:30:15 +02:00
Yohan Boniface
33f407fd60
feat: hidden download button in browser when embedControl=false (#2640)
cf #2629
2025-04-11 17:27:02 +02:00
David Larlet
324c5cf6bf feat: allow to hide the back to home button
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-04-11 17:22:09 +02:00
Yohan Boniface
e53cdcb04e feat: hidden download button in browser when embedControl=false
cf #2629

Co-authored-by: David Larlet <david@larlet.fr>
2025-04-11 17:15:39 +02:00
David Larlet
5e3170891a
feat: allow to hide the layer switcher from bottom bar (#2639) 2025-04-11 10:58:54 -04:00
David Larlet
495286c261
feat: allow to hide the layer switcher from bottom bar 2025-04-11 10:44:01 -04:00
Yohan Boniface
15972bab3d
document that nginx needs to be added in Docker stack to serve statics (#2636) 2025-04-11 16:19:47 +02:00
Yohan Boniface
bd91934544
fix: do not try to remove a feature not yet added (#2637)
cf #2625

This happens while drawing a line or polygon and then hitting escape
while the path is not yet valid.
2025-04-11 16:19:29 +02:00
Yohan Boniface
581140e08a
fix: do not try to remove a feature not yet added
cf #2625

This happens while drawing a line or polygon and then hitting escape
while the path is not yet valid.
2025-04-11 10:02:31 -04:00
David Larlet
10f87c0b6e
fix: display search category on list page (#2635) 2025-04-11 08:24:07 -04:00
Yohan Boniface
0ec4e74f8f wip: add nginx in docker-compose.yml 2025-04-11 11:31:54 +02:00
Yohan Boniface
89033e04a2 chore: add a deploy overview doc page 2025-04-11 10:09:24 +02:00
David Larlet
38f4fd5bb3
fix: display search category on list page 2025-04-10 17:13:33 -04:00
Yohan Boniface
985d91a9c7
fix: display back help button in switch fields (#2634)
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
cf #2615

Before:

![image](https://github.com/user-attachments/assets/bac68a6b-6c74-4f10-8d3c-26536dc1ecad)

After:

![image](https://github.com/user-attachments/assets/43c4a0b3-a892-423a-8c20-b7c6304f3182)
2025-04-10 21:46:27 +02:00
Yohan Boniface
7348f0bf4f fix: display back help button in switch fields
cf #2615
2025-04-10 20:24:35 +02:00
Yohan Boniface
dc35e7df6d
fix: fix pictogram categories always hidden (#2630)
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
2025-04-09 17:17:29 +02:00
Yohan Boniface
d9378a484d fix: fix pictogram categories always hidden 2025-04-09 16:06:20 +02:00
Yohan Boniface
cfcdfb9ed8
chore: add missing margin-bottom in importers (#2627) 2025-04-09 15:59:00 +02:00
Yohan Boniface
0b8c7ee381
chore: redirect to user dashboard after map delete (#2626)
If user is authenticated.

We do not display alert messages on the home page.
2025-04-09 15:45:11 +02:00
Yohan Boniface
36e9433cf9
Apply suggestions from code review
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2025-04-09 15:44:36 +02:00
Yohan Boniface
425f66b181
fix: fix text overflow on search results (#2628)
Before:
![Screenshot From 2025-04-09
09-41-21](https://github.com/user-attachments/assets/727ead82-7bb7-4cdb-b676-994f84ed8eaf)

After:
![Screenshot From 2025-04-09
09-40-58](https://github.com/user-attachments/assets/e778ba59-a255-4230-9531-cdba67c444cc)

(Please don't ask :p )
2025-04-09 15:42:57 +02:00
Yohan Boniface
18f0b6e2a7 chore: rename variable to make it more explicit 2025-04-09 11:27:29 +02:00
Yohan Boniface
50f23b4e02 fix: fix text overflow on search results 2025-04-09 09:41:37 +02:00
Yohan Boniface
36d58993a0 chore: add missing margin-bottom in importers 2025-04-09 09:32:54 +02:00
Yohan Boniface
5f2e104eec
feat: use Last-Modified header from remote data when available (#2624)
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
fix #2589
2025-04-09 09:09:40 +02:00
Yohan Boniface
5c38bc7970 chore: redirect to user dashboard after map delete
If user is authenticated.

We do not display alert messages on the home page.
2025-04-09 08:54:44 +02:00
Yohan Boniface
dcce3ad054
Update umap/static/umap/js/modules/umap.js
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2025-04-08 18:13:05 +02:00
Yohan Boniface
88ddb1cab3 3.0.2
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
2025-04-08 17:23:15 +02:00
Yohan Boniface
dd7540596c
fix: give priority to small usernames on autocomplete (#2604)
Basically, when the search is "joe" we first try to search for an exact
account named "joe", and fallback to normal flow when nothing matches.

fix #2591
2025-04-08 17:21:14 +02:00
Yohan Boniface
2baeaace24 feat: use Last-Modified header from remote data when available
fix #2589
2025-04-08 17:03:06 +02:00
Yohan Boniface
14663bc56e fixup: order users autocomplete by username length
cf #2591
2025-04-08 15:47:06 +02:00
Yohan Boniface
fea0f02b80
fix: fix min-height of select in caption bar (#2622)
Before:
![Screenshot From 2025-04-08
15-26-28](https://github.com/user-attachments/assets/372d3410-a360-4ff3-a6f2-d7c18a3f26e3)

After:
![Screenshot From 2025-04-08
15-27-44](https://github.com/user-attachments/assets/defb737e-aed3-40b0-91b6-5b8c38675e55)
2025-04-08 15:37:56 +02:00
Yohan Boniface
85ba05f4b7
fix: fix result tools buttons background color (#2620) 2025-04-08 15:32:58 +02:00
Yohan Boniface
7b582a8ec1
fix: properly call endEdit for markers (#2617)
fix #2607
2025-04-08 15:32:09 +02:00
Yohan Boniface
3c70fc4267
fix: fix categorized layer crashing with null value (#2621)
Do not call toString on a null value
2025-04-08 15:31:51 +02:00
Yohan Boniface
b5d12282e0
fix: fix copiable input CSS (#2616)
Before:
![Screenshot From 2025-04-08
10-02-15](https://github.com/user-attachments/assets/49fd5f63-ac98-40bd-a7bc-befd24920f07)

After:
![Screenshot From 2025-04-08
10-21-33](https://github.com/user-attachments/assets/ce62ef66-6ad7-45dd-a37c-c0fb20d71e13)
2025-04-08 15:30:20 +02:00
Yohan Boniface
672d92152e fix: fix min-height of select in caption bar 2025-04-08 15:27:10 +02:00
Yohan Boniface
5b5102f909 fix: fix categorized layer crashing with null value
Do not call toString on a null value
2025-04-08 15:21:27 +02:00
Yohan Boniface
0a154daa6f fix: fix result tools buttons background color 2025-04-08 12:14:22 +02:00
Yohan Boniface
c38ec2c18d fix: fix copiable input CSS 2025-04-08 11:46:31 +02:00
Yohan Boniface
1e204ac16c fix: properly call endEdit for markers
fix #2607
2025-04-08 11:05:54 +02:00
Yohan Boniface
e2fed5a19d
chore: bump hatch from 1.14.0 to 1.14.1 (#2614) 2025-04-08 10:43:37 +02:00
Yohan Boniface
061b5fc60e
chore: bump pydantic from 2.11.1 to 2.11.2 (#2612) 2025-04-08 10:23:13 +02:00
dependabot[bot]
8c9d4e5777
chore: bump pydantic from 2.11.1 to 2.11.2
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.11.1 to 2.11.2.
- [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.11.1...v2.11.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 07:43:11 +00:00
dependabot[bot]
efde6899bd
chore: bump hatch from 1.14.0 to 1.14.1
Bumps [hatch](https://github.com/pypa/hatch) from 1.14.0 to 1.14.1.
- [Release notes](https://github.com/pypa/hatch/releases)
- [Commits](https://github.com/pypa/hatch/compare/hatch-v1.14.0...hatch-v1.14.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 07:42:51 +00:00
Yohan Boniface
38e862c04a
chore: bump moto[s3] from 5.1.1 to 5.1.3 (#2610)
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
2025-04-08 09:42:12 +02:00
Yohan Boniface
2d0325f1fb
chore: bump ruff from 0.11.2 to 0.11.4 (#2611) 2025-04-08 09:41:39 +02:00
Yohan Boniface
b8ab86b075
chore: bump django-storages[s3] from 1.14.5 to 1.14.6 (#2613) 2025-04-08 09:41:11 +02:00
dependabot[bot]
7e774bc3aa
chore: bump django-storages[s3] from 1.14.5 to 1.14.6
Bumps [django-storages[s3]](https://github.com/jschneier/django-storages) from 1.14.5 to 1.14.6.
- [Changelog](https://github.com/jschneier/django-storages/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jschneier/django-storages/compare/1.14.5...1.14.6)

---
updated-dependencies:
- dependency-name: django-storages[s3]
  dependency-version: 1.14.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 18:35:07 +00:00
dependabot[bot]
f4e3e679a9
chore: bump ruff from 0.11.2 to 0.11.4
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.11.2 to 0.11.4.
- [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.11.2...0.11.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 18:30:12 +00:00
dependabot[bot]
6d391a51be
chore: bump moto[s3] from 5.1.1 to 5.1.3
Bumps [moto[s3]](https://github.com/getmoto/moto) from 5.1.1 to 5.1.3.
- [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.1.1...5.1.3)

---
updated-dependencies:
- dependency-name: moto[s3]
  dependency-version: 5.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 18:28:07 +00:00
Yohan Boniface
aa43d4efa8 3.0.1
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
2025-04-07 20:01:53 +02:00
Yohan Boniface
4679742b96
fix: fix showLabel wrongly using MultiChoices (#2609) 2025-04-07 20:01:05 +02:00
Yohan Boniface
53329d19fd fix: fix showLabel wrongly using MultiChoices
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-07 19:53:20 +02:00
Yohan Boniface
c09c2c20ee 3.0.0 2025-04-07 18:55:50 +02:00
Yohan Boniface
c0c55075b7 chore: rename WEBSOCKET_ENABLED in REALTIME_ENABLED
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-07 18:55:18 +02:00
Yohan Boniface
3670c47af9 i18n 2025-04-07 18:32:05 +02:00
Yohan Boniface
f1f18ed518
Remove confirm delete for features and datalayers (#2603)
Now that we have granular undo, I'd say we can simplify the delete
process.
2025-04-07 18:24:25 +02:00
Yohan Boniface
5e47a59d07
chore: refine main search form (#2608)
![image](https://github.com/user-attachments/assets/dd73a323-6f80-4b5b-8691-79a3f92f3723)
2025-04-07 18:23:52 +02:00
Yohan Boniface
a59b0110fc
chore: refine undo/redo buttons (#2605)
![image](https://github.com/user-attachments/assets/884b3a8c-ff4e-48e2-9bdf-16d31fb7512a)
2025-04-07 18:23:37 +02:00
Yohan Boniface
e1272ec6cd fix: do not cut kbd in tooltip
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-07 18:23:08 +02:00
Yohan Boniface
55babfde34
chore: refine map list card CSS (#2606) 2025-04-07 18:17:26 +02:00
Yohan Boniface
82b8564520 chore: refine undo/redo buttons
Co-authored-by: David Larlet <david@larlet.fr>
Co-authored-by: Aurélie Jallut <aurelie.jallut@beta.gouv.fr>
2025-04-07 18:16:37 +02:00
Yohan Boniface
5070a5e5b4 chore: refine main search form
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-07 18:11:49 +02:00
Yohan Boniface
06baeb718e fix: fix Textarea trying to clear this.input
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-07 18:09:35 +02:00
Yohan Boniface
f186d3266c chore: refine map list card CSS
Co-authored-by: David Larlet <david@larlet.fr>
Co-authored-by: Aurélie Jallut <aurelie.jallut@beta.gouv.fr>
2025-04-07 16:34:09 +02:00
Yohan Boniface
f4ae51ae7e fix: give priority to small usernames when query is small
Basically, when the search is "joe" we first try to search for
an exact account named "joe", and fallback to normal flow when
nothing matches.

fix #2591
2025-04-07 15:24:44 +02:00
Yohan Boniface
49bba24b90 feat: remove confirm for feature delete 2025-04-07 10:48:34 +02:00
Yohan Boniface
a2749ce805 feat: remove confirm for datalayer delete
Now that we have granular undo, no needs for this I'd say.
2025-04-07 10:35:39 +02:00
Yohan Boniface
190cac3105 i18n
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
2025-04-04 18:54:51 +02:00
Yohan Boniface
50e354cb18
fix: explicit batch instead of blindly on add data (#2601) 2025-04-04 18:54:31 +02:00
Yohan Boniface
34e4955891
fix: use the multichoices for ttl in remote data form (#2599) 2025-04-04 18:49:23 +02:00
Yohan Boniface
91c3b098df wip: return data in DataLayer.importRaw 2025-04-04 18:45:31 +02:00
Yohan Boniface
2967c023f3
fix: do not add auto zoom and center in undo stack (#2602) 2025-04-04 18:23:31 +02:00
David Larlet
862f19ee43 fix: use the multichoices for ttl in remote data form 2025-04-04 18:22:51 +02:00
David Larlet
fd8915355e
fix: do not export layer ids in umap backup (#2600) 2025-04-04 11:54:30 -04:00
David Larlet
02d3e19450
fix: do not add auto zoom and center in undo stack
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-04-04 11:54:00 -04:00
David Larlet
b342480f3b
fix: explicit batch instead of blindly on add data
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-04-04 11:45:26 -04:00
David Larlet
c5c352cfac
fix: do not export layer ids in umap backup 2025-04-04 11:26:10 -04:00
David Larlet
d6f591b365
fix: remote data loading on import from umap backup (#2598) 2025-04-04 11:15:23 -04:00
David Larlet
90bbc72320
fix: restore width and height for default marker icon
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-04-04 11:15:03 -04:00
David Larlet
b05e6ec28c
fix: remote data loading on import from umap backup 2025-04-04 11:05:33 -04:00
David Larlet
0e56e71e87
fix: Minimize the default svg icon for marker
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-04-04 10:28:43 -04:00
Yohan Boniface
5c51a7a735
feat: add keyboard shortcut for redo (ctrl+shift+z) (#2596)
I've reworked a bit the shortcut handling, as it was only dealing with
ctrl/meta only ones (no shift).
2025-04-04 16:25:04 +02:00
Yohan Boniface
563aee81e1 feat: add keyboard shortcut for redo (ctrl+shift+z) 2025-04-04 16:14:04 +02:00
Yohan Boniface
3720ccff01
feat: add minimal "raw" icon shape (#2597)
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
Basically, it means "no shape".


![image](https://github.com/user-attachments/assets/7ddaf76a-2128-49fc-8664-754b09d2b9ef)

It's a 48x48 max square (but if image is smaller it will stay smaller),
popup and tooltip always centered.

Let's see how this will be used and add more controls if needed later
(like size, center position…).

Also I've added a small border to the default white round icon, so it's
visible even on a white background.

(Not sure why the flower size is 47.8 instead of 48, cf screenshot,
sounds like a Leaflet rounding issue…)

cf #125
2025-04-04 16:08:04 +02:00
Yohan Boniface
9e5c985d6c feat: add minimal "raw" icon shape 2025-04-04 12:02:46 +02:00
Yohan Boniface
32b9217bd2
feat: add Map.tags and allow to edit from client (#2530)
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
cf #2283

Note: this PR uses ArrayField, which is Postgres only, so this would
officially remove the support of spatialite as it is. I'm not sure at
all uMap still works with spatialite, so maybe that the opportunity to
either add spatialite in the CI and make sure we support it, or remove
it and only target Postgres/PostGIS.
2025-04-03 18:52:17 +02:00
Yohan Boniface
4fd57e0c11 chore: remove tag icons for now
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 18:29:39 +02:00
Yohan Boniface
54420568af chore: refine map fragment card CSS
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 18:20:50 +02:00
Yohan Boniface
8c90535105 chore: better CSS for tags in maps list
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 17:51:37 +02:00
Yohan Boniface
80a969917a chore: simplify search form CSS and HTML
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 17:51:20 +02:00
Yohan Boniface
6582e85f18
Update the Dockerfile to expose websockets (#2576)
The Dockerfile now uses ASGI by default (via uvicorn).
2025-04-03 17:16:56 +02:00
Yohan Boniface
023645a160 wip: make Redis service optional in Docker image
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 17:12:12 +02:00
Yohan Boniface
e24695b68c wip: display tags in maps list 2025-04-03 14:51:04 +02:00
Yohan Boniface
db72bfad8d wip: sort tags by label, not by value 2025-04-03 11:10:36 +02:00
Yohan Boniface
738af24dfc chore: fix tags related test 2025-04-03 11:10:36 +02:00
Yohan Boniface
06f963c07f chore: align search form elements
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 11:10:36 +02:00
Yohan Boniface
c6ed896a6d feat: associate icons to tags
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 11:10:36 +02:00
Yohan Boniface
1344fe6b46 feat: basic filtering by tags 2025-04-03 11:10:36 +02:00
Yohan Boniface
39f38a9cdf feat: add Map.tags and allow to edit from client
cf #2283
2025-04-03 11:10:33 +02:00
Yohan Boniface
e2f154f62e
feat: add atomic undo redo (#2570)
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
Todo:

- [ ] undo/sync a version restore
- [x] add test for scenario where two peers create a layer and one click
on save (both should be saved)
- [x] undo/sync of conditional rules
- [x] undo/sync of filter management from table editor
2025-04-03 10:32:47 +02:00
Yohan Boniface
7196ffe101
chore: bump mkdocs-material from 9.6.9 to 9.6.10 (#2593) 2025-04-03 08:55:19 +02:00
Yohan Boniface
99ea09e79e
chore: bump pydantic from 2.10.6 to 2.11.1 (#2594) 2025-04-03 08:55:01 +02:00
Yohan Boniface
b3f587ccf3
chore: bump django from 5.1.7 to 5.1.8 (#2595) 2025-04-03 08:49:20 +02:00
dependabot[bot]
64cf408233
chore: bump django from 5.1.7 to 5.1.8
Bumps [django](https://github.com/django/django) from 5.1.7 to 5.1.8.
- [Commits](https://github.com/django/django/compare/5.1.7...5.1.8)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-02 20:41:42 +00:00
dependabot[bot]
e26e8edc8a
chore: bump pydantic from 2.10.6 to 2.11.1
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.10.6 to 2.11.1.
- [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.6...v2.11.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 17:38:06 +00:00
dependabot[bot]
1b8e217768
chore: bump mkdocs-material from 9.6.9 to 9.6.10
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.6.9 to 9.6.10.
- [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.6.9...9.6.10)

---
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-03-31 17:38:01 +00:00
Yohan Boniface
5259cab027 chore: remove saving.js import added by mistake during rebase 2025-03-28 18:00:14 +01:00
Yohan Boniface
7ede27bf0f chore: top edit bar responsiveness
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
5807cfbbcd wip: move undo/redo buttons to the left
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
e41ad4e069 wip: allow to sync version restore
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
c933df585c wip: add test to make sure saving also save remote dirty datalayers 2025-03-28 18:00:14 +01:00
Yohan Boniface
50f2c08ecb wip: do not call document during JS unittests 2025-03-28 18:00:14 +01:00
Yohan Boniface
d61e045903 wip: allow to sync/undo filter added/removed from table editor 2025-03-28 18:00:14 +01:00
Yohan Boniface
6b2038e83e wip: permissions does not inherit from ServerStored anymore 2025-03-28 18:00:14 +01:00
Yohan Boniface
0389e9a185 wip: allow to undo/sync rules
When editing Rule(s), we are not editing the map data itself, but a
sort of proxy objects. This was done mainly because map.properties.rules
is an array of object, and at this time Leaflet.FormBuilder did not know
how to edit an array (something like properties.rules.0.condition).
Now that we integrated FormBuilder, it still does not know how to do this
but we could teach it, or find another way (real Proxy or use reference
to the original object in the Rule).
2025-03-28 18:00:14 +01:00
Yohan Boniface
a2e864ad73 wip: uncreated map should always appear as dirty 2025-03-28 18:00:14 +01:00
Yohan Boniface
d0fb85d552 wip: DataLayer does not inherit anymore from ServerStored 2025-03-28 18:00:14 +01:00
Yohan Boniface
fa83764c8b wip: allow DataLayer.clear to be sync and undone 2025-03-28 18:00:14 +01:00
Yohan Boniface
d438a007e4 wip: uMap does not inherit anymore from ServerStored
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
be52e7ca2f wip: remove not effective code
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
172de0e2d0 wip: add permissions related fields in schema
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
77da6425c2 wip: allow to mark an operation as not undoable
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
093ed061c1 wip: tests pass
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
5cb7cb2738 fixup: make sure to toggle remote client state at save too
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
dfdfae0080 wip: derive the dirty status from the undoManager
This should pave the way for removing the SaveManager.

Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
4fd066387d Update the tests and remove cancel edits
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
2025-03-28 18:00:14 +01:00
fa3ba46ca8 Add integration test for batch undo/redo 2025-03-28 18:00:14 +01:00
Yohan Boniface
cb46a5f875 Batch operations
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
cc2625bfac wip: undo redo
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
2025-03-28 18:00:14 +01:00
Yohan Boniface
8292608365 chore: fix HLC comparison
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
This change was made by biome, but it breaks unittests, not
sure why but let's revert for now.
2025-03-28 17:59:35 +01:00
Yohan Boniface
ae8cbf39ad
feat: display maps list as a grid now (#2590)
![image](https://github.com/user-attachments/assets/db9eafd1-b4ea-48a1-a359-3e55d0011f4b)
2025-03-28 16:15:51 +01:00
Yohan Boniface
7c5d821ec8
feat: layers selector in bottom bar (#2579) 2025-03-28 16:15:20 +01:00
Yohan Boniface
4e9e828c8f feat: display maps list as a grid now
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 16:05:11 +01:00
Yohan Boniface
79d60d0995 fix: update datalayers switcher when datalayer visibility changes
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 15:56:28 +01:00
Yohan Boniface
75457b6d5c
fix: do not fail when trying to read metadata of a missing geojson (#2592)
Some geojson have been removed by mistake time ago (cf #1003), when
someone tries to load a map referencing them, it was until recently just
showing an error message, but since recently we try to get the metadata
from it, and this will crash.
2025-03-28 15:28:13 +01:00
Yohan Boniface
8538db278d
feat: add titles in the text formatting dialog (#2584)
![image](https://github.com/user-attachments/assets/c90549b6-6081-4b1d-8b90-49c1df42ded2)

fix #813
2025-03-28 15:27:30 +01:00
Yohan Boniface
ba9e8ffe9b
chore: apply Biome check (#2588)
This is mostly imports ordering but there are a couple of subtleties 🐉 

There are still 9 errors before we can automatize the check with the CI!
2025-03-28 15:26:52 +01:00
Yohan Boniface
dcf5f1a763
fix: make sure umap.properties.slideshow is defined (#2583) 2025-03-28 15:25:19 +01:00
Yohan Boniface
41264e740f fix: do not fail when trying to read metadata of a missing geojson
Some geojson have been removed by mistake time ago (cf #1003), when someone
tries to load a map referencing them, it was until recently just
showing an error message, but since recently we try to get the
metadata from it, and this will crash.
2025-03-28 12:58:07 +01:00
Yohan Boniface
953b37a181 fixup: fix tests 2025-03-27 13:14:20 +01:00
Yohan Boniface
9eaf33c118 wip: only show layer selector if there are at least two layers 2025-03-27 13:11:24 +01:00
David Larlet
f2cde6af4e fixup: positionning of caption bar elements 2025-03-27 13:11:24 +01:00
Yohan Boniface
a4abecbd2c fixup: only show datalayers with inCaption=true in switcher 2025-03-27 13:11:24 +01:00
Yohan Boniface
254a2018f5 chore: use toggle to switch visibility in datalayer switcher 2025-03-27 13:11:24 +01:00
Yohan Boniface
3df52e002d wip 2025-03-27 13:11:24 +01:00
David Larlet
82208d618a
chore: apply Biome check 2025-03-26 14:37:56 -04:00
Yohan Boniface
64c7fe1ec9 fix: fix icon and button for version restore
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
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-26 18:05:01 +01:00
Yohan Boniface
e993aa7dbc chore: bump eslint ecmaVersion from 2020 to 2021 2025-03-26 11:30:08 +01:00
Yohan Boniface
be83eddbd0
chore: bump ruff from 0.11.0 to 0.11.2 (#2587)
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
2025-03-25 13:04:07 +01:00
dependabot[bot]
4df201107e
chore: bump ruff from 0.11.0 to 0.11.2
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.11.0 to 0.11.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.11.0...0.11.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-03-24 17:42:02 +00:00
Yohan Boniface
60f16cbc76
chore: remove old JS tests (#2585)
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
Those are not run since more than one year, so let's trash.

fix #2260
2025-03-20 11:50:48 +01:00
Yohan Boniface
2fa88c36f8
chore: bump ruff from 0.9.10 to 0.11.0 (#2582)
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
2025-03-19 08:22:32 +01:00
Yohan Boniface
47c5c0a2f0 chore: remove old JS tests
Those are not ran since more than one year, so let's trash.

fix #2260
2025-03-19 08:16:38 +01:00
Yohan Boniface
ecca66ccc2 feat: add titles in the text formatting dialog
fix #813
2025-03-19 08:14:33 +01:00
Yohan Boniface
360ca100ba fix: make sure umap.properties.slideshow is defined 2025-03-18 07:35:10 +01:00
dependabot[bot]
e548ec60f1
chore: bump ruff from 0.9.10 to 0.11.0
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.10 to 0.11.0.
- [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.10...0.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-18 05:58:20 +00:00
Yohan Boniface
190acbfaf0
chore: bump mkdocs-material from 9.6.7 to 9.6.9 (#2580)
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
2025-03-18 06:57:13 +01:00
Yohan Boniface
1370b1a0e8
chore: bump psycopg from 3.2.5 to 3.2.6 (#2581)
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
2025-03-17 21:27:56 +01:00
dependabot[bot]
aa75b323c8
chore: bump psycopg from 3.2.5 to 3.2.6
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.2.5 to 3.2.6.
- [Changelog](https://github.com/psycopg/psycopg/blob/master/docs/news.rst)
- [Commits](https://github.com/psycopg/psycopg/compare/3.2.5...3.2.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 18:07:46 +00:00
dependabot[bot]
1c00545095
chore: bump mkdocs-material from 9.6.7 to 9.6.9
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.6.7 to 9.6.9.
- [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.6.7...9.6.9)

---
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-03-17 18:07:38 +00:00
Yohan Boniface
54a3aae912
chore: order importers by name instead of id (#2578) 2025-03-17 16:46:22 +01:00
Yohan Boniface
9d4069d9ae chore: order importers by name instead of id
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-17 16:44:23 +01:00
Yohan Boniface
167bab70c5
feat: add experimental BAN importer (#2565)
This importer takes a CSV as input, sends it to the BAN API, and then
paste it into the import textarea, so it can be imported as usual.



https://github.com/user-attachments/assets/c13f8580-5c09-4b35-b092-baac664a57a1
2025-03-17 16:39:55 +01:00
Yohan Boniface
d3ed46356d feat: add experimental BAN importer
This importer takes a CSV as input, sends it to the BAN API, and
then paste it into the import textarea, so it can be imported as usual.

Co-authored-by: David Larlet <david@larlet.fr>
2025-03-17 16:20:57 +01:00
d72debdeb2
Docs: Add documentation for local docker development 2025-03-14 15:29:25 +01:00
33525a1837
Docs: Remove old references to websocket configuration 2025-03-14 15:29:25 +01:00
3e0a6b8f10
Update the Dockerfile to expose websockets
The Dockerfile now uses ASGI by default (via uvicorn) and embeds a
redis server that is used for the synchronization.
2025-03-14 15:29:17 +01:00
Yohan Boniface
dd5add96b4
fix: iconUrl field was broken on older browsers (#2575)
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
fix #2554
2025-03-14 15:07:14 +01:00
Yohan Boniface
f26536bff3 fix: iconUrl field was broken on older browsers
fix #2554
2025-03-14 14:50:47 +01:00
Yohan Boniface
1b058ce862
fixup: hide home button in edit mode (#2562)
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
The button is already on the edit bar.

Would be nicer to have a css transition (like for the bar itself), but
at least with this change it is not duplicated.
2025-03-13 16:52:41 +01:00
Yohan Boniface
a46430c420
fix: import iconUrl as absolute when possible (#2563)
This will only cover the cases where the icon is set at the map or at
the layer level, not the one of the marker itself.

cf #2552
2025-03-13 16:52:19 +01:00
Yohan Boniface
05e3f5ce3d
fix: use real redraw for datalayer, instead of hide/show (#2568)
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
The problem we've tried to fix is, during sync:
- peer A is editing a feature
- peer B changes the datalayer of this feature
- edit panel is closed for peer A
2025-03-12 17:41:18 +01:00
Yohan Boniface
c417e94698
fix(sync): fix tilelayer change not synced (#2569) 2025-03-12 17:39:19 +01:00
Yohan Boniface
e53d208d7c
fix: cast value to string before calling trim (#2567)
fix #2566
2025-03-12 17:36:42 +01:00
Yohan Boniface
e20648104b fix: fix tilelayer change not synced
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
2025-03-12 13:01:26 +01:00
Yohan Boniface
0c9d5325ba fix: use real redraw for datalayer, instead of hide/show
The problem we've tried to fix is, during sync:
- peer A is editing a feature
- peer B changes the datalayer of this feature
- edit panel is closed for peer A

Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
2025-03-12 12:23:54 +01:00
Yohan Boniface
90be14ae89 fix: cast value to string before calling trim
fix #2566
2025-03-11 21:43:21 +01:00
Yohan Boniface
003b25d5e0 fix: import iconUrl as absolute when possible
This will only cover the cases where the icon is set at the map or
at the layer level, not the one of the marker itself.

cf #2552
2025-03-11 16:20:58 +01:00
Yohan Boniface
ef80396784 fixup: hide home button in edit mode
The button is already on the edit bar.

Would be nicer to have a css transition, but at least with this
change it is not duplicated.
2025-03-11 15:32:01 +01:00
Yohan Boniface
d85fc648b1
feat: add new "Back to home" icon (#2551)
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
![image](https://github.com/user-attachments/assets/415a7e36-fb34-459e-8890-cd3c6830512b)
2025-03-10 22:31:42 +01:00
Yohan Boniface
b037915aae
chore: bump django-storages[s3] from 1.14.4 to 1.14.5 (#2560) 2025-03-10 22:06:29 +01:00
Yohan Boniface
17bbbe38bd
chore: new icon, colors and title for search buttons (#2556)
![image](https://github.com/user-attachments/assets/eca715dd-9450-4602-9e76-e8835d228df4)
2025-03-10 22:05:39 +01:00
Yohan Boniface
6cbe8cb9ad
chore: bump pytest from 8.3.4 to 8.3.5 (#2559) 2025-03-10 22:04:29 +01:00
dependabot[bot]
28741a9c94
chore: bump pytest from 8.3.4 to 8.3.5
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.4 to 8.3.5.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.4...8.3.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 20:37:28 +00:00
Yohan Boniface
1ae1a6c51b
chore: bump moto[s3] from 5.0.28 to 5.1.1 (#2557) 2025-03-10 21:36:17 +01:00
Yohan Boniface
d5fb5b02c0
chore: bump ruff from 0.9.9 to 0.9.10 (#2558) 2025-03-10 21:35:58 +01:00
Yohan Boniface
4be64ae918
chore: bump mkdocs-material from 9.6.4 to 9.6.7 (#2561) 2025-03-10 21:35:40 +01:00
dependabot[bot]
85e9bcfa7c
chore: bump mkdocs-material from 9.6.4 to 9.6.7
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.6.4 to 9.6.7.
- [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.6.4...9.6.7)

---
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-03-10 18:14:57 +00:00
dependabot[bot]
3cf0be5244
chore: bump django-storages[s3] from 1.14.4 to 1.14.5
Bumps [django-storages[s3]](https://github.com/jschneier/django-storages) from 1.14.4 to 1.14.5.
- [Changelog](https://github.com/jschneier/django-storages/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jschneier/django-storages/compare/1.14.4...1.14.5)

---
updated-dependencies:
- dependency-name: django-storages[s3]
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 18:14:52 +00:00
dependabot[bot]
5ebb840b94
chore: bump ruff from 0.9.9 to 0.9.10
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.9 to 0.9.10.
- [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.9...0.9.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 18:14:38 +00:00
dependabot[bot]
9e9369f14b
chore: bump moto[s3] from 5.0.28 to 5.1.1
Bumps [moto[s3]](https://github.com/getmoto/moto) from 5.0.28 to 5.1.1.
- [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.28...5.1.1)

---
updated-dependencies:
- dependency-name: moto[s3]
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 18:14:26 +00:00
Yohan Boniface
bfb17788a4 chore: new icon, colors and title for search buttons 2025-03-10 19:06:39 +01:00
Yohan Boniface
3b195e562a
feat: add more users counts in /stats/ (#2555)
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
2025-03-10 16:56:29 +01:00
Yohan Boniface
8599199afa feat: add more users counts in /stats/
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-10 16:38:53 +01:00
Yohan Boniface
7a2bf9fc4c fixup: let the importer deal with getting the OSM url in search
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
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-07 17:58:56 +01:00
Yohan Boniface
b3e39bf654 fixup: square buttons in search results
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-07 17:40:16 +01:00
Yohan Boniface
89e2a01d60 fixup: do not close panel when clicking on search edit buttons
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-07 17:39:42 +01:00
Yohan Boniface
0def3292e1 fix: only display search edit tools in edit mode
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-07 17:26:46 +01:00
Yohan Boniface
beae551367 feat: add new "Back to home" icon
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-07 17:20:35 +01:00
Yohan Boniface
4ccd1e6799 changelog 2025-03-07 16:31:14 +01:00
Yohan Boniface
d4885f386a i18n 2025-03-07 16:24:11 +01:00
Yohan Boniface
869db90b28 chore: update oauth provider deprecation message
Mention that it's important to logout and login again to have the
new provider replace the old one in the session
2025-03-07 16:17:26 +01:00
David Larlet
33cbe1ab71
a11y: turn embeded maps into inert elements (#2533)
One of the side-effects is to make the content of the map un-focusable
but we also loose the ability to interact with the map itself.
2025-03-07 10:10:29 -05:00
Yohan Boniface
8bad104803
chore: refactor search UX (#2545)
This is just the UI part of #419


![image](https://github.com/user-attachments/assets/88c76b9f-b1cd-48fa-b20e-caf1c044dbf8)
2025-03-07 16:05:01 +01:00
David Larlet
1fd34be300
chore: bump django from 5.1.6 to 5.1.7 (#2546)
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
Bumps [django](https://github.com/django/django) from 5.1.6 to 5.1.7.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="691e945530"><code>691e945</code></a>
[5.1.x] Bumped version for 5.1.7 release.</li>
<li><a
href="8dbb44d342"><code>8dbb44d</code></a>
[5.1.x] Fixed CVE-2025-26699 -- Mitigated potential DoS in wordwrap
template ...</li>
<li><a
href="d7dc1f6db0"><code>d7dc1f6</code></a>
[5.1.x] Fixed typo in docs/ref/checks.txt.</li>
<li><a
href="dbd94e7ac9"><code>dbd94e7</code></a>
[5.1.x] Fixed <a
href="https://redirect.github.com/django/django/issues/36227">#36227</a>
-- Fixed outdated PostgreSQL documentation links.</li>
<li><a
href="cc405e1546"><code>cc405e1</code></a>
[5.1.x] Fixed <a
href="https://redirect.github.com/django/django/issues/36128">#36128</a>
-- Clarified auto-generated unique constraint on m2m thr...</li>
<li><a
href="03ace756ea"><code>03ace75</code></a>
[5.1.x] Fixed <a
href="https://redirect.github.com/django/django/issues/36217">#36217</a>
-- Restored pre_save/post_save signal emission via LogEn...</li>
<li><a
href="76a9f12b60"><code>76a9f12</code></a>
[5.1.x] Added some heading labels to to docs/topics/cache.txt.</li>
<li><a
href="558c616c95"><code>558c616</code></a>
[5.1.x] Added stub release notes and release date for 5.1.7, 5.0.13, and
4.2.20.</li>
<li><a
href="11243cc8f3"><code>11243cc</code></a>
[5.1.x] Added security guideline on reasonable size limitations when
renderin...</li>
<li><a
href="b80288a16d"><code>b80288a</code></a>
[5.1.x] Added security reporting guidelines.</li>
<li>Additional commits viewable in <a
href="https://github.com/django/django/compare/5.1.6...5.1.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=django&package-manager=pip&previous-version=5.1.6&new-version=5.1.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/umap-project/umap/network/alerts).

</details>
2025-03-06 18:32:52 -05:00
dependabot[bot]
6d324cdb13
chore: bump django from 5.1.6 to 5.1.7
Bumps [django](https://github.com/django/django) from 5.1.6 to 5.1.7.
- [Commits](https://github.com/django/django/compare/5.1.6...5.1.7)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-06 22:58:33 +00:00
Yohan Boniface
782386bad4 feat: display a target on hover on search results
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-06 18:51:58 +01:00
Yohan Boniface
ae5bc9746c feat: allow to import full geometries from search results
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-06 17:03:13 +01:00
Yohan Boniface
a044bfd672 chore: refactor search UX
cf #419
2025-03-06 15:48:51 +01:00
Yohan Boniface
188a0d6e98 chore: bump Leaflet.Photon
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
To display state in results, cf #419
2025-03-06 09:38:51 +01:00
Yohan Boniface
b7cce7079d
chore: bump social-auth-app-django from 5.4.2 to 5.4.3 (#2518)
Some checks are pending
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
2025-03-05 17:50:16 +01:00
dependabot[bot]
0394f1f45d
chore: bump social-auth-app-django from 5.4.2 to 5.4.3
Bumps [social-auth-app-django](https://github.com/python-social-auth/social-app-django) from 5.4.2 to 5.4.3.
- [Release notes](https://github.com/python-social-auth/social-app-django/releases)
- [Changelog](https://github.com/python-social-auth/social-app-django/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python-social-auth/social-app-django/compare/5.4.2...5.4.3)

---
updated-dependencies:
- dependency-name: social-auth-app-django
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-05 16:23:20 +00:00
Yohan Boniface
0d6326a7aa
chore: bump social-auth-core from 4.5.4 to 4.5.6 (#2517)
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
2025-03-05 17:22:07 +01:00
Yohan Boniface
9414d6220c
chore: bump psycopg from 3.2.4 to 3.2.5 (#2536)
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.2.4 to 3.2.5.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Python 3.3.0 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Drop support for Python 3.8.</li>
</ul>
<h2>Current release</h2>
<p>Psycopg 3.2.5
^^^^^^^^^^^^^</p>
<ul>
<li>3x faster UUID loading thanks to C implementation
(🎟️<code>[#447](https://github.com/psycopg/psycopg/issues/447),
[#998](https://github.com/psycopg/psycopg/issues/998)</code>).</li>
</ul>
<p>Psycopg 3.2.4
^^^^^^^^^^^^^</p>
<ul>
<li>Don't lose notifies received whilst the
<code>~Connection.notifies()</code> iterator
is not running
(🎫<code>[#962](https://github.com/psycopg/psycopg/issues/962)</code>).</li>
<li>Make sure that the notifies callback is called during the use of the
<code>~Connection.notifies()</code> generator
(🎫<code>[#972](https://github.com/psycopg/psycopg/issues/972)</code>).</li>
<li>Raise the correct error returned by the database (such as
<code>!AdminShutdown</code>
or <code>!IdleInTransactionSessionTimeout</code>) instead of a generic
<code>OperationalError</code> when a server error causes a client
disconnection

(🎫<code>[#988](https://github.com/psycopg/psycopg/issues/988)</code>).</li>
<li>Build macOS dependencies from sources instead using the Homebrew
versions
in order to avoid problems with <code>MACOSX_DEPLOYMENT_TARGET</code>
(🎫<code>[#858](https://github.com/psycopg/psycopg/issues/858)</code>).</li>
<li>Bump libpq to 17.2 in Linux and macOS binary packages.</li>
<li>Bump libpq to 16.4 in Windows binary packages, using the <code>vcpkg
library</code>__

(🎫<code>[#966](https://github.com/psycopg/psycopg/issues/966)</code>).</li>
</ul>
<p>.. __: <a
href="https://vcpkg.io/en/package/libpq">https://vcpkg.io/en/package/libpq</a></p>
<p>Psycopg 3.2.3
^^^^^^^^^^^^^</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="664b2a12d6"><code>664b2a1</code></a>
chore: bump psycopg package version to 3.2.5</li>
<li><a
href="cd6589bf35"><code>cd6589b</code></a>
chore: bump build libraries</li>
<li><a
href="68f8603ec6"><code>68f8603</code></a>
Merge branch 'cython-uuid-3.2' into maint-3.2</li>
<li><a
href="dd1cefc3ee"><code>dd1cefc</code></a>
docs: mention UUID speedup in release news</li>
<li><a
href="7f950cb843"><code>7f950cb</code></a>
chore(c): remove C UUIDDumper and UUIDBinaryDumper</li>
<li><a
href="393e162fc3"><code>393e162</code></a>
perf(uuid): speed up UUID creation using a writable subclass</li>
<li><a
href="57a3889949"><code>57a3889</code></a>
perf(c): use PyObject_CallFunctionObjArgs in UUIDBinaryLoader</li>
<li><a
href="88f73fedd2"><code>88f73fe</code></a>
perf(c): use PyObject_CallFunctionObjArgs in UUIDLoader</li>
<li><a
href="3a9ade78e7"><code>3a9ade7</code></a>
test(c): test UUID.<strong>slots</strong></li>
<li><a
href="811cb51123"><code>811cb51</code></a>
perf(c): Use hex_to_int_map in UUIDLoader</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.2.4...3.2.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.2.4&new-version=3.2.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2025-03-05 17:21:51 +01:00
Yohan Boniface
5d1f5de551
feat: expose active sessions in stats endpoint (#2544) 2025-03-05 16:41:44 +01:00
Yohan Boniface
1981f73212 feat: expose active sessions in stats endpoint 2025-03-05 10:02:42 +01:00
Yohan Boniface
9974852975 2.9.2
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
2025-03-04 15:56:23 +01:00
Yohan Boniface
fb2fd217ab
fix: be defensive when getting the backend name from the session (#2540)
Seems that in some situation it is not defined.

We have this error in Sentry, but I'm not able to reproduce myself to
get a better context:


https://umap.sentry.io/issues/6351694806/?alert_rule_id=14960738&alert_timestamp=1741028858715&alert_type=email&environment=osmfr&notification_uuid=2c437997-d14d-4e0f-a62f-55bd19739ad2&project=4506656504020992&referrer=alert_email
2025-03-04 15:51:05 +01:00
Yohan Boniface
86d60f0b8e
fix: measure/drawing tooltip was misplaced (#2541)
Broken since 70f87d8636

fix #2539

Before:


![image](https://github.com/user-attachments/assets/5e68628c-a9f7-422a-b4b9-dd5daf0d77cd)


After:


![image](https://github.com/user-attachments/assets/c1857ab2-a8d1-43eb-a3d0-11bb24286bd6)
2025-03-04 15:48:04 +01:00
Yohan Boniface
3297296d59 fix: measure/drawing tooltip was misplaced
Since 70f87d8636

fix #2539
2025-03-04 11:52:06 +01:00
Yohan Boniface
470fc14d6d fix: be defensive when getting the backend name from the session
Seems that in some situation it is not defined.
2025-03-04 11:20:49 +01:00
Yohan Boniface
c0f7e9d50d 2.9.1
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
2025-03-03 18:40:47 +01:00
Yohan Boniface
34259f6234 i18n 2025-03-03 18:39:08 +01:00
Yohan Boniface
fc7ed42e2e
chore: be more persuasive in deprecating twitter login backend (#2538)
- 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
2025-03-03 18:35:48 +01:00
David Larlet
74504df64a
chore: bump isort from 6.0.0 to 6.0.1 (#2535) 2025-03-03 12:26:54 -05:00
David Larlet
9e91a4537d
chore: bump ruff from 0.9.6 to 0.9.9 (#2537)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.6 to 0.9.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.9.9</h2>
<h2>Release Notes</h2>
<h3>Preview features</h3>
<ul>
<li>Fix caching of unsupported-syntax errors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16425">#16425</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Only show unsupported-syntax errors in editors when preview mode is
enabled (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16429">#16429</a>)</li>
</ul>
<h2>Contributors</h2>
<ul>
<li><a
href="https://github.com/InSyncWithFoo"><code>@​InSyncWithFoo</code></a></li>
<li><a
href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
<li><a
href="https://github.com/dhruvmanila"><code>@​dhruvmanila</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
</ul>
<h2>Install ruff 0.9.9</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<pre lang="sh"><code>powershell -ExecutionPolicy ByPass -c &quot;irm
https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-installer.ps1
| iex&quot;
</code></pre>
<h2>Download ruff 0.9.9</h2>
<table>
<thead>
<tr>
<th>File</th>
<th>Platform</th>
<th>Checksum</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-apple-darwin.tar.gz">ruff-aarch64-apple-darwin.tar.gz</a></td>
<td>Apple Silicon macOS</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-apple-darwin.tar.gz">ruff-x86_64-apple-darwin.tar.gz</a></td>
<td>Intel macOS</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-pc-windows-msvc.zip">ruff-aarch64-pc-windows-msvc.zip</a></td>
<td>ARM64 Windows</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-pc-windows-msvc.zip">ruff-i686-pc-windows-msvc.zip</a></td>
<td>x86 Windows</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-pc-windows-msvc.zip.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-pc-windows-msvc.zip">ruff-x86_64-pc-windows-msvc.zip</a></td>
<td>x64 Windows</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-gnu.tar.gz">ruff-aarch64-unknown-linux-gnu.tar.gz</a></td>
<td>ARM64 Linux</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-unknown-linux-gnu.tar.gz">ruff-i686-unknown-linux-gnu.tar.gz</a></td>
<td>x86 Linux</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64-unknown-linux-gnu.tar.gz">ruff-powerpc64-unknown-linux-gnu.tar.gz</a></td>
<td>PPC64 Linux</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64le-unknown-linux-gnu.tar.gz">ruff-powerpc64le-unknown-linux-gnu.tar.gz</a></td>
<td>PPC64LE Linux</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-powerpc64le-unknown-linux-gnu.tar.gz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-s390x-unknown-linux-gnu.tar.gz">ruff-s390x-unknown-linux-gnu.tar.gz</a></td>
<td>S390x Linux</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-s390x-unknown-linux-gnu.tar.gz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-unknown-linux-gnu.tar.gz">ruff-x86_64-unknown-linux-gnu.tar.gz</a></td>
<td>x64 Linux</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-x86_64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-armv7-unknown-linux-gnueabihf.tar.gz">ruff-armv7-unknown-linux-gnueabihf.tar.gz</a></td>
<td>ARMv7 Linux</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-armv7-unknown-linux-gnueabihf.tar.gz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-musl.tar.gz">ruff-aarch64-unknown-linux-musl.tar.gz</a></td>
<td>ARM64 MUSL Linux</td>
<td><a
href="https://github.com/astral-sh/ruff/releases/download/0.9.9/ruff-aarch64-unknown-linux-musl.tar.gz.sha256">checksum</a></td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.9.9</h2>
<h3>Preview features</h3>
<ul>
<li>Fix caching of unsupported-syntax errors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16425">#16425</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Only show unsupported-syntax errors in editors when preview mode is
enabled (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16429">#16429</a>)</li>
</ul>
<h2>0.9.8</h2>
<h3>Preview features</h3>
<ul>
<li>Start detecting version-related syntax errors in the parser (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16090">#16090</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>pylint</code>] Mark fix unsafe (<code>PLW1507</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16343">#16343</a>)</li>
<li>[<code>pylint</code>] Catch <code>case np.nan</code>/<code>case
math.nan</code> in <code>match</code> statements (<code>PLW0177</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/16378">#16378</a>)</li>
<li>[<code>ruff</code>] Add more Pydantic models variants to the list of
default copy semantics (<code>RUF012</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16291">#16291</a>)</li>
</ul>
<h3>Server</h3>
<ul>
<li>Avoid indexing the project if <code>configurationPreference</code>
is <code>editorOnly</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16381">#16381</a>)</li>
<li>Avoid unnecessary info at non-trace server log level (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16389">#16389</a>)</li>
<li>Expand <code>ruff.configuration</code> to allow inline config (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16296">#16296</a>)</li>
<li>Notify users for invalid client settings (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16361">#16361</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>Add <code>per-file-target-version</code> option (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16257">#16257</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[<code>refurb</code>] Do not consider docstring(s)
(<code>FURB156</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16391">#16391</a>)</li>
<li>[<code>flake8-self</code>] Ignore attribute accesses on
instance-like variables (<code>SLF001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16149">#16149</a>)</li>
<li>[<code>pylint</code>] Fix false positives, add missing methods, and
support positional-only parameters (<code>PLE0302</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16263">#16263</a>)</li>
<li>[<code>flake8-pyi</code>] Mark <code>PYI030</code> fix unsafe when
comments are deleted (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16322">#16322</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Fix example for <code>S611</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16316">#16316</a>)</li>
<li>Normalize inconsistent markdown headings in docstrings (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16364">#16364</a>)</li>
<li>Document MSRV policy (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16384">#16384</a>)</li>
</ul>
<h2>0.9.7</h2>
<h3>Preview features</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="091d0af2ab"><code>091d0af</code></a>
Bump version to Ruff 0.9.9 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16434">#16434</a>)</li>
<li><a
href="3d72138740"><code>3d72138</code></a>
Check <code>LinterSettings::preview</code> for version-related syntax
errors (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16429">#16429</a>)</li>
<li><a
href="4a23756024"><code>4a23756</code></a>
Avoid caching files with unsupported syntax errors (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16425">#16425</a>)</li>
<li><a
href="af62f7932b"><code>af62f79</code></a>
Prioritize &quot;bug&quot; label for changelog sections (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16433">#16433</a>)</li>
<li><a
href="0ced8d053c"><code>0ced8d0</code></a>
[<code>flake8-copyright</code>] Add links to applicable options
(<code>CPY001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16421">#16421</a>)</li>
<li><a
href="a8e171f82c"><code>a8e171f</code></a>
Fix string-length limit in documentation for PYI054 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16432">#16432</a>)</li>
<li><a
href="cf83584abb"><code>cf83584</code></a>
Show version-related syntax errors in the playground (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16419">#16419</a>)</li>
<li><a
href="764aa0e6a1"><code>764aa0e</code></a>
Allow passing <code>ParseOptions</code> to inline tests (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16357">#16357</a>)</li>
<li><a
href="568cf88c6c"><code>568cf88</code></a>
Bump version to 0.9.8 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16414">#16414</a>)</li>
<li><a
href="040071bbc5"><code>040071b</code></a>
[red-knot] Ignore surrounding whitespace when looking for `&lt;!--
snapshot-diag...</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.9.6...0.9.9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruff&package-manager=pip&previous-version=0.9.6&new-version=0.9.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2025-03-03 12:26:28 -05: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
dependabot[bot]
1dc468c350
chore: bump ruff from 0.9.6 to 0.9.9
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.6 to 0.9.9.
- [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.6...0.9.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 17:19:47 +00:00
dependabot[bot]
434de70c02
chore: bump psycopg from 3.2.4 to 3.2.5
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.2.4 to 3.2.5.
- [Changelog](https://github.com/psycopg/psycopg/blob/master/docs/news.rst)
- [Commits](https://github.com/psycopg/psycopg/compare/3.2.4...3.2.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 17:19:37 +00:00
dependabot[bot]
e9389723e8
chore: bump isort from 6.0.0 to 6.0.1
Bumps [isort](https://github.com/PyCQA/isort) from 6.0.0 to 6.0.1.
- [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/6.0.0...6.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 17:19:32 +00:00
Yohan Boniface
2cf3a4e6a3 fix: honour error status in alerts
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-03 16:48:44 +01:00
Yohan Boniface
bc1eaa05c9 chore: use a French quote in translation
To prevent escape from Django, as we then use it in a textContent
property for alerts.

Co-authored-by: David Larlet <david@larlet.fr>
2025-03-03 16:47:48 +01:00
Yohan Boniface
420647906d doc: fix setting name for DEPRECATED_AUTHENTICATION_BACKENDS
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-03 16:47:09 +01:00
Yohan Boniface
ce024d57fd 2.9.0
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
2025-03-03 15:49:27 +01:00
David Larlet
5eab942f25
a11y: switch to better contrasted links (#2532)
And underline for external links otherwise the new green color is too
close to the text one to clearly identify links.
2025-03-03 09:36:50 -05:00
Yohan Boniface
9e791a0ab4
fix: feature edit status not disabled on hide (#2534) 2025-03-03 15:34:49 +01:00
Yohan Boniface
26fe653456 i18n 2025-03-03 15:13:03 +01:00
David Larlet
ea58f93940
a11y: update URLs and (underlined) styles for help 2025-03-03 09:10:37 -05:00
Yohan Boniface
436c083744 fix: feature edit status not disabled on hide 2025-03-03 15:09:34 +01:00
Yohan Boniface
ea00d4fc32 chore: remove _marked_for_deletion pattern
We think it's useless now that we use "editable:edited" event everywhere
(vs using the "editable:commit" which was triggered also after a delete,
when closing the edit panel)
2025-03-03 15:09:07 +01:00
David Larlet
742a23b668
a11y: set an aria-label for unlabelled search input (#2531) 2025-03-03 09:04:31 -05:00
David Larlet
abe49cc1ba
a11y: turn embeded maps into inert elements
One of the side-effects is to make the content of the map un-focusable but we also loose the ability to interact with the map itself.
2025-02-28 16:18:28 -05:00
David Larlet
4f5d37b676
a11y: switch to better contrasted links
And underline for external links otherwise the new green color is too close to the text one to clearly identify links.
2025-02-28 14:05:26 -05:00
David Larlet
949a266437
a11y: set an aria-label for unlabelled search input 2025-02-28 13:58:40 -05:00
Yohan Boniface
48daa0a77f fix: do not show tooltip with only spaces
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
Co-authored-by: David Larlet <david@larlet.fr>
2025-02-27 19:28:38 +01:00
Yohan Boniface
ba20f5791c fix: shift-click on a path should toggle edit
This was broken in 4adc558560

Co-authored-by: David Larlet <david@larlet.fr>
2025-02-27 19:21:43 +01:00
Yohan Boniface
0fe2103b71 chore: bump Leaflet.Editable and DOMPurify 2025-02-27 17:12:02 +01:00
dependabot[bot]
c5eac8a8a9
chore: bump social-auth-core from 4.5.4 to 4.5.6
Bumps [social-auth-core](https://github.com/python-social-auth/social-core) from 4.5.4 to 4.5.6.
- [Release notes](https://github.com/python-social-auth/social-core/releases)
- [Changelog](https://github.com/python-social-auth/social-core/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python-social-auth/social-core/compare/4.5.4...4.5.6)

---
updated-dependencies:
- dependency-name: social-auth-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-27 14:49:50 +00:00
Yohan Boniface
55d505e7d8
chore: bump rjsmin from 1.2.3 to 1.2.4 (#2519) 2025-02-27 15:48:37 +01:00
Yohan Boniface
14e90a1a0f
feat: add a quick link to layer's permalink (#2529)
This will open a new page with only this given layer shown.


![image](https://github.com/user-attachments/assets/4db637b9-03f4-4b05-9ce3-6656aba11786)
2025-02-27 15:36:45 +01:00
Yohan Boniface
e919c5f168
fix(sync): make datalayer upsert idempotent (#2528)
That fix does not really fix the original issue, but it makes it
impactless, and I think it's safer anyway to have upsert idempotent.

The pattern to reproduce is:
- peer A create a synced map, add a datalayer, save it
- peer B loads the map, click on edit
- at this time, peer B have twice the datalayer data, once from the
server AND once from the sync

So a better fix would be to make that peer B send a meaningfull HLC to
peer A I guess.
For this we may save the last HLC is the map properties, or maybe try to
merge the "reference_version" and the HLC.
2025-02-27 15:32:09 +01:00
Yohan Boniface
b1076dcb7b
fix: make sure we sync a line when hitting esc while drawing (#2526)
I first tried to handle this on Leaflet.Editable side, to make it fire
the "editable:edited" event we use to trigger the sync, but deciding
what to do with a feature on escape needs some decisions that seems hard
to implement in a generic way in Leaflet.Editable.
We call stopDrawing, which then calls cancelDrawing, so here one need to
decide if cancelDrawing should keep the already drawn line (but cancel
the point being drawn) or cancel everything.
This is why I end up making this change in uMap itself.
2025-02-27 15:26:54 +01:00
Yohan Boniface
69ca89a6ba
fix: prevent client to open two websocket connections (#2524)
To reproduce:
- create a map
- saved it
- change the "syncEnabled" setting to on
- save again
- open another tab with this map
- switch on edit mode

In this case, the second client will try to authenticate:
- once switch on edit mode
- and once receiving the operation message from peer A about the
syncEnabled (which calls render, which calls initSyncEngine in in this
case)

I think we want to keep render to call initSyncEngine, so if a map owner
switch off the syncEnabled setting, this will (should) disconnect the
other peers.
2025-02-27 15:20:16 +01:00
Yohan Boniface
df0faa75aa feat: add a quick link to layer's permalink
This will open a new page with only this given layer shown.
2025-02-26 15:38:48 +01:00
Yohan Boniface
fc6ea191cc
chore: do not try to disconnect ws if not connected (#2527)
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
cf https://umap.sentry.io/issues/6331841272/
2025-02-26 15:18:34 +01:00
Yohan Boniface
b400ade44b fix(sync): make datalayer upsert idempotent
That fix does not really fix the original issue, but it make it impactless.

The pattern is:
- peer A create a synced map, add a datalayer, save it
- peer B loads the map, click on edit
- at this time, peer B have twice the datalayer data, once from the server
  AND once from the sync

So a better fix would be to make that peer B send a meaningfull HLC to
peer A I guess.
For this we may save the last HLC is the map properties, or maybe try
to merge the "reference_version" and the HLC.
2025-02-26 11:55:21 +01:00
Yohan Boniface
dc35039af8 chore: do not try to disconnect ws if not connected
cf https://umap.sentry.io/issues/6331841272/
2025-02-26 09:41:03 +01:00
Yohan Boniface
9858fc2190 fix: make sure we sync a line when hitting esc while drawing
I first tried to handle this on Leaflet.Editable side, to make
it fire the "editable:edited" event we use to trigger the sync,
but deciding what to do with a feature on escape needs some
decisions that seems hard to implement in a generic way in
Leaflet.Editable.
We call stopDrawing, which then calls cancelDrawing, so here
one need to decide if cancelDrawing should keep the already
drawn line (but cancel the point being drawn) or cancel
everything.
This is why I end up making this change in uMap itself.
2025-02-25 17:17:49 +01:00
Yohan Boniface
5ddd973eae fix: prevent client to open two websocket connections
To reproduce:
- create a map
- saved it
- change the "syncEnabled" setting to on
- save again
- open another tab with this map
- switch on edit mode

In this case, the second client will try to authenticate:
- once switch on edit mode
- and once receiving the operation message from peer A about the
  syncEnabled (which calls render, which calls initSyncEngine in
  in this case)

I think we want to keep render to call initSyncEngine, so if a map
owner switch off the syncEnabled setting, this will (should) disconnect
the other peers.
2025-02-25 08:33:14 +01:00
Yohan Boniface
6e40388f7d
chore: use template for map advanced buttons (and fix icons) (#2523)
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
Before:


![image](https://github.com/user-attachments/assets/fc8dd27f-aa03-4eaf-ba21-e041b0548e51)

After:


![image](https://github.com/user-attachments/assets/2b9b15ca-542b-4114-b57c-c88189a7260a)
2025-02-25 08:25:24 +01:00
Yohan Boniface
ab571925ff chore: use template for layer advanced buttons 2025-02-24 17:19:46 +01:00
Yohan Boniface
a70e608e42 chore: use template for map advanced buttons 2025-02-24 17:05:54 +01:00
dependabot[bot]
d342336930
chore: bump rjsmin from 1.2.3 to 1.2.4
Bumps [rjsmin](https://github.com/ndparker/rjsmin) from 1.2.3 to 1.2.4.
- [Changelog](https://github.com/ndparker/rjsmin/blob/master/CHANGES)
- [Commits](https://github.com/ndparker/rjsmin/compare/1.2.3...1.2.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 14:09:11 +00:00
Yohan Boniface
4c76f8dbde
chore: bump dompurify from 3.1.7 to 3.2.4 (#2521)
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
2025-02-24 15:08:22 +01:00
Yohan Boniface
b417d71fb7
chore: bump rcssmin from 1.2.0 to 1.2.1 (#2515) 2025-02-24 15:07:55 +01:00
dependabot[bot]
be267504da
chore: bump dompurify from 3.1.7 to 3.2.4
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.1.7 to 3.2.4.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.1.7...3.2.4)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 13:23:19 +00:00
Yohan Boniface
0e12efbca6
chore: bump mkdocs-material from 9.6.3 to 9.6.4 (#2516) 2025-02-24 14:22:12 +01:00
dependabot[bot]
0dfe1ac29a
chore: bump mkdocs-material from 9.6.3 to 9.6.4
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.6.3 to 9.6.4.
- [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.6.3...9.6.4)

---
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-02-17 17:50:05 +00:00
dependabot[bot]
256613512b
chore: bump rcssmin from 1.2.0 to 1.2.1
Bumps [rcssmin](https://github.com/ndparker/rcssmin) from 1.2.0 to 1.2.1.
- [Changelog](https://github.com/ndparker/rcssmin/blob/master/CHANGES)
- [Commits](https://github.com/ndparker/rcssmin/compare/1.2.0...1.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-17 17:49:57 +00:00
Yohan Boniface
fcac4df30b
chore: use our contexmenu class for inplace toolbar (#2510)
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
And remove Leaflet.Toolbar dependency.
This also teach ContextMenu how to display icons instead of text and how
to render in horizontal orientation instead of vertical.

Before:

![image](https://github.com/user-attachments/assets/196b17c4-ec6c-4023-b5bf-32033caf4408)

After:


![image](https://github.com/user-attachments/assets/29ad8628-01a6-4028-a99a-bc679c5db18d)

We've lost the bottom tip in the process, should I add this to the
ContextMenu class ?

Also, the automatic border for the focused button is a bit noisy imho,
not sure how to deal with that.
2025-02-14 17:25:13 +01:00
Yohan Boniface
b107de3421
fix(sync): wait for websocket full connection (#2503)
Websocket has now a "connect" method, which is a promise, that yields
"onconnect", so the engine can wait for it before proceding.
2025-02-14 17:22:57 +01:00
Yohan Boniface
b86db00e88
fix(sync): try to reconnect after network error when getting token (#2502)
Otherwise, if the token request fail, the process will be stopped and we
will never try to reconnect.
2025-02-14 17:22:41 +01:00
Yohan Boniface
244e637acc
chore: sync save state (#2487)
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.

ping @almet if you're around and wanna have a fresh look. :)
2025-02-14 17:17:59 +01:00
Yohan Boniface
c00de1a457
fix: use default value from schema for non inheritable fields (#2513)
Eg. moreControl
2025-02-14 17:17:15 +01:00
Yohan Boniface
48b4d61cd0 chore: add an hover on dark context menu buttons
Co-authored-by: David Larlet <david@larlet.fr>
2025-02-14 17:16:35 +01:00
Yohan Boniface
b90328f65e
feat: make vertex icons bigger (and round) (#2506)
Before:
![Screenshot From 2025-02-11
13-59-40](https://github.com/user-attachments/assets/013998f1-d9f7-4129-95b8-0ab969eee018)

After:
![Screenshot From 2025-02-11
13-59-12](https://github.com/user-attachments/assets/7d279db3-3fe2-41cb-bdc4-9255f625895d)

(Size unchanged on mobile)

cf #673
2025-02-14 16:52:54 +01:00
Yohan Boniface
2089d3b0c6 fix: use default value from schema for non inheritable fields
Eg. moreControl

Co-authored-by: David Larlet <david@larlet.fr>
2025-02-14 16:44:11 +01:00
Yohan Boniface
52b4244333 chore: add missing default values in schema 2025-02-14 16:03:15 +01:00
Yohan Boniface
1b3852d0e8 i18n 2025-02-14 16:03:05 +01:00
Yohan Boniface
20b1dd6f26 i18n
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
2025-02-14 15:38:31 +01:00
Yohan Boniface
4adc558560 chore: use our contexmenu class for inplace toolbar
And remove Leaflet.Toolbar dependency.
This also teach ContextMenu how to display icons instead of
text and how to render in horizontal orientation instead of
vertical.
2025-02-12 14:59:43 +01:00
Yohan Boniface
fb6df6f955
feat: make the tooltip sticky in hover mode for paths (#2507)
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
Until now, it was displayed on the path (line or polygon) "center". So
when zoomed in, if the center is not on the screen, the tooltip will not
be visible.
2025-02-11 18:01:01 +01:00
Yohan Boniface
04966cc068 feat: make the tooltip sticky in hover mode for paths
Until now, it was displayed on the path (line or polygon)
"center". So when zoomed in, if the center is not on the
screen, the tooltip will not be visible.
2025-02-11 15:51:43 +01:00
Yohan Boniface
c71a6aafdb
fix: do not display an error for an empty CSV (#2505)
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
fix #577
fix #2491
fix #1546
2025-02-11 15:00:16 +01:00
Yohan Boniface
9c418afe37
chore: run the CI even for PR not targetting master (and remove doc build twice) (#2504)
Replaces #2493
2025-02-11 14:59:31 +01:00
Yohan Boniface
008a996bea feat: make vertex icons bigger (and round) 2025-02-11 14:00:09 +01:00
Yohan Boniface
8e13a15645 fix: do not display an error for an empty CSV
fix #577
fix #2491
fix #1546
2025-02-11 13:45:40 +01:00
Yohan Boniface
de3be9bb97 chore: only build doc once in the CI
I've chosen to keep the one in the "lint" step, instead of a
dedicated step, so to prevent one more container to be built at
each run (did I say "to save trees" ?) :p
2025-02-11 13:32:59 +01:00
Yohan Boniface
6530aaa794 chore: do not run CI if no umap code files has been changed
Co-authored-by: David Larlet <david@larlet.fr>
2025-02-11 13:31:28 +01:00
Yohan Boniface
414cc805c2 fix(sync): wait for websocket full connection
Websocket has now a "connect" method, which is a promise,
that yields "onconnect", so the engine can wait for it before
proceding.
2025-02-11 13:26:27 +01:00
Yohan Boniface
1ce491a70c fix(sync): try to reconnect after network error when getting token 2025-02-11 13:03:06 +01:00
Yohan Boniface
4dd50690b1
chore: bump ruff from 0.9.3 to 0.9.6 (#2499) 2025-02-11 12:16:20 +01:00
Yohan Boniface
f0e87bab83
Fix broken showLabel=null (on hover) (#2490)
Broken since c27e675152
2025-02-11 12:14:52 +01:00
dependabot[bot]
238de28098
chore: bump ruff from 0.9.3 to 0.9.6
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.3 to 0.9.6.
- [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.3...0.9.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 10:58:25 +00:00
Yohan Boniface
c5467e42d5
chore: bump mkdocs-material from 9.5.50 to 9.6.3 (#2496) 2025-02-11 11:57:17 +01:00
Yohan Boniface
14c388b063
chore: bump pytest-django from 4.9.0 to 4.10.0 (#2495) 2025-02-11 11:56:39 +01:00
Yohan Boniface
e3c5acd52b
chore: bump moto[s3] from 5.0.27 to 5.0.28 (#2498) 2025-02-11 11:56:08 +01:00
Yohan Boniface
c044afb43d
chore: bump django from 5.1.5 to 5.1.6 (#2497) 2025-02-11 11:55:36 +01:00
Yohan Boniface
c5417178c4 fix: "null" value was not honoured in showLabel field 2025-02-11 11:48:01 +01:00
dependabot[bot]
cfef25748b
chore: bump moto[s3] from 5.0.27 to 5.0.28
Bumps [moto[s3]](https://github.com/getmoto/moto) from 5.0.27 to 5.0.28.
- [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.27...5.0.28)

---
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-02-10 17:06:37 +00:00
dependabot[bot]
6c835622c0
chore: bump django from 5.1.5 to 5.1.6
Bumps [django](https://github.com/django/django) from 5.1.5 to 5.1.6.
- [Commits](https://github.com/django/django/compare/5.1.5...5.1.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 17:06:31 +00:00
dependabot[bot]
62e23ac49b
chore: bump mkdocs-material from 9.5.50 to 9.6.3
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.50 to 9.6.3.
- [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.50...9.6.3)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 17:06:26 +00:00
dependabot[bot]
a78cdd227e
chore: bump pytest-django from 4.9.0 to 4.10.0
Bumps [pytest-django](https://github.com/pytest-dev/pytest-django) from 4.9.0 to 4.10.0.
- [Release notes](https://github.com/pytest-dev/pytest-django/releases)
- [Changelog](https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pytest-dev/pytest-django/compare/v4.9.0...v4.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 17:06:20 +00:00
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
dependabot[bot]
9b29a2efde
chore: bump factory-boy from 3.3.1 to 3.3.3
Bumps [factory-boy](https://github.com/FactoryBoy/factory_boy) from 3.3.1 to 3.3.3.
- [Changelog](https://github.com/FactoryBoy/factory_boy/blob/master/docs/changelog.rst)
- [Commits](https://github.com/FactoryBoy/factory_boy/compare/3.3.1...3.3.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 17:18:19 +00:00
dependabot[bot]
7d1e5c676c
chore: bump mkdocs-static-i18n from 1.2.3 to 1.3.0
Bumps [mkdocs-static-i18n](https://github.com/ultrabug/mkdocs-static-i18n) from 1.2.3 to 1.3.0.
- [Changelog](https://github.com/ultrabug/mkdocs-static-i18n/blob/main/docs/changelog.md)
- [Commits](https://github.com/ultrabug/mkdocs-static-i18n/compare/1.2.3...1.3.0)

---
updated-dependencies:
- dependency-name: mkdocs-static-i18n
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 17:18:16 +00:00
dependabot[bot]
d024a22328
chore: bump pytest-playwright from 0.6.2 to 0.7.0
Bumps [pytest-playwright](https://github.com/microsoft/playwright-pytest) from 0.6.2 to 0.7.0.
- [Release notes](https://github.com/microsoft/playwright-pytest/releases)
- [Commits](https://github.com/microsoft/playwright-pytest/compare/v0.6.2...v0.7.0)

---
updated-dependencies:
- dependency-name: pytest-playwright
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 17:18:06 +00:00
Yohan Boniface
cc2f4ef81f
doc: add minimal documentation for nginx proxy (#2469)
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-02-01 06:34:19 +01:00
Yohan Boniface
432a0a182d i18n
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-01-31 19:05:22 +01:00
Yohan Boniface
545770dfb9 chore: make redis python dep optional 2025-01-31 18:55:55 +01:00
Yohan Boniface
c5478fa8d3 2.9.0b0 2025-01-31 18:44:01 +01:00
Yohan Boniface
74f81f9894 i18n 2025-01-31 18:37:18 +01:00
Yohan Boniface
3a2dd4023b doc: add minimal documentation for nginx proxy 2025-01-31 18:26:35 +01:00
Yohan Boniface
1f66377104 fix: show user URL in remote data loading error
Instead of the proxied one, which is less readable and actionable for
the user reading the alert message.
2025-01-31 18:25:20 +01:00
Yohan Boniface
a442e56cbc fixup: use correct delete function for DataLayer
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-01-31 17:28:09 +01:00
Yohan Boniface
718cc919f8
fix: do not try to backup an undefined geojson (#2468)
This occurs when a remote data returns an invalid geojson.
2025-01-31 17:18:43 +01:00
Yohan Boniface
aa25398a62
feat: display a more descriptive alert on invalid geojson error (#2466) 2025-01-31 17:16:44 +01:00
Yohan Boniface
18ff0de872
fix: clear previous alert timeout when opening a new alert (#2467)
Otherwise, when an infinite alert replace an alert with a finite
duration, this first alert timeout will close the second alert.
2025-01-31 17:16:27 +01:00
Yohan Boniface
1d6e74e1d2
fix: only allow to set a map as sync when it is already saved (#2465) 2025-01-31 17:10:22 +01:00
Yohan Boniface
37ecea0799 feat: display a more descriptive alert on invalid geojson error
Co-authored-by: David Larlet <david@larlet.fr>
2025-01-31 17:08:35 +01:00
Yohan Boniface
e38e0f162c fix: do not try to backup an undefined geojson
This occurs when a remote data returns an invalid geojson.

Co-authored-by: David Larlet <david@larlet.fr>
2025-01-31 16:47:17 +01:00
Yohan Boniface
bcd69ccb47 fix: clear previous alert timeout when opening a new alert
Otherwise, when an infinite alert replace an alert with a finite duration,
this first alert timeout will close the second alert.

Co-authored-by: David Larlet <david@larlet.fr>
2025-01-31 16:42:38 +01:00
Yohan Boniface
2162aaf930 fix: only allow to set a map as sync when it is already saved 2025-01-31 15:45:55 +01:00
Yohan Boniface
3e9982c8cb
Sync show usernames (#2444)
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 #2267
2025-01-31 06:56:46 +01:00
David Larlet
1eb1f320db
chore: iterate on tooltips design 2025-01-30 14:15:56 -05:00
Yohan Boniface
48f4daf419
fix: catch cluster error at zoom in certain situation (#2464)
Some checks are pending
Test & Docs / docs (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Eg. to reproduce: a map with a limitBounds that makes uMap immediately
zoom to fit the bbox.
2025-01-30 18:49:19 +01:00
Yohan Boniface
a18b240c65 fix: catch cluster error at zoom in certain situation
Eg. to reproduce: a map with a limitBounds that makes uMap immediately
zoom to fit the bbox.

Co-authored-by: David Larlet <david@larlet.fr>
2025-01-30 18:40:05 +01:00
David Larlet
e6db23d4d3
fix: better buttons positionning for the homepage (#2463) 2025-01-30 11:35:40 -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
Yohan Boniface
be1fa55e9b
fix: allow to set choices for a nullablechoices field (#2462)
fix #2380
2025-01-30 17:14:27 +01:00
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:


![image](https://github.com/user-attachments/assets/b71d78c0-2a11-4d2e-adf5-2f23ccfd6b2e)


After:


![image](https://github.com/user-attachments/assets/35d3494c-275a-42b6-b646-6e025b03d7c5)
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
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
Oscar Hemelaar
8f3f67588a
chore: deploy charts to repository under github pages 2025-01-29 16:22:25 +01:00
Oscar Hemelaar
e97b619da8
feat: allow configuring env and conf using existing secret
useful for when the secret is created out of band using a vault api for
example
2025-01-29 15:49:05 +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
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)
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 #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)
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-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)
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-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)
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-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)
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-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)
Some checks failed
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)
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 #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 


![image](https://github.com/user-attachments/assets/a7db6197-4cc6-417e-b480-8e1434d73687)
2025-01-10 16:23:42 +01:00
Yohan Boniface
7072b5434a
fix: update map.modified_at when saving a datalayer (#2423)
fix #2421
2025-01-10 15:51:39 +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
dependabot[bot]
910995291d
chore: bump pillow from 11.0.0 to 11.1.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 11.0.0 to 11.1.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/11.0.0...11.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-06 17:33:24 +00:00
Yohan Boniface
a7325dcb02
chore: bump mkdocs-material from 9.5.48 to 9.5.49 (#2411)
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-03 16:45:14 +01:00
Yohan Boniface
f69a3e18b7
chore: bump moto[s3] from 5.0.24 to 5.0.25 (#2410) 2025-01-03 16:44:54 +01:00
Yohan Boniface
c482a84abb
chore: bump pydantic from 2.10.3 to 2.10.4 (#2408) 2025-01-03 16:44:37 +01:00
Yohan Boniface
d79686cb31
chore: bump djlint from 1.36.3 to 1.36.4 (#2409) 2025-01-03 16:44:18 +01:00
Yohan Boniface
ebae9a8cd0
fix(sync): do not try to reconnect after end edit (#2412)
Some checks failed
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
4164db357e
fix(sync): deactivate cancel and hide button when sync is active (#2413)
fix #2265

Let's reactivate when we have a proper undo-redo (cf #1107)
2025-01-01 11:31:14 +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
dependabot[bot]
7344c60baa
chore: bump mkdocs-material from 9.5.48 to 9.5.49
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.48 to 9.5.49.
- [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.48...9.5.49)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 17:39:36 +00:00
dependabot[bot]
5b5931dadb
chore: bump moto[s3] from 5.0.24 to 5.0.25
Bumps [moto[s3]](https://github.com/getmoto/moto) from 5.0.24 to 5.0.25.
- [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.24...5.0.25)

---
updated-dependencies:
- dependency-name: moto[s3]
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 17:39:25 +00:00
dependabot[bot]
6c6698966d
chore: bump djlint from 1.36.3 to 1.36.4
Bumps [djlint](https://github.com/djlint/djLint) from 1.36.3 to 1.36.4.
- [Release notes](https://github.com/djlint/djLint/releases)
- [Changelog](https://github.com/djlint/djLint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/djlint/djLint/compare/v1.36.3...v1.36.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 17:39:18 +00:00
dependabot[bot]
2b6ae7227e
chore: bump pydantic from 2.10.3 to 2.10.4
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.10.3 to 2.10.4.
- [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.3...v2.10.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 17:39:13 +00:00
Stefan Warnat
d4df6aaae5
fix: Update ConfigMap reference name to fullname 2024-12-29 17:59:41 +01:00
Stefan Warnat
ed5e0c6aad
fix: reference secret-env by fullname instead release-name 2024-12-29 17:24:49 +01:00
Yohan Boniface
eb50d8adf4 2.8.2
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
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
da78ac0919
fix: fix create marker from search result (#2404)
cf
https://github.com/umap-project/umap/issues/2392#issuecomment-2561151836
2024-12-26 11:02:38 +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
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
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)
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 #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
56fe937e60
chore: bump ruff from 0.8.2 to 0.8.4 (#2400) 2024-12-23 13:19:40 -05:00
David Larlet
f97e8b7691
Merge branch 'master' into dependabot/pip/ruff-0.8.4 2024-12-23 13:19:30 -05:00
David Larlet
f840ac8ea4
chore: bump moto[s3] from 5.0.21 to 5.0.24 (#2397) 2024-12-23 13:18:43 -05:00
David Larlet
6c323b7c05
chore: bump hatch from 1.13.0 to 1.14.0 (#2398) 2024-12-23 13:18:21 -05:00
David Larlet
31f07b4492
chore: bump pymdown-extensions from 10.12 to 10.13 (#2399)
Bumps
[pymdown-extensions](https://github.com/facelessuser/pymdown-extensions)
from 10.12 to 10.13.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facelessuser/pymdown-extensions/releases">pymdown-extensions's
releases</a>.</em></p>
<blockquote>
<h2>10.13</h2>
<ul>
<li><strong>NEW</strong>: Snippets: Allow multiple line numbers or line
number blocks separated by <code>,</code>.</li>
<li><strong>NEW</strong>: Snippets: Allow using a negative index for
number start indexes and end indexes. Negative indexes are converted to
positive indexes based on the number of lines in the snippet.</li>
<li><strong>FIX</strong>: Snippets: Properly capture empty newline at
end of file.</li>
<li><strong>FIX</strong>: Snippets: Fix issue where when non sections of
files are included, section labels are not stripped.</li>
<li><strong>FIX</strong>: BetterEm: Fixes for complex cases.</li>
<li><strong>FIX</strong>: Blocks: More consistent handling of empty
newlines in block processor extensions.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="36858c6b85"><code>36858c6</code></a>
Mention negative indexing in Snippets documentation</li>
<li><a
href="271950fb0d"><code>271950f</code></a>
More consistent newline handling in blocks extensions (<a
href="https://redirect.github.com/facelessuser/pymdown-extensions/issues/2553">#2553</a>)</li>
<li><a
href="9e26f64ee5"><code>9e26f64</code></a>
Allow negative indexes (<a
href="https://redirect.github.com/facelessuser/pymdown-extensions/issues/2552">#2552</a>)</li>
<li><a
href="1789d6094e"><code>1789d60</code></a>
Docs: Update JS deps</li>
<li><a
href="55ccf795df"><code>55ccf79</code></a>
Allow specifying multiple line selection blocks (<a
href="https://redirect.github.com/facelessuser/pymdown-extensions/issues/2551">#2551</a>)</li>
<li><a
href="f6102ac0dc"><code>f6102ac</code></a>
Fix some complex cases in BetterEm (<a
href="https://redirect.github.com/facelessuser/pymdown-extensions/issues/2547">#2547</a>)</li>
<li><a
href="9df48dbc84"><code>9df48db</code></a>
Strip sections from included file (<a
href="https://redirect.github.com/facelessuser/pymdown-extensions/issues/2541">#2541</a>)</li>
<li><a
href="377e8ff46d"><code>377e8ff</code></a>
Correctly document StripHTML defaults (<a
href="https://redirect.github.com/facelessuser/pymdown-extensions/issues/2535">#2535</a>)</li>
<li><a
href="68c70f9d12"><code>68c70f9</code></a>
Fix broken link to options in block-caption plugin page (<a
href="https://redirect.github.com/facelessuser/pymdown-extensions/issues/2533">#2533</a>)</li>
<li>See full diff in <a
href="https://github.com/facelessuser/pymdown-extensions/compare/10.12...10.13">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pymdown-extensions&package-manager=pip&previous-version=10.12&new-version=10.13)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-12-23 13:17:57 -05:00
David Larlet
d105f94c69
fix: zoom to droped file once loaded (#2401) 2024-12-23 13:16:57 -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
dependabot[bot]
46ad3f9b78
chore: bump ruff from 0.8.2 to 0.8.4
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.8.2 to 0.8.4.
- [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.2...0.8.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 17:25:38 +00:00
dependabot[bot]
e7b776d44d
chore: bump pymdown-extensions from 10.12 to 10.13
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.12 to 10.13.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.12...10.13)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 17:25:21 +00:00
dependabot[bot]
8e9eaa5e3e
chore: bump hatch from 1.13.0 to 1.14.0
Bumps [hatch](https://github.com/pypa/hatch) from 1.13.0 to 1.14.0.
- [Release notes](https://github.com/pypa/hatch/releases)
- [Commits](https://github.com/pypa/hatch/compare/hatch-v1.13.0...hatch-v1.14.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 17:25:17 +00:00
dependabot[bot]
35ef460640
chore: bump moto[s3] from 5.0.21 to 5.0.24
Bumps [moto[s3]](https://github.com/getmoto/moto) from 5.0.21 to 5.0.24.
- [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.21...5.0.24)

---
updated-dependencies:
- dependency-name: moto[s3]
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 17:25:11 +00:00
David Larlet
3fff54baab
fix: zoom to droped file once loaded 2024-12-23 12:09:16 -05:00
David Larlet
64ad6f0273
docs: faq entry for map permissions and translation
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2024-12-23 11:40:31 -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
49d1dbf36e
fix(#2391): split zoomTo to accept bounds (#2394)
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
Since
de921660c9 (diff-4a01a166046bdf7e4ea7d41d97cd82a57c82f63d10d1697f76e6fe22bfa769ebR954)
we were calling it with bounds but also with the click event sometimes.
2024-12-20 09:42:46 -05: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
David Larlet
17e6cf7500
fix: main help button was broken (#2393) 2024-12-20 08:34:15 -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)
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
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
9ddca50d21
fix: honour carriage returns in layer description (in caption panel) (#2386)
This could have been a four letters fix (adding class "text"), but I've
seen that `Caption` was still using `DomUtil` instead of `WithTemplate`,
so I made this little effort more…
2024-12-19 15:23:16 +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
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
So to have the js console relayed in the terminal
2024-12-18 17:44:30 +01:00
Yohan Boniface
0eedc47079 2.8.0
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
2024-12-18 12:16:58 +01:00
Yohan Boniface
9e418c2ab0 chore: escape backticks in Makefile printf
Otherwise they are executed by the shell as subcommands…
2024-12-18 12:05:13 +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
7b59cf4afb
fix: do not try to restore a newly created layer on reset (#2381)
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:45:27 +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)
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
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.


![image](https://github.com/user-attachments/assets/3187d5cf-4311-46c5-a6ed-be6a60d4b4a1)

fix #661
2024-12-17 20:29:28 +01:00
Yohan Boniface
a8ed8c0d3d 2.8.0b0
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
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 &amp;).
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
de9b686584
chore: try to make biome ignore vendors/ (#2368)
Seems to be working today, no damn idea why it is and it was not before.
2024-12-17 18:15:48 +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
064473c816 chore: add default_acl in S3 options in documentation 2024-12-17 13:19:25 +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 &amp;).
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)
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
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)
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
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
218b46c3b8 chore: try to make biome ignore vendors/ 2024-12-16 17:04:30 +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)
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
![image](https://github.com/user-attachments/assets/99445f06-f48f-4b0b-88f6-f696e067416d)
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
7c808393f0 chore: make all backends point to S3 in the documentation example 2024-12-13 11:20:33 +01:00
Yohan Boniface
45a0ec5d42 fix: add default saved message
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
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
30b685ae43
chore: more logs in the ajax proxy validate url (#2362)
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-13 09:12:12 +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)
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
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
a574db73e5
chore: review empty_trash command (#2360)
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
- do not try to print map.id after delete (it's None)
- rely on date instead of minutes/microseconds
2024-12-12 16:32:34 +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
b40b4e6306 changelog
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
2024-12-11 20:01:26 +01:00
Yohan Boniface
ddfef9cbe7 2.8.0a1 2024-12-11 19:25:10 +01:00
Yohan Boniface
e372b6410e
chore: make S3 dependencies optional (#2359) 2024-12-11 19:23:39 +01:00
Yohan Boniface
dc93ec99e8 chore: add s3 dependencies to Docker install 2024-12-11 19:21:05 +01:00
Yohan Boniface
8b65674e0a chore: make S3 dependencies optional 2024-12-11 19:16:17 +01:00
Yohan Boniface
c25ee5e29c changelog 2024-12-11 18:44:32 +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)
![image](https://github.com/user-attachments/assets/c6a330e2-b981-4603-aa29-e70885a6f4fe)
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)
![image](https://github.com/user-attachments/assets/b22fd52e-1dfc-48f5-9f9e-0db12bf87fbe)

(And move popup related CSS to a dedicated file.)

cf #661
2024-12-11 17:48:40 +01:00
Yohan Boniface
c45c235ffe
feat: support storing layer data in S3 like servers (#2304)
This adds two now storage classes, `UmapFileSystem` and `UmapS3`.

The first class now handle the current storage behaviour (which was in
the DataLayer class), and the second one the S3 support.

Todo:

- [x] unit tests for the S3 class
- [x] understand how to deal with gzip in S3
- [x] clone

fix #2290
2024-12-11 17:46:19 +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
249367fd3a chore: install s3 dep for develop/CI 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
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
2024-12-10 17:54:58 +01:00
Yohan Boniface
73e7f60cdf
feat: introduce Map.share_status=DRAFT and DELETED (#2357)
This PR introduce two new share_status: `DRAFT` and `DELETED`.

So all status are now:

        (DRAFT, _("Draft (private)")),
        (PUBLIC, _("Everyone (public)")),
        (OPEN, _("Anyone with link")),
        (PRIVATE, _("Editors and team only")),
        (BLOCKED, _("Blocked")),
        (DELETED, _("Deleted")),

Here are the impact of such introduction, on the draft side:
- by default maps are now create in draft status, and they are not
visible from others than owner (or collaborators if any); this can be
changed for a given instance with the setting
`UMAP_DEFAULT_SHARE_STATUS`
- now even anonymous owned maps have a share status, given one of the
goals is to make a better distinction between maps ready to be shared
and other, this also apply to maps without logged in owners

![image](https://github.com/user-attachments/assets/41dae9fe-0ae6-4ada-ace3-dc782c6cf972)
- when the map in in draft mode, the "Save" button on the frontend says
"Save draft", so to make the state clear

![image](https://github.com/user-attachments/assets/ca2ffb79-17fa-4a1c-9e81-a759c2a415a1)
- now the visibility of the map is immediately visible on the top bar
(while before this was only displayed after first save)

![image](https://github.com/user-attachments/assets/3d9efa86-3fac-4150-b01e-b7f1ea79114b)

Note: add the end `DRAFT` and `PRIVATE` are very similar, but I made the
choice to keep the two, so one can still distinguish their draft maps
from their ready map they want to keep private.

On the delete side:
- when deleting a map, it's now set as `share_status=DELETED`, which act
as a sort of trash; so it become easier to recover a map, with it's full
datalayers, etc. (the only thing which will not be restored is the
previous share_status, which should be draft again after a restore; the
restore function itself is not implemented)
- there is a new command `empty_trash` which delete for real maps in
DELETED status and with last_modified > 30 days (by default, can be
changed with a command line argument)
- deleted maps disappear from all views: home, search, dashboard…
- in the future, we could create a new view "My Trash", where one could
see their deleted map not yet deleted for real (and that should be the
opportunity to also add the `restore` function, which for now can be
done by simply changing the share_status from the shell or the admin)
- all the purgatory related code has been removed

fix #2207
2024-12-10 17:48:08 +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
Yohan Boniface
c15ecfc29f
fix(#2355): correctly reset Dialog’s returnValue (#2356)
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
Fixes #2355
2024-12-10 13:33:00 +01:00
Yohan Boniface
246aedaeb9
chore: bump pydantic from 2.10.2 to 2.10.3 (#2352)
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
2024-12-10 09:02:56 +01:00
Yohan Boniface
ec7c85db3a
chore: bump mkdocs-material from 9.5.47 to 9.5.48 (#2353) 2024-12-10 09:02:40 +01:00
Yohan Boniface
827fd39925
chore: bump ruff from 0.8.1 to 0.8.2 (#2354) 2024-12-10 09:02:23 +01:00
David Larlet
5b32e2ac03
fix(#2355): correctly reset Dialog’s returnValue
Fixes #2355
2024-12-09 18:16:41 -05:00
dependabot[bot]
d8e73121cf
chore: bump ruff from 0.8.1 to 0.8.2
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.8.1 to 0.8.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.8.1...0.8.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-09 17:29:29 +00:00
dependabot[bot]
43f3701a6f
chore: bump mkdocs-material from 9.5.47 to 9.5.48
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.47 to 9.5.48.
- [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.47...9.5.48)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-09 17:29:12 +00:00
dependabot[bot]
c42bbf2b7b
chore: bump pydantic from 2.10.2 to 2.10.3
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.10.2 to 2.10.3.
- [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.2...v2.10.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-09 17:29:05 +00: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)
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
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
a7b714c887
fix: disable for real dragging the map on mobile when scrollWheelZoom is false (#2344)
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
Changing map options at this stage is too late.

cf #2340
2024-12-07 15:46:45 +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
David Larlet
ec23f09e5b
chore: bump django from 5.1.3 to 5.1.4 (#2346)
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
Bumps [django](https://github.com/django/django) from 5.1.3 to 5.1.4.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2d4add11fd"><code>2d4add1</code></a>
[5.1.x] Bumped version for 5.1.4 release.</li>
<li><a
href="6943d61818"><code>6943d61</code></a>
[5.1.x] Fixed CVE-2024-53908 -- Prevented SQL injections in direct
HasKeyLook...</li>
<li><a
href="bbc74a7f7e"><code>bbc74a7</code></a>
[5.1.x] Fixed CVE-2024-53907 -- Mitigated potential DoS in
strip_tags().</li>
<li><a
href="5b4d949d7c"><code>5b4d949</code></a>
[5.1.x] Removed question marks from headings in
docs/topics/db/fixtures.txt.</li>
<li><a
href="6e3e7353e0"><code>6e3e735</code></a>
[5.1.x] Fixed <a
href="https://redirect.github.com/django/django/issues/35950">#35950</a>
-- Restored refreshing of relations when fields deferred.</li>
<li><a
href="ee2698dcca"><code>ee2698d</code></a>
[5.1.x] Removed reference to &quot;removing older versions of
Django&quot; in tutorial.</li>
<li><a
href="bed70e2c00"><code>bed70e2</code></a>
[5.1.x] Upgraded to Python 3.12, Ubuntu 24.04, and enabled
fail_on_warning fo...</li>
<li><a
href="5f82a5e4c7"><code>5f82a5e</code></a>
[5.1.x] Added stub release notes and release date for 5.1.4, 5.0.10, and
4.2.17.</li>
<li><a
href="4b262408aa"><code>4b26240</code></a>
[5.1.x] Fixed <a
href="https://redirect.github.com/django/django/issues/35942">#35942</a>
-- Fixed createsuperuser crash on Python 3.13+ when user...</li>
<li><a
href="08ac8c1b44"><code>08ac8c1</code></a>
[5.1.x] Updated maintainers of Django Debug Toolbar to Django
Commons.</li>
<li>Additional commits viewable in <a
href="https://github.com/django/django/compare/5.1.3...5.1.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=django&package-manager=pip&previous-version=5.1.3&new-version=5.1.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/umap-project/umap/network/alerts).

</details>
2024-12-06 14:57:47 -05:00
dependabot[bot]
b10dadd453
chore: bump django from 5.1.3 to 5.1.4
Bumps [django](https://github.com/django/django) from 5.1.3 to 5.1.4.
- [Commits](https://github.com/django/django/compare/5.1.3...5.1.4)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-06 18:38:34 +00: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
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
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
f4814797d7
feat: open importers in a dialog instead of in the form (#2327)
![image](https://github.com/user-attachments/assets/bdc8d7ef-874a-419c-9f02-47aff06081f3)

cf #2302
2024-12-05 18:27:18 +01:00
Yohan Boniface
0b818e8b75
feat: add a disabled/active mode to the submit button of import panel (#2341)
cf #2302

Warning: I removed the historic `width: 100%` on all buttons, who knows
where this will break? :p

Disabled:


![image](https://github.com/user-attachments/assets/000ff44b-bd6e-485b-b27f-39b0a189bf56)

Form valid:


![image](https://github.com/user-attachments/assets/afdbd4b6-7168-4dff-b314-e6556a289369)
2024-12-05 18:04:09 +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
David Larlet
1f13c6ef00 docs-users: Update importers-related tutorial 2024-12-05 18:00:41 +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)
![Screenshot From 2024-12-05
11-45-05](https://github.com/user-attachments/assets/97949b2f-4716-4d56-bb2e-ce481b932dcb)

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
b7c77b9c9f
feat: make expression persistent in the overpass importer (#2339)
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 17:31:14 +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
Some checks failed
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
2b2580fa22
feat: swap import and settings buttons in edit toolbar (#2329)
fix #2297


![image](https://github.com/user-attachments/assets/2c7a98db-03dd-4cc2-afd3-1b5da3ae6964)
2024-12-03 17:53:51 +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
e01a526935
chore: bump pytest-rerunfailures from 14.0 to 15.0 (#2326)
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
2024-12-02 19:51:27 +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
dependabot[bot]
2dab2f23b5
chore: bump pytest-rerunfailures from 14.0 to 15.0
Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 14.0 to 15.0.
- [Changelog](https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst)
- [Commits](https://github.com/pytest-dev/pytest-rerunfailures/compare/14.0...15.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 18:43:58 +00:00
Yohan Boniface
f4ff1048bd
chore: bump pytest from 8.3.3 to 8.3.4 (#2325) 2024-12-02 19:42:49 +01:00
Yohan Boniface
6310cde28b
chore: bump djlint from 1.36.1 to 1.36.3 (#2324) 2024-12-02 19:41:34 +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 


![image](https://github.com/user-attachments/assets/0ff2c056-91ad-4daa-9882-dd44a4c6ef9f)
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
dependabot[bot]
995052d83e
chore: bump pytest from 8.3.3 to 8.3.4
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.3 to 8.3.4.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.3...8.3.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 17:55:51 +00:00
dependabot[bot]
7e53e50b9c
chore: bump djlint from 1.36.1 to 1.36.3
Bumps [djlint](https://github.com/djlint/djLint) from 1.36.1 to 1.36.3.
- [Release notes](https://github.com/djlint/djLint/releases)
- [Changelog](https://github.com/djlint/djLint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/djlint/djLint/compare/v1.36.1...v1.36.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 17:55:44 +00:00
Yohan Boniface
8e5f46eb95
chore: bump pydantic from 2.9.2 to 2.10.2 (#2321) 2024-12-02 17:20:35 +01:00
Yohan Boniface
0f8ebcdf9a
chore: bump pytest-playwright from 0.5.2 to 0.6.2 (#2320) 2024-12-02 17:20:17 +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)
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
2024-12-02 13:14:06 +01:00
dependabot[bot]
c29df404c8
chore: bump pydantic from 2.9.2 to 2.10.2
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.9.2 to 2.10.2.
- [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.9.2...v2.10.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 12:13:48 +00:00
dependabot[bot]
3f24563a05
chore: bump pytest-playwright from 0.5.2 to 0.6.2
Bumps [pytest-playwright](https://github.com/microsoft/playwright-pytest) from 0.5.2 to 0.6.2.
- [Release notes](https://github.com/microsoft/playwright-pytest/releases)
- [Commits](https://github.com/microsoft/playwright-pytest/compare/v0.5.2...v0.6.2)

---
updated-dependencies:
- dependency-name: pytest-playwright
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 12:12:48 +00:00
Yohan Boniface
64f0926e2d
chore: bump mkdocs-material from 9.5.44 to 9.5.47 (#2318) 2024-12-02 13:11:27 +01:00
Yohan Boniface
3aa0c8fc82
chore: bump ruff from 0.7.4 to 0.8.1 (#2319) 2024-12-02 13:11:10 +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
dependabot[bot]
9e2b207dfd
chore: bump ruff from 0.7.4 to 0.8.1
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.4 to 0.8.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.7.4...0.8.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 11:56:38 +00: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
dependabot[bot]
998bf87a0b
chore: bump mkdocs-material from 9.5.44 to 9.5.47
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.44 to 9.5.47.
- [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.44...9.5.47)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 11:55:48 +00:00
Yohan Boniface
401efc037d
chore: fix failing test (#2317) 2024-12-02 12:54:12 +01:00
Yohan Boniface
471de78ab3 chore: fix failing test 2024-12-02 12:46:09 +01:00
Yohan Boniface
b7adf33237 chore: add missing doc file 2024-12-02 11:16:58 +01:00
Yohan Boniface
e33fc787ab
fix: do not fail when navigating with popup arrows in cluster mode (#2307)
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
- 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
aadd41dd29
docs: add a video in French
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
2024-11-27 12:57:52 -05:00
David Larlet
b6229a05b7
Better login page styles and incentive (#2293)
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
Fixes https://github.com/umap-project/umap-dsfr/issues/21

Rel.
24f23874f7
2024-11-22 09:29:47 -05:00
Yohan Boniface
d84c5246c5
chore: bump channels from 4.1.0 to 4.2.0 (#2275) 2024-11-22 10:18:48 +01: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
2008cca2f4
Add French Grist-related video tutorial
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
2024-11-21 16:12:34 -05: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
d4bc91c41c chore: add --dependency-update in helm make command
Plus add a minimal doc
2024-11-21 17:40:49 +01:00
Yohan Boniface
3e6f8a6e7f
Add umap helm chart for Kubernetes deployment (#2286)
This helm chart allow to deploy umap on a Kubernetes cluster easily.
2024-11-21 17:12:46 +01:00
Yohan Boniface
95710a4dab fix: allow spaces in iframe query strings in HTML formatting
fix #2269
2024-11-21 15:21:35 +01:00
Antoine Millet
b76861489e chore: added "helm" job in Makefile to build & push helm chart 2024-11-21 15:13:51 +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
Antoine Millet
8ac548bf6f chore: added umap helm chart
This helm chart allow to deploy umap on a Kubernetes cluster easily.
2024-11-20 14:06:49 +01:00
Yohan Boniface
ccd6a21958
chore: explicitely set postgis as db engine (#2285)
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
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
David Larlet
8f08ee3278
chore: update browserslist to be more explicit (#2277)
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
Given that we need to support ES6 modules, better to write it down
explicitely.

Current audience coverage is unchanged: 88.3 %

See
https://browsersl.ist/#q=%22browserslist%22%3A+%5B%0A++%22defaults+and+fully+supports+es6-module%22%0A%5D
vs.
https://browsersl.ist/#q=%22browserslist%22%3A+%5B%0A++%22%3E+0.5%25%2C+last+2+versions%2C+Firefox+ESR%2C+not+dead%2C+not+op_mini+all%22%0A%5D
2024-11-19 09:16:57 -05: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
b678346d34
chore: move editToolBar and captionBar to modules (#2272)
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-19 13:30:10 +01:00
Yohan Boniface
346597533c chore: a bit of CSS cleaning in bar.css 2024-11-19 13:16:02 +01:00
David Larlet
b085afa435
chore: update browserslist to be more explicit
Given that we need to support ES6 modules, better to write it down explicitely.

Current audience coverage is unchanged: 88.3 %

See https://browsersl.ist/#q=%22browserslist%22%3A+%5B%0A++%22defaults+and+fully+supports+es6-module%22%0A%5D vs. https://browsersl.ist/#q=%22browserslist%22%3A+%5B%0A++%22%3E+0.5%25%2C+last+2+versions%2C+Firefox+ESR%2C+not+dead%2C+not+op_mini+all%22%0A%5D
2024-11-18 18:06:05 -05: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)
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
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
d38d8e152c
fix: honour custom labelKey in default popup template (#2271)
The default popup template expects a `name` key, so let's populate it.
2024-11-18 19:38:09 +01:00
David Larlet
25bf7e1466
chore: bump rcssmin from 1.1.3 to 1.2.0 (#2273)
Bumps [rcssmin](https://github.com/ndparker/rcssmin) from 1.1.3 to
1.2.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ndparker/rcssmin/blob/master/CHANGES">rcssmin's
changelog</a>.</em></p>
<blockquote>
<p>Changes with version 1.2.0</p>
<p>*) Add support for nesting selector (&amp;)</p>
<p>*) Update project boilerplate</p>
<p>Changes with version 1.1.3</p>
<p>*) Add support for Python 3.13</p>
<p>*) Update project boilerplate</p>
<p>Changes with version 1.1.2</p>
<p>*) Add support for Python 3.12</p>
<p>*) Add musllinux wheels</p>
<p>*) Update project boilerplate</p>
<p>Changes with version 1.1.1</p>
<p>*) Add support for Python 3.11</p>
<p>*) Update project boilerplate</p>
<p>Changes with version 1.1.0</p>
<p>*) quoted data urls which are not base64 encoded keep their spaces
now (<a
href="https://redirect.github.com/ndparker/rcssmin/issues/8">#8</a>)</p>
<p>*) Add x86_64, i686 and aarch64 wheels</p>
<p>*) Update python support: 2.7, 3.6+</p>
<p>*) Both python 2 and 3 now accept bytes and text as input. All other
types now
raise a TypeError. Before they possibly have been converted to a string,
depending on the python version and the implementation. Python 3 also
accepts bytearray input.</p>
<p>*) Support for PyPy and Jython is no longer tested. Patches are
accepted,
though.</p>
<p>*) The python version will only accept the C implementation if the
versions
match exactly. This should prevent using older installed C versions.
Fixes <a
href="https://redirect.github.com/ndparker/rcssmin/issues/11">#11</a>.
This issue is now more relevant since <a
href="https://redirect.github.com/ndparker/rcssmin/issues/7">#7</a> is
fixed.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5396f5ec39"><code>5396f5e</code></a>
Bump version to 1.2.0</li>
<li><a
href="81da21987b"><code>81da219</code></a>
Update benchmarks</li>
<li><a
href="1f9ff6d2d8"><code>1f9ff6d</code></a>
Add support for nesting selector (&amp;)</li>
<li><a
href="eac70b68c2"><code>eac70b6</code></a>
Add pyproject.toml, update dependencies</li>
<li><a
href="c1beaf0f1c"><code>c1beaf0</code></a>
update gpg info</li>
<li>See full diff in <a
href="https://github.com/ndparker/rcssmin/compare/1.1.3...1.2.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rcssmin&package-manager=pip&previous-version=1.1.3&new-version=1.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-11-18 13:09:26 -05:00
David Larlet
9656d04432
chore: bump ruff from 0.7.3 to 0.7.4 (#2276)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.3 to 0.7.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.7.4</h2>
<h2>Release Notes</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-datetimez</code>] Detect usages of
<code>datetime.max</code>/<code>datetime.min</code>
(<code>DTZ901</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14288">#14288</a>)</li>
<li>[<code>flake8-logging</code>] Implement
<code>root-logger-calls</code> (<code>LOG015</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14302">#14302</a>)</li>
<li>[<code>flake8-no-pep420</code>] Detect empty implicit namespace
packages (<code>INP001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14236">#14236</a>)</li>
<li>[<code>flake8-pyi</code>] Add &quot;replace with
<code>Self</code>&quot; fix (<code>PYI019</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14238">#14238</a>)</li>
<li>[<code>perflint</code>] Implement quick-fix for
<code>manual-list-comprehension</code> (<code>PERF401</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13919">#13919</a>)</li>
<li>[<code>pylint</code>] Implement <code>shallow-copy-environ</code>
(<code>W1507</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14241">#14241</a>)</li>
<li>[<code>ruff</code>] Implement <code>none-not-at-end-of-union</code>
(<code>RUF036</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14314">#14314</a>)</li>
<li>[<code>ruff</code>] Implementation <code>unsafe-markup-call</code>
from <code>flake8-markupsafe</code> plugin (<code>RUF035</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14224">#14224</a>)</li>
<li>[<code>ruff</code>] Report problems for <code>attrs</code>
dataclasses (<code>RUF008</code>, <code>RUF009</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14327">#14327</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>flake8-boolean-trap</code>] Exclude dunder methods that
define operators (<code>FBT001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14203">#14203</a>)</li>
<li>[<code>flake8-pyi</code>] Add &quot;replace with
<code>Self</code>&quot; fix (<code>PYI034</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14217">#14217</a>)</li>
<li>[<code>flake8-pyi</code>] Always autofix
<code>duplicate-union-members</code> (<code>PYI016</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14270">#14270</a>)</li>
<li>[<code>flake8-pyi</code>] Improve autofix for nested and mixed type
unions for <code>unnecessary-type-union</code> (<code>PYI055</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14272">#14272</a>)</li>
<li>[<code>flake8-pyi</code>] Mark fix as unsafe when type annotation
contains comments for <code>duplicate-literal-member</code>
(<code>PYI062</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14268">#14268</a>)</li>
</ul>
<h3>Server</h3>
<ul>
<li>Use the current working directory to resolve settings from
<code>ruff.configuration</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14352">#14352</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Avoid conflicts between <code>PLC014</code>
(<code>useless-import-alias</code>) and <code>I002</code>
(<code>missing-required-import</code>) by considering
<code>lint.isort.required-imports</code> for <code>PLC014</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14287">#14287</a>)</li>
<li>[<code>flake8-type-checking</code>] Skip quoting annotation if it
becomes invalid syntax (<code>TCH001</code>)</li>
<li>[<code>flake8-pyi</code>] Avoid using <code>typing.Self</code> in
stub files pre-Python 3.11 (<code>PYI034</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14230">#14230</a>)</li>
<li>[<code>flake8-pytest-style</code>] Flag <code>pytest.raises</code>
call with keyword argument <code>expected_exception</code>
(<code>PT011</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14298">#14298</a>)</li>
<li>[<code>flake8-simplify</code>] Infer &quot;unknown&quot; truthiness
for literal iterables whose items are all unpacks (<code>SIM222</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14263">#14263</a>)</li>
<li>[<code>flake8-type-checking</code>] Fix false positives for
<code>typing.Annotated</code> (<code>TCH001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14311">#14311</a>)</li>
<li>[<code>pylint</code>] Allow <code>await</code> at the top-level
scope of a notebook (<code>PLE1142</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14225">#14225</a>)</li>
<li>[<code>pylint</code>] Fix miscellaneous issues in
<code>await-outside-async</code> detection (<code>PLE1142</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14218">#14218</a>)</li>
<li>[<code>pyupgrade</code>] Avoid applying PEP 646 rewrites in invalid
contexts (<code>UP044</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14234">#14234</a>)</li>
<li>[<code>pyupgrade</code>] Detect permutations in redundant open modes
(<code>UP015</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14255">#14255</a>)</li>
<li>[<code>refurb</code>] Avoid triggering
<code>hardcoded-string-charset</code> for reordered sets
(<code>FURB156</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14233">#14233</a>)</li>
<li>[<code>refurb</code>] Further special cases added to
<code>verbose-decimal-constructor</code> (<code>FURB157</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14216">#14216</a>)</li>
<li>[<code>refurb</code>] Use <code>UserString</code> instead of
non-existent <code>UserStr</code> (<code>FURB189</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14209">#14209</a>)</li>
<li>[<code>ruff</code>] Avoid treating lowercase letters as <code>#
noqa</code> codes (<code>RUF100</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14229">#14229</a>)</li>
<li>[<code>ruff</code>] Do not report when <code>Optional</code> has no
type arguments (<code>RUF013</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14181">#14181</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add &quot;Notebook behavior&quot; section for <code>F704</code>,
<code>PLE1142</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14266">#14266</a>)</li>
<li>Document comment policy around fix safety (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14300">#14300</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.7.4</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-datetimez</code>] Detect usages of
<code>datetime.max</code>/<code>datetime.min</code>
(<code>DTZ901</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14288">#14288</a>)</li>
<li>[<code>flake8-logging</code>] Implement
<code>root-logger-calls</code> (<code>LOG015</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14302">#14302</a>)</li>
<li>[<code>flake8-no-pep420</code>] Detect empty implicit namespace
packages (<code>INP001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14236">#14236</a>)</li>
<li>[<code>flake8-pyi</code>] Add &quot;replace with
<code>Self</code>&quot; fix (<code>PYI019</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14238">#14238</a>)</li>
<li>[<code>perflint</code>] Implement quick-fix for
<code>manual-list-comprehension</code> (<code>PERF401</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13919">#13919</a>)</li>
<li>[<code>pylint</code>] Implement <code>shallow-copy-environ</code>
(<code>W1507</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14241">#14241</a>)</li>
<li>[<code>ruff</code>] Implement <code>none-not-at-end-of-union</code>
(<code>RUF036</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14314">#14314</a>)</li>
<li>[<code>ruff</code>] Implementation <code>unsafe-markup-call</code>
from <code>flake8-markupsafe</code> plugin (<code>RUF035</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14224">#14224</a>)</li>
<li>[<code>ruff</code>] Report problems for <code>attrs</code>
dataclasses (<code>RUF008</code>, <code>RUF009</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14327">#14327</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>flake8-boolean-trap</code>] Exclude dunder methods that
define operators (<code>FBT001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14203">#14203</a>)</li>
<li>[<code>flake8-pyi</code>] Add &quot;replace with
<code>Self</code>&quot; fix (<code>PYI034</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14217">#14217</a>)</li>
<li>[<code>flake8-pyi</code>] Always autofix
<code>duplicate-union-members</code> (<code>PYI016</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14270">#14270</a>)</li>
<li>[<code>flake8-pyi</code>] Improve autofix for nested and mixed type
unions for <code>unnecessary-type-union</code> (<code>PYI055</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14272">#14272</a>)</li>
<li>[<code>flake8-pyi</code>] Mark fix as unsafe when type annotation
contains comments for <code>duplicate-literal-member</code>
(<code>PYI062</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14268">#14268</a>)</li>
</ul>
<h3>Server</h3>
<ul>
<li>Use the current working directory to resolve settings from
<code>ruff.configuration</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14352">#14352</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Avoid conflicts between <code>PLC014</code>
(<code>useless-import-alias</code>) and <code>I002</code>
(<code>missing-required-import</code>) by considering
<code>lint.isort.required-imports</code> for <code>PLC014</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14287">#14287</a>)</li>
<li>[<code>flake8-type-checking</code>] Skip quoting annotation if it
becomes invalid syntax (<code>TCH001</code>)</li>
<li>[<code>flake8-pyi</code>] Avoid using <code>typing.Self</code> in
stub files pre-Python 3.11 (<code>PYI034</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14230">#14230</a>)</li>
<li>[<code>flake8-pytest-style</code>] Flag <code>pytest.raises</code>
call with keyword argument <code>expected_exception</code>
(<code>PT011</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14298">#14298</a>)</li>
<li>[<code>flake8-simplify</code>] Infer &quot;unknown&quot; truthiness
for literal iterables whose items are all unpacks (<code>SIM222</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14263">#14263</a>)</li>
<li>[<code>flake8-type-checking</code>] Fix false positives for
<code>typing.Annotated</code> (<code>TCH001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14311">#14311</a>)</li>
<li>[<code>pylint</code>] Allow <code>await</code> at the top-level
scope of a notebook (<code>PLE1142</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14225">#14225</a>)</li>
<li>[<code>pylint</code>] Fix miscellaneous issues in
<code>await-outside-async</code> detection (<code>PLE1142</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14218">#14218</a>)</li>
<li>[<code>pyupgrade</code>] Avoid applying PEP 646 rewrites in invalid
contexts (<code>UP044</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14234">#14234</a>)</li>
<li>[<code>pyupgrade</code>] Detect permutations in redundant open modes
(<code>UP015</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14255">#14255</a>)</li>
<li>[<code>refurb</code>] Avoid triggering
<code>hardcoded-string-charset</code> for reordered sets
(<code>FURB156</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14233">#14233</a>)</li>
<li>[<code>refurb</code>] Further special cases added to
<code>verbose-decimal-constructor</code> (<code>FURB157</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14216">#14216</a>)</li>
<li>[<code>refurb</code>] Use <code>UserString</code> instead of
non-existent <code>UserStr</code> (<code>FURB189</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14209">#14209</a>)</li>
<li>[<code>ruff</code>] Avoid treating lowercase letters as <code>#
noqa</code> codes (<code>RUF100</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14229">#14229</a>)</li>
<li>[<code>ruff</code>] Do not report when <code>Optional</code> has no
type arguments (<code>RUF013</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14181">#14181</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add &quot;Notebook behavior&quot; section for <code>F704</code>,
<code>PLE1142</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14266">#14266</a>)</li>
<li>Document comment policy around fix safety (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14300">#14300</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ed7b98cf9b"><code>ed7b98c</code></a>
Bump version to 0.7.4 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14358">#14358</a>)</li>
<li><a
href="6591775cd9"><code>6591775</code></a>
[<code>flake8-type-checking</code>] Skip quoting annotation if it
becomes invalid syntax...</li>
<li><a
href="1f82731856"><code>1f82731</code></a>
Use CWD to resolve settings from <code>ruff.configuration</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14352">#14352</a>)</li>
<li><a
href="874da9c400"><code>874da9c</code></a>
[red-knot] Display raw characters for string literal (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14351">#14351</a>)</li>
<li><a
href="375cead202"><code>375cead</code></a>
Sync vendored typeshed stubs (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14350">#14350</a>)</li>
<li><a
href="9ec690b8f8"><code>9ec690b</code></a>
[red-knot] Add support for string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14151">#14151</a>)</li>
<li><a
href="a48d779c4e"><code>a48d779</code></a>
[red-knot] function signature representation (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14304">#14304</a>)</li>
<li><a
href="ba6c7f6897"><code>ba6c7f6</code></a>
[<code>pylint</code>] Remove check for dot in alias name in
`useless-import-alias (PLC04...</li>
<li><a
href="8095ff0e55"><code>8095ff0</code></a>
enforce required imports even with useless alias (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14287">#14287</a>)</li>
<li><a
href="24cd592a1d"><code>24cd592</code></a>
Avoid module lookup for known classes when possible (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14343">#14343</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.7.3...0.7.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruff&package-manager=pip&previous-version=0.7.3&new-version=0.7.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-11-18 13:08:45 -05:00
dependabot[bot]
3104636cff
chore: bump ruff from 0.7.3 to 0.7.4
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.3 to 0.7.4.
- [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.7.3...0.7.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 18:01:54 +00:00
dependabot[bot]
cf7c293523
chore: bump channels from 4.1.0 to 4.2.0
Bumps [channels](https://github.com/django/channels) from 4.1.0 to 4.2.0.
- [Changelog](https://github.com/django/channels/blob/main/CHANGELOG.txt)
- [Commits](https://github.com/django/channels/compare/4.1.0...4.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 18:01:44 +00:00
dependabot[bot]
91f3d55f5b
chore: bump rcssmin from 1.1.3 to 1.2.0
Bumps [rcssmin](https://github.com/ndparker/rcssmin) from 1.1.3 to 1.2.0.
- [Changelog](https://github.com/ndparker/rcssmin/blob/master/CHANGES)
- [Commits](https://github.com/ndparker/rcssmin/compare/1.1.3...1.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 18:01:30 +00: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)
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
2024-11-15 18:45:43 +01:00
Yohan Boniface
57a670d64c
fix: use our fork of csv2geojson to be able to parse lat/lon with commas (#2263) 2024-11-15 18:44:01 +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
Yohan Boniface
810537696d
Layers uuid2 (#2259)
Rebase of https://github.com/umap-project/umap/pull/2233
2024-11-15 15:36:29 +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
8c2a0eca28
chore: split umap.js in two modules (#2257)
Some checks failed
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
Long awaited step! Very intrusive change!

The `umap.js` old papa js style is now moved to modules, and split in
two, as we did for layers and features: one module is for the data part,
and the other is for the rendering part, and this one inherits from
Leaflet.

Sadly, the split between those two modules is not as clear as I'd like
it to be, as some functions my be interpreted or not as rendering.

What is now moved to the rendering module is all elements that inherit
from Leaflet, so what concerns the map itself, but also controls in of
the Leaflet world (inheriting from L.Control). In the other hand, UI
elements that does not inherit from Leaflet are kept on the `umap.js`
module (panels, tooltip, contextmenu…).

Also, `Umap` as a `properties` key, to follow geojson spec, and
distinguish from `LeafletMap.options`.

This is a first step, that will need more work, but as tests pass, I'd
suggest to merge if we agree on the choices and continue working with
other (smaller) PRs (and I'll take care of rebasing current other PRs).

Some specific points I've in mind that does not smell good:
- umap.js module still uses some Leaflet utils
- Umap and LeafletMap have a reference to each other
- umap.js module still need Leaflet events
- layers and feature still need to have reference to both Umap and
LeafletMap
2024-11-13 14:52:33 +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
ce3b8554bb
chore: bump pymdown-extensions from 10.11.2 to 10.12 (#2246)
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
2024-11-12 10:20:11 +01:00
Yohan Boniface
c952fed96a chore: split umap.js in two modules 2024-11-12 10:17:12 +01:00
dependabot[bot]
6c752385e5
chore: bump pymdown-extensions from 10.11.2 to 10.12
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.11.2 to 10.12.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.11.2...10.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 18:11:20 +00:00
David Larlet
ec050144f5
chore: bump djlint from 1.35.2 to 1.36.1 (#2254)
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
Bumps [djlint](https://github.com/djlint/djLint) from 1.35.2 to 1.36.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/djlint/djLint/releases">djlint's
releases</a>.</em></p>
<blockquote>
<h2>v1.36.1</h2>
<ul>
<li>Improve performance by ~30%. Thanks, <a
href="https://github.com/oliverhaas"><code>@​oliverhaas</code></a>.</li>
</ul>
<h2>v1.36.0</h2>
<h3>Feature</h3>
<ul>
<li>Add support for <code>djlint.toml</code> config file. The format is
identical to <code>pyproject.toml</code>, but it does not use
<code>[tool.djlint]</code> table.</li>
</ul>
<h3>Fix</h3>
<ul>
<li>Do not format HTML in attributes. Thanks, <a
href="https://github.com/oliverhaas"><code>@​oliverhaas</code></a>.</li>
<li>Fix using <code>js_config</code> instead of
<code>css_config</code>.</li>
</ul>
<h3>Performance</h3>
<ul>
<li>Increase performance by ~30% by using regex more efficiently and
caching more stuff.</li>
</ul>
<h2>v1.35.4</h2>
<p>Compiled <a
href="https://mypyc.readthedocs.io/en/stable/introduction.html">mypyc</a>
wheels are now also available, which improve performance by ~21% over
Pure Python. They will be automatically installed by your package
manager when available for your platform. Pure Python wheel is still
available.</p>
<p>Other changes have been made to improve performance, thanks to <a
href="https://github.com/JCWasmx86"><code>@​JCWasmx86</code></a>. See
the <a
href="https://github.com/djlint/djLint/compare/v1.35.3...v1.35.4">commits</a>
for more details.</p>
<p>Formatting performance comparison with the previous version (tested
on <a
href="https://github.com/openedx/edx-platform">https://github.com/openedx/edx-platform</a>
with single thread):</p>
<table>
<thead>
<tr>
<th>Version</th>
<th>Seconds</th>
</tr>
</thead>
<tbody>
<tr>
<td>v1.35.3</td>
<td>20.39</td>
</tr>
<tr>
<td>v1.35.4 pure Python</td>
<td>14.39</td>
</tr>
<tr>
<td>v1.35.4 compiled</td>
<td>11.35</td>
</tr>
</tbody>
</table>
<h2>v1.35.3</h2>
<p>This release significantly improves performance, especially for large
files and large projects.</p>
<p>Formatting <a
href="https://github.com/openedx/edx-platform">https://github.com/openedx/edx-platform</a>
took 87 seconds in the previous version, now it takes only 4 seconds
(&gt;2000% speedup)! Tested on a 32-core computer.</p>
<ul>
<li>Performance improved by caching some functions. Thanks to <a
href="https://github.com/JCWasmx86"><code>@​JCWasmx86</code></a>!</li>
<li>Removed the limitation on the number of workers introduced in
v1.35.0.</li>
<li>Drop Python 3.8 support.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/djlint/djLint/blob/master/CHANGELOG.md">djlint's
changelog</a>.</em></p>
<blockquote>
<h2>[1.36.1] - 2024-11-07</h2>
<ul>
<li>Improve performance by ~30%. Thanks, <a
href="https://github.com/oliverhaas"><code>@​oliverhaas</code></a>.</li>
</ul>
<h2>[1.36.0] - 2024-11-05</h2>
<h3>Feature</h3>
<ul>
<li>Add support for <code>djlint.toml</code> config file. The format is
identical to <code>pyproject.toml</code>, but it does not use
<code>[tool.djlint]</code> table.</li>
</ul>
<h3>Fix</h3>
<ul>
<li>Do not format HTML in attributes. Thanks, <a
href="https://github.com/oliverhaas"><code>@​oliverhaas</code></a>.</li>
<li>Fix using <code>js_config</code> instead of
<code>css_config</code>.</li>
</ul>
<h3>Performance</h3>
<ul>
<li>Increase performance by ~30% by using regex more efficiently and
caching more stuff.</li>
</ul>
<h2>[1.35.4] - 2024-11-01</h2>
<p>Compiled <a
href="https://mypyc.readthedocs.io/en/stable/introduction.html">mypyc</a>
wheels are now also available, which improve performance by ~21% over
Pure Python. They will be automatically installed by your package
manager when available for your platform. Pure Python wheel is still
available.</p>
<p>Other changes have been made to improve performance, thanks to <a
href="https://github.com/JCWasmx86"><code>@​JCWasmx86</code></a>. See
the <a
href="https://github.com/djlint/djLint/compare/v1.35.3...v1.35.4">commits</a>
for more details.</p>
<p>Formatting performance comparison with the previous version (tested
on <a
href="https://github.com/openedx/edx-platform">https://github.com/openedx/edx-platform</a>
with single thread):</p>
<table>
<thead>
<tr>
<th>Version</th>
<th>Seconds</th>
</tr>
</thead>
<tbody>
<tr>
<td>v1.35.3</td>
<td>20.39</td>
</tr>
<tr>
<td>v1.35.4 pure Python</td>
<td>14.39</td>
</tr>
<tr>
<td>v1.35.4 compiled</td>
<td>11.35</td>
</tr>
</tbody>
</table>
<h2>[1.35.3] - 2024-10-30</h2>
<p>This release significantly improves performance, especially for large
files and large projects.</p>
<p>Formatting <a
href="https://github.com/openedx/edx-platform">https://github.com/openedx/edx-platform</a>
took 87 seconds in the previous version, now it takes only 4 seconds
(&gt;2000% speedup)! Tested on a 32-core computer.</p>
<ul>
<li>Performance improved by caching some functions. Thanks to <a
href="https://github.com/JCWasmx86"><code>@​JCWasmx86</code></a>!</li>
<li>Removed the limitation on the number of workers introduced in
v1.35.0.</li>
<li>Drop Python 3.8 support.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f908697f4e"><code>f908697</code></a>
chore: v1.36.1</li>
<li><a
href="92e2e84f64"><code>92e2e84</code></a>
chore(deps): lock file maintenance</li>
<li><a
href="96fec0e0e1"><code>96fec0e</code></a>
chore(deps): update dependency
<code>@​ianvs/prettier-plugin-sort-imports</code> to v4.4.0</li>
<li><a
href="a7050555f8"><code>a705055</code></a>
chore(deps): lock file maintenance</li>
<li><a
href="21dc6a12d7"><code>21dc6a1</code></a>
perf: simple skip for unformatted blocks (<a
href="https://redirect.github.com/djlint/djLint/issues/1005">#1005</a>)</li>
<li><a
href="9dc7ea3cb6"><code>9dc7ea3</code></a>
chore(deps): lock file maintenance</li>
<li><a
href="14530c8356"><code>14530c8</code></a>
chore: v1.36.0</li>
<li><a
href="d97be3b90e"><code>d97be3b</code></a>
fix: types.py -&gt; types.pyi</li>
<li><a
href="012ee62d47"><code>012ee62</code></a>
chore(deps): lock file maintenance</li>
<li><a
href="1afeeb87cf"><code>1afeeb8</code></a>
fix: fix type hint</li>
<li>Additional commits viewable in <a
href="https://github.com/djlint/djLint/compare/v1.35.2...v1.36.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=djlint&package-manager=pip&previous-version=1.35.2&new-version=1.36.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-11-11 13:10:24 -05:00
David Larlet
ce59ee8544
chore: bump mkdocs-material from 9.5.42 to 9.5.44 (#2255)
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material)
from 9.5.42 to 9.5.44.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/squidfunk/mkdocs-material/releases">mkdocs-material's
releases</a>.</em></p>
<blockquote>
<h2>mkdocs-material-9.5.44</h2>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7672">#7672</a>:
Font CSS 404's when using privacy plugin (9.5.43 regression)</li>
</ul>
<p>Thanks go to <a
href="https://github.com/nejch"><code>@​nejch</code></a> for their
contributions.</p>
<h2>mkdocs-material-9.5.43</h2>
<ul>
<li>Added support for external images in SVGs in privacy plugin</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7651">#7651</a>:
Privacy plugin doesn't handle quoted URLs in CSS</li>
</ul>
<p>Thanks go to <a
href="https://github.com/nejch"><code>@​nejch</code></a> for their
contributions</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG">mkdocs-material's
changelog</a>.</em></p>
<blockquote>
<p>mkdocs-material-9.5.44 (2024-11-05)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7672">#7672</a>:
Font CSS 404's when using privacy plugin (9.5.43 regression)</li>
</ul>
<p>mkdocs-material-9.5.43 (2024-10-31)</p>
<ul>
<li>Added support for external images in SVGs in privacy plugin</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7651">#7651</a>:
Privacy plugin doesn't handle quoted URLs in CSS</li>
</ul>
<p>mkdocs-material-9.5.42 (2024-10-20)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7625">#7625</a>:
Invalid encoding of boolean attributes in privacy plugin</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7624">#7624</a>:
Crash when disabling privacy plugin (9.5.41 regression)</li>
</ul>
<p>mkdocs-material-9.5.41 (2024-10-15)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7619">#7619</a>:
Improved tooltip on logo disappears after instant navigation</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7616">#7616</a>:
Race condition in built-in privacy plugin when inlining assets</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7615">#7615</a>:
Comments and &quot;Was this page helpful?&quot; visible when
printing</li>
</ul>
<p>mkdocs-material-9.5.40 (2024-10-10)</p>
<ul>
<li>Updated Latvian translations</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7597">#7597</a>:
Social cards not using site name on home page</li>
</ul>
<p>mkdocs-material-9.5.39+insiders-4.53.14 (2024-09-29)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7567">#7567</a>:
Empty headlines when using typeset plugin with anchorlinks</li>
</ul>
<p>mkdocs-material-9.5.39 (2024-09-29)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7226">#7226</a>:
not staying on page when using mike's canonical versioning</li>
</ul>
<p>mkdocs-material-9.5.38 (2024-09-26)</p>
<ul>
<li>Added Albanian translations</li>
</ul>
<p>mkdocs-material-9.5.37 (2024-09-25)</p>
<ul>
<li>Added 4th and 5th level ordered list styles</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7548">#7548</a>:
Tags have no spacing in search</li>
</ul>
<p>mkdocs-material-9.5.36 (2024-09-21)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7544">#7544</a>:
Social cards incorrectly rendering HTML entities</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7542">#7542</a>:
Improved support for setting custom list styles</li>
</ul>
<p>mkdocs-material-9.5.35 (2024-09-18)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7498">#7498</a>:
Search not showing for Vietnamese language</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="aa4ef560f0"><code>aa4ef56</code></a>
Prepare 9.5.44 release</li>
<li><a
href="eb63b608e2"><code>eb63b60</code></a>
Fixed file save regression in privacy plugin (<a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7673">#7673</a>)</li>
<li><a
href="ac3315fd3e"><code>ac3315f</code></a>
Updated dependencies</li>
<li><a
href="8a60b49328"><code>8a60b49</code></a>
Prepare 9.5.43 release</li>
<li><a
href="f82a345f3a"><code>f82a345</code></a>
Documentation</li>
<li><a
href="4918a10d8f"><code>4918a10</code></a>
Added support for quoted external CSS URLs in privacy plugin (<a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7651">#7651</a>)</li>
<li><a
href="7dc96f1e13"><code>7dc96f1</code></a>
Added support for downloading external images in SVG for privacy plugin
(<a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7650">#7650</a>)</li>
<li><a
href="1357cd26af"><code>1357cd2</code></a>
Updated dependencies</li>
<li><a
href="198a6801fc"><code>198a680</code></a>
Documentation (<a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7633">#7633</a>)</li>
<li><a
href="9aebe1498e"><code>9aebe14</code></a>
Updated dependencies</li>
<li>See full diff in <a
href="https://github.com/squidfunk/mkdocs-material/compare/9.5.42...9.5.44">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocs-material&package-manager=pip&previous-version=9.5.42&new-version=9.5.44)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-11-11 13:10:15 -05:00
dependabot[bot]
4a523b491b
chore: bump djlint from 1.35.2 to 1.36.1
Bumps [djlint](https://github.com/djlint/djLint) from 1.35.2 to 1.36.1.
- [Release notes](https://github.com/djlint/djLint/releases)
- [Changelog](https://github.com/djlint/djLint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/djlint/djLint/compare/v1.35.2...v1.36.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 18:02:31 +00:00
dependabot[bot]
59b255054a
chore: bump mkdocs-material from 9.5.42 to 9.5.44
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.42 to 9.5.44.
- [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.42...9.5.44)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 18:02:30 +00:00
David Larlet
641bff4992
chore: bump django from 5.1.2 to 5.1.3 (#2256)
Bumps [django](https://github.com/django/django) from 5.1.2 to 5.1.3.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="69bf08e3a3"><code>69bf08e</code></a>
[5.1.x] Bumped version for 5.1.3 release.</li>
<li><a
href="e3984ca5d1"><code>e3984ca</code></a>
[5.1.x] Added release date for 5.1.3.</li>
<li><a
href="4ae358122b"><code>4ae3581</code></a>
[5.1.x] Made minor edits to form fields docs.</li>
<li><a
href="9fa2d235c9"><code>9fa2d23</code></a>
[5.1.x] Fixed <a
href="https://redirect.github.com/django/django/issues/35876">#35876</a>
-- Displayed non-ASCII fieldset names when rendering Mod...</li>
<li><a
href="5045dab4f9"><code>5045dab</code></a>
[5.1.x] Added missing lang attributes to html elements in docs.</li>
<li><a
href="ffc67aac1e"><code>ffc67aa</code></a>
[5.1.x] Fixed <a
href="https://redirect.github.com/django/django/issues/35864">#35864</a>
-- Documented EmailMessage.connection is ignored when us...</li>
<li><a
href="4915feaaf7"><code>4915fea</code></a>
[5.1.x] Fixed <a
href="https://redirect.github.com/django/django/issues/35873">#35873</a>
-- Corrected Form.as_table() call in form docs.</li>
<li><a
href="b57a8395b5"><code>b57a839</code></a>
[5.1.x] Refs <a
href="https://redirect.github.com/django/django/issues/35844">#35844</a>
-- Expanded compatibility for expected error messages in ...</li>
<li><a
href="c5ddc8550c"><code>c5ddc85</code></a>
[5.1.x] Corrected note on importing fields in model field reference
docs.</li>
<li><a
href="0a1091f118"><code>0a1091f</code></a>
[5.1.x] Removed unneeded OS reference on running the test suite in
contributi...</li>
<li>Additional commits viewable in <a
href="https://github.com/django/django/compare/5.1.2...5.1.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=django&package-manager=pip&previous-version=5.1.2&new-version=5.1.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-11-11 13:01:51 -05:00
David Larlet
81c494cbde
chore: bump ruff from 0.7.1 to 0.7.3 (#2253)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.1 to 0.7.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.7.3</h2>
<h2>Release Notes</h2>
<h3>Preview features</h3>
<ul>
<li>Formatter: Disallow single-line implicit concatenated strings (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13928">#13928</a>)</li>
<li>[<code>flake8-pyi</code>] Include all Python file types for
<code>PYI006</code> and <code>PYI066</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14059">#14059</a>)</li>
<li>[<code>flake8-simplify</code>] Implement
<code>split-of-static-string</code> (<code>SIM905</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14008">#14008</a>)</li>
<li>[<code>refurb</code>] Implement <code>subclass-builtin</code>
(<code>FURB189</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14105">#14105</a>)</li>
<li>[<code>ruff</code>] Improve diagnostic messages and docs
(<code>RUF031</code>, <code>RUF032</code>, <code>RUF034</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14068">#14068</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>Detect items that hash to same value in duplicate sets
(<code>B033</code>, <code>PLC0208</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14064">#14064</a>)</li>
<li>[<code>eradicate</code>] Better detection of IntelliJ language
injection comments (<code>ERA001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14094">#14094</a>)</li>
<li>[<code>flake8-pyi</code>] Add autofix for
<code>docstring-in-stub</code> (<code>PYI021</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14150">#14150</a>)</li>
<li>[<code>flake8-pyi</code>] Update
<code>duplicate-literal-member</code> (<code>PYI062</code>) to alawys
provide an autofix (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14188">#14188</a>)</li>
<li>[<code>pyflakes</code>] Detect items that hash to same value in
duplicate dictionaries (<code>F601</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14065">#14065</a>)</li>
<li>[<code>ruff</code>] Fix false positive for decorators
(<code>RUF028</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14061">#14061</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Avoid parsing joint rule codes as distinct codes in <code>#
noqa</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/12809">#12809</a>)</li>
<li>[<code>eradicate</code>] ignore <code># language=</code> in
commented-out-code rule (ERA001) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14069">#14069</a>)</li>
<li>[<code>flake8-bugbear</code>] - do not run
<code>mutable-argument-default</code> on stubs (<code>B006</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14058">#14058</a>)</li>
<li>[<code>flake8-builtins</code>] Skip lambda expressions in
<code>builtin-argument-shadowing (A002)</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14144">#14144</a>)</li>
<li>[<code>flake8-comprehension</code>] Also remove trailing comma while
fixing <code>C409</code> and <code>C419</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14097">#14097</a>)</li>
<li>[<code>flake8-simplify</code>] Allow <code>open</code> without
context manager in <code>return</code> statement (<code>SIM115</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14066">#14066</a>)</li>
<li>[<code>pylint</code>] Respect hash-equivalent literals in
<code>iteration-over-set</code> (<code>PLC0208</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14063">#14063</a>)</li>
<li>[<code>pylint</code>] Update known dunder methods for Python 3.13
(<code>PLW3201</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14146">#14146</a>)</li>
<li>[<code>pyupgrade</code>] - ignore kwarg unpacking for
<code>UP044</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14053">#14053</a>)</li>
<li>[<code>refurb</code>] Parse more exotic decimal strings in
<code>verbose-decimal-constructor</code> (<code>FURB157</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14098">#14098</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add links to missing related options within rule documentations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13971">#13971</a>)</li>
<li>Add rule short code to mkdocs tags to allow searching via rule codes
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14040">#14040</a>)</li>
</ul>
<h2>Install ruff 0.7.3</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/astral-sh/ruff/releases/download/0.7.3/ruff-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<pre lang="sh"><code>powershell -ExecutionPolicy ByPass -c &quot;irm
https://github.com/astral-sh/ruff/releases/download/0.7.3/ruff-installer.ps1
| iex&quot;
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.7.3</h2>
<h3>Preview features</h3>
<ul>
<li>Formatter: Disallow single-line implicit concatenated strings (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13928">#13928</a>)</li>
<li>[<code>flake8-pyi</code>] Include all Python file types for
<code>PYI006</code> and <code>PYI066</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14059">#14059</a>)</li>
<li>[<code>flake8-simplify</code>] Implement
<code>split-of-static-string</code> (<code>SIM905</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14008">#14008</a>)</li>
<li>[<code>refurb</code>] Implement <code>subclass-builtin</code>
(<code>FURB189</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14105">#14105</a>)</li>
<li>[<code>ruff</code>] Improve diagnostic messages and docs
(<code>RUF031</code>, <code>RUF032</code>, <code>RUF034</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14068">#14068</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>Detect items that hash to same value in duplicate sets
(<code>B033</code>, <code>PLC0208</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14064">#14064</a>)</li>
<li>[<code>eradicate</code>] Better detection of IntelliJ language
injection comments (<code>ERA001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14094">#14094</a>)</li>
<li>[<code>flake8-pyi</code>] Add autofix for
<code>docstring-in-stub</code> (<code>PYI021</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14150">#14150</a>)</li>
<li>[<code>flake8-pyi</code>] Update
<code>duplicate-literal-member</code> (<code>PYI062</code>) to alawys
provide an autofix (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14188">#14188</a>)</li>
<li>[<code>pyflakes</code>] Detect items that hash to same value in
duplicate dictionaries (<code>F601</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14065">#14065</a>)</li>
<li>[<code>ruff</code>] Fix false positive for decorators
(<code>RUF028</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14061">#14061</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Avoid parsing joint rule codes as distinct codes in <code>#
noqa</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/12809">#12809</a>)</li>
<li>[<code>eradicate</code>] ignore <code># language=</code> in
commented-out-code rule (ERA001) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14069">#14069</a>)</li>
<li>[<code>flake8-bugbear</code>] - do not run
<code>mutable-argument-default</code> on stubs (<code>B006</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14058">#14058</a>)</li>
<li>[<code>flake8-builtins</code>] Skip lambda expressions in
<code>builtin-argument-shadowing (A002)</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14144">#14144</a>)</li>
<li>[<code>flake8-comprehension</code>] Also remove trailing comma while
fixing <code>C409</code> and <code>C419</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14097">#14097</a>)</li>
<li>[<code>flake8-simplify</code>] Allow <code>open</code> without
context manager in <code>return</code> statement (<code>SIM115</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14066">#14066</a>)</li>
<li>[<code>pylint</code>] Respect hash-equivalent literals in
<code>iteration-over-set</code> (<code>PLC0208</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14063">#14063</a>)</li>
<li>[<code>pylint</code>] Update known dunder methods for Python 3.13
(<code>PLW3201</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14146">#14146</a>)</li>
<li>[<code>pyupgrade</code>] - ignore kwarg unpacking for
<code>UP044</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14053">#14053</a>)</li>
<li>[<code>refurb</code>] Parse more exotic decimal strings in
<code>verbose-decimal-constructor</code> (<code>FURB157</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14098">#14098</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add links to missing related options within rule documentations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13971">#13971</a>)</li>
<li>Add rule short code to mkdocs tags to allow searching via rule codes
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14040">#14040</a>)</li>
</ul>
<h2>0.7.2</h2>
<h3>Preview features</h3>
<ul>
<li>Fix formatting of single with-item with trailing comment (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14005">#14005</a>)</li>
<li>[<code>pyupgrade</code>] Add PEP 646 <code>Unpack</code> conversion
to <code>*</code> with fix (<code>UP044</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13988">#13988</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>Regenerate <code>known_stdlibs.rs</code> with stdlibs 2024.10.25 (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13963">#13963</a>)</li>
<li>[<code>flake8-no-pep420</code>] Skip namespace package enforcement
for PEP 723 scripts (<code>INP001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13974">#13974</a>)</li>
</ul>
<h3>Server</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fbf140a665"><code>fbf140a</code></a>
Bump version to 0.7.3 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14197">#14197</a>)</li>
<li><a
href="670f958525"><code>670f958</code></a>
[red-knot] Fix intersection simplification for
<code>~Any</code>/<code>~Unknown</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14195">#14195</a>)</li>
<li><a
href="fed35a25e8"><code>fed35a2</code></a>
[red-knot] Fix <code>is_assignable_to</code> for unions (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14196">#14196</a>)</li>
<li><a
href="d1ef418bb0"><code>d1ef418</code></a>
Docs: tweak rules documentation (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14180">#14180</a>)</li>
<li><a
href="272d24bf3e"><code>272d24b</code></a>
[<code>flake8-pyi</code>] Add a fix for
<code>duplicate-literal-member</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14188">#14188</a>)</li>
<li><a
href="2624249219"><code>2624249</code></a>
[red-knot] Minor: fix <code>Literal[True] &lt;: int</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14177">#14177</a>)</li>
<li><a
href="4b08d17088"><code>4b08d17</code></a>
[red-knot] Add a new <code>Type::KnownInstanceType</code> variant (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14155">#14155</a>)</li>
<li><a
href="5b6169b02d"><code>5b6169b</code></a>
[red-knot] Minor fix in intersection type comment (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14176">#14176</a>)</li>
<li><a
href="2040e93add"><code>2040e93</code></a>
[<code>flake8-logging-format</code>] Fix invalid formatting value in
docs of `logging-ex...</li>
<li><a
href="794eb886e4"><code>794eb88</code></a>
[<code>flake8-bandit</code>] Typo in docs
<code>suspicious-pickle-import</code> (<code>S403</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14175">#14175</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.7.1...0.7.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruff&package-manager=pip&previous-version=0.7.1&new-version=0.7.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-11-11 13:01:21 -05:00
dependabot[bot]
24c1075665
chore: bump django from 5.1.2 to 5.1.3
Bumps [django](https://github.com/django/django) from 5.1.2 to 5.1.3.
- [Commits](https://github.com/django/django/compare/5.1.2...5.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 17:20:59 +00:00
dependabot[bot]
3451ce6d47
chore: bump ruff from 0.7.1 to 0.7.3
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.1 to 0.7.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.7.1...0.7.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 17:20:41 +00:00
David Larlet
e0ca66f186
docs: from MonComptePro to ProConnect by @C-Sophie
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
Refs #2251
2024-11-07 20:21:32 -05:00
David Larlet
3b90bc11eb
docs: Change AgentConnect to ProConnect
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
2024-11-06 08:34:10 -05:00
Yohan Boniface
256d4487e7
chore: introduce SaveManager class (#2240)
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
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-30 18:27:37 +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
7e2fee4f69
chore: bump ruff from 0.7.0 to 0.7.1 (#2242) 2024-10-28 18:31:57 +01:00
Yohan Boniface
2e4626b5df
chore: bump uwsgi from 2.0.27 to 2.0.28 (#2241)
Bumps [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.27
to 2.0.28.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uwsgi&package-manager=pip&previous-version=2.0.27&new-version=2.0.28)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-10-28 18:31:13 +01:00
dependabot[bot]
bd9693e8c5
chore: bump ruff from 0.7.0 to 0.7.1
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.0 to 0.7.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.7.0...0.7.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 17:20:51 +00:00
dependabot[bot]
58deb4ffbd
chore: bump uwsgi from 2.0.27 to 2.0.28
Bumps [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.27 to 2.0.28.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 17:20:34 +00: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
a16f6d409c
fix: always unset editedFeature on editPanel close (#2237)
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-25 15:40:47 +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
928ce8232c chore: better document UMAP_PURGATORY_ROOT 2024-10-24 18:28:44 +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
85d65c5070
chore: bump ruff from 0.6.9 to 0.7.0 (#2230) 2024-10-22 08:28:13 +02:00
Yohan Boniface
e5d82ec645
chore: bump mkdocs-material from 9.5.40 to 9.5.42 (#2229) 2024-10-22 08:27:56 +02:00
Yohan Boniface
57e735d64d
chore: bump pillow from 10.4.0 to 11.0.0 (#2231) 2024-10-22 08:27:37 +02:00
dependabot[bot]
1f34fd3e41
chore: bump pillow from 10.4.0 to 11.0.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.4.0 to 11.0.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/10.4.0...11.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 17:41:15 +00:00
dependabot[bot]
b7fd805d3d
chore: bump ruff from 0.6.9 to 0.7.0
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.9 to 0.7.0.
- [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.6.9...0.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 17:41:05 +00:00
dependabot[bot]
1d88b84936
chore: bump mkdocs-material from 9.5.40 to 9.5.42
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.40 to 9.5.42.
- [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.40...9.5.42)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 17:40:54 +00: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
0d5b488f93
chore: remove postsync in captionBar and let map.propagate do its job (#2227) 2024-10-21 16:23:58 +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
13aa407e47 chore: install sync target on "make develop" 2024-10-21 11:59:58 +02:00
Yohan Boniface
c74971bc0e chore: move pydantic and websocket in sync dependencies target 2024-10-21 11:50:10 +02:00
Yohan Boniface
037b8e0fbd
feat: add importer for French cadastre (#2223)
![Screenshot From 2024-10-18
12-48-23](https://github.com/user-attachments/assets/26357638-cf57-4582-b44a-03bb698f6502)
2024-10-21 11:46:57 +02:00
Yohan Boniface
9520a99d11 feat: add importer for French cadastre 2024-10-21 11:28:15 +02:00
Yohan Boniface
7b88193d62
fix: fix dispeared icons from panel titles (#2222)
Before:


![image](https://github.com/user-attachments/assets/54a7de1e-790a-46a2-aa0c-0acb03286349)


After:


![image](https://github.com/user-attachments/assets/f57bb884-a748-4aa4-9153-707b201909fe)
2024-10-21 10:47:12 +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
David Larlet
2642688764
Docker: version is obsolete. (#2220)
The top-level 'version' property is deprecated and can be omitted to
prevent warnings.
2024-10-16 22:41:47 -04:00
L
39cb9cbed0 version is obsolete.
The top-level 'version' property is deprecated.
2024-10-17 08:42:51 +10: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


![image](https://github.com/user-attachments/assets/2c8b96e4-8cf7-4d5f-afed-11adf73e98a8)

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:


![image](https://github.com/user-attachments/assets/b3717d4a-6f6c-4976-a86b-f97bd1239cea)

Click on feature:


![image](https://github.com/user-attachments/assets/c7f75afb-4a8a-446a-b7f4-a4a790c148c3)
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
dab8bce27e
fix: do not show browser counter when layer is empty or not loaded (#2217)
fix #2215
2024-10-16 12:01:49 +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
e0812afea8
chore: use colorbrewer as ES module (#2218) 2024-10-16 09:41:56 +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
828edb6108
chore: bump rcssmin from 1.1.2 to 1.1.3 (#2214) 2024-10-15 10:08:20 +02:00
dependabot[bot]
cd2086d18b
chore: bump rcssmin from 1.1.2 to 1.1.3
Bumps [rcssmin](https://github.com/ndparker/rcssmin) from 1.1.2 to 1.1.3.
- [Changelog](https://github.com/ndparker/rcssmin/blob/master/CHANGES)
- [Commits](https://github.com/ndparker/rcssmin/compare/1.1.2...1.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-15 08:06:24 +00:00
Yohan Boniface
36d9f94f37
chore: bump rjsmin from 1.2.2 to 1.2.3 (#2212) 2024-10-15 10:05:14 +02:00
Yohan Boniface
2c65ac8a88
chore: bump hatch from 1.12.0 to 1.13.0 (#2211)
Bumps [hatch](https://github.com/pypa/hatch) from 1.12.0 to 1.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/hatch/releases">hatch's
releases</a>.</em></p>
<blockquote>
<h2>Hatchling v1.13.0</h2>
<p><em><strong>Added:</strong></em></p>
<ul>
<li>Update the set of known trove classifiers to version 2023.2.8</li>
</ul>
<h2>Hatch v1.13.0</h2>
<p><em><strong>Added:</strong></em></p>
<ul>
<li>Support managing Python 3.13 distributions</li>
</ul>
<h2>Hatchling v1.12.2</h2>
<p><em><strong>Fixed:</strong></em></p>
<ul>
<li>Add <code>macos-max-compat</code> option to the <code>wheel</code>
target that is enabled by default to support the latest version 22.0 of
the <code>packaging</code> library</li>
</ul>
<h2>Hatchling v1.12.1</h2>
<p><em><strong>Fixed:</strong></em></p>
<ul>
<li>Fix minor regression in the PEP 517/660 function signatures that was
discovered by Fedora</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4e3c515bb1"><code>4e3c515</code></a>
release Hatch v1.13.0</li>
<li><a
href="204c0cdc30"><code>204c0cd</code></a>
Support managing Python 3.13 distributions (<a
href="https://redirect.github.com/pypa/hatch/issues/1753">#1753</a>)</li>
<li>See full diff in <a
href="https://github.com/pypa/hatch/compare/hatch-v1.12.0...hatch-v1.13.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hatch&package-manager=pip&previous-version=1.12.0&new-version=1.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-10-15 10:03:04 +02:00
Yohan Boniface
fbb8163f53
chore: bump mkdocs-material from 9.5.39 to 9.5.40 (#2210)
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material)
from 9.5.39 to 9.5.40.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/squidfunk/mkdocs-material/releases">mkdocs-material's
releases</a>.</em></p>
<blockquote>
<h2>mkdocs-material-9.5.40</h2>
<ul>
<li>Updated Latvian translations</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7597">#7597</a>:
Social cards not using site name on home page</li>
</ul>
<p>Thanks go to <a
href="https://github.com/pekkaklarck"><code>@​pekkaklarck</code></a> and
<a href="https://github.com/klejejs"><code>@​klejejs</code></a> for
their contributions</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG">mkdocs-material's
changelog</a>.</em></p>
<blockquote>
<p>mkdocs-material-9.5.40 (2024-10-10)</p>
<ul>
<li>Updated Latvian translations</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7597">#7597</a>:
Social cards not using site name on home page</li>
</ul>
<p>mkdocs-material-9.5.39+insiders-4.53.14 (2024-09-29)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7567">#7567</a>:
Empty headlines when using typeset plugin with anchorlinks</li>
</ul>
<p>mkdocs-material-9.5.39 (2024-09-29)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7226">#7226</a>:
not staying on page when using mike's canonical versioning</li>
</ul>
<p>mkdocs-material-9.5.38 (2024-09-26)</p>
<ul>
<li>Added Albanian translations</li>
</ul>
<p>mkdocs-material-9.5.37 (2024-09-25)</p>
<ul>
<li>Added 4th and 5th level ordered list styles</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7548">#7548</a>:
Tags have no spacing in search</li>
</ul>
<p>mkdocs-material-9.5.36 (2024-09-21)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7544">#7544</a>:
Social cards incorrectly rendering HTML entities</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7542">#7542</a>:
Improved support for setting custom list styles</li>
</ul>
<p>mkdocs-material-9.5.35 (2024-09-18)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7498">#7498</a>:
Search not showing for Vietnamese language</li>
</ul>
<p>mkdocs-material-9.5.34+insiders-4.53.13 (2024-09-14)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7520">#7520</a>:
Social plugin errors for generated files (MkDocs 1.6+)</li>
</ul>
<p>mkdocs-material-9.5.34 (2024-08-31)</p>
<ul>
<li>Updated Mermaid.js to version 11 (latest)</li>
</ul>
<p>mkdocs-material-9.5.33 (2024-08-23)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7453">#7453</a>:
Incorrect position of tooltip when sorting table</li>
</ul>
<p>mkdocs-material-9.5.32 (2024-08-19)</p>
<ul>
<li>Fixed RXSS vulnerability via deep link in search results</li>
<li>Added support for fetching latest release from GitLab</li>
</ul>
<p>mkdocs-material-9.5.31+insiders-4.53.12 (2024-08-02)</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="921e522a51"><code>921e522</code></a>
Prepare 9.5.40 release</li>
<li><a
href="829d1c8db2"><code>829d1c8</code></a>
Fixed social cards not using site name on homepage (<a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7608">#7608</a>)</li>
<li><a
href="cf2b39d1c2"><code>cf2b39d</code></a>
Documentation</li>
<li><a
href="10177cc275"><code>10177cc</code></a>
Documentation (<a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7604">#7604</a>)</li>
<li><a
href="f0c99d89da"><code>f0c99d8</code></a>
Documentation (<a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7602">#7602</a>)</li>
<li><a
href="a9be02645b"><code>a9be026</code></a>
Fixed file watching for Chokidar 4</li>
<li><a
href="2014b634e8"><code>2014b63</code></a>
Fixed file watching for Chokidar 4</li>
<li><a
href="25b2107b53"><code>25b2107</code></a>
Updated dependencies</li>
<li><a
href="a83d44a7c8"><code>a83d44a</code></a>
Updated publishing guide (<a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7584">#7584</a>)</li>
<li><a
href="ffcabcaa15"><code>ffcabca</code></a>
Merge pull request <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7582">#7582</a>
from yanyongyu/schema/validation-anchors</li>
<li>Additional commits viewable in <a
href="https://github.com/squidfunk/mkdocs-material/compare/9.5.39...9.5.40">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocs-material&package-manager=pip&previous-version=9.5.39&new-version=9.5.40)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-10-15 10:02:45 +02:00
Yohan Boniface
7305ea9d60
chore: bump django from 5.1.1 to 5.1.2 (#2213)
Bumps [django](https://github.com/django/django) from 5.1.1 to 5.1.2.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c499184f19"><code>c499184</code></a>
[5.1.x] Bumped version for 5.1.2 release.</li>
<li><a
href="6e07a7769f"><code>6e07a77</code></a>
[5.1.x] Added release date for 5.1.2.</li>
<li><a
href="17fa7592af"><code>17fa759</code></a>
[5.1.x] Fixed <a
href="https://redirect.github.com/django/django/issues/35809">#35809</a>
-- Set background color for selected rows in the admin's...</li>
<li><a
href="e245f62d00"><code>e245f62</code></a>
[5.1.x] Updated translations from Transifex.</li>
<li><a
href="6bedb102e9"><code>6bedb10</code></a>
[5.1.x] Reindented attributes and methods for classes in
docs/ref/middleware....</li>
<li><a
href="bf64ac3567"><code>bf64ac3</code></a>
[5.1.x] Fixed <a
href="https://redirect.github.com/django/django/issues/35670">#35670</a>
-- Clarified the return value for LoginRequiredMiddlewar...</li>
<li><a
href="53031136f5"><code>5303113</code></a>
[5.1.x] Relocated path() explanation to docs/ref/urls.txt to simplify
tutoria...</li>
<li><a
href="22bce642a9"><code>22bce64</code></a>
[5.1.x] Fixed <a
href="https://redirect.github.com/django/django/issues/35734">#35734</a>
-- Used JSONB_BUILD_OBJECT database function on PostgreS...</li>
<li><a
href="9e146b27ad"><code>9e146b2</code></a>
[5.1.x] Made cosmetic edits to the Steering council docs.</li>
<li><a
href="251180f7f9"><code>251180f</code></a>
[5.1.x] Removed setting the release schedule from Steering Council
prerogativ...</li>
<li>Additional commits viewable in <a
href="https://github.com/django/django/compare/5.1.1...5.1.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=django&package-manager=pip&previous-version=5.1.1&new-version=5.1.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-10-15 10:02:28 +02:00
dependabot[bot]
b406ff9886
chore: bump django from 5.1.1 to 5.1.2
Bumps [django](https://github.com/django/django) from 5.1.1 to 5.1.2.
- [Commits](https://github.com/django/django/compare/5.1.1...5.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 17:16:05 +00:00
dependabot[bot]
550f38eaaf
chore: bump rjsmin from 1.2.2 to 1.2.3
Bumps [rjsmin](https://github.com/ndparker/rjsmin) from 1.2.2 to 1.2.3.
- [Changelog](https://github.com/ndparker/rjsmin/blob/1.2.3/CHANGES)
- [Commits](https://github.com/ndparker/rjsmin/compare/1.2.2...1.2.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 17:15:51 +00:00
dependabot[bot]
5bbfe7a534
chore: bump hatch from 1.12.0 to 1.13.0
Bumps [hatch](https://github.com/pypa/hatch) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/pypa/hatch/releases)
- [Commits](https://github.com/pypa/hatch/compare/hatch-v1.12.0...hatch-v1.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 17:15:47 +00:00
dependabot[bot]
ef4b0cd8aa
chore: bump mkdocs-material from 9.5.39 to 9.5.40
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.39 to 9.5.40.
- [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.39...9.5.40)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 17:15:42 +00: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
6b37e4792f
fix: honour carriage returns in permanent credits (#2206)
fix #2197

The fix here is to add the `text` class, the rest is cleaning.
2024-10-10 19:48:37 +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
David Larlet
61de72ce85
docs: new tutorial to find open data by @C-Sophie 2024-10-07 16:47:22 -04: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
Yohan Boniface
64814f355f
chore: bump ruff from 0.6.8 to 0.6.9 (#2200) 2024-10-07 22:28:17 +02:00
dependabot[bot]
bad10f6734
chore: bump ruff from 0.6.8 to 0.6.9
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.8 to 0.6.9.
- [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.6.8...0.6.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 17:12:37 +00: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
16f80beffa
fix: fix contextmenu positionning when map is not full screen (#2198) 2024-10-06 10:18:07 +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
Yohan Boniface
c0eb936499 changelog 2024-10-05 08:58:52 +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
9828c491e3
chore: replace native confirm by our styled ones (#2193) 2024-10-04 17:42:56 +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
a12d0e6b50 chore: remove package-lock.json from git
As we vendor our dependencies ourselves, let's make it simple.
2024-10-04 17:22:04 +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:


![image](https://github.com/user-attachments/assets/ea5cf2d3-f8f7-4d6a-8bf5-4c0334334bbc)

In edit mode:


![image](https://github.com/user-attachments/assets/2d2fa5c1-a275-4037-8780-d18a5e31949b)

### Some entries are specific to a clicked feature

In preview mode (Marker):


![image](https://github.com/user-attachments/assets/2d03f640-fb62-4be8-893d-d1ffc09d66f1)

In edit mode (Marker):


![image](https://github.com/user-attachments/assets/3f5ede89-fe3e-41a0-ac9a-575ef04e7a41)

In preview mode (Polygon):


![image](https://github.com/user-attachments/assets/fa88b13a-ac53-4bdd-896c-ada025640c35)

In edit mode (Polygon):


![image](https://github.com/user-attachments/assets/c2b46f2a-4f6d-4660-9654-d4f775386898)

In preview mode (Line):


![image](https://github.com/user-attachments/assets/74cd5c21-ad17-4592-b3da-f82f12c60baf)

In edit mode (Line):


![image](https://github.com/user-attachments/assets/4c9f89c6-a30e-4f40-84fe-3fff306358aa)


@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
a2d0d14857
feat: allow to search by code INSEE in communes importer (#2188)
Otherwise when searching for a very commun name (like "Saint-Paul"), one
may not find the right one among the x returned results.

![Screenshot from 2024-10-03
16-59-39](https://github.com/user-attachments/assets/662c0d13-2c85-4159-b37e-19247bf838b8)


![Screenshot from 2024-10-03
16-53-49](https://github.com/user-attachments/assets/a19c405c-ea2b-4359-9db1-95101fb6012d)

![Screenshot from 2024-10-03
17-00-55](https://github.com/user-attachments/assets/65705a87-ee24-4e50-acbb-069565a70c75)
2024-10-04 15:47:15 +02:00
David Larlet
5185cc56a9
docs: Display Grist data in uMap
Based on work from @C-Sophie and @ybon

Also, explicit admonition icons for French instance and OSM instance.

Closes #2173
2024-10-03 16:47:11 -04:00
Yohan Boniface
f1619579a4 feat: allow to search by code INSEE in communes importer 2024-10-03 18:03:43 +02:00
de1ddda0e8 chore(deploy): Spawn the websocket server in the docker image.
Checks if the `WEBSOCKET_ENABLED` is set to `True` and runs the
websocket server accordingly.
2024-10-03 12:26:33 +02:00
Yohan Boniface
d0d40cff99
chore: bump pymdown-extensions from 10.11.1 to 10.11.2 (#2185)
Bumps
[pymdown-extensions](https://github.com/facelessuser/pymdown-extensions)
from 10.11.1 to 10.11.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facelessuser/pymdown-extensions/releases">pymdown-extensions's
releases</a>.</em></p>
<blockquote>
<h2>10.11.2</h2>
<ul>
<li><strong>FIX</strong>: SuperFences: Fix a regression where certain
patterns could cause a hang.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a9940657c9"><code>a994065</code></a>
Fix SuperFence pattern should require options to be separated by a space
(<a
href="https://redirect.github.com/facelessuser/pymdown-extensions/issues/2480">#2480</a>)</li>
<li><a
href="96e19e6865"><code>96e19e6</code></a>
Remove more duplicate words</li>
<li><a
href="3f6fbbb633"><code>3f6fbbb</code></a>
Typos: remove various duplicated words</li>
<li>See full diff in <a
href="https://github.com/facelessuser/pymdown-extensions/compare/10.11.1...10.11.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pymdown-extensions&package-manager=pip&previous-version=10.11.1&new-version=10.11.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-10-02 10:53:58 +02:00
dependabot[bot]
de79ff6ff6
chore: bump pymdown-extensions from 10.11.1 to 10.11.2
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.11.1 to 10.11.2.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.11.1...10.11.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-02 08:46:42 +00:00
Yohan Boniface
0c3bb9fd54
chore: bump mkdocs-material from 9.5.36 to 9.5.39 (#2182)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material)
from 9.5.36 to 9.5.39.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/squidfunk/mkdocs-material/releases">mkdocs-material's
releases</a>.</em></p>
<blockquote>
<h2>mkdocs-material-9.5.39</h2>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7226">#7226</a>:
not staying on page when using mike's canonical versioning</li>
</ul>
<p>Thanks go to <a
href="https://github.com/ilyagr"><code>@​ilyagr</code></a> for their
contributions</p>
<h2>mkdocs-material-9.5.38</h2>
<ul>
<li>Added Albanian translations</li>
</ul>
<p>Thanks go to <a
href="https://github.com/gerardkraja"><code>@​gerardkraja</code></a> for
their contributions</p>
<h2>mkdocs-material-9.5.37</h2>
<ul>
<li>Added 4th and 5th level ordered list styles</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7548">#7548</a>:
Tags have no spacing in search</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG">mkdocs-material's
changelog</a>.</em></p>
<blockquote>
<p>mkdocs-material-9.5.39+insiders-4.53.14 (2024-09-29)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7567">#7567</a>:
Empty headlines when using typeset plugin with anchorlinks</li>
</ul>
<p>mkdocs-material-9.5.39 (2024-09-29)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7226">#7226</a>:
not staying on page when using mike's canonical versioning</li>
</ul>
<p>mkdocs-material-9.5.38 (2024-09-26)</p>
<ul>
<li>Added Albanian translations</li>
</ul>
<p>mkdocs-material-9.5.37 (2024-09-25)</p>
<ul>
<li>Added 4th and 5th level ordered list styles</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7548">#7548</a>:
Tags have no spacing in search</li>
</ul>
<p>mkdocs-material-9.5.36 (2024-09-21)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7544">#7544</a>:
Social cards incorrectly rendering HTML entities</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7542">#7542</a>:
Improved support for setting custom list styles</li>
</ul>
<p>mkdocs-material-9.5.35 (2024-09-18)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7498">#7498</a>:
Search not showing for Vietnamese language</li>
</ul>
<p>mkdocs-material-9.5.34+insiders-4.53.13 (2024-09-14)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7520">#7520</a>:
Social plugin errors for generated files (MkDocs 1.6+)</li>
</ul>
<p>mkdocs-material-9.5.34 (2024-08-31)</p>
<ul>
<li>Updated Mermaid.js to version 11 (latest)</li>
</ul>
<p>mkdocs-material-9.5.33 (2024-08-23)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7453">#7453</a>:
Incorrect position of tooltip when sorting table</li>
</ul>
<p>mkdocs-material-9.5.32 (2024-08-19)</p>
<ul>
<li>Fixed RXSS vulnerability via deep link in search results</li>
<li>Added support for fetching latest release from GitLab</li>
</ul>
<p>mkdocs-material-9.5.31+insiders-4.53.12 (2024-08-02)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7410">#7410</a>:
Instant previews jump on content tabs with anchor links</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7408">#7408</a>:
Instant previews jump on content tabs</li>
</ul>
<p>mkdocs-material-9.5.31 (2024-08-02)</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="70db88f414"><code>70db88f</code></a>
Prepare 9.5.39 release</li>
<li><a
href="187705e3b8"><code>187705e</code></a>
Updated dependencies</li>
<li><a
href="56fdb282d0"><code>56fdb28</code></a>
Adjusted code copy button documentation</li>
<li><a
href="aeb9492c08"><code>aeb9492</code></a>
Fixed stay no page functionality when using mike's canonical versioning
(<a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7559">#7559</a>)</li>
<li><a
href="50a15becc8"><code>50a15be</code></a>
Updated link to step-by-step guide on YouTube</li>
<li><a
href="117250a462"><code>117250a</code></a>
Prepare 9.5.38 release</li>
<li><a
href="74ca2341ac"><code>74ca234</code></a>
Added Albanian translations</li>
<li><a
href="84ddbba7ef"><code>84ddbba</code></a>
Prepare 9.5.37 release</li>
<li><a
href="fd984136ba"><code>fd98413</code></a>
Documentation (<a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7557">#7557</a>)</li>
<li><a
href="573d23d147"><code>573d23d</code></a>
Updated dependencies</li>
<li>Additional commits viewable in <a
href="https://github.com/squidfunk/mkdocs-material/compare/9.5.36...9.5.39">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocs-material&package-manager=pip&previous-version=9.5.36&new-version=9.5.39)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-10-02 10:45:34 +02:00
dependabot[bot]
121c9778e6
chore: bump mkdocs-material from 9.5.36 to 9.5.39
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.36 to 9.5.39.
- [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.36...9.5.39)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-02 08:45:25 +00:00
Yohan Boniface
e611b038bd
chore: bump ruff from 0.6.7 to 0.6.8 (#2181)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.7 to 0.6.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.6.8</h2>
<h2>Release Notes</h2>
<h3>Preview features</h3>
<ul>
<li>Remove unnecessary parentheses around <code>match case</code>
clauses (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13510">#13510</a>)</li>
<li>Parenthesize overlong <code>if</code> guards in
<code>match..case</code> clauses (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13513">#13513</a>)</li>
<li>Detect basic wildcard imports in <code>ruff analyze graph</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13486">#13486</a>)</li>
<li>[<code>pylint</code>] Implement
<code>boolean-chained-comparison</code> (<code>R1716</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13435">#13435</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>lake8-simplify</code>] Detect <code>SIM910</code> when using
variadic keyword arguments, i.e., <code>**kwargs</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13503">#13503</a>)</li>
<li>[<code>pyupgrade</code>] Avoid false negatives with non-reference
shadowed bindings of loop variables (<code>UP028</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13504">#13504</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Detect tuples bound to variadic positional arguments i.e.
<code>*args</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13512">#13512</a>)</li>
<li>Exit gracefully on broken pipe errors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13485">#13485</a>)</li>
<li>Avoid panic when analyze graph hits broken pipe (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13484">#13484</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li>Reuse <code>BTreeSets</code> in module resolver (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13440">#13440</a>)</li>
<li>Skip traversal for non-compound statements (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13441">#13441</a>)</li>
</ul>
<h2>Contributors</h2>
<ul>
<li><a
href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
<li><a
href="https://github.com/TomerBin"><code>@​TomerBin</code></a></li>
<li><a
href="https://github.com/charliermarsh"><code>@​charliermarsh</code></a></li>
<li><a
href="https://github.com/diceroll123"><code>@​diceroll123</code></a></li>
<li><a href="https://github.com/dylwil3"><code>@​dylwil3</code></a></li>
<li><a href="https://github.com/haarisr"><code>@​haarisr</code></a></li>
<li><a
href="https://github.com/renovate"><code>@​renovate</code></a></li>
<li><a
href="https://github.com/sbrugman"><code>@​sbrugman</code></a></li>
<li><a
href="https://github.com/vincevannoort"><code>@​vincevannoort</code></a></li>
<li><a href="https://github.com/zanieb"><code>@​zanieb</code></a></li>
</ul>
<h2>Install ruff 0.6.8</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/astral-sh/ruff/releases/download/0.6.8/ruff-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.6.8</h2>
<h3>Preview features</h3>
<ul>
<li>Remove unnecessary parentheses around <code>match case</code>
clauses (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13510">#13510</a>)</li>
<li>Parenthesize overlong <code>if</code> guards in
<code>match..case</code> clauses (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13513">#13513</a>)</li>
<li>Detect basic wildcard imports in <code>ruff analyze graph</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13486">#13486</a>)</li>
<li>[<code>pylint</code>] Implement
<code>boolean-chained-comparison</code> (<code>R1716</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13435">#13435</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>lake8-simplify</code>] Detect <code>SIM910</code> when using
variadic keyword arguments, i.e., <code>**kwargs</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13503">#13503</a>)</li>
<li>[<code>pyupgrade</code>] Avoid false negatives with non-reference
shadowed bindings of loop variables (<code>UP028</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13504">#13504</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Detect tuples bound to variadic positional arguments i.e.
<code>*args</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13512">#13512</a>)</li>
<li>Exit gracefully on broken pipe errors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13485">#13485</a>)</li>
<li>Avoid panic when analyze graph hits broken pipe (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13484">#13484</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li>Reuse <code>BTreeSets</code> in module resolver (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13440">#13440</a>)</li>
<li>Skip traversal for non-compound statements (<a
href="https://redirect.github.com/astral-sh/ruff/pull/13441">#13441</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ae39ce56c0"><code>ae39ce5</code></a>
Bump version to 0.6.8 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/13522">#13522</a>)</li>
<li><a
href="ff2d214e11"><code>ff2d214</code></a>
Don't skip over imports and other nodes containing nested statements in
impor...</li>
<li><a
href="9442cd8fae"><code>9442cd8</code></a>
Parenthesize <code>match..case</code> <code>if</code> guards (<a
href="https://redirect.github.com/astral-sh/ruff/issues/13513">#13513</a>)</li>
<li><a
href="8012707348"><code>8012707</code></a>
Align formatting of patterns in match-cases with expression formatting
in cla...</li>
<li><a
href="d7ffe46054"><code>d7ffe46</code></a>
Disable the <code>typeset</code> plugin (<a
href="https://redirect.github.com/astral-sh/ruff/issues/13517">#13517</a>)</li>
<li><a
href="7c83af419c"><code>7c83af4</code></a>
red-knot: Implement the <code>not</code> operator for all
<code>Type</code> variants (<a
href="https://redirect.github.com/astral-sh/ruff/issues/13432">#13432</a>)</li>
<li><a
href="bbb044ebda"><code>bbb044e</code></a>
Detect tuples bound to variadic positional arguments i.e.
<code>*args</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/13512">#13512</a>)</li>
<li><a
href="481065238b"><code>4810652</code></a>
Avoid UP028 false negatives with non-reference shadowed bindings of loop
vari...</li>
<li><a
href="11f06e0d55"><code>11f06e0</code></a>
Detect SIM910 when using variadic keyword arguments, i.e.,
<code>**kwargs</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/13503">#13503</a>)</li>
<li><a
href="f27a8b8c7a"><code>f27a8b8</code></a>
[internal] <code>ComparableExpr</code> (f)strings and bytes made
invariant under concate...</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.6.7...0.6.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruff&package-manager=pip&previous-version=0.6.7&new-version=0.6.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-10-02 10:44:41 +02:00
Yohan Boniface
15630efb58
chore: bump pymdown-extensions from 10.10.1 to 10.11.1 (#2179)
Bumps
[pymdown-extensions](https://github.com/facelessuser/pymdown-extensions)
from 10.10.1 to 10.11.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facelessuser/pymdown-extensions/releases">pymdown-extensions's
releases</a>.</em></p>
<blockquote>
<h2>10.11.1</h2>
<ul>
<li><strong>Fix</strong>: SuperFences: Fix regression where an omitted
language in conjunction with options in the fenced header
can cause a fence to not be parsed.</li>
</ul>
<h2>10.11</h2>
<ul>
<li><strong>NEW</strong>: SuperFences: Allow fenced code to be parsed in
the form <code>```lang {.class #id}</code>.</li>
</ul>
<h2>10.10.2</h2>
<ul>
<li><strong>FIX</strong>: BetterEm: Add better support for <code>*em,
**em,strong***</code> and <code>_em, __em,strong___</code> cases.</li>
<li><strong>FIX</strong>: Caret: Add better support for <code>*sup,
**sup,ins***</code>.</li>
<li><strong>FIX</strong>: Tilde: Add better support for <code>*sub,
**sub,del***</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d43141d7b0"><code>d43141d</code></a>
Fix omitted language case (<a
href="https://redirect.github.com/facelessuser/pymdown-extensions/issues/2472">#2472</a>)</li>
<li><a
href="79dabb16c0"><code>79dabb1</code></a>
Another attempt to fix MathJax loading issues in docs</li>
<li><a
href="4b54d02a0f"><code>4b54d02</code></a>
Support alternate fenced header form (<a
href="https://redirect.github.com/facelessuser/pymdown-extensions/issues/2470">#2470</a>)</li>
<li><a
href="8355b4565f"><code>8355b45</code></a>
Attempt to fix issues with instant loading</li>
<li><a
href="448972add0"><code>448972a</code></a>
Fix bad example</li>
<li><a
href="f8f8c579b9"><code>f8f8c57</code></a>
Bump version</li>
<li><a
href="7a95865558"><code>7a95865</code></a>
Add support for <code>*tag1 **tag1,tag2***</code> cases for
<code>*</code>, <code>_</code>, <code>~</code>, and <code>^</code> (<a
href="https://redirect.github.com/facelessuser/pymdown-extensions/issues/2467">#2467</a>)</li>
<li><a
href="5f0e3fc972"><code>5f0e3fc</code></a>
Docs: Turn off instant loading until we figure out MathJax issue with
it</li>
<li>See full diff in <a
href="https://github.com/facelessuser/pymdown-extensions/compare/10.10.1...10.11.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pymdown-extensions&package-manager=pip&previous-version=10.10.1&new-version=10.11.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-10-02 10:43:33 +02:00
Yohan Boniface
6c9c62d6b4
chore: bump psycopg from 3.2.2 to 3.2.3 (#2178)
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.2.2 to 3.2.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Current release</h2>
<p>Psycopg 3.2.3
^^^^^^^^^^^^^</p>
<ul>
<li>Release binary packages including PostgreSQL 17 libpq
(🎫<code>[#852](https://github.com/psycopg/psycopg/issues/852)</code>).</li>
</ul>
<p>Psycopg 3.2.2
^^^^^^^^^^^^^</p>
<ul>
<li>Drop <code>!TypeDef</code> specifications as string from public
modules, as they cannot
be composed by users as <code>!typing</code> objects previously could
(🎫<code>[#860](https://github.com/psycopg/psycopg/issues/860)</code>).</li>
<li>Release Python 3.13 binary packages.</li>
</ul>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(🎫<code>[#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(🎫<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(🎫<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(🎫<code>[#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[#560](https://github.com/psycopg/psycopg/issues/560),
[#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(🎫<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ce8f07321b"><code>ce8f073</code></a>
chore: bump psycopg package version to 3.2.3</li>
<li><a
href="9af9267bdb"><code>9af9267</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/917">#917</a>
from psycopg/pg17</li>
<li><a
href="9c9369bea4"><code>9c9369b</code></a>
docs: mention PostgreSQL 17 in binary packages in the news file</li>
<li><a
href="d0b1a3ab0a"><code>d0b1a3a</code></a>
ci: install flex to build libpq</li>
<li><a
href="17e8d85f69"><code>17e8d85</code></a>
ci(macos): fix dylib path for postgres 17 from brew</li>
<li><a
href="d06613299a"><code>d066132</code></a>
ci(macos): update brew to install PostgreSQL 17</li>
<li><a
href="2cc362e4dc"><code>2cc362e</code></a>
ci: bump to PostgreSQL 17 in binary packages</li>
<li><a
href="810bfcf09c"><code>810bfcf</code></a>
chore: add PostgreSQL 17 TRANSACTION_TIMEOUT error</li>
<li><a
href="2a0242163b"><code>2a02421</code></a>
ci: Add PostgreSQL 17 to CI test grid, remove PostgreSQL 11</li>
<li><a
href="bea783d394"><code>bea783d</code></a>
fix(windows): resolve absolute path to libpq</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.2.2...3.2.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.2.2&new-version=3.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-10-02 10:43:13 +02:00
Yohan Boniface
3bbea2ec9e
chore: bump uwsgi from 2.0.26 to 2.0.27 (#2180)
Bumps [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.26
to 2.0.27.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uwsgi&package-manager=pip&previous-version=2.0.26&new-version=2.0.27)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-10-01 21:54:05 +02:00
Yohan Boniface
fe8c10d624
fix: remoteData helpEntries were not on the right format (#2183)
![image](https://github.com/user-attachments/assets/4f3126d7-39f7-437b-b22d-b5a00936bfa7)
2024-10-01 21:46:17 +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
dependabot[bot]
44a7554a90
chore: bump ruff from 0.6.7 to 0.6.8
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.7 to 0.6.8.
- [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.6.7...0.6.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 17:26:28 +00:00
dependabot[bot]
1d91a66546
chore: bump uwsgi from 2.0.26 to 2.0.27
Bumps [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.26 to 2.0.27.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 17:26:19 +00:00
dependabot[bot]
4aa4c2da59
chore: bump pymdown-extensions from 10.10.1 to 10.11.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.10.1 to 10.11.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.10.1...10.11.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 17:26:17 +00:00
dependabot[bot]
e1b9c35283
chore: bump psycopg from 3.2.2 to 3.2.3
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.2.2 to 3.2.3.
- [Changelog](https://github.com/psycopg/psycopg/blob/master/docs/news.rst)
- [Commits](https://github.com/psycopg/psycopg/compare/3.2.2...3.2.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 17:26:12 +00: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
5485fb99ab feat(sync): Send remote operations to peers when they join.
- Operations are now stored locally in memory. All operations are tied
  to an HLC (Hybrid Logical Clock), making it possible to order them
  concistently.

- Messages are handled in their `on*` methods, leading to a clearer
  implementation.

- When a new peer joins, it asks a random peer for the list of
  operations, and re-apply them locally.

- Messages types names have been updated to follow CamelCase, and to be
  similar across the client and the server.

- Pass `sync=False` to `makeFeature` in the updaters, to avoid
  generating duplicate operations on message retrieval.
2024-09-27 18:26:47 +02:00
Yohan Boniface
7dbb3e0b9a fix: allow to draw new proprotional circles and to drag them
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.

fix #2171
2024-09-27 08:58:08 +02:00
Yohan Boniface
5836ae859a
Merge pull request #1670 from umap-project/clean-tilelayer-command
chore: add clean_tilelayer management command
2024-09-26 09:20:54 +02:00
Yohan Boniface
c4aa376287
Merge pull request #2168 from umap-project/georsstogeojson-as-esm
chore: use GeoRSStoGeoJSON as ES module
2024-09-24 20:09:53 +02:00
Yohan Boniface
3719e88643 chore: display user maps in admin and add in csv export
maps are owner maps + maps as editor

cf https://github.com/umap-project/umap/pull/2131#discussion_r1772775039
2024-09-24 20:07:03 +02:00
Yohan Boniface
2d905bd048 chore: use GeoRSStoGeoJSON as ES module 2024-09-24 10:24:50 +02:00
David Larlet
a1b35ddff0
docs: improvements by @C-Sophie from #2157 2024-09-23 16:58:34 -04:00
David Larlet
d9c8da15bc
Merge pull request #2166 from umap-project/dependabot/pip/pymdown-extensions-10.10.1
chore: bump pymdown-extensions from 10.9 to 10.10.1
2024-09-23 16:35:05 -04:00
dependabot[bot]
c79e355927
chore: bump pymdown-extensions from 10.9 to 10.10.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.9 to 10.10.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.9...10.10.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 20:25:18 +00:00
David Larlet
ad908cdb69
Merge pull request #2165 from umap-project/dependabot/pip/websockets-13.1
chore: bump websockets from 13.0.1 to 13.1
2024-09-23 16:24:51 -04:00
David Larlet
55ff8bbb0b
Merge pull request #2164 from umap-project/dependabot/pip/ruff-0.6.7
chore: bump ruff from 0.6.5 to 0.6.7
2024-09-23 16:24:06 -04:00
David Larlet
15789252ce
Merge pull request #2163 from umap-project/dependabot/pip/mkdocs-material-9.5.36
chore: bump mkdocs-material from 9.5.34 to 9.5.36
2024-09-23 16:23:35 -04:00
David Larlet
d956b44d7e
Merge pull request #2162 from umap-project/dependabot/pip/pydantic-2.9.2
chore: bump pydantic from 2.9.1 to 2.9.2
2024-09-23 16:23:21 -04:00
David Larlet
840ee6dfdf
Merge pull request #2167 from umap-project/docs-users-2
docs: new tutorials by @C-Sophie
2024-09-23 15:32:31 -04:00
David Larlet
73c1df6662
docs: new tutorials by @C-Sophie 2024-09-23 15:31:32 -04:00
dependabot[bot]
df5b645a72
chore: bump websockets from 13.0.1 to 13.1
Bumps [websockets](https://github.com/python-websockets/websockets) from 13.0.1 to 13.1.
- [Release notes](https://github.com/python-websockets/websockets/releases)
- [Commits](https://github.com/python-websockets/websockets/compare/13.0.1...13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 17:17:31 +00:00
dependabot[bot]
be48bc0f21
chore: bump ruff from 0.6.5 to 0.6.7
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.5 to 0.6.7.
- [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.6.5...0.6.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 17:17:25 +00:00
dependabot[bot]
d21f4675ea
chore: bump mkdocs-material from 9.5.34 to 9.5.36
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.34 to 9.5.36.
- [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.34...9.5.36)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 17:17:15 +00:00
dependabot[bot]
d73ed58290
chore: bump pydantic from 2.9.1 to 2.9.2
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.9.1 to 2.9.2.
- [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.9.1...v2.9.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 17:17:09 +00: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
86a8bbafa2
Merge pull request #2156 from umap-project/docs-users
docs: improvements by @C-Sophie
2024-09-20 15:18:09 -04:00
David Larlet
3148bb41b9
docs: improvements by @C-Sophie from #2155 2024-09-20 15:15:46 -04:00
David Larlet
30a27861d0
docs: improvements by @C-Sophie from #2154 2024-09-20 15:14:30 -04:00
David Larlet
8b5cf27c77
docs: improvements by @C-Sophie from #2153 2024-09-20 15:12:26 -04:00
David Larlet
58c6022aa7
docs: improvements by @C-Sophie from #2152 2024-09-20 15:11:59 -04:00
Yohan Boniface
6618ff5648 fix: polygon with interactive=false was still interactive
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

fix #2149
2024-09-20 10:21:57 +02:00
Yohan Boniface
e2520587f5
Merge pull request #2143 from umap-project/dependabot/pip/pytest-8.3.3
chore: bump pytest from 8.3.2 to 8.3.3
2024-09-19 11:26:51 +02:00
Yohan Boniface
f715f64d51
Merge pull request #2142 from umap-project/dependabot/pip/psycopg-3.2.2
chore: bump psycopg from 3.2.1 to 3.2.2
2024-09-19 07:43:43 +02:00
Yohan Boniface
b11813b417
Merge pull request #2141 from umap-project/dependabot/pip/ruff-0.6.5
chore: bump ruff from 0.6.4 to 0.6.5
2024-09-19 07:12:31 +02:00
Yohan Boniface
be75936fd5
Merge pull request #2148 from umap-project/close-issues-action
chore: add a Github action to autoclose issues after some time
2024-09-19 07:11:43 +02:00
Yohan Boniface
5716883ad0
Merge pull request #2147 from umap-project/fix-edit-coordinates-not-saved
fix: editing coordinates manually would not be saved
2024-09-19 07:11:05 +02:00
Yohan Boniface
467d1c545e chore: add a Github action to autoclose issues after some time
For now, only issues marked with "needs info" or "support" will
be affected.
2024-09-17 09:51:10 +02:00
Yohan Boniface
051dd90450 fix: editing coordinates manually would not be saved
The primary coordinates is a two-elements Array in Point.coordinates,
but FormBuilder does not know how to edit an Array, so we edit the
`ui._latlngs` instead.

The proper fix would have been to teach FormBuilder how to edit an
Array, but that path is way longer, and given we plan to refactor
it totally, let's wait for that.

fix #2144
2024-09-17 08:57:10 +02:00
dependabot[bot]
212cd46a28
chore: bump pytest from 8.3.2 to 8.3.3
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.2 to 8.3.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.2...8.3.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 17:54:26 +00:00
dependabot[bot]
c15e0eb543
chore: bump psycopg from 3.2.1 to 3.2.2
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.2.1 to 3.2.2.
- [Changelog](https://github.com/psycopg/psycopg/blob/master/docs/news.rst)
- [Commits](https://github.com/psycopg/psycopg/compare/3.2.1...3.2.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 17:54:22 +00:00
dependabot[bot]
cee98d99d6
chore: bump ruff from 0.6.4 to 0.6.5
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.4 to 0.6.5.
- [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.6.4...0.6.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 17:54:15 +00:00
Yohan Boniface
8ecc231816 i18n 2024-09-13 19:09:17 +02:00
David Larlet
52e0259a64
Merge pull request #2121 from umap-project/permissions-revamp
Chore: rework permissions panel
2024-09-13 12:32:49 -04:00
David Larlet
f8ee22fd43
Merge pull request #2133 from umap-project/edit-profile-settings
feat: add a setting to prevent users from editing their profile
2024-09-12 16:21:48 -04: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
b48f911bf2 chore: revamp permissions panel 2024-09-12 17:15:43 +02:00
Yohan Boniface
575b563c67 chore: remove unused class umap-facet-search from css 2024-09-12 17:15:43 +02:00
Yohan Boniface
6d777d9d46 feat: use a copiable input for secret edit link in permissions panel 2024-09-12 17:15:41 +02:00
Yohan Boniface
eda1223516 fix: do not show "Attache to my account" button if no logged in user 2024-09-12 16:53:27 +02:00
Yohan Boniface
445127254b fix: do not show "Layers" title if not layers in permissions panel 2024-09-12 16:53:27 +02:00
Yohan Boniface
289bef7ba8
Merge pull request #2132 from umap-project/fix-poly-icon-alignement
fix: icon alignement in browser, and user icon-xxx class
2024-09-12 15:34:12 +02:00
Yohan Boniface
c158303fbb
Merge pull request #2131 from umap-project/admin-export-csv
feat: very minimal CSV export of users and maps in admin
2024-09-12 15:33:47 +02:00
Yohan Boniface
9848abb3b1 wip: use model specific filename in admin CSV export 2024-09-12 15:23:26 +02:00
Yohan Boniface
ba01f09476 fix: icon alignement in browser, and user icon-xxx class 2024-09-12 15:04:13 +02:00
Yohan Boniface
33c6ee7925 chore: add clean_tilelayer management command
It can be useful to manage the tilelayer registered in the map
settings in db.
2024-09-12 11:52:56 +02:00
Yohan Boniface
17b67cc5de feat: very minimal CSV export of users and maps in admin
fix #2020
2024-09-12 10:30:35 +02:00
Yohan Boniface
99d1c19b22
Merge pull request #2130 from umap-project/makefile-changelog
chore: get Github release notes from command line
2024-09-12 10:16:52 +02:00
Yohan Boniface
010329dce5 2.6.3 2024-09-11 18:36:38 +02:00
Yohan Boniface
c4f3196b27 chore: get Github release notes from command line
So we can integrate the changelog in the release, instead of having
a commit after the release.

You need to have a GITHUB_TOKEN env var, with a read only bearer
coming from https://github.com/settings/tokens
2024-09-11 18:26:06 +02:00
Yohan Boniface
409ec13163 i18n 2024-09-11 15:44:33 +02:00
Yohan Boniface
51c1fb0a8f
Merge pull request #2129 from umap-project/fix-cluster-browser-view
fix: clicking feature in the browser would not open popup in cluster
2024-09-11 15:30:37 +02:00
Yohan Boniface
ec93c38989
Merge pull request #2128 from umap-project/fix-merge-lines
fix: fix merge lines on vertex click
2024-09-11 15:26:37 +02:00
Yohan Boniface
43ca0ae157
Merge pull request #2126 from umap-project/fix-delete-shape
fix: delete shape from edit toolbar
2024-09-11 15:26:18 +02:00
Yohan Boniface
f232bf476c fix: clicking feature in the browser would not open popup in cluster
fix #2127
2024-09-11 14:54:54 +02:00
Yohan Boniface
c804a01bfb fix: fix merge lines on vertex click
fix #2125
2024-09-11 11:39:01 +02:00
Yohan Boniface
cd4b2189ee fix: delete shape from edit toolbar
fix #2124
2024-09-11 10:01:39 +02:00
Yohan Boniface
bdcbd09064 2.6.2 2024-09-10 21:37:40 +02:00
Yohan Boniface
7e8800cd44 fix: german translation breaking home page 2024-09-10 21:36:39 +02:00
Yohan Boniface
f28ec81c36 2.6.1 2024-09-10 18:07:51 +02:00
Yohan Boniface
281d909d21
Merge pull request #2123 from umap-project/fix-anonymoususer-teams
fix: teams.all() called on anonymous user by mistake
2024-09-10 18:05:46 +02:00
Yohan Boniface
5f67c9c229 fix: do not call teams.all() on anonymous user
In the same move, refactor the can_edit/_view/_delete functions to
only take the request, which is what really happen in the code, and
adapt the test in that way.
2024-09-10 17:56:14 +02:00
David Larlet
2ff112d125
chore: fix changelog titles hierarchy 2024-09-10 11:36:37 -04:00
Yohan Boniface
2f9c6e973f changelog 2024-09-10 16:35:57 +02:00
Yohan Boniface
6194bb8258 2.6.0 2024-09-10 16:31:59 +02:00
Yohan Boniface
e4202eb609 i18n 2024-09-10 16:31:49 +02:00
Yohan Boniface
f9e0eb8016
Merge pull request #2122 from umap-project/browser-filter-without-name
fix: filter feature by displayName by default
2024-09-10 16:12:12 +02:00
Yohan Boniface
c58964d797 fix: filter feature by displayName by default
fix #2106
2024-09-10 10:02:41 +02:00
Yohan Boniface
ee4d20dd0a
Merge pull request #2120 from umap-project/dependabot/pip/django-5.1.1
chore: bump django from 5.1 to 5.1.1
2024-09-09 22:05:08 +02:00
dependabot[bot]
12f3b16387
chore: bump django from 5.1 to 5.1.1
Bumps [django](https://github.com/django/django) from 5.1 to 5.1.1.
- [Commits](https://github.com/django/django/compare/5.1...5.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 20:04:38 +00:00
Yohan Boniface
1316b949e7
Merge pull request #2119 from umap-project/dependabot/pip/pydantic-2.9.1
chore: bump pydantic from 2.8.2 to 2.9.1
2024-09-09 22:04:08 +02:00
Yohan Boniface
633981eb59
Merge pull request #2118 from umap-project/dependabot/pip/pytest-playwright-0.5.2
chore: bump pytest-playwright from 0.5.1 to 0.5.2
2024-09-09 22:03:47 +02:00
Yohan Boniface
2e22a60769
Merge pull request #2117 from umap-project/dependabot/pip/ruff-0.6.4
chore: bump ruff from 0.6.3 to 0.6.4
2024-09-09 22:03:33 +02:00
Yohan Boniface
7cba5e2f70
Merge pull request #2116 from umap-project/dependabot/pip/mkdocs-material-9.5.34
chore: bump mkdocs-material from 9.5.33 to 9.5.34
2024-09-09 22:03:20 +02:00
dependabot[bot]
aa3f8aa04f
chore: bump pydantic from 2.8.2 to 2.9.1
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.8.2 to 2.9.1.
- [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.8.2...v2.9.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 17:28:05 +00:00
dependabot[bot]
deb2edfc62
chore: bump pytest-playwright from 0.5.1 to 0.5.2
Bumps [pytest-playwright](https://github.com/microsoft/playwright-pytest) from 0.5.1 to 0.5.2.
- [Release notes](https://github.com/microsoft/playwright-pytest/releases)
- [Commits](https://github.com/microsoft/playwright-pytest/compare/v0.5.1...v0.5.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 17:27:58 +00:00
dependabot[bot]
e208e1c010
chore: bump ruff from 0.6.3 to 0.6.4
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.3 to 0.6.4.
- [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.6.3...0.6.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 17:27:54 +00:00
dependabot[bot]
3242227c4a
chore: bump mkdocs-material from 9.5.33 to 9.5.34
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.33 to 9.5.34.
- [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.33...9.5.34)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 17:27:45 +00:00
Yohan Boniface
9d727bd01f wip: use our own contextmenu 2024-09-09 15:53:55 +02:00
Yohan Boniface
c14ab4198f changelog 2024-09-06 17:27:39 +02:00
Yohan Boniface
8c05937075 2.6.0b2 2024-09-06 17:25:31 +02:00
Yohan Boniface
b218fc572b i18n 2024-09-06 17:24:51 +02:00
Yohan Boniface
ae09c343d1
Merge pull request #2107 from umap-project/visible-vertexmarkers
wip: only show visible vertexmarkers and do not show when there are too much
2024-09-06 17:21:03 +02:00
Yohan Boniface
dc0cf50513 chore: bump Leaflet.Editable to 1.3.0 2024-09-06 17:01:07 +02:00
Yohan Boniface
7c94cc05ad
Merge pull request #2105 from umap-project/explicit-empty-rule
feat: add explicit empty/not empty check in conditional rules
2024-09-06 16:47:37 +02:00
Yohan Boniface
6d21d47af9 feat: add explicit empty/not empty check in conditional rules
Also fix boolean behaviour (only true was working)
2024-09-06 16:47:19 +02:00
Yohan Boniface
e0b8e88de4
Merge pull request #2112 from umap-project/bottom-controls-zindex
fix: move bottom controls below panels
2024-09-06 16:37:34 +02:00
Yohan Boniface
1ab9d2bda6
Merge pull request #2111 from umap-project/fix-bounds-isonscreen
fix: feature.isOnScreen is now passing the "bounds" argument
2024-09-06 16:30:01 +02:00
Yohan Boniface
d019a260c0 fix: move bottom controls below panels
fix #2103
2024-09-06 16:29:40 +02:00
Yohan Boniface
c879914eb8 fix: feature.isOnScreen is now passing the "bounds" argument
Otherwise, when using the browser, we'll end up using
this._map.getBounds(), but in this case the UI may not be in the
map (may be filtered).
2024-09-06 16:08:15 +02:00
Yohan Boniface
dd79e8f923
Merge pull request #2108 from umap-project/copy-as-geojson
feat: add a "Copy as GeoJSON" entry in the contextmenu
2024-09-05 18:46:40 +02:00
Yohan Boniface
b8abc03684 feat: add a "Copy as GeoJSON" entry in the contextmenu 2024-09-05 17:57:23 +02:00
Yohan Boniface
a67c800ee0 wip: add integration test coverring huge path geometry editing 2024-09-05 17:54:01 +02:00
Yohan Boniface
76c3f87f67 wip: only display visible vertexmarker and do not display if too much
This should improve the edit experience with huge geometries. So one
can still edit the properties event if the path is big, and should
zoom in to allow the geometry to be editable.
2024-09-05 17:17:35 +02:00
Yohan Boniface
64d63ff6cc changelog 2024-09-04 16:12:07 +02:00
Yohan Boniface
5010a09cd8 2.6.0b1 2024-09-04 16:06:08 +02:00
Yohan Boniface
a25dc0c5a1 i18n 2024-09-04 16:05:23 +02:00
Yohan Boniface
95cb396459
Merge pull request #2104 from umap-project/fix-anonymous-author
fix: do not try to display author name/url for anonymous maps
2024-09-04 16:01:30 +02:00
Yohan Boniface
ff014429b9
Merge pull request #2102 from umap-project/edit-circlemarker-properties
fix: do not fail when trying to edit a circlemarker
2024-09-04 16:00:55 +02:00
Yohan Boniface
31371cc38c
Merge pull request #2101 from umap-project/datalayers-control-expanded-with-onloadpanel
fix: make sure datalayersControl=expanded does not override onLoadPanel
2024-09-04 15:55:27 +02:00
Yohan Boniface
1d7ad0b4d1
Merge pull request #2099 from umap-project/register-fa-ir
fix: register fa-ir in LANG_INFO
2024-09-04 15:46:44 +02:00
Yohan Boniface
b6a8742abd
Merge pull request #2098 from umap-project/fix-ternary-value-comparison
fix: make sure to compare comparable values in ternary operators
2024-09-04 15:41:32 +02:00
Yohan Boniface
0d5f0b175a fix: do not try to display author name/url for anonymous maps 2024-09-04 15:39:48 +02:00
Yohan Boniface
71ceb87fe2 fix: make sure datalayersControl=expanded does not override onLoadPanel
This value of datalayersControl exists for retrocompat only (it's now
replaced by onLoadPanel=browser)
2024-09-04 15:00:14 +02:00
Yohan Boniface
4f9b4a80c3 fix: do not fail when trying to edit a circlemarker
And for now open the properties panel (geometry/position may be
edited later, when Leaflet.Editable knows about CircleMarker)
2024-09-04 14:36:03 +02:00
Yohan Boniface
c976a86982 fix: make sure to compare comparable values in ternary operators
Comparing `"null"` (in the HTML) and `null` (in the JS) was returning
false.
2024-09-04 11:32:14 +02:00
Yohan Boniface
0be0a3d1a9 feat: display language code in footer language selector 2024-09-04 11:31:56 +02:00
Yohan Boniface
9bde88a513 fix: register fa-ir in LANG_INFO
fix #2086
2024-09-04 11:31:56 +02:00
Yohan Boniface
185cc65f68
Merge pull request #2100 from umap-project/fix-tilelayer-plus-button
fix: tilelayer plus icon were never displayed
2024-09-04 11:31:28 +02:00
Yohan Boniface
ee7439a0f9 fix: tilelayer plus icon where never displayed
We were testing the length of the `_layers` property, which where
sliced to `maxShown` before…
2024-09-04 11:23:20 +02:00
Yohan Boniface
c33adcf0e7
Merge pull request #2096 from umap-project/fix-more-button-icon
fix: correct position for more button icon
2024-09-03 15:44:12 +02:00
Yohan Boniface
f986ebf3b3 fix: correct position for more button icon 2024-09-03 15:43:19 +02:00
Yohan Boniface
c321a9e70d
Merge pull request #2095 from umap-project/fix-tilelayer-plus-button
fix: only show + button in tilelayer switcher when more available
2024-09-03 15:35:08 +02:00
Yohan Boniface
ca75955ca9 fix: only show + button in tilelayer switcher when more available 2024-09-03 15:34:15 +02:00
Yohan Boniface
5e6ac993d9
Merge pull request #2094 from umap-project/overpass-boundary-persistent
feat: make boundary persistent in overpass importer
2024-09-03 15:32:28 +02:00
Yohan Boniface
ed62ed55c4
Merge pull request #2088 from umap-project/dependabot/pip/djlint-1.35.2
chore: bump djlint from 1.34.1 to 1.35.2
2024-09-03 15:31:56 +02:00
Yohan Boniface
6a8be34dcc
Merge pull request #2087 from umap-project/overpass-autocomplete-context
feat: add more context in overpass importer autocomplete results
2024-09-03 15:31:37 +02:00
Yohan Boniface
e9b17ea9f2 feat: make boundary persistent in overpass importer 2024-09-03 15:29:40 +02:00
dependabot[bot]
5a4effd3b3
chore: bump djlint from 1.34.1 to 1.35.2
Bumps [djlint](https://github.com/djlint/djLint) from 1.34.1 to 1.35.2.
- [Release notes](https://github.com/djlint/djLint/releases)
- [Changelog](https://github.com/djlint/djLint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/djlint/djLint/compare/v1.34.1...v1.35.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 13:28:27 +00:00
Yohan Boniface
7f1e0084c9
Merge pull request #2089 from umap-project/dependabot/pip/mkdocs-1.6.1
chore: bump mkdocs from 1.6.0 to 1.6.1
2024-09-03 15:27:44 +02:00
Yohan Boniface
c50491df07
Merge pull request #2090 from umap-project/dependabot/pip/websockets-13.0.1
chore: bump websockets from 13.0 to 13.0.1
2024-09-03 15:27:22 +02:00
Yohan Boniface
8b71606b54
Merge pull request #2091 from umap-project/dependabot/pip/pytest-django-4.9.0
chore: bump pytest-django from 4.8.0 to 4.9.0
2024-09-03 15:27:08 +02:00
Yohan Boniface
cb4e62bbb8
Merge pull request #2092 from umap-project/dependabot/pip/ruff-0.6.3
chore: bump ruff from 0.6.2 to 0.6.3
2024-09-03 15:26:53 +02:00
dependabot[bot]
91d363c179
chore: bump ruff from 0.6.2 to 0.6.3
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.2 to 0.6.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.6.2...0.6.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 17:09:02 +00:00
dependabot[bot]
c7546267da
chore: bump pytest-django from 4.8.0 to 4.9.0
Bumps [pytest-django](https://github.com/pytest-dev/pytest-django) from 4.8.0 to 4.9.0.
- [Release notes](https://github.com/pytest-dev/pytest-django/releases)
- [Changelog](https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pytest-dev/pytest-django/compare/v4.8.0...v4.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 17:08:51 +00:00
dependabot[bot]
bf41f9c1da
chore: bump websockets from 13.0 to 13.0.1
Bumps [websockets](https://github.com/python-websockets/websockets) from 13.0 to 13.0.1.
- [Release notes](https://github.com/python-websockets/websockets/releases)
- [Commits](https://github.com/python-websockets/websockets/compare/13.0...13.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 17:08:47 +00:00
dependabot[bot]
c27b3bea37
chore: bump mkdocs from 1.6.0 to 1.6.1
Bumps [mkdocs](https://github.com/mkdocs/mkdocs) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/mkdocs/mkdocs/releases)
- [Commits](https://github.com/mkdocs/mkdocs/compare/1.6.0...1.6.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 17:08:42 +00:00
Yohan Boniface
f3f61f5d98 feat: add more context in overpass importer autocomplete results 2024-09-02 17:01:04 +02:00
David Larlet
8dc0c1c3df
Merge pull request #2085 from Jean-BaptisteC/actions
Fix warning in worflows
2024-08-30 17:38:06 -04:00
Jean-Baptiste
32ac9ef051
Fix deprecated warnings in workflows 2024-08-30 21:16:18 +02:00
Yohan Boniface
33b0f6c318 changelog 2024-08-30 20:57:40 +02:00
Yohan Boniface
fe36f44d1a 2.6.0b0 2024-08-30 20:50:33 +02:00
Yohan Boniface
661c57ebc8 i18n 2024-08-30 20:29:27 +02:00
Yohan Boniface
2b3f0b00fb
Merge pull request #2055 from umap-project/dependabot/pip/django-5.1
chore: bump django from 5.0.8 to 5.1
2024-08-30 20:28:28 +02:00
David Larlet
8f735699b2 exp: bump posgresql to version 14 2024-08-30 20:16:51 +02:00
David Larlet
5ca26335d4 exp: try to increase the number of process passes 2024-08-30 20:16:51 +02:00
David Larlet
aeee58b42a
Merge pull request #2062 from umap-project/user-groups
feat: add teams
2024-08-30 13:05:02 -04:00
David Larlet
c6ebfd4363
fix: proper way to test if we have a user 2024-08-30 12:37:48 -04:00
David Larlet
2a2a4be357
lint: fix imports order 2024-08-30 12:34:04 -04:00
David Larlet
5c31014086
tests: check collectstatic generates files with hash 2024-08-30 12:32:10 -04:00
David Larlet
11d3152682
chore: display user’s teams with a table 2024-08-30 11:12:36 -04:00
David Larlet
426780af2c
chore: clean up CSS for buttons in content pages 2024-08-30 11:03:00 -04:00
David Larlet
a202ed4767
chore: add Team to django admin 2024-08-30 10:55:46 -04:00
David Larlet
a877dd1714
chore: remove logo_url from Team model 2024-08-30 10:55:26 -04:00
Yohan Boniface
42e83de0f8
Merge pull request #2084 from umap-project/remote-onmoveend
fix: do not redraw remote layer if not dynamic
2024-08-30 16:32:13 +02:00
Yohan Boniface
b895013709 fix: do not redraw remote layer if not dynamic 2024-08-30 16:03:14 +02:00
Yohan Boniface
13735a5739 chore: use our own Team model
We suppose we'll quickly want more than a name, like a description
or a logo_url, and maybe a access_status or permissions…
2024-08-30 15:53:18 +02:00
Yohan Boniface
a45f6ddbe5 i18n 2024-08-30 15:44:56 +02:00
Yohan Boniface
360014901c
Merge pull request #2076 from umap-project/table-input-position
fix: remove position fixed for input and textarea in tableeditor
2024-08-30 15:38:47 +02:00
Yohan Boniface
6b6be017bb wip: use autocomplete to add users in groups 2024-08-29 20:12:24 +02:00
Yohan Boniface
1058e6074f chore: lint 2024-08-29 20:12:24 +02:00
Yohan Boniface
a5a68cc922 wip: show user groups maps in dashboard 2024-08-29 20:12:24 +02:00
Yohan Boniface
eccbbda44d wip: add basic tests for group views 2024-08-29 20:12:24 +02:00
Yohan Boniface
9b2a99019b wip: add very basic CRUD for groups 2024-08-29 20:12:24 +02:00
Yohan Boniface
a3e972bf5d wip: add group maps page and display group as author when defined 2024-08-29 20:12:22 +02:00
dependabot[bot]
bee1c0d746
chore: bump django from 5.0.8 to 5.1
Bumps [django](https://github.com/django/django) from 5.0.8 to 5.1.
- [Commits](https://github.com/django/django/compare/5.0.8...5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-29 18:11:32 +00:00
Yohan Boniface
dce0ee5f73 wip: use auth.models.Group and manage permissions 2024-08-29 20:11:19 +02:00
Yohan Boniface
6126a6666e
Merge pull request #2030 from umap-project/dependabot/pip/pytest-8.3.2
chore: bump pytest from 8.3.1 to 8.3.2
2024-08-29 20:10:18 +02:00
Yohan Boniface
061edd3198
Merge pull request #2081 from umap-project/fix-white-space-panel
fix: white space was broken since using loadTemplate
2024-08-29 20:08:51 +02:00
Yohan Boniface
d208b19ddb fix: use position fixed for input and textarea in tableeditor
Otherwise when scrolling the table, the input will not appear at
the expected position, and may even appear outside of the view when
the table is bigger than the viewport.

Drawback: the table will resize its columns when the input/textarea
is created (as position: sticky is in the flow). So I've also removed
the width reset.

fix #2071
2024-08-29 20:07:28 +02:00
Yohan Boniface
f236e7e3b6
Merge pull request #2077 from umap-project/fix-continue-backward-measure
fix: correctly add drawn latlng when continuing line backward
2024-08-29 20:01:01 +02:00
Yohan Boniface
f96f2e1405
Merge pull request #2079 from umap-project/delete-button-tiled
chore: use tiled icon css for big delete buttons
2024-08-29 19:59:44 +02:00
Yohan Boniface
0430cd6166
Merge pull request #2080 from umap-project/contact-infos
feat: display contact infos in the footer
2024-08-29 19:59:19 +02:00
Yohan Boniface
9894c6a669 chore: use tiled icon css for big delete buttons
That's a bit of an experiment, so to see what needs to be done:
- move the icon in the 24px svg normal and white to it's on the same
  place as in the 16px
- replace the JS code (which used a :before class) to use a <i> element
- remove the old CSS class

I've a concern that the way we create elements using the loadTemplate is
more verbose and not DRY, let's discuss this :)
2024-08-29 19:52:29 +02:00
Yohan Boniface
957e80edf9
Update umap/templates/umap/content_footer.html
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2024-08-29 19:41:40 +02:00
Yohan Boniface
5bbbf6a988 fix: white space was broken since using loadTemplate
Since a2ca3a1436, the panel/popup
template uses loadTemplate, which used to remove all white spaces
from the inner html. We had to do this to workaround white space
breaking the slideshow toolbox buttons.

So this commits fixes this problem in another way: do not remove
white space (usefull for text content in popup/panels), but use
a display: flex instead of inline-block.
2024-08-29 12:21:51 +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
70ebffd023
Merge pull request #2073 from umap-project/dependabot/pip/websockets-13.0
chore: bump websockets from 12.0 to 13.0
2024-08-29 09:32:32 +02:00
Yohan Boniface
3b66c40b01
Merge pull request #2078 from umap-project/fim100-RTL-support--css-logical-properties
Fim100 rtl support  css logical properties
2024-08-29 09:30:43 +02:00
Yohan Boniface
5314fcc13b chore: better icon css default so to work in RTL too 2024-08-28 22:40:44 +02:00
Yohan Boniface
7a7553c52f chore: use imports instead of globals in share.js 2024-08-28 22:40:44 +02:00
Yohan Boniface
d0c1a55b2f chore: make icon.css more logical and working in rtl 2024-08-28 22:40:44 +02:00
fim100
ca86721b89 revert MarkerCluster.Default.css 2024-08-28 22:39:48 +02:00
fim100
431cd91d4c revert leaflet.css 2024-08-28 22:39:48 +02:00
fim100
f9ba7f3c50 Update map.css 2024-08-28 22:39:48 +02:00
fim100
e74ca192d6 fix placement of navigation links in dashboard
My Map and My Profile
2024-08-28 22:39:48 +02:00
fim100
80a842bd32 fix icon position in dashboard 2024-08-28 22:39:48 +02:00
fim100
c52207ee0f make map.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
c554427fa8 make alert.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
ed2a91330f make nav.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
3d7ca9c6f9 make importers.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
b886dbac3c make content.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
26b1369a3c make base.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
a39d89295c making slideshow.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
1671a0bef1 making Update icon.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
d65c48a88a making Update leaflet.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
ec790ad296 making MarkerCluster.Default.css rtl-friendly 2024-08-28 22:39:48 +02:00
Yohan Boniface
ca4df94e7f fix: correctly add drawn latlng when continuing line backward
Otherwise the measure if wrong.

fix #2069
2024-08-28 15:01:43 +02:00
Yohan Boniface
71cb1ddf65
Merge pull request #2075 from umap-project/dependabot/pip/ruff-0.6.2
chore: bump ruff from 0.6.1 to 0.6.2
2024-08-27 09:48:46 +02:00
Yohan Boniface
88239f0403
Merge pull request #2074 from umap-project/dependabot/pip/mkdocs-material-9.5.33
chore: bump mkdocs-material from 9.5.31 to 9.5.33
2024-08-27 09:48:25 +02:00
dependabot[bot]
8f37a52026
chore: bump ruff from 0.6.1 to 0.6.2
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.1 to 0.6.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.6.1...0.6.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 17:08:33 +00:00
dependabot[bot]
3544f892c1
chore: bump mkdocs-material from 9.5.31 to 9.5.33
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.31 to 9.5.33.
- [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.31...9.5.33)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 17:08:24 +00:00
dependabot[bot]
c7e112fecc
chore: bump websockets from 12.0 to 13.0
Bumps [websockets](https://github.com/python-websockets/websockets) from 12.0 to 13.0.
- [Release notes](https://github.com/python-websockets/websockets/releases)
- [Commits](https://github.com/python-websockets/websockets/compare/12.0...13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 17:08:19 +00:00
dependabot[bot]
16cf04cc01
chore: bump pytest from 8.3.1 to 8.3.2
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.1 to 8.3.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.1...8.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-20 09:32:33 +00:00
Yohan Boniface
09e6907932
Merge pull request #2068 from umap-project/dependabot/pip/factory-boy-3.3.1
chore: bump factory-boy from 3.2.1 to 3.3.1
2024-08-20 11:31:39 +02:00
Yohan Boniface
22fe397caa
Merge pull request #2067 from umap-project/dependabot/pip/ruff-0.6.1
chore: bump ruff from 0.5.7 to 0.6.1
2024-08-20 11:31:25 +02:00
dependabot[bot]
c82aae8ce6
chore: bump factory-boy from 3.2.1 to 3.3.1
Bumps [factory-boy](https://github.com/FactoryBoy/factory_boy) from 3.2.1 to 3.3.1.
- [Changelog](https://github.com/FactoryBoy/factory_boy/blob/master/docs/changelog.rst)
- [Commits](https://github.com/FactoryBoy/factory_boy/compare/3.2.1...3.3.1)

---
updated-dependencies:
- dependency-name: factory-boy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 17:15:44 +00:00
dependabot[bot]
9622071fe2
chore: bump ruff from 0.5.7 to 0.6.1
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.5.7 to 0.6.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.5.7...0.6.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 17:15:38 +00:00
Yohan Boniface
4e770f3ed9
Merge pull request #2063 from Dimitar5555/patch-1
Use preferred tile.openstreetmap.org URL
2024-08-19 12:38:08 +02:00
Dimitar
f4c3a10251
Also update regex 2024-08-19 12:20:58 +03:00
Dimitar
92e3de87db
Use preferred tile.openstreetmap.org URL
For reference: https://github.com/openstreetmap/operations/issues/737
2024-08-15 19:58:15 +03:00
Yohan Boniface
ab8bce985e
Merge pull request #2053 from umap-project/bubble-layer
Add "Proportional Circles" layer type
2024-08-15 11:04:47 +02:00
Yohan Boniface
f05590e605
Merge pull request #2025 from umap-project/login-from-map
fix: catch login_required from map page and add a way to login
2024-08-15 10:57:10 +02:00
Yohan Boniface
e42ed4373f wip: do not fail when setting "Circles" layer with non markers data 2024-08-15 10:36:54 +02:00
Yohan Boniface
b0c37671a8
Merge pull request #2060 from umap-project/georss-link-title
fix: do not append HTML element as title in GeoRSSLink popup
2024-08-15 10:25:21 +02:00
Yohan Boniface
bc34851def fix: do not append HTML element as title in GeoRSSLink popup 2024-08-15 10:17:43 +02:00
Yohan Boniface
45bdd48e59
Merge pull request #2059 from umap-project/gpx-description
fix: import GPX desc as description
2024-08-14 11:17:36 +02:00
Yohan Boniface
0847dc1ba6 fix: import GPX desc as description 2024-08-14 11:01:31 +02:00
Yohan Boniface
930463032b wip: add minimal legend for circles layer 2024-08-13 12:30:39 +02:00
Yohan Boniface
cbb022f804 wip: use sqrt for computing circles radius to smooth the sizes
The theory is that the circles surface should be proportional, not
the radius.
2024-08-13 11:11:24 +02:00
Yohan Boniface
6b60b0de64 wip: add "Proportional Circles" layer 2024-08-13 11:11:24 +02:00
Yohan Boniface
5a33709cc9
Merge pull request #2057 from umap-project/icon-to-modules
chore: move icon.js to modules
2024-08-13 11:10:32 +02:00
Yohan Boniface
a04accf16c
Merge pull request #1994 from umap-project/more-tilelayers-button
feat: add a "+" button in the tilelayer switcher
2024-08-13 11:05:02 +02:00
Yohan Boniface
f9484c3336 chore: move icon.js to modules 2024-08-13 11:00:17 +02:00
Yohan Boniface
f08e9cadb5
Merge pull request #2041 from umap-project/mask-polygon
feat: allow to display a polygon "negative"
2024-08-13 10:57:37 +02:00
Yohan Boniface
c79d17ebf5
Merge pull request #2054 from umap-project/dependabot/pip/ruff-0.5.7
chore: bump ruff from 0.5.6 to 0.5.7
2024-08-13 10:23:11 +02:00
Yohan Boniface
327c1603f5 Revert "chore: switch to an UI class getter"
This reverts commit 6b793758c5d7d85a2120a5376134f485ea0807bc.
2024-08-13 10:20:46 +02:00
David Larlet
7863cebc32 chore: switch to an UI class getter 2024-08-13 10:20:46 +02:00
Yohan Boniface
00c384bf25 feat: allow to display a polygon "negative"
fix #1125
2024-08-13 10:20:44 +02:00
Yohan Boniface
0cbfa43817
Merge pull request #2056 from umap-project/bump-postgis-ci
chore: bump postgis in the CI
2024-08-13 10:02:40 +02:00
Yohan Boniface
ad8e45230d chore: bump postgis in the CI
So to bump PostgreSQL to 13, and make Django 5.1 happy
2024-08-13 09:46:41 +02:00
dependabot[bot]
7f76269673
chore: bump ruff from 0.5.6 to 0.5.7
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.5.6 to 0.5.7.
- [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.5.6...0.5.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 17:28:24 +00:00
David Larlet
375b41f8ed
Merge pull request #2028 from umap-project/dependabot/pip/pymdown-extensions-10.9
chore: bump pymdown-extensions from 10.8.1 to 10.9
2024-08-08 16:01:31 -04:00
dependabot[bot]
1625f34712
chore: bump pymdown-extensions from 10.8.1 to 10.9
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.8.1 to 10.9.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.8.1...10.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-08 18:47:34 +00:00
David Larlet
8d52f0bd42
Merge pull request #2047 from umap-project/dependabot/pip/mkdocs-material-9.5.31
chore: bump mkdocs-material from 9.5.30 to 9.5.31
2024-08-08 14:46:25 -04:00
David Larlet
220020f74c
Merge pull request #2048 from umap-project/dependabot/pip/ruff-0.5.6
chore: bump ruff from 0.5.5 to 0.5.6
2024-08-08 14:45:47 -04:00
Yohan Boniface
aa5401a597
Merge pull request #2049 from umap-project/dependabot/pip/django-5.0.8
chore: bump django from 5.0.7 to 5.0.8
2024-08-08 09:22:35 +02:00
dependabot[bot]
7f824f6d47
chore: bump django from 5.0.7 to 5.0.8
Bumps [django](https://github.com/django/django) from 5.0.7 to 5.0.8.
- [Commits](https://github.com/django/django/compare/5.0.7...5.0.8)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-07 19:27:04 +00:00
Yohan Boniface
a0ec0de6f7 feat: align celllayer and cellayerplus border 2024-08-07 09:12:46 +02:00
Yohan Boniface
facccc1c70 feat: add a "+" button in the tilelayer switcher 2024-08-06 13:38:39 +02:00
dependabot[bot]
d012ffbe99
chore: bump ruff from 0.5.5 to 0.5.6
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.5.5 to 0.5.6.
- [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.5.5...0.5.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 17:41:57 +00:00
dependabot[bot]
214bbf8c2c
chore: bump mkdocs-material from 9.5.30 to 9.5.31
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.30 to 9.5.31.
- [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.30...9.5.31)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 17:41:45 +00:00
Yohan Boniface
91c9088082 i18n 2024-08-03 07:37:20 +02:00
David Larlet
95892ff59e
Merge pull request #2045 from umap-project/reposition-topolyline-icon
fix: reposition convert to polyline icon
2024-08-02 16:06:09 -04:00
David Larlet
29c07755b5
fix: reposition convert to polyline icon 2024-08-02 15:03:40 -04:00
Yohan Boniface
d574abfc36 chore: remove umap.popup.js from js.html
The file has been deleted.
2024-08-02 17:39:45 +02:00
David Larlet
a73134cdb0
Merge pull request #2042 from umap-project/vendors-included
chore: include vendorized static dependencies
2024-08-02 11:19:35 -04:00
Yohan Boniface
5d0abe7dc1
Merge pull request #2033 from umap-project/nocontrol-no-loading
fix: deactivate loader on map fragments
2024-08-02 17:18:02 +02:00
Yohan Boniface
9f5361f2c0
Merge pull request #2034 from umap-project/popup-to-modules
chore: move popups to modules
2024-08-02 17:15:26 +02:00
David Larlet
879ee67172
fix: install mocha by hand for CI to launch testjs 2024-08-02 11:10:23 -04:00
David Larlet
ccb6ad57cd
fix: uppercased AS in Dockerfile 2024-08-02 11:08:44 -04:00
David Larlet
ff8903e751
fix: remove Ctrl from tests for cross OS compatibility 2024-08-02 11:04:24 -04:00
David Larlet
c6b2dbd04c
fix: avoid vendorizing lealfet useless files 2024-08-02 10:13:55 -04:00
David Larlet
5c7624a08e
fix: avoid vendorizing markercluster sources 2024-08-02 10:06:27 -04:00
David Larlet
cf00069017
fix: avoid vendorizing leaflet.toolbar sources 2024-08-02 10:01:57 -04:00
David Larlet
4125bd1be0
chore: include vendorized static dependencies 2024-08-02 09:54:54 -04:00
Yohan Boniface
07e7c4b51d
Merge pull request #2039 from umap-project/delete-anonymous-owner
fix: show delete button for owner and anonymous owner
2024-08-01 08:48:34 +02:00
Yohan Boniface
5a0b75fd33
Merge pull request #2027 from umap-project/tableditor-direct-import
chore: import TableEditor directly from layer
2024-07-31 22:53:19 +02:00
Yohan Boniface
3c5d3e09ba
Merge pull request #2035 from umap-project/fix-georss
fix: fix georss import
2024-07-31 22:43:28 +02:00
Yohan Boniface
144c757e0f chore: remove old TableEditor.js tests file 2024-07-31 22:42:23 +02:00
Yohan Boniface
222e69fbf4 chore: import TableEditor directly from layer 2024-07-31 22:42:22 +02:00
Yohan Boniface
6de5dabcc6 fix: fix georss import 2024-07-31 22:31:43 +02:00
Yohan Boniface
5145404dc4 fix: show delete button for owner and anonymous owner 2024-07-31 22:29:29 +02:00
David Larlet
2240ec7f50
Merge pull request #2037 from umap-project/correct-dockerfile-statics-path
fix: Correct Dockerfile statics path
2024-07-31 09:31:06 -04:00
David Larlet
96b5a85989
fix: Correct Dockerfile statics path 2024-07-31 08:47:43 -04:00
Yohan Boniface
a2ca3a1436 chore: move popups to modules 2024-07-30 16:59:44 +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
084c674847 fix: deactivate loader on map fragments
Since 8ddc570e23 we lost the link
request <=> map, so the "dataloading" and "dataload" events are
global to the DOM, so when loading a list of maps, all instances
react to all dataloading events, which makes the list a mess.

I'd prefer to keep this loading indicator per map, but it's much
easier to just hide it, so let's go that way.
2024-07-30 14:28:41 +02:00
David Larlet
8c7ff52f5f
Merge pull request #2031 from umap-project/dependabot/pip/ruff-0.5.5
chore: bump ruff from 0.5.4 to 0.5.5
2024-07-29 21:25:13 -04:00
David Larlet
f692fd2510
Merge pull request #2029 from umap-project/dependabot/pip/mkdocs-material-9.5.30
chore: bump mkdocs-material from 9.5.29 to 9.5.30
2024-07-29 21:25:01 -04:00
David Larlet
c240357922
fix: do not rely on the hasChildNodes() method
Introduced in 5ba1c28408

TIL: `hasChildNodes()` is sensitive to white spaces.
2024-07-29 21:15:24 -04:00
dependabot[bot]
27bfa3e07c
chore: bump ruff from 0.5.4 to 0.5.5
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.5.4 to 0.5.5.
- [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.5.4...0.5.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 17:18:36 +00:00
dependabot[bot]
472cd88cfc
chore: bump mkdocs-material from 9.5.29 to 9.5.30
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.29 to 9.5.30.
- [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.29...9.5.30)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 17:18:21 +00:00
David Larlet
5ba1c28408
chore: reformat templates with djlint 2024-07-29 10:53:34 -04:00
Yohan Boniface
8fc061429a chore: only run lint on our /js/
(Otherwise it will run on vendors…)
2024-07-29 16:40:57 +02:00
David Larlet
6b34c30f90
chore: correct gitignore pattern for root dirs 2024-07-29 10:36:55 -04:00
Yohan Boniface
daa6e37073
Merge pull request #2019 from umap-project/features-to-modules
wip: first step in moving features to modules (work in progress)
2024-07-29 16:35:42 +02:00
Yohan Boniface
703e3315b2
Merge pull request #2014 from umap-project/dependabot/npm_and_yarn/multi-e6246414b5
chore: bump minimist, csv2geojson and osmtogeojson
2024-07-29 16:32:57 +02:00
Yohan Boniface
671d88296f wip: remove print 2024-07-29 16:24:59 +02:00
Yohan Boniface
cd439bb7d0 wip: remove umap.features.js 2024-07-29 16:24:59 +02:00
Yohan Boniface
65c5cb5ab5 wip: refactor isolateShape 2024-07-29 16:24:59 +02:00
Yohan Boniface
cd30f49773 wip: move back click handler to Leaflet Marker/Path
We tried to have only one listened at map level, but we get into
troubles with bindTooltip({permanent: false} and MarkerClusterGroup
stoping the event to each the map.

Let's go back to previous behaviour, and try later to clean this
event management.
2024-07-29 16:24:59 +02:00
Yohan Boniface
1bbdaa4c90 wip: do not try to redraw cluserized marker 2024-07-29 16:24:59 +02:00
Yohan Boniface
565f6d87b6 wip: fix editing Point coordinates by hand
For now we edit ui._latlng, but in an ideal world, we should edit
Point coordinates and then sync to the ui Marker.
2024-07-29 16:24:59 +02:00
Yohan Boniface
25d12420b2 wip: fix popup position for markers
Not sure what changed during the refactor, but now all popups
where opening at click position (plus the popupAnchor for markers).
2024-07-29 16:24:59 +02:00
Yohan Boniface
f80d471203 wip: do not sync twice on commit 2024-07-29 16:24:59 +02:00
Yohan Boniface
a022619625 wip: refactor DataLayer.geojsonToFeatures and fix sync tests 2024-07-29 16:24:59 +02:00
Yohan Boniface
081323dc8a wip: (almost) fix tests 2024-07-29 16:24:59 +02:00
Yohan Boniface
7aa07709b3 wip: first step in moving features to modules (work in progress) 2024-07-29 16:24:56 +02:00
Yohan Boniface
f196bda25f
Merge pull request #2024 from umap-project/permissions-to-modules
chore: move permissions to modules
2024-07-29 15:53:52 +02:00
Yohan Boniface
e2d8201321 chore: move permissions to modules 2024-07-29 15:18:25 +02:00
Yohan Boniface
aae75d86e9
Merge pull request #2008 from umap-project/layer-var-in-popup
feat: add {layer} as popup variable (aka extended properties)
2024-07-23 21:49:04 +02:00
Yohan Boniface
ab34765c30
Merge pull request #1989 from umap-project/layer-to-modules
chore: move layers to modules/
2024-07-23 21:42:22 +02:00
Yohan Boniface
186ad537f3 chore: add docs for using variables 2024-07-23 21:33:55 +02:00
Yohan Boniface
6b67ce26a1 feat: expose marker altitude in variables (as "alt") 2024-07-23 21:33:55 +02:00
David Larlet
a624cd2446
Merge pull request #2011 from umap-project/dependabot/pip/pytest-8.3.1
chore: bump pytest from 8.2.2 to 8.3.1
2024-07-22 13:52:30 -04:00
dependabot[bot]
4aaf9d4d08
chore: bump minimist, csv2geojson and osmtogeojson
Bumps [minimist](https://github.com/minimistjs/minimist) to 1.2.8 and updates ancestor dependencies [minimist](https://github.com/minimistjs/minimist), [csv2geojson](https://github.com/mapbox/csv2geojson) and [osmtogeojson](https://github.com/tyrasd/osmtogeojson). These dependencies need to be updated together.


Updates `minimist` from 0.0.5 to 1.2.8
- [Changelog](https://github.com/minimistjs/minimist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/minimistjs/minimist/compare/v0.0.5...v1.2.8)

Updates `csv2geojson` from 5.1.1 to 5.1.2
- [Changelog](https://github.com/mapbox/csv2geojson/blob/gh-pages/CHANGELOG.md)
- [Commits](https://github.com/mapbox/csv2geojson/commits)

Updates `osmtogeojson` from 3.0.0-beta.3 to 3.0.0-beta.5
- [Changelog](https://github.com/tyrasd/osmtogeojson/blob/gh-pages/CHANGELOG.md)
- [Commits](https://github.com/tyrasd/osmtogeojson/compare/3.0.0-beta.3...3.0.0-beta.5)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
- dependency-name: csv2geojson
  dependency-type: direct:production
- dependency-name: osmtogeojson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 17:51:39 +00:00
David Larlet
592a9753f4
Merge pull request #2012 from umap-project/dependabot/pip/ruff-0.5.4
chore: bump ruff from 0.5.2 to 0.5.4
2024-07-22 13:50:37 -04:00
dependabot[bot]
13c7dbcbcb
chore: bump ruff from 0.5.2 to 0.5.4
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.5.2 to 0.5.4.
- [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.5.2...0.5.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 17:40:15 +00:00
dependabot[bot]
4eabc907d0
chore: bump pytest from 8.2.2 to 8.3.1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.2.2 to 8.3.1.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.2.2...8.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 17:40:05 +00:00
Yohan Boniface
ef4e33a6ec
Merge pull request #2010 from umap-project/var-null
Fix variable pointing to null value displayed instead of the fallback
2024-07-22 17:58:15 +02:00
David Larlet
a8468cb4fa
chore: modern JS 2024-07-22 09:58:17 -04:00
Yohan Boniface
8d39932e94
Merge pull request #2009 from umap-project/fix-sortkey-help
fix: broken sortKey help
2024-07-22 15:57:45 +02:00
Yohan Boniface
6b4b6ce53b fix: do not consider null as value in greedyTemplate
cf #820#issuecomment-2227821746
2024-07-22 11:56:10 +02:00
Yohan Boniface
da8e206cd0 chore: pass biome on utils unittests 2024-07-22 11:55:35 +02:00
Yohan Boniface
67ec77fd8a fix: broken sortKey help
And move properties to shema.js. Given those keys does not have
a "guessable" handler, let's have a "customHandlers" prop to deal
with those (instead of keeping them outside of the schema…)

fix #2006
2024-07-22 11:09:25 +02:00
Yohan Boniface
d54843bbe2 feat: add {layer} as popup variable (aka extended properties)
fix #2007
2024-07-22 10:41:46 +02:00
David Larlet
852d826dcd
docs-users: add article in French 2024-07-18 13:05:32 -04:00
David Larlet
1cb54613d0
docs-users: typo 2024-07-16 15:15:36 -04:00
David Larlet
6432e47a17
docs-users: add Towards uMap 3 articles (en+fr) 2024-07-16 15:09:32 -04:00
David Larlet
c5e7e91386
Merge pull request #1998 from umap-project/1997-help-zindex
fix: handle the 'auto' value special case for z-index
2024-07-16 08:30:08 -04:00
David Larlet
35be292c81
Merge pull request #2000 from umap-project/dependabot/pip/social-auth-app-django-5.4.2
chore: bump social-auth-app-django from 5.4.1 to 5.4.2
2024-07-15 13:50:26 -04:00
David Larlet
5436b1ee12
Merge pull request #1999 from umap-project/dependabot/pip/ruff-0.5.2
chore: bump ruff from 0.5.1 to 0.5.2
2024-07-15 13:42:16 -04:00
David Larlet
0d74cc21b2
Merge pull request #2001 from umap-project/dependabot/pip/mkdocs-material-9.5.29
chore: bump mkdocs-material from 9.5.28 to 9.5.29
2024-07-15 13:42:04 -04:00
dependabot[bot]
687851dd7f
chore: bump mkdocs-material from 9.5.28 to 9.5.29
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.28 to 9.5.29.
- [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.28...9.5.29)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 17:40:55 +00:00
dependabot[bot]
7469337ff5
chore: bump social-auth-app-django from 5.4.1 to 5.4.2
Bumps [social-auth-app-django](https://github.com/python-social-auth/social-app-django) from 5.4.1 to 5.4.2.
- [Release notes](https://github.com/python-social-auth/social-app-django/releases)
- [Changelog](https://github.com/python-social-auth/social-app-django/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python-social-auth/social-app-django/compare/5.4.1...5.4.2)

---
updated-dependencies:
- dependency-name: social-auth-app-django
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 17:40:51 +00:00
dependabot[bot]
2e2cbf5520
chore: bump ruff from 0.5.1 to 0.5.2
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.5.1 to 0.5.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.5.1...0.5.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 17:40:45 +00:00
David Larlet
9609fafe93
fix: handle the 'auto' value special case for z-index
Fix #1997
2024-07-15 13:33:07 -04:00
David Larlet
4d2592992c
Merge pull request #1993 from umap-project/tableeditor-input
fix: remove padding from table editor inputs
2024-07-12 18:11:11 -04:00
Yohan Boniface
abbd0e4803 chore: move layers to modules/
This is a small step in the direction of spliting the data part
and the rendering part.

Basically in modules/data relies the data part, and in modules/rendering
the rendering part, which at some point in the history should be
the only place where we use and inherit from Leaflet, including utils
and such.
2024-07-12 23:21:41 +02:00
David Larlet
f5fd0eb6e9
fix: remove padding from table editor inputs
Also, decrease line-height of header cells
2024-07-12 14:23:54 -04:00
Yohan Boniface
54266c7d34 changelog 2024-07-12 19:02:32 +02:00
Yohan Boniface
764fbb4247 2.5.1 2024-07-12 19:01:42 +02:00
Yohan Boniface
163d24c7d0 fix: correct way to replace imports in collecstatic 2024-07-12 19:00:59 +02:00
Yohan Boniface
472f5578b8 changelog 2024-07-12 18:52:06 +02:00
Yohan Boniface
3226be1bdb 2.5.0 2024-07-12 18:46:45 +02:00
Yohan Boniface
8c58b06ce4 i18n 2024-07-12 18:34:03 +02:00
David Larlet
fd00c894a8
chore: fix markdown markup 2024-07-12 12:19:39 -04:00
David Larlet
f40387d5fc
Merge pull request #1968 from umap-project/filter-layer-3
Refactor the table editor including mass actions and filters
2024-07-12 12:18:47 -04:00
David Larlet
75e4679cc9
chore: fix tests 2024-07-12 12:12:29 -04:00
David Larlet
3db6655548
Merge pull request #1918 from umap-project/docs-major-versions
docs: Major version in case of server change(s)
2024-07-12 12:08:05 -04:00
David Larlet
645a8f5827
docs: Major version in case of server change(s) 2024-07-12 12:07:46 -04:00
David Larlet
3e20aff674
Merge pull request #1992 from umap-project/slideshow-fixes
Fix up following move of slideshow class to modules
2024-07-12 12:06:04 -04:00
David Larlet
f8cb195336
chore: back to this.properties for TableEditor 2024-07-12 12:02:28 -04:00
David Larlet
b63a0f7f2d
chore: better errors on name validation 2024-07-12 11:53:12 -04:00
David Larlet
85a4fda0ed
chore: use datalayer._propertiesIndex directly 2024-07-12 11:51:04 -04:00
David Larlet
238798acc3
chore: clean table editor CSS 2024-07-12 11:41:14 -04:00
David Larlet
7ce5646c54
chore: move computePosition to Positioned base class 2024-07-12 11:37:03 -04:00
Yohan Boniface
b4d13304f0 fix: add back slideshow.setOptions method, called from U.Map 2024-07-12 15:18:52 +02:00
Yohan Boniface
a51cc8102f fix: fix race condition when slideshow is in autostart mode
Given `setViewFromQueryString` is now async, the slideshow may start
before it is run and thus it has called `initCaptionBar`, so let's
call it directly (and it's not linked to query string, so…)
2024-07-12 15:16:42 +02:00
Yohan Boniface
a101309e03 wip: use Input not BlurInput in tableeditor
BlurInput adds a "check" button we don't want here.
2024-07-12 12:31:50 +02:00
Yohan Boniface
96c9bf9413 wip: set contextmenu x/y according to position in window 2024-07-12 12:21:30 +02:00
Yohan Boniface
4a6b271bbe wip: deal with escape in tableeditor input/textarea 2024-07-11 20:39:05 +02:00
Yohan Boniface
9f04f56c7c wip: use position: fixed for input/textarea in tableeditor
so it does not increase the cell width and does not change all
the table size.
Actually, there is still a small size change as we remove the cell
content before adding the input/textarea, but more subtle than before
2024-07-11 20:39:05 +02:00
Yohan Boniface
3fb7be28ec wip: remove old tableeditor class 2024-07-11 20:39:05 +02:00
Yohan Boniface
2f8cda83b6 wip: do not try to read map.fullPanel blindly
It is only defined when user has write permissions.
2024-07-11 20:39:05 +02:00
Yohan Boniface
f1c34f9d27 wip: minimal keyboard navigation in table editor 2024-07-11 20:39:05 +02:00
Yohan Boniface
f62f3b4ab9 wip: make outline appears on click on table editor 2024-07-11 20:39:05 +02:00
Yohan Boniface
1ef416a622 wip: allow to open table "editor" (readonly) for remote data layers 2024-07-11 20:39:05 +02:00
Yohan Boniface
5909630e0e wip: fix bugs and add tests for table editor 2024-07-11 20:39:05 +02:00
Yohan Boniface
9ac3de2b33 wip: (huge) table editor refactor 2024-07-11 20:39:05 +02:00
Yohan Boniface
ae9659620a wip: another attemp to massiverly delete features from a condition 2024-07-11 20:39:05 +02:00
Yohan Boniface
bf08536c30
Merge pull request #1987 from umap-project/fix-fromtozoom-tests
try to fix toZoom and fromZoom randomly failing tests
2024-07-11 16:34:03 +02:00
Yohan Boniface
ec7b546bf5 chore: try to fix toZoom and fromZoom randomly failing tests 2024-07-11 16:07:27 +02:00
Yohan Boniface
a035b6cb38 chore: use our own page fixture so to print console messages 2024-07-11 10:53:33 +02:00
David Larlet
dc1a27b526
Merge pull request #1986 from umap-project/dependabot/pip/django-5.0.7
chore: bump django from 5.0.6 to 5.0.7
2024-07-10 20:43:56 -04:00
dependabot[bot]
26e3b855c1
chore: bump django from 5.0.6 to 5.0.7
Bumps [django](https://github.com/django/django) from 5.0.6 to 5.0.7.
- [Commits](https://github.com/django/django/compare/5.0.6...5.0.7)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-10 22:20:17 +00:00
David Larlet
c165bede54
Merge pull request #1985 from umap-project/Aurelie-Jallut-patch-2
Update articles.md
2024-07-10 15:12:59 -04:00
David Larlet
b558b74669
Add recent articles to discover 2024-07-10 15:11:52 -04:00
Aurélie Jallut
86e638dd97
Update articles.md
Ajout de 2 articles :)
2024-07-10 17:36:11 +02:00
David Larlet
1a878b68cb
Merge pull request #1984 from umap-project/Aurelie-Jallut-patch-1
Update videos.md
2024-07-10 11:32:10 -04:00
Aurélie Jallut
3d874611af
Update videos.md
Ajout d'une vidéo
2024-07-10 17:23:57 +02:00
Yohan Boniface
3fa478abac
Merge pull request #1981 from umap-project/autocomplete-datalist
feat: add AutocompleteDatalist and use it for conditional rules
2024-07-10 11:36:59 +02:00
Yohan Boniface
75e36f1c54
Merge pull request #1980 from umap-project/osm-relation-tags
fix: import unified relations from OSM data (use latest osmtogeojson)
2024-07-10 10:34:03 +02:00
Yohan Boniface
7baa70d1b6 feat: add AutocompleteDatalist and use it for conditional rules 2024-07-10 10:10:53 +02:00
Yohan Boniface
d830978f6f fix: import unified relations and tags from OSM data (use latest osmtogeojson)
fix #1011
2024-07-10 09:23:52 +02:00
Yohan Boniface
76fbb306fc
Merge pull request #1982 from umap-project/categorized-color
fix: use correct color for categorized/choropleth layers in browser
2024-07-09 15:16:19 +02:00
Yohan Boniface
ed6f0fcdf1
Merge pull request #1979 from umap-project/fix-blurinput
fix: BlurInput was not updating the object in some situations
2024-07-09 15:15:26 +02:00
Yohan Boniface
e3f59850a7 fix: fix preview color for polygons
Use usually set the `color` property, but we want to use the
fillColor if it sets.
2024-07-09 12:47:10 +02:00
Yohan Boniface
00483882a1 fix: use correct color for categorized/choropleth layers in browser 2024-07-09 11:58:29 +02:00
Yohan Boniface
dd9c3ba194 chore: biome 2024-07-09 11:47:34 +02:00
Yohan Boniface
3be274929a fix: BlurInput was not updating the object in some situations
Steps to reproduce:
- click in any BlurInput
- change to any value
- click outside the input => the value will be set to the object
- click again in the input
- change value to the initial
- click outside => the value will not be set

This is because the BlurInput in sync on blur, and it was comparing
the current field value with an "initial" one, only set at build.
This check is made because we don't want to trigger an edit when a
user click in a blurinput and click outside without changing the value.
2024-07-09 10:46:22 +02:00
David Larlet
45b9db4242
Merge pull request #1976 from umap-project/dependabot/pip/pytest-playwright-0.5.1
chore: bump pytest-playwright from 0.5.0 to 0.5.1
2024-07-08 13:40:10 -04:00
David Larlet
603a6fb839
Merge pull request #1974 from umap-project/dependabot/pip/mkdocs-material-9.5.28
chore: bump mkdocs-material from 9.5.27 to 9.5.28
2024-07-08 13:39:42 -04:00
dependabot[bot]
6e2e25d9dc
chore: bump mkdocs-material from 9.5.27 to 9.5.28
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.27 to 9.5.28.
- [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.27...9.5.28)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 17:39:32 +00:00
David Larlet
16ad61cf67
Merge pull request #1975 from umap-project/dependabot/pip/pydantic-2.8.2
chore: bump pydantic from 2.8.0 to 2.8.2
2024-07-08 13:38:51 -04:00
David Larlet
25d029a0a8
Merge pull request #1977 from umap-project/dependabot/pip/ruff-0.5.1
chore: bump ruff from 0.5.0 to 0.5.1
2024-07-08 13:38:20 -04:00
dependabot[bot]
d7964077d8
chore: bump ruff from 0.5.0 to 0.5.1
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.5.0 to 0.5.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.5.0...0.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 17:28:21 +00:00
dependabot[bot]
4ec167b485
chore: bump pytest-playwright from 0.5.0 to 0.5.1
Bumps [pytest-playwright](https://github.com/microsoft/playwright-pytest) from 0.5.0 to 0.5.1.
- [Release notes](https://github.com/microsoft/playwright-pytest/releases)
- [Commits](https://github.com/microsoft/playwright-pytest/compare/v0.5.0...v0.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 17:28:06 +00:00
dependabot[bot]
e3d346939a
chore: bump pydantic from 2.8.0 to 2.8.2
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.8.0 to 2.8.2.
- [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.8.0...v2.8.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 17:28:00 +00:00
Yohan Boniface
b5cd04658e
Merge pull request #1972 from umap-project/controls-zindex
fix: make sure panels are above controls
2024-07-05 19:12:00 +02:00
Yohan Boniface
36b4510e46 fix: make sure panels are above controls
fix #1954
2024-07-05 18:59:13 +02:00
Yohan Boniface
4ae47de8a9
Merge pull request #1958 from umap-project/broken-help
fix: main help button from edit toolbar was broken
2024-07-05 18:51:14 +02:00
Yohan Boniface
207860ecf5 chore: refactor help.button arguments 2024-07-05 18:27:53 +02:00
Yohan Boniface
ec5f8d7b3c
Update umap/static/umap/js/modules/help.js
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2024-07-05 18:19:00 +02:00
Yohan Boniface
257d205690
Merge pull request #1953 from umap-project/categorized-layer
feat: add new type of layer Categorized
2024-07-05 18:18:36 +02:00
Yohan Boniface
b68ca858ca
Merge pull request #1945 from umap-project/formatters
move formatters and share to a module, and use new GPX library
2024-07-05 18:03:22 +02:00
Yohan Boniface
1b8b130805 wip: no need for await here 2024-07-05 17:52:35 +02:00
Yohan Boniface
cc6ae95371 wip: make Map.initialize async
We want to be able to await function there.

Specifically, we want to await the data creation when it comes from
the `data` url param, so when we also consume the `feature` url param,
that feature is already on the map so we can open it
2024-07-05 17:52:35 +02:00
Yohan Boniface
49db1f9aaa chore: move share to modules 2024-07-05 17:52:33 +02:00
Yohan Boniface
741fc70a17 wip: simpler syntax for dynamic import in formatters 2024-07-05 17:51:53 +02:00
Yohan Boniface
891f04656f wip: make collectstatic happy with import() in comments
Also add missing .map files.

Maybe a proper solution would be to commit the vendors/ and
remove manually the comments.
2024-07-05 17:51:53 +02:00
Yohan Boniface
ca0f771947 wip: move formatters to a module
This mainly allows to dynamically load the third party libraries.

In the same process, those libs have changed:

- tokml => switch to placemarkio fork, more up to date and available
  as ESM
- togpx => switch to geojson-to-gpx, more up to date and available as
  ESM (note: this lib does not export polygons, because they do not
  make sense in GPX world, while the previous was converting them as
  lines before)
2024-07-05 17:51:53 +02:00
Yohan Boniface
665656080c
Merge pull request #1971 from umap-project/slideshow-module
chore: move slideshow to a module
2024-07-05 17:47:13 +02:00
Yohan Boniface
f293f9c929 chore: move slideshow to a module 2024-07-05 17:35:08 +02:00
David Larlet
807260f84a
Merge pull request #1969 from umap-project/data-ref-template-binding
chore: create a WithTemplate base class
2024-07-05 08:17:17 -04:00
Yohan Boniface
6aa74060ad chore: make explicit that the "show get started dialog" is a special case 2024-07-05 09:52:39 +02:00
David Larlet
8b62aecd31
chore: create a WithTemplate base class
Allows to load a string/template and bind all `data-ref` references to `this.elements`.
2024-07-04 20:11:38 -04:00
David Larlet
377577ef86
Add latest French video to the documentation 2024-07-03 09:43:00 -04:00
Yohan Boniface
6976fd1f63
Merge pull request #1963 from umap-project/overpass-departement
fix: allow to search a French departement in Overpass importer
2024-07-02 22:51:40 +02:00
Yohan Boniface
6cbda1f373
Merge pull request #1964 from umap-project/throttle-search
fix: add throttle in autocomplete
2024-07-02 22:51:09 +02:00
Yohan Boniface
1839c48234
Merge pull request #1956 from umap-project/custom-prompt
chore: add custom prompt
2024-07-02 22:49:05 +02:00
Yohan Boniface
6872a584be wip: fix tests 2024-07-02 21:09:23 +02:00
Yohan Boniface
4c1ea8b97f wip: make sure dialog polyfill works 2024-07-02 20:49:14 +02:00
Yohan Boniface
eabc85dc98
Merge pull request #1965 from umap-project/playwright-tile-debug
chore: always use real tiles in playwright when in debug mode
2024-07-02 19:18:20 +02:00
Yohan Boniface
f8577c3639 chore: always use real tiles in playwright when in debug mode 2024-07-02 19:11:39 +02:00
Yohan Boniface
abbd0eef62 fix: add throttle in autocomplete 2024-07-02 19:06:11 +02:00
Yohan Boniface
91badcdb5e wip: rework dialog class 2024-07-02 18:11:22 +02:00
Yohan Boniface
23396ad4df fix: allow to search a French departement in Overpass importer
And make it configurable in the same time.
2024-07-02 10:45:05 +02:00
Yohan Boniface
2d1c4ad3c0
Merge pull request #1960 from umap-project/dependabot/pip/psycopg-3.2.1
chore: bump psycopg from 3.1.19 to 3.2.1
2024-07-01 21:18:32 +02:00
dependabot[bot]
25b159ed7e
chore: bump psycopg from 3.1.19 to 3.2.1
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.19 to 3.2.1.
- [Changelog](https://github.com/psycopg/psycopg/blob/master/docs/news.rst)
- [Commits](https://github.com/psycopg/psycopg/compare/3.1.19...3.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 19:10:48 +00:00
Yohan Boniface
dba428ee55
Merge pull request #1959 from umap-project/dependabot/pip/pillow-10.4.0
chore: bump pillow from 10.3.0 to 10.4.0
2024-07-01 21:10:24 +02:00
Yohan Boniface
7e352cc41c
Merge pull request #1961 from umap-project/dependabot/pip/pydantic-2.8.0
chore: bump pydantic from 2.7.4 to 2.8.0
2024-07-01 21:10:05 +02:00
Yohan Boniface
aafc27de2c
Merge pull request #1962 from umap-project/dependabot/pip/ruff-0.5.0
chore: bump ruff from 0.4.10 to 0.5.0
2024-07-01 21:09:36 +02:00
dependabot[bot]
56034096ea
chore: bump ruff from 0.4.10 to 0.5.0
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.4.10 to 0.5.0.
- [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/v0.4.10...0.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 17:33:41 +00:00
dependabot[bot]
3bd6378ab9
chore: bump pydantic from 2.7.4 to 2.8.0
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.7.4 to 2.8.0.
- [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.7.4...v2.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 17:33:28 +00:00
dependabot[bot]
d829b1c8f1
chore: bump pillow from 10.3.0 to 10.4.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.3.0 to 10.4.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/10.3.0...10.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 17:33:17 +00:00
Yohan Boniface
759dd34ef3 fix: main help button from edit toolbar was broken 2024-07-01 18:58:01 +02:00
Yohan Boniface
186025e0f0 chore: add custom prompt 2024-07-01 18:54:06 +02:00
Yohan Boniface
ce3439f6b5 feat: add new type of layer Categorized
This is like Choropleth, but with categories instead of graduated.

fix #1433
2024-07-01 12:48:46 +02:00
Yohan Boniface
796865314a changelog 2024-06-26 23:24:12 +02:00
Yohan Boniface
796037cd74 2.4.2 2024-06-26 23:19:28 +02:00
Yohan Boniface
3a10b0c4e0 i18n 2024-06-26 23:18:30 +02:00
Yohan Boniface
d65c5d3f3f chore: mention to run make intalljs vendors before releasing
Local vendors may be related to another branch than master.
2024-06-26 23:17:41 +02:00
Yohan Boniface
3db414cb97 fix tests broken in c09adffb64 2024-06-26 23:16:02 +02:00
Yohan Boniface
c09adffb64 fix: make sure to quote spaces in URL when using proxy
space is a control character, and thus is forbidden in an URL, and
we do have spaces in overpass URL (containing raw queries).
2024-06-26 22:57:25 +02:00
David Larlet
3805d7f308
fix: better line-height for importers’ names 2024-06-26 15:43:46 -04:00
David Larlet
b01a194469
Merge pull request #1943 from umap-project/multiple-dataurl-onload
feat: handle multiple dataUrl parameters on map load
2024-06-26 14:22:11 -04:00
David Larlet
393ae0df6b
docs-users: Also document the data URL parameter 2024-06-26 14:16:16 -04:00
David Larlet
9f7f9b08be
docs-users: Preloading a map with data 2024-06-26 13:41:44 -04:00
David Larlet
84e7f7a0a8
Merge pull request #1944 from umap-project/apply-biome-unsafe-2
chore: apply Biome unsafe changes
2024-06-26 13:21:56 -04:00
David Larlet
31d1c36a48
chore: explicit comment for global isNaN usage 2024-06-26 13:05:24 -04:00
7a7977c5cd fix(sync): do not send messages when loading data from the server
This introduces a `sync=true/false` parameter that can be passed along
when loading data from our own server, in which case we don't want to
send "operation" messages.
2024-06-26 18:59:20 +02:00
0dcedeb525 fix(sync): sync feature layer changes
This commits adds a way to differenciate "end of edit" events that are
triggered rightfully and the one which are triggered during the deletion
of a feature.

Also, directly call the `sync.upsert()` method after the move happened.
2024-06-26 18:59:20 +02:00
4f19824805 fix(sync): pass the correct datalayer uuid 2024-06-26 18:59:20 +02:00
David Larlet
b5cb092cd4
chore: from switch with unique case to if/else 2024-06-26 11:29:20 -04:00
David Larlet
04c50c4453
chore: deal with missing label for url_template 2024-06-26 10:35:46 -04:00
David Larlet
7c2b5839a9
Merge pull request #1942 from umap-project/rational-zindexes
chore: rationalize z-indexes in CSS
2024-06-26 10:10:47 -04:00
David Larlet
d1ded301a5
chore: do not use Number.isNaN in special cases 2024-06-25 21:41:29 -04:00
David Larlet
c61ca9c506
chore: remove the noDelete rule completely 2024-06-25 21:31:37 -04:00
David Larlet
b819c554ee
chore: there is a difference between unset and delete 2024-06-25 20:53:02 -04:00
David Larlet
7a82b6547e
chore: do not use Number.isNaN in special cases 2024-06-25 18:14:34 -04:00
David Larlet
5c88502a2e
chore: set a sync default value on createDataLayer
Rel: https://biomejs.dev/linter/rules/use-default-parameter-last/
2024-06-25 17:23:52 -04:00
David Larlet
445a793c3e
chore: apply Biome unsafe changes
Without `useBlockStatements`
2024-06-25 17:11:17 -04:00
David Larlet
b426d212f0
feat: handle multiple dataUrl parameters on map load 2024-06-25 16:41:39 -04:00
David Larlet
88d1151972
Merge pull request #1940 from umap-project/apply-biome-safe
chore: apply Biome safe changes
2024-06-25 16:04:25 -04:00
David Larlet
d9d39778e7
Merge pull request #1939 from umap-project/from-prettier-to-biome
chore: setup Biome to replace Prettier
2024-06-25 16:04:10 -04:00
David Larlet
735c9dc6d8
chore: rationalize z-indexes in CSS
Positive side-effect: alerts are now above importers panel.
2024-06-25 14:56:25 -04:00
David Larlet
ef33a26f11
chore: apply Biome safe changes 2024-06-25 10:00:57 -04:00
David Larlet
e32deedcc8
chore: setup Biome to replace Prettier
If you are using SublimeText: https://packagecontrol.io/packages/LSP-biome
2024-06-25 09:59:40 -04:00
adc1cf460f Use css variables
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2024-06-25 14:15:23 +02:00
c3a412059a fix: better spacing for the alert box, when activated 2024-06-25 14:15:23 +02:00
David Larlet
921bed1d99
Merge pull request #1938 from umap-project/1934-empty-map-datalayers
fix: Distinction between clearing data vs. layers
2024-06-25 08:11:33 -04:00
David Larlet
0b031dc7cc
fix: Distinction between clearing data vs. layers
Fix #1934
2024-06-24 17:04:33 -04:00
David Larlet
7058ee216f
Merge pull request #1937 from umap-project/dependabot/pip/ruff-0.4.10
chore: bump ruff from 0.4.9 to 0.4.10
2024-06-24 16:31:15 -04:00
dependabot[bot]
902ba3a0be
chore: bump ruff from 0.4.9 to 0.4.10
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.4.9 to 0.4.10.
- [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/v0.4.9...v0.4.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 17:50:53 +00:00
Yohan Boniface
8dfed0dc62 changelog 2024-06-24 08:35:42 +02:00
Yohan Boniface
5a5bada7b8 2.4.1 2024-06-24 08:33:23 +02:00
Yohan Boniface
e4af031ca1
Merge pull request #1933 from umap-project/fix-change-datalayer
fix: fix path disappearing when changing its datalayer
2024-06-24 08:32:32 +02:00
Yohan Boniface
d1fd842c1a i18n 2024-06-24 08:16:41 +02:00
Yohan Boniface
8d9bd4aec1 fix: fix path disappearing when changing its datalayer
fix #1931
2024-06-24 08:08:23 +02:00
Yohan Boniface
69c36a8f87 changelog 2024-06-21 22:19:36 +02:00
Yohan Boniface
2123f7d1e6 2.4.0 2024-06-21 22:09:51 +02:00
Yohan Boniface
37c5601609
Merge pull request #1930 from umap-project/feature-panel-querystring
feat: give precedence to feature in query string over onLoadPanel
2024-06-21 22:04:05 +02:00
Yohan Boniface
a8daca425c i18n 2024-06-21 21:59:43 +02:00
Yohan Boniface
82c9ec7d39 feat: give precedence to feature in query string over onLoadPanel
cf #1893
2024-06-21 21:57:34 +02:00
Yohan Boniface
c2fc9ffb57 chore: use button element for "back to browser" action
As we did for other actions in c0ecc39439
2024-06-21 21:53:22 +02:00
Yohan Boniface
2b2a63fe29 chore: fix failing test 2024-06-21 18:29:40 +02:00
Yohan Boniface
02dd29a55f chore: add margin left to radio buttons 2024-06-21 18:03:02 +02:00
Yohan Boniface
e5259b3ffe
Merge pull request #1929 from umap-project/heading-css-size
chore: change heading CSS size
2024-06-21 17:46:44 +02:00
Yohan Boniface
9fabfe08cd
Merge pull request #1922 from umap-project/smaller-headings
chore: smaller headings in descriptions
2024-06-21 16:39:44 +02:00
Yohan Boniface
2b8326bd61
Merge pull request #1928 from umap-project/fix-slideshow-buttons
fix: fix slideshow toolbar position and size
2024-06-21 16:38:28 +02:00
Yohan Boniface
cd69e5fbb0
Merge pull request #1924 from umap-project/popup-min-width
fix: increase popup min-width
2024-06-21 16:38:06 +02:00
Yohan Boniface
5e480627cc
Merge pull request #1923 from umap-project/white-space-description
fix: also use white-space: pre-line on map description
2024-06-21 16:37:43 +02:00
Yohan Boniface
25cd19049e
Merge pull request #1921 from umap-project/fix-layer-labelkey
fix: use layer labelKey if any when filtering features
2024-06-21 16:37:14 +02:00
Yohan Boniface
73493258f1
Merge pull request #1920 from umap-project/fix-overlay-null
chore: do not set overlay=null as default
2024-06-21 16:36:57 +02:00
Yohan Boniface
ebafb6d40a chore: change heading CSS size 2024-06-21 16:35:07 +02:00
Yohan Boniface
7be62f3dab fix: fix slideshow toolbar position and size
broken by c0ecc39439
2024-06-21 16:33:37 +02:00
Yohan Boniface
f09024e8e8
Merge pull request #1925 from umap-project/map-details-icon
fix: add icon to "edit map details" panel title
2024-06-21 15:15:18 +02:00
Yohan Boniface
3037128540 fix: add icon to "edit map details" panel title 2024-06-21 15:14:27 +02:00
Yohan Boniface
36db88f5a6 fix: increase popup min-width
Since fa2bef85d3 popup are smaller,
let's try to have them as before.
2024-06-21 14:55:42 +02:00
Yohan Boniface
25f338f51d fix: also use white-space: pre-line on map description
We removed line breaks management on the JS side so to manage it
in CSS, but this CSS was only active on popup/panels for features.
Let's have a class for this, and add it to the map description to
(about panel).
2024-06-21 14:39:12 +02:00
Yohan Boniface
6f38dcf4d7 fix: this css var has been renamed elsewhere 2024-06-21 14:07:48 +02:00
Yohan Boniface
3ed548b097 chore: smaller headings in descriptions
We already have a h3 as title, both in the popup or in the panel
2024-06-21 14:05:47 +02:00
Yohan Boniface
4fc66da80c fix: use layer labelKey if any when filtering features
fix #1908
2024-06-21 13:35:06 +02:00
Yohan Boniface
5609092cc0 chore: do not set overlay=null as default
FormBuilder will break when reimporting an exported map with this
default value (at the casting to object was only made on the init,
so reimporting will override this to null again).
2024-06-21 11:39:39 +02:00
David Larlet
a1916ea15b
chore: add tx (transifex executable) to gitignore
With the recommended way to install their CLI tool (https://developers.transifex.com/docs/cli) you end up having that executable within your umap workspace.
2024-06-20 11:06:31 -04:00
David Larlet
ed2386eaae
2.4.0b2 2024-06-20 10:56:26 -04:00
David Larlet
0edf7cc5d9
i18n 2024-06-20 10:56:04 -04:00
David Larlet
8b2610947a
Merge pull request #1917 from umap-project/1911-better-importers-styles
fix: CSS adjustments for importers
2024-06-20 09:59:40 -04:00
David Larlet
f78320d153
Merge pull request #1916 from umap-project/1913-alert-on-import
fix: display an alert if the import is successful
2024-06-20 09:59:26 -04:00
David Larlet
41abbc90d0
Merge pull request #1914 from umap-project/1912-native-radio-inputs
fix: remove custom styles for radio inputs
2024-06-20 09:59:00 -04:00
David Larlet
f3c9fd71ea
docs: add Alexis’ latest article 2024-06-20 08:35:57 -04:00
David Larlet
f074730248
docs: minor typo hunting 2024-06-19 12:03:50 -04:00
David Larlet
de2c5cc550
docs: reference more articles 2024-06-19 11:55:44 -04:00
David Larlet
0a9f57d2d8
fix: CSS adjustments for importers
Fix #1911
2024-06-18 15:11:58 -04:00
David Larlet
d695d87248
Merge pull request #1915 from umap-project/dependabot/npm_and_yarn/ws-8.17.1
chore: bump ws from 8.17.0 to 8.17.1
2024-06-18 14:53:52 -04:00
David Larlet
7e6d264796
fix: display an alert if the import is successful
Fix #1913
2024-06-18 14:53:27 -04:00
David Larlet
f1b1abb38f
Merge pull request #1903 from umap-project/set-layername-from-dataset
feat: set layer name when importing from dataset
2024-06-18 14:41:02 -04:00
David Larlet
a249114547
Merge pull request #1905 from umap-project/dependabot/pip/pydantic-2.7.4
chore: bump pydantic from 2.7.3 to 2.7.4
2024-06-18 14:39:15 -04:00
David Larlet
e56bb2e229
Merge pull request #1902 from umap-project/fix-open-files
fix: correct way to open files dialgo with ctrl+O
2024-06-18 14:39:02 -04:00
dependabot[bot]
528a23c9d0
chore: bump ws from 8.17.0 to 8.17.1
Bumps [ws](https://github.com/websockets/ws) from 8.17.0 to 8.17.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.17.0...8.17.1)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 18:38:53 +00:00
David Larlet
44f1500d1c
Merge pull request #1906 from umap-project/dependabot/pip/mkdocs-material-9.5.27
chore: bump mkdocs-material from 9.5.26 to 9.5.27
2024-06-18 14:38:33 -04:00
David Larlet
38035343ec
Merge pull request #1907 from umap-project/dependabot/pip/ruff-0.4.9
chore: bump ruff from 0.4.8 to 0.4.9
2024-06-18 14:38:23 -04:00
David Larlet
08f5debd62
fix: remove custom styles for radio inputs
Fix #1912
2024-06-18 14:38:00 -04:00
dependabot[bot]
8fe8fc1c16
chore: bump ruff from 0.4.8 to 0.4.9
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.4.8 to 0.4.9.
- [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/v0.4.8...v0.4.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 17:21:36 +00:00
dependabot[bot]
db8e34e5fb
chore: bump mkdocs-material from 9.5.26 to 9.5.27
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.26 to 9.5.27.
- [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.26...9.5.27)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 17:21:22 +00:00
dependabot[bot]
fb854b7894
chore: bump pydantic from 2.7.3 to 2.7.4
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.7.3 to 2.7.4.
- [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.7.3...v2.7.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 17:21:17 +00:00
Yohan Boniface
b977d26eae feat: set layer name when importing from dataset 2024-06-17 11:54:06 +02:00
Yohan Boniface
afcaf2a07a fix: correct way to open files dialgo with ctrl+O 2024-06-17 10:46:46 +02:00
David Larlet
1a3377723b
2.4.0b1 2024-06-14 21:44:44 -04:00
David Larlet
c1576ee5ca
Merge pull request #1900 from umap-project/explicit-import-paths
Multiple fixes for importers
2024-06-14 21:29:45 -04:00
David Larlet
411452ac70
fix: allow first radio input click when second selected 2024-06-14 17:43:00 -04:00
David Larlet
a3afadb677
fix: hide importers section if none is defined 2024-06-14 17:21:09 -04:00
David Larlet
ceab5090a7
fix: explicit import paths for collectstatic hashes 2024-06-14 17:20:16 -04:00
David Larlet
6de3e1f881
2.4.0b0 2024-06-14 16:42:13 -04:00
David Larlet
610367c3a1
Merge pull request #1898 from umap-project/fix-js-circular-import
fix: django cannot run collectstatic with circular imports in modules
2024-06-14 16:38:38 -04:00
Yohan Boniface
c144c9d958 fix: django cannot run collectstatic with circular imports in modules
alert.js was importing request.js which then imports alert.js

In the process, we moved the post to send the email out of the
alert.js file, and thus tried another pattern to communicate data
between an alert and its caller.
2024-06-14 22:05:56 +02:00
Yohan Boniface
99595e3e2f chore: fix translated test 2024-06-14 20:51:29 +02:00
Yohan Boniface
b747b347f4 fix: dialog class should have "window" class to get propert buttons 2024-06-14 20:45:39 +02:00
David Larlet
418cd06bb0
docs: update create map alert in French 2024-06-14 14:45:26 -04:00
Yohan Boniface
74e0b43311 fix: correct syntax for translating string when sending emails 2024-06-14 20:41:53 +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
David Larlet
de106b022f
Merge pull request #1897 from umap-project/fix-tozoom-failing-test
tests: try to fix randomly failing test test_should_honour_fromZoom
2024-06-14 14:20:24 -04:00
Yohan Boniface
34f00dfec1 tests: try to fix randomly failing test test_should_honour_fromZoom 2024-06-14 18:51:58 +02:00
Yohan Boniface
710b0cf1d9
Merge pull request #1857 from umap-project/geodatamine-plugin
Importers for custom external sources
2024-06-14 18:47:45 +02:00
Yohan Boniface
88b7e401c0
Merge pull request #1776 from umap-project/conditional-rules
feat: very minimal experimental conditional style rules
2024-06-14 18:40:37 +02:00
Yohan Boniface
e16d3a629c wip: fix tests 2024-06-14 18:40:05 +02:00
Yohan Boniface
ca16e5b2c9 wip: use new alert API after rebase 2024-06-14 18:40:05 +02:00
Yohan Boniface
e9f9c30639 wip: shorter labels in importer panel 2024-06-14 18:40:05 +02:00
Yohan Boniface
6f0d42d817 wip: re-center radio and checkbox inputs 2024-06-14 18:40:05 +02:00
Yohan Boniface
4ed7c45086 wip: use same label in buttons and title for "Import data"
The control says "Import data", let's keep this for now.
2024-06-14 18:40:05 +02:00
Yohan Boniface
e90ad4b9cd wip: sort themes in GeoDataMine importer 2024-06-14 18:40:05 +02:00
Yohan Boniface
d928195a5b wip: rename and document UMAP_IMPORTERS 2024-06-14 18:40:05 +02:00
Yohan Boniface
4127ffb891 wip: simplify a bit input CSS height 2024-06-14 18:40:05 +02:00
Yohan Boniface
4f1eb20be9 wip: move importers css to a dedicated file and refactor 2024-06-14 18:40:05 +02:00
Yohan Boniface
017e407758 wip: refactor margin bottom management in caption title 2024-06-14 18:40:05 +02:00
Yohan Boniface
3f6940cd5b wip: make sure importers are always in the same order
Given they are loaded from an import() call, the order they are
added in IMPORTERS in asynchronous, so we cannot rely on this order
2024-06-14 18:40:05 +02:00
Yohan Boniface
c51f8ae5ce wip: close importer dialog on escape in any 2024-06-14 18:40:05 +02:00
Yohan Boniface
460843b900 wip: add icons for importers 2024-06-14 18:40:05 +02:00
Yohan Boniface
115130083d wip: make sure we do not add an invalid overpass URL 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
2c9623aff6 wip: refine geodatamine importer 2024-06-14 18:40:05 +02:00
Yohan Boniface
f1901ea84c wip: add margin-bottom on select element 2024-06-14 18:40:04 +02:00
Yohan Boniface
c1ab57d952 wip: add quick help for overpass importer expressions syntax 2024-06-14 18:38:44 +02:00
Yohan Boniface
c599082eca wip: deal with multiple dialog z-index 2024-06-14 18:38:44 +02:00
Yohan Boniface
b7dd771a7f wip: prettier 2024-06-14 18:38:44 +02:00
Yohan Boniface
c3ae3b5770 wip: minimal overpass importer
cf #112
2024-06-14 18:38:44 +02:00
Yohan Boniface
43f7e6a467 feat: allow to set the new layer name at import 2024-06-14 18:38:44 +02:00
Yohan Boniface
3998a88d43 wip: use dt/dd for import formats help box 2024-06-14 18:38:43 +02:00
Yohan Boniface
b0e9bbd86c wip: smaller dialog width 2024-06-14 18:38:30 +02:00
Yohan Boniface
35189cc9fb wip(importer): use only one submit button and be smarter to guess action 2024-06-14 18:38:30 +02:00
Yohan Boniface
8dd1c4bc7f wip: remove AutoComplete.URL (can't set class properties yet) 2024-06-14 18:38:30 +02:00
Yohan Boniface
1cefd4c9a7 wip: allow to control geodatamine baseUrl from settings 2024-06-14 18:38:30 +02:00
Yohan Boniface
d35e72dab9 wip: add aspoint attribute to geodatamine URL 2024-06-14 18:38:30 +02:00
Yohan Boniface
4e3228d114 feat: allow to create remote data layer from import panel
And make the form conditional.
2024-06-14 18:38:30 +02:00
Yohan Boniface
dbafe19b7f chore: declare ttl property in schema 2024-06-14 18:38:30 +02:00
Yohan Boniface
16fd5d8ca3 wip: typo 2024-06-14 18:38:30 +02:00
Yohan Boniface
342dcbabbe wip: no need for AVAILABLE_IMPORTERS 2024-06-14 18:38:30 +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
Yohan Boniface
a7a214d7fe wip: deal with boundary types in geodatamine importer 2024-06-14 18:38:29 +02:00
Yohan Boniface
03ce8e90d6 wip: refactor importer 2024-06-14 18:38:29 +02:00
Yohan Boniface
c7cd87ec8a wip: move presets to importer plugins 2024-06-14 18:38:29 +02:00
Yohan Boniface
b657a5e9b3 wip: simpler importer API 2024-06-14 18:38:29 +02:00
Yohan Boniface
1e4de02694 wip: add a basic importer for commune shapes
Mainly wanted to have two improters to play with, in order to
better understand the common part, and thus the API we may define
between them and the importer panel.
2024-06-14 18:38:29 +02:00
Yohan Boniface
5b914c1bd2 wip: make it simpler to create an autocomplete class 2024-06-14 18:38:29 +02:00
Yohan Boniface
e51347e239 wip: very naive geodatamine and communes importers 2024-06-14 18:38:29 +02:00
Yohan Boniface
22ccd61d87 chore: remove empty help entry inclusion 2024-06-14 18:30:32 +02:00
Yohan Boniface
1ab987d519
Merge pull request #1809 from umap-project/browser-labels
chore: better browser labels
2024-06-14 18:25:35 +02:00
Yohan Boniface
191fb6d853 chore: reviewing labels with Aurélie 2024-06-14 18:24:56 +02:00
Yohan Boniface
59dbde4f32 chore: make browser labels consistent 2024-06-14 18:24:54 +02:00
Yohan Boniface
d407949138 chore: be more explicit on browser modes 2024-06-14 18:24:10 +02:00
Yohan Boniface
e023321ee5
Merge pull request #1895 from umap-project/request-error-alert
fix: display an alert on any request error
2024-06-14 18:22:54 +02:00
Yohan Boniface
713be1538c chore: change alert CSS sizing 2024-06-14 18:21:44 +02:00
David Larlet
eda3823b3a
Merge pull request #1896 from umap-project/better-alerts
chore: overall alerts improvements
2024-06-14 11:51:46 -04:00
Yohan Boniface
7e86bc6db8 wip: do not display alerts from the maps in a content list page 2024-06-14 17:51:42 +02:00
Yohan Boniface
a2ba35cb93
Merge pull request #1894 from umap-project/fix-feature-edit-icon
fix: use correct icon class in edit feature panel
2024-06-14 17:31:42 +02:00
David Larlet
fb1407cdbf
chore: overall alerts improvements 2024-06-14 11:08:59 -04:00
Yohan Boniface
c7541c1931 wip: add FAQ entry for conditional rules syntax 2024-06-14 16:57:23 +02:00
Yohan Boniface
9dc11ec9f9 wip: fix tests after rebase on master 2024-06-14 16:55:36 +02:00
Yohan Boniface
6bdba1d0ed wip: do not use public class fields yet
Browser support is not enough.
2024-06-14 16:55:36 +02:00
Yohan Boniface
f10d345113 wip: use this.rules.getOption directly 2024-06-14 16:55:36 +02:00
Yohan Boniface
907ba09c45 wip: do not use private property yet
Support is not ready for us.
2024-06-14 16:55:36 +02:00
Yohan Boniface
05ea45acd2 wip: use getter/setter for Rule dynamic properties 2024-06-14 16:55:36 +02:00
Yohan Boniface
7367de5545 wip: deal with boolean values in conditional rules 2024-06-14 16:55:36 +02:00
Yohan Boniface
5ec944fce0 wip: deal with gt/lt and numbers in conditional rules 2024-06-14 16:55:36 +02:00
Yohan Boniface
129f46dd6d wip: add minimal tests for conditional rules 2024-06-14 16:55:36 +02:00
Yohan Boniface
d6ae4744a6 wip: make sure we update rule when condition is changed
And make sure we redraw data on map
2024-06-14 16:55:36 +02:00
Yohan Boniface
805c09e34e wip: allow to deactivate a conditional rule from list 2024-06-14 16:55:36 +02:00
Yohan Boniface
a2d04b9ad4 wip: use direct imports instead of L. global 2024-06-14 16:55:36 +02:00
Yohan Boniface
4f8e453012 wip: allow to reorder rules 2024-06-14 16:55:36 +02:00
Yohan Boniface
05eab25da4 feat: very minimal experimental conditional style rules 2024-06-14 16:55:33 +02:00
Yohan Boniface
15de486425 fix: use correct icon class in edit feature panel 2024-06-14 15:31:16 +02:00
Yohan Boniface
d221a98e78 fix: display an alert on any request error
This used to be the case, but was changed by mistake in the
request refactor (swicht from xhr)
2024-06-14 15:24:01 +02:00
b94995120a refactoring(sync): Simplify the design of the sync engine.
Removes the concept of message dispatcher and message sender, all of
it can be done by the syncengine class, making it easier to grasp.
2024-06-14 00:20:59 +02:00
David Larlet
7660153b3b
Merge pull request #1876 from umap-project/dom-driven-alerts-2
Use web components to display alerts + a11y roles
2024-06-13 15:06:25 -04:00
Yohan Boniface
e968261dff wip: fix more tests 2024-06-13 20:53:07 +02:00
Yohan Boniface
897d4f22f4 chore(tests): make sure we send a valid geojson when data is empty 2024-06-13 20:52:28 +02:00
David Larlet
b863beaec9
chore: fix tests 2024-06-13 14:13:42 -04:00
David Larlet
802d5d9d6c
chore: set default language for tests as en-GB 2024-06-13 13:41:00 -04:00
David Larlet
b197e067e8
fix: listen to the correct event for conflicts 2024-06-12 19:06:28 -04:00
David Larlet
8400b55b9d
chore: direct import of the Alert class in modules 2024-06-12 18:30:40 -04:00
David Larlet
cea2aee88f
chore: rename alert choice to conflict + CSS vars 2024-06-12 18:15:28 -04:00
David Larlet
6edad8a385
docs: update screenshot for anonymous save 2024-06-12 18:03:05 -04:00
David Larlet
10e398d222
chore: better alerts CSS 2024-06-12 18:03:05 -04:00
David Larlet
6cb1be1fd4
chore: use direct import for ServerRequest in alerts 2024-06-12 18:03:05 -04:00
David Larlet
ddaafa8cda
chore: scroll when the help box is too big 2024-06-12 18:03:05 -04:00
David Larlet
c0ecc39439
chore: uniformize buttons across panels and alerts 2024-06-12 18:03:05 -04:00
David Larlet
e1f91b393d
chore: do not display zoom alert on save 2024-06-12 18:03:05 -04:00
David Larlet
6bbdec49bf
chore: refactor web components with templates 2024-06-12 18:03:04 -04:00
David Larlet
cc773e7feb
docs: update screenshots 2024-06-12 18:03:04 -04:00
David Larlet
6f715c109b
chore: improve message/choice in case of conflicts 2024-06-12 18:03:04 -04:00
David Larlet
5c2528900e
chore: Use web components to display alerts + a11y roles 2024-06-12 18:03:04 -04:00
David Larlet
c4306b4a7d
Merge pull request #1891 from umap-project/dependabot/npm_and_yarn/braces-3.0.3
chore: bump braces from 3.0.2 to 3.0.3
2024-06-11 10:35:24 -04:00
Yohan Boniface
8967ab5901 whore: prettier 2024-06-11 14:12:33 +02:00
Yohan Boniface
b36f5d1ce3
Merge pull request #1889 from umap-project/dependabot/pip/mkdocs-material-9.5.26
chore: bump mkdocs-material from 9.5.25 to 9.5.26
2024-06-11 10:32:17 +02:00
dependabot[bot]
f5867120f8
chore: bump mkdocs-material from 9.5.25 to 9.5.26
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.25 to 9.5.26.
- [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.25...9.5.26)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-11 08:32:03 +00:00
dependabot[bot]
255347a46f
chore: bump braces from 3.0.2 to 3.0.3
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-11 08:31:31 +00:00
Yohan Boniface
6a9147b824
Merge pull request #1888 from umap-project/dependabot/pip/pydantic-2.7.3
chore: bump pydantic from 2.7.0 to 2.7.3
2024-06-11 10:31:30 +02:00
Yohan Boniface
efd5baa8db
Merge pull request #1887 from umap-project/dependabot/pip/pytest-8.2.2
chore: bump pytest from 8.2.1 to 8.2.2
2024-06-11 10:31:15 +02:00
Yohan Boniface
089a291d7b
Merge pull request #1890 from umap-project/dependabot/pip/ruff-0.4.8
chore: bump ruff from 0.4.7 to 0.4.8
2024-06-11 10:30:58 +02:00
dependabot[bot]
d7c850a311
chore: bump ruff from 0.4.7 to 0.4.8
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.4.7 to 0.4.8.
- [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/v0.4.7...v0.4.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 17:32:50 +00:00
dependabot[bot]
b1fa97fd1b
chore: bump pydantic from 2.7.0 to 2.7.3
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.7.0 to 2.7.3.
- [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.7.0...v2.7.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 17:32:33 +00:00
dependabot[bot]
41fa1ad7d1
chore: bump pytest from 8.2.1 to 8.2.2
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.2.1 to 8.2.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.2.1...8.2.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 17:32:28 +00:00
Yohan Boniface
50ef073d36
Merge pull request #1883 from umap-project/remove-u-keys
chore: remove U.Keys, and refactor global shorcuts
2024-06-07 18:35:49 +02:00
fc2de3fc53 tests(sync): Change the way the websocket server is run in the tests
Using [pytest-xprocess](https://pytest-xprocess.readthedocs.io/) proved
not being as useful as I thought at first, because it was causing
intermitent failures when starting the process.

The code now directly uses `subprocess.popen` calls to start the server.
The tests are grouped together using the following decorator:

`@pytest.mark.xdist_group(name="websockets")`

Tests now need to be run with the `pytest --dist loadgroup` so that all
tests of the same group happen on the same process.

More details on this blogpost:

  https://blog.notmyidea.org/start-a-process-when-using-pytest-xdist.html
2024-06-07 18:21:30 +02:00
98a7a56701 refactor(sync): rename ws.py to websocket_server.py
Hopefully this is clearer :-)
2024-06-07 18:21:30 +02:00
f42498d195 refactor(sync): Sync layers creation with map.createDataLayer utility.
Rather than having it done inside the datalayer itself. This gives us
more control.
2024-06-07 18:21:30 +02:00
149a0c1680 refactor: rename geometrytoFeatures to geoJSONToLeaflet
Because we are dealing with technologies using overlapping vocabulary,
it is easy to get lost. Hopefully this change makes it clear that it
converts geoJSON inputs in Leaflet / uMap objects.
2024-06-07 18:21:30 +02:00
137cc21af2 feat(sync): Add a proxy to the SyncEngine objects.
It is now possible to create proxy objects using `sync_engine.proxy(object)`.
The returned proxy object will automatically inject `metadata` and
`subject` parameters, after looking for them in the `getSyncMetadata`
method (these are only known to the synced objects).

As a result, the calls are now simplified:

```
this.sync.update("key", "value")
```
2024-06-07 18:21:30 +02:00
4e7ac23b53 refactor(sync): remove formbuilder this._redraw() callbacks.
They are now handled in the `render()` call, so there is no more need
for them here.
2024-06-07 18:21:30 +02:00
5247bf77d3 refactor(sync): Remove syncUpdateProperties function.
The function was only used once, so removing it  simplified the whole
flow.
2024-06-07 18:21:30 +02:00
d3730a99ff fix: use array.includes(string) the proper way.
Because this `syncUpdatedProperties` function is only called once, it
didn't trigger any issue in practice (as the check was always returning
true).
2024-06-07 18:21:30 +02:00
d91c86e7fa feat(websockets): run the WS server as a django management command.
This allows to handle the loading of the settings in a consistant way,
and aditionnaly to provide a way to override the `WEBSOCKET_BACK_HOST`
and `WEBSOCKET_BACK_PORT` settings with arg commands `--host` and
`--port`.

Without this change, because of how we are currently loading our
settings, we would require the settings the be exposed by the
`umap.settings.__init__` file.

Previous implementations were exposing these settings, with the
following code:

```python
settings_as_dict = {k: v for k, v in globals().items() if k.isupper()}
  ```
2024-06-07 18:21:30 +02: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
90780fbf6d fixup: changes after @ybon's review. 2024-06-07 18:21:30 +02:00
50b7188647 fix(sync): sync the reference-version across peers
This allows the merge algorithm to not be lost when receiving changes.
Without this change, the optimistic merge algorithm isn't able to make
the distinction between peers, and features end up duplicated.
2024-06-07 18:21:30 +02:00
516c3d9a0d tests(sync): Add a test ensuring cloned features aren't duplicated
This is currently a bug in the current implementation. Hopefully fixed
in later commits.
2024-06-07 18:21:30 +02:00
b5eee142e7 test(sync): Ensure feature properties are synced 2024-06-07 18:21:30 +02:00
b316bde47c docs(sync): Document WEBSOCKET_* settings 2024-06-07 18:21:30 +02:00
b1a4053b2e chore(sync): remove belongsTo for now
As it requires more discussion, it will happen in a separate
pull-request.
2024-06-07 18:21:30 +02:00
8fc116e7a8 chore(test): remove empty test 2024-06-07 18:21:30 +02:00
dfbdc1f975 chore(test): fix a typo
(but I would really like to see what web socker would look like)
2024-06-07 18:21:30 +02:00
db50c6cdd6 chore(sync): relax some validation logic on the websocket server
Messages are now checked for conformity with the procol we defined, but
stop at the `operation` boundary. Values aren't checked.
2024-06-07 18:21:30 +02:00
bc1dec245b chore(sync): Sync engine now retrieves auth token
It's now it's responsability to get the authentication token from
the http server and pass it to the websocket server, it will make it
possible to redo the roundtrip when getting disconnected.
2024-06-07 18:21:30 +02:00
82ede035d6 chore(sync): use sync=false everywhere to stop propagation
In some cases, you want to stop the propagation of events. The previous
code was using `fromSync=true` and `sync=false` interchangeably. This
makes it use `sync=false` everywhere.
2024-06-07 18:21:30 +02:00
637ab67b93 chore(utils): remove console.log calls 2024-06-07 18:21:30 +02:00
5a565dd2ee fix(schema): dashArray belongs to features as well 2024-06-07 18:21:30 +02:00
10a68a75e4 test(sync): Ensure datalayer properties are synced 2024-06-07 18:21:30 +02:00
d10a7b70f1 test(sync): Ensure map properties are synced
This tests that the name of the map, and that zoom-control visibility is
properly synced over websockets.
2024-06-07 18:21:30 +02:00
6f7dd61023 test(sync): ensure polygon drag-n-drop is synced 2024-06-07 18:21:30 +02:00
ad4d6ac672 test(sync): Ensure polygons and their edits can be synced 2024-06-07 18:21:30 +02:00
5feabd4c14 test(sync): Marker drag-n-drop and delete are synced 2024-06-07 18:21:30 +02:00
80f7efc810 tests(sync): Test that marker sync works properly
This commit handles the start and stop of the websocket server during
the tests, using the xprocess library
2024-06-07 18:21:30 +02:00
d0e2d900f7 chore(tests): Rename "collaboration" tests to "optimistic merge"
As "collaboration" can be mistaken between "websocket" and
"server-merge". This naming makes it explicit.
2024-06-07 18:21:30 +02:00
92676e03ae chore(sync): Add message-dispatcher unit tests 2024-06-07 18:21:30 +02:00
74a1670c9d feat(sync): Add JS unittests for updateObjectValue, and refactor.
The new implementation uses `reduce`, in the hopes of producing a more
readable version than old-style loops and reassignment of object values.
2024-06-07 18:21:30 +02:00
9be613e3ce feat(sync): add tests for the websocket token view 2024-06-07 18:21:30 +02:00
80eaa151de refactor(sync): Remove unnecessary complexity
Because we're relying on the `geoJSONToFeatures` method, we don't need
anymore updaters, the default ones (map, datalayer, feature) are enough.

It also makes the codebase compatible with our eslint configuration.
2024-06-07 18:21:30 +02:00
9e36476abe chore(sync) make the test pass 2024-06-07 18:21:30 +02:00
647f6c3dfe chore(docker) remove ws.py for now 2024-06-07 18:21:30 +02:00
d5bff22081 fix(sync) only send datalayer options 2024-06-07 18:21:30 +02:00
898a3e93b2 fix(sync): do not call getSyncMetadata if it doesn't exist
This can arise when the form isn't bound to a "syncable" object. We
might want to provide an utility to check an object is *syncable*, or a
specific form to not attempt to sync objects which don't need it.
2024-06-07 18:21:30 +02:00
8e5c434988 feat(sync): Allow the sync of datalayer creation 2024-06-07 18:21:30 +02:00
458d68a4bb fix(sync): allow features geometries to be synced
By defining the `geometry` property in the schema.
2024-06-07 18:21:30 +02:00
5b55c80529 chore(docker): run the websocket server as a separate command 2024-06-07 18:21:30 +02:00
1d9b086115 chore(sync): remove useless dependencies from ws.py 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
01408254c9 fix(sync): intialize the sync engine before entering edit mode.
Otherwise `this.sync` is not defined.
2024-06-07 18:21:30 +02:00
46207741ff feat(sync): handle syncing of map limitbounds. 2024-06-07 18:21:30 +02:00
9cb87392c0 feat(sync): Avoid syncing remote datalayers' features
They will be synced on their own, and we dont want them to be present
twice on the map.
2024-06-07 18:21:30 +02:00
b99c242648 fix(sync): Initialize tilelayerand remoteData earlier.
It makes it possible to set these values on a remote peer.
2024-06-07 18:21:30 +02:00
059103b66c fix(sync): Allow overlays to sync
`this.options.overlay` is now set during `map.initialize()`, which makes
it possible to be set by incoming websocket operations.
2024-06-07 18:21:30 +02:00
2fafad714e chore(sync): Ensure properties can be updated before doing it.
When receiving a message, this checks the given properties belong to
the "subject" before applying the message.
2024-06-07 18:21:30 +02:00
25ccdde0b0 chore(schema): Add a belongsTo field in the schema.
The goal is to use this as a security measure, to check that the
updated properties belong the the "subject" when receiving sync
operations.
2024-06-07 18:21:30 +02:00
28a359e03f fix(sync): Allow cloning of features
Removing the `id` from the feature when cloning makes it generate a new
one. Without this change, the cloned feature keep the already existing
`id`, and during sync, the original object is lost (replaced by the
clone).

Nobody wants to be replaced by a clone.
2024-06-07 18:21:30 +02:00
e4bcb53c6f feat(sync): Sync only when the edition of a feature is over.
It's less spectacular than sending the position as it changes, but takes
less bandwidth and seems good enough.
2024-06-07 18:21:30 +02:00
ce0f3c9d3e fix(sync): Import the data when syncing GeoJSON objects.
Prior to these changes, the data wasn't transmitted over WebSocket, and
even if present it wasn't taken into account.
2024-06-07 18:21:30 +02:00
e24173eb9f fix(sync): Keep features IDs for Polygons and Lines
It wasn't passed previously, so objects where duplicated.
2024-06-07 18:21:30 +02:00
c6ee25b906 feat(sync): Only sync when on edit mode
The is done to save server resources, for accessed maps which
aren't currently being edited.
2024-06-07 18:21:30 +02:00
66eb90ffd1 chore(sync): Move the sync flag in the options
The goal being for it to be hidden for now.

- Add a `is_owner` method on the map and use it in the view
- Remove duplicated line in `global.js`
- Rename `Datalayer` to `DataLayer` everywhere
- Move the sync flag in the map options (next to slideshow)
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
5e692d2280 feat(sync): Add a enableSync option.
This changes how the syncEngine works. At the moment, it's always
instanciated, even if no syncing is configured. It just does nothing.

This is to avoid doing `if (engine) engine.update()` calls everywhere
we use it.

You now need to `start()` and `stop()` it.
2024-06-07 18:21:30 +02:00
9a74cc370c feat(sync): initialize datalayers internal objects in the constructor.
Otherwise, an event can come from the websocket, trying to update an
`undefined` property.
2024-06-07 18:21:30 +02:00
b956101d5d feat(sync): sync layer's properties.
This also changes the interface between the synced classes and the sync
engine.

The sync engines only requires two methods now:

- `getSyncMetadata()` which returns all the metadata needed, including
the `engine`.
- `render()` which renders the object, updating the needed parts.
2024-06-07 18:21:30 +02:00
66105127cb feat(sync): Sync features over websockets
Added a new `geometryToFeature` method in `umap.layer.js` which can
update a given geometry if needed.

A new `id` property can also be passed to the features on creation, to
make it possible to have the same features `id` on different peers.
2024-06-07 18:21:30 +02:00
c9abb15dd1 feat(sync): sync map properties over websocket
All keystrokes are currently sent, which is not ideal because it will
use a lot of bandwidth.
2024-06-07 18:21:30 +02:00
698c926997 feat(sync): sync features and map properties
Synced objects now expose different methods, such as:
- `getSyncEngine` which returns the location of the sync object.
- `getMetadata` which returns the associated metadata with the object.

Hooks have been added when features are created or changed, so the
changes can be synced with other peers.
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
e2b9b161e6 feat(websockets): First SyncEngine appearance
A new SyncEngine module has been added to the JavaScript code. It aims
to sync the local changes with remote ones. This first implementation
relies on a websocket connection.
2024-06-07 18:21:30 +02:00
1128348db6 feat(WebSockets): Features a WebSocket server.
There is one "room" per map, and the server relays messages to all the
other connected peers.

Messages are checked for compliance with what's allowed as a security
measure. They should also be checked in the clients to avoid potential
attack vectors.
2024-06-07 18:21:30 +02:00
ee3dbb85ca doc: update cookie-related comment 2024-06-07 18:21:30 +02:00
2daeaf12e0 WIP 2024-06-07 18:21:30 +02:00
c1fe86747b feat(settings): Expose settings as a dict.
This makes it possible to use them in standalone scripts, when using
`django.settings.configure(**settings_dict)`.
2024-06-07 18:21:30 +02:00
Yohan Boniface
de62a92f76 docs: add user docs for keyboard shortcuts 2024-06-06 07:16:02 +02:00
Yohan Boniface
9d211005b1 chore: remove U.Keys, and refactor global shorcuts 2024-06-06 07:15:49 +02:00
Yohan Boniface
ef94389c03
Merge pull request #1881 from umap-project/help-module
chore: move help to a separate module
2024-06-06 06:41:41 +02:00
Yohan Boniface
c70951a994 chore: move help to a separate module 2024-06-05 19:42:15 +02:00
Yohan Boniface
d3599fbe9e
Merge pull request #1879 from umap-project/dependabot/pip/ruff-0.4.7
chore: bump ruff from 0.4.5 to 0.4.7
2024-06-05 11:46:47 +02:00
Yohan Boniface
b7b39fa2f5 i18n 2024-06-05 10:50:21 +02:00
dependabot[bot]
befc9b3ec2
chore: bump ruff from 0.4.5 to 0.4.7
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.4.5 to 0.4.7.
- [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/v0.4.5...v0.4.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-05 08:49:29 +00:00
Yohan Boniface
56e401dea5
Merge pull request #1878 from umap-project/dependabot/pip/uwsgi-2.0.26
chore: bump uwsgi from 2.0.25.1 to 2.0.26
2024-06-05 10:48:42 +02:00
Yohan Boniface
2430a43445
Merge pull request #1877 from umap-project/dependabot/pip/requests-2.32.3
chore: bump requests from 2.32.2 to 2.32.3
2024-06-05 10:48:20 +02:00
Yohan Boniface
f256d7a75a
Merge pull request #1880 from umap-project/dependabot/pip/hatch-1.12.0
chore: bump hatch from 1.11.1 to 1.12.0
2024-06-05 10:48:01 +02:00
dependabot[bot]
e3c21151f9
chore: bump hatch from 1.11.1 to 1.12.0
Bumps [hatch](https://github.com/pypa/hatch) from 1.11.1 to 1.12.0.
- [Release notes](https://github.com/pypa/hatch/releases)
- [Commits](https://github.com/pypa/hatch/compare/hatch-v1.11.1...hatch-v1.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 17:58:28 +00:00
dependabot[bot]
a037d36ae0
chore: bump uwsgi from 2.0.25.1 to 2.0.26
Bumps [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.25.1 to 2.0.26.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 17:58:09 +00:00
dependabot[bot]
a1050be5e8
chore: bump requests from 2.32.2 to 2.32.3
Bumps [requests](https://github.com/psf/requests) from 2.32.2 to 2.32.3.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.2...v2.32.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 17:58:03 +00:00
Yohan Boniface
a6c028ebad
Merge pull request #1875 from umap-project/caption-layer-order
fix: display layer in naturel order in caption
2024-06-03 15:17:36 +02:00
Yohan Boniface
50d16b633c fix: display layer in naturel order in caption
This was broken in e6b4a54499

fix #1874
2024-06-03 14:57:20 +02:00
Yohan Boniface
88103f284a
Merge pull request #1868 from umap-project/fix-layer-old-storage
fix: support old storage options when importing a umap file
2024-05-30 16:14:45 +02:00
Yohan Boniface
5f5805dc09 fix: support old storage options when importing a umap file 2024-05-30 15:05:45 +02:00
Yohan Boniface
3a12865d62
Merge pull request #1867 from umap-project/catch-xml-error
fix: show message in case of xml parsing error
2024-05-29 20:17:40 +02:00
Yohan Boniface
442928f608
Merge pull request #1865 from umap-project/popup-newlines
fix: refactor new line management in popups
2024-05-29 20:03:27 +02:00
Yohan Boniface
ac17037b76
Merge pull request #1864 from umap-project/caption-title
fix: caption title rendering on multiple lines
2024-05-29 20:02:14 +02:00
David Larlet
49007cf680
Merge pull request #1838 from umap-project/docs-articles
docs: aggregate articles in English and French
2024-05-29 13:49:55 -04:00
Yohan Boniface
16ab193b5d fix: show message in case of xml parsing error
fix #1866
2024-05-29 11:51:47 +02:00
Yohan Boniface
fa2bef85d3 fix: refactor new line management in popups
Basically, we do not add `<br>` anymore, but instead let the newline
and use the css `white-space: pre-line;`. Also remove new lines after
title.

While doing that change, I needed to reorder regex so the ones needing
a newline before would still have it (bullets points).

I've added tests and removed some to cover those changes.

fix #1854
2024-05-29 10:35:25 +02:00
Yohan Boniface
fe74ffb008 fix: caption title rendering on multiple lines
fix #1853
2024-05-29 08:59:26 +02:00
David Larlet
7f3149af08
Merge pull request #1862 from umap-project/dependabot/pip/ruff-0.4.5
chore: bump ruff from 0.4.4 to 0.4.5
2024-05-27 13:50:18 -04:00
dependabot[bot]
19e2d2f7de
chore: bump ruff from 0.4.4 to 0.4.5
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.4.4 to 0.4.5.
- [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/v0.4.4...v0.4.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 17:50:11 +00:00
David Larlet
61881f973c
Merge pull request #1863 from umap-project/dependabot/pip/mkdocs-material-9.5.25
chore: bump mkdocs-material from 9.5.24 to 9.5.25
2024-05-27 13:49:46 -04:00
David Larlet
172bf8a3b0
Merge pull request #1861 from umap-project/dependabot/pip/requests-2.32.2
chore: bump requests from 2.32.0 to 2.32.2
2024-05-27 13:49:32 -04:00
David Larlet
f9519b119f
Merge pull request #1860 from umap-project/dependabot/pip/hatch-1.11.1
chore: bump hatch from 1.11.0 to 1.11.1
2024-05-27 13:49:23 -04:00
dependabot[bot]
170e6dfddf
chore: bump mkdocs-material from 9.5.24 to 9.5.25
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.24 to 9.5.25.
- [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.24...9.5.25)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 17:40:58 +00:00
dependabot[bot]
8d0309e553
chore: bump requests from 2.32.0 to 2.32.2
Bumps [requests](https://github.com/psf/requests) from 2.32.0 to 2.32.2.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.0...v2.32.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 17:40:33 +00:00
dependabot[bot]
7ebb684a25
chore: bump hatch from 1.11.0 to 1.11.1
Bumps [hatch](https://github.com/pypa/hatch) from 1.11.0 to 1.11.1.
- [Release notes](https://github.com/pypa/hatch/releases)
- [Commits](https://github.com/pypa/hatch/compare/hatch-v1.11.0...hatch-v1.11.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 17:40:22 +00:00
David Larlet
01fae419ba
docs: (fr) add article arbres remarquables 2024-05-27 11:43:19 -04:00
Yohan Boniface
2b4a9738a3
Merge pull request #1859 from umap-project/fix-max-height-panel-responsive
fix: panel condensed height should never be bigger than screen
2024-05-25 09:21:04 +02:00
Yohan Boniface
c10bc27fed fix: panel condensed height should never be bigger than screen 2024-05-24 18:39:11 +02:00
Yohan Boniface
a6a31a19a9
Merge pull request #1856 from umap-project/importer-module
chore: move importer to modules/
2024-05-23 19:47:38 +02:00
Yohan Boniface
ebf9be296d chore: move importer to modules/ 2024-05-23 19:32:07 +02:00
Yohan Boniface
109545d006 chore: prettier 2024-05-23 18:26:36 +02:00
Yohan Boniface
0c9c79195a
Merge pull request #1846 from umap-project/autocomplete-module
chore: move autocomplete to modules/
2024-05-23 15:43:25 +02:00
Yohan Boniface
1836647c00 chore: move autocomplete to modules/ 2024-05-23 15:10:46 +02:00
David Larlet
d6a20b3dda
Merge pull request #1847 from umap-project/ui-to-modules
chore: move ui to dedicated modules
2024-05-22 13:05:32 -04:00
David Larlet
ef705a862e
Merge pull request #1851 from umap-project/audio-video-tags
fix: allow audio and video tags (+attributes) in HTML
2024-05-22 12:52:16 -04:00
David Larlet
d4830f6128
Merge pull request #1852 from umap-project/1848-invert-star-icons
fix: invert star icons when map is starred or not
2024-05-22 12:51:58 -04:00
David Larlet
5f29b8b0d5
fix: invert star icons when map is starred or not
Fixes #1848
2024-05-22 11:05:44 -04:00
David Larlet
5b624167c0
fix: allow audio and video tags (+attributes) in HTML
Refs https://forum.openstreetmap.fr/t/umap-audio-video-et-panneau-lateral/2804/2
2024-05-22 10:54:24 -04:00
Yohan Boniface
776d92e7cc chore: add minimal dialog class to replace custom made help box 2024-05-22 14:00:53 +02:00
Yohan Boniface
8e446dbe70 chore: move panel.js to ui/ subfolder 2024-05-22 11:50:59 +02:00
Yohan Boniface
2ed9bc65ee chore: move tooltip to a dedicated module 2024-05-22 11:40:48 +02:00
Yohan Boniface
8ddc570e23 chore: move alert to dedicated module 2024-05-22 11:39:16 +02:00
Yohan Boniface
03f6080148
Merge pull request #1844 from umap-project/dependabot/pip/requests-2.32.0
chore: bump requests from 2.31.0 to 2.32.0
2024-05-21 07:43:49 +02:00
Yohan Boniface
d92a0abde4
Merge pull request #1841 from umap-project/dependabot/pip/ruff-0.4.4
chore: bump ruff from 0.4.3 to 0.4.4
2024-05-21 07:43:39 +02:00
dependabot[bot]
54d903416e
chore: bump ruff from 0.4.3 to 0.4.4
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.4.3 to 0.4.4.
- [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/v0.4.3...v0.4.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-21 05:35:09 +00:00
Yohan Boniface
845c2db812
Merge pull request #1840 from umap-project/dependabot/pip/mkdocs-material-9.5.24
chore: bump mkdocs-material from 9.5.23 to 9.5.24
2024-05-21 07:34:15 +02:00
Yohan Boniface
a6b2bb8333
Merge pull request #1839 from umap-project/dependabot/pip/pytest-8.2.1
chore: bump pytest from 8.2.0 to 8.2.1
2024-05-21 07:32:37 +02:00
dependabot[bot]
b7aab12935
---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-21 05:32:25 +00:00
Yohan Boniface
c3cc6ad577
Merge pull request #1842 from umap-project/dependabot/pip/hatch-1.11.0
chore: bump hatch from 1.10.0 to 1.11.0
2024-05-21 07:32:05 +02:00
Yohan Boniface
eb0e769010
Merge pull request #1843 from umap-project/dependabot/pip/psycopg-3.1.19
chore: bump psycopg from 3.1.18 to 3.1.19
2024-05-21 07:31:47 +02:00
dependabot[bot]
14d13b46f6
chore: bump psycopg from 3.1.18 to 3.1.19
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.18 to 3.1.19.
- [Changelog](https://github.com/psycopg/psycopg/blob/master/docs/news.rst)
- [Commits](https://github.com/psycopg/psycopg/compare/3.1.18...3.1.19)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-20 17:15:37 +00:00
dependabot[bot]
cd0ade6403
chore: bump hatch from 1.10.0 to 1.11.0
Bumps [hatch](https://github.com/pypa/hatch) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/pypa/hatch/releases)
- [Commits](https://github.com/pypa/hatch/compare/hatch-v1.10.0...hatch-v1.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-20 17:15:31 +00:00
dependabot[bot]
ca5e2aaa80
chore: bump mkdocs-material from 9.5.23 to 9.5.24
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.23 to 9.5.24.
- [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.23...9.5.24)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-20 17:15:09 +00:00
dependabot[bot]
fd7fba6b24
chore: bump pytest from 8.2.0 to 8.2.1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.2.0 to 8.2.1.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.2.0...8.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-20 17:15:03 +00:00
David Larlet
b399ea5e7f
docs: aggregate articles in English and French 2024-05-20 11:06:01 -04:00
Yohan Boniface
7e9afd5dbe changelog 2024-05-17 17:48:50 +02:00
Yohan Boniface
c44e7ec38d 2.3.1 2024-05-17 17:45:55 +02:00
Yohan Boniface
8f17d6848a i18n 2024-05-17 17:44:26 +02:00
Yohan Boniface
6113ac362e
Merge pull request #1837 from umap-project/browser-show-list
fix: always display data in browser unless in "layers" mode
2024-05-17 17:42:32 +02:00
Yohan Boniface
6294886faa
Merge pull request #1829 from umap-project/panel-mode
fix: make explicit default panel modes
2024-05-17 17:39:47 +02:00
Yohan Boniface
bce739065a
Merge pull request #1802 from CampaniaGuy/master
Expanded docker.md documentation
2024-05-17 17:38:15 +02:00
Yohan Boniface
1d8440a04d
Update docs/config/icons.md 2024-05-17 17:38:04 +02:00
Yohan Boniface
06f5b4447f fix: always display data in browser unless in "layers" mode 2024-05-17 17:36:19 +02:00
Yohan Boniface
667735aa97
Merge pull request #1836 from umap-project/dependabot/pip/mkdocs-material-9.5.23
chore: bump mkdocs-material from 9.5.21 to 9.5.23
2024-05-17 17:35:40 +02:00
dependabot[bot]
7c84576f1f
chore: bump mkdocs-material from 9.5.21 to 9.5.23
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.21 to 9.5.23.
- [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.21...9.5.23)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-17 15:23:09 +00:00
Yohan Boniface
0a30530a3e
Merge pull request #1815 from umap-project/dependabot/pip/mkdocs-static-i18n-1.2.3
chore: bump mkdocs-static-i18n from 1.2.2 to 1.2.3
2024-05-17 17:22:47 +02:00
Yohan Boniface
b09b6d9813
Merge pull request #1818 from umap-project/dependabot/pip/pymdown-extensions-10.8.1
chore: bump pymdown-extensions from 10.7.1 to 10.8.1
2024-05-17 17:22:18 +02:00
Yohan Boniface
dfb78b32b3
Merge pull request #1822 from umap-project/switch-dark-color
feat: use accent color for switch and multichoices on dark background
2024-05-17 17:21:51 +02:00
Yohan Boniface
77ed24fb95
Merge pull request #1823 from umap-project/fix-location
fix: error when clicking on the geolocate button
2024-05-17 17:21:33 +02:00
Yohan Boniface
0e24e3041e
Merge pull request #1832 from umap-project/delete-datalayer-propagate
fix: do not close blindly editPanel when deleting a layer
2024-05-17 17:20:36 +02:00
Yohan Boniface
284ef1d7f3 feat: remove defaultPanelMode from now
After discussion, we prefer to go with decent defaults and see
how it goes.
2024-05-17 17:18:05 +02:00
Yohan Boniface
aa67d6d09d
Merge pull request #1834 from umap-project/modifier-shift
fix: do not consider shortcuts if shift is also pressed
2024-05-17 17:04:05 +02:00
Yohan Boniface
cac3c63ac0
Merge pull request #1835 from umap-project/classif-to-toggle
chore: replace DomUtil.classIf by classList.toggle
2024-05-17 17:02:35 +02:00
Yohan Boniface
6327c988ab fix: do not close blindly editPanel when deleting a layer
fix #498
fix #1831
2024-05-17 17:01:47 +02:00
Yohan Boniface
26d4b439cd chore: replace DomUtil.classIf by classList.toggle
cf #1342
2024-05-17 16:51:25 +02:00
Yohan Boniface
630de6d749 fix: do not consider shortcuts if shift is also pressed
fix #1452
2024-05-17 16:08:40 +02:00
Yohan Boniface
cdd20988ac
Merge pull request #1833 from umap-project/do-not-close-panel-on-save
fix: do not autoclose panel blindly after map save
2024-05-17 15:31:22 +02:00
Yohan Boniface
26c9f913e3 fix: do not autoclose panel blindly after map save
fix #1139
cf #1831
2024-05-17 15:19:10 +02:00
Yohan Boniface
c860866fe9 feat: add defaultPanelMode setting
cf https://forum.openstreetmap.fr/t/umap-2-3-changement-de-gestion-des-pop-up/23680/3

Trying to make this panel expanded/condenses thing simpler and more intuitive.

It's mode can be set:
- by explicitely setting defaultPanelMode = xxx
- or, if defaultPanelMode is undefined, with sensible default when there is
  an onLoadPanel defined, and to respect previous uMap behaviour
- or, if defaultPanelMode is unset, and some feature opens in the panel, it
  will be set to expanded (here again to respect previous behaviour
- then, when user change it manually (by clicking on the toggle button), then
  we should never change it automatically, and respect the previous mode when
  reopening the panel

(We are only talking about the left panel, here.)
2024-05-16 19:48:19 +02:00
Yohan Boniface
3a19b921a7 chore: prettier 2024-05-16 12:18:07 +02:00
Yohan Boniface
571154e4f3 fix: error when clicking on the geolocate button
fix #1812
2024-05-15 15:17:50 +02:00
David Larlet
44b8433216
Merge pull request #1810 from umap-project/docs-more
docs: Tutorials review and improvements
2024-05-14 13:06:47 -04:00
Yohan Boniface
00ad05bb82 feat: use accent color for switch and multichoices on dark background 2024-05-14 18:59:05 +02:00
Yohan Boniface
a1084e0c7b
Merge pull request #1816 from umap-project/dependabot/pip/pytest-playwright-0.5.0
chore: bump pytest-playwright from 0.4.4 to 0.5.0
2024-05-14 18:45:58 +02:00
Yohan Boniface
754c895dde
Merge pull request #1821 from umap-project/caption-module
fix: display all layers in caption
2024-05-14 18:30:31 +02:00
Yohan Boniface
303e5f78e8
Merge pull request #1819 from umap-project/dependabot/pip/django-5.0.6
chore: bump django from 5.0.5 to 5.0.6
2024-05-14 17:36:39 +02:00
Yohan Boniface
9e2a29002a Apply suggestions from code review
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2024-05-14 17:35:33 +02:00
Yohan Boniface
e6b4a54499 fix: show non visible layers in caption
fix #1820
2024-05-14 16:26:00 +02:00
Yohan Boniface
c58196b285 chore: move caption to its own module 2024-05-14 16:00:26 +02:00
dependabot[bot]
47f894babc
chore: bump django from 5.0.5 to 5.0.6
Bumps [django](https://github.com/django/django) from 5.0.5 to 5.0.6.
- [Commits](https://github.com/django/django/compare/5.0.5...5.0.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 17:36:24 +00:00
dependabot[bot]
e4f95371c7
chore: bump pymdown-extensions from 10.7.1 to 10.8.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.7.1 to 10.8.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.7.1...10.8.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 17:36:20 +00:00
dependabot[bot]
027a0a1498
chore: bump pytest-playwright from 0.4.4 to 0.5.0
Bumps [pytest-playwright](https://github.com/microsoft/playwright-pytest) from 0.4.4 to 0.5.0.
- [Release notes](https://github.com/microsoft/playwright-pytest/releases)
- [Commits](https://github.com/microsoft/playwright-pytest/compare/v0.4.4...v0.5.0)

---
updated-dependencies:
- dependency-name: pytest-playwright
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 17:36:06 +00:00
dependabot[bot]
7d08564bc6
chore: bump mkdocs-static-i18n from 1.2.2 to 1.2.3
Bumps [mkdocs-static-i18n](https://github.com/ultrabug/mkdocs-static-i18n) from 1.2.2 to 1.2.3.
- [Changelog](https://github.com/ultrabug/mkdocs-static-i18n/blob/main/docs/changelog.md)
- [Commits](https://github.com/ultrabug/mkdocs-static-i18n/compare/1.2.2...1.2.3)

---
updated-dependencies:
- dependency-name: mkdocs-static-i18n
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 17:36:02 +00:00
David Larlet
8d21cb3ad3
docs: Create an Articles section 2024-05-10 14:44:06 -04:00
David Larlet
d29c1bef9e
docs: Add videos from balades-pedagogiques 2024-05-10 14:43:36 -04:00
David Larlet
6d87a5b5f3
docs: Tutorials review and improvements 2024-05-10 13:30:23 -04:00
Yohan Boniface
b6262f04b7 changelog 2024-05-09 18:12:27 +02:00
Yohan Boniface
71a8aafeba 2.3.0 2024-05-09 18:08:08 +02:00
Yohan Boniface
6b3da97d73 i18n 2024-05-09 18:07:13 +02:00
Yohan Boniface
0ce1971b4e
Merge pull request #1794 from umap-project/integrate-facets
feat: integrate facets into browser filters
2024-05-09 17:57:15 +02:00
Yohan Boniface
eb1a0bae25
Merge pull request #1808 from umap-project/panel-height-with-footer-bar
fix: adapt panel expanded height when map has a caption bar
2024-05-09 17:56:39 +02:00
David Larlet
5e0b4d0374
Merge pull request #1747 from umap-project/docs-i18n
First step for documentation translations
2024-05-09 11:55:28 -04:00
Yohan Boniface
5b4bf9d416
Merge pull request #1804 from umap-project/edit-layer-on-esc
fix: open edit panel when pressing ESC while drawing, if valid
2024-05-09 17:45:25 +02:00
Yohan Boniface
6fda1e79e3
Merge pull request #1807 from umap-project/fix-search-autofocus
fix: really focus on search input after showing the panel
2024-05-09 17:44:05 +02:00
Yohan Boniface
b5da347a67 fix: adapt panel expanded height when map has a caption bar
cf #1788
2024-05-09 17:07:33 +02:00
Yohan Boniface
58588761d5 fix: open edit panel when pressing ESC while drawing, if valid 2024-05-09 16:43:01 +02:00
Yohan Boniface
84b904c71d fix: really focus on search input after showing the panel
fix #1806
2024-05-09 16:36:05 +02:00
Yohan Boniface
4ebbf8ed11
Merge pull request #1805 from umap-project/fix-continue-line
fix: do not try to render drawinTooltip on drawing start
2024-05-09 16:01:57 +02:00
Yohan Boniface
6c5bdf8670 wip: add integration test to make sure filters are kept when closing panel 2024-05-09 15:57:14 +02:00
Yohan Boniface
f06461967a fix: do not try to render drawinTooltip on drawing start
The event does not contain latlng, so we cannot compute the
line length yet.
2024-05-09 13:32:39 +02:00
David Larlet
04e347b18e
Improve beginners tutorials images and contents 2024-05-08 22:31:17 -04:00
David Larlet
2f6b82faa4
Markup to generate images with shot-scraper
In tutorial 1.
2024-05-08 21:17:02 -04:00
David Larlet
0c380dbc57
Bump mkdocs-* requirements for docs-users 2024-05-08 21:17:01 -04:00
David Larlet
8a62552cb3
Add videos to users documentation 2024-05-08 21:17:01 -04:00
David Larlet
d4752b0365
Improving documentation 2024-05-08 21:17:01 -04:00
David Larlet
d66b84297f
Improving documentation 2024-05-08 21:17:01 -04:00
David Larlet
4cba114f3f
Improving documentation 2024-05-08 21:17:01 -04:00
David Larlet
de9e7a73c6
Improving documentation 2024-05-08 21:17:01 -04:00
David Larlet
0a3bcad7ec
Split users’ documentation to dedicated folder 2024-05-08 21:17:00 -04:00
David Larlet
4123714f76
Ability to specify a unique id for doc sections 2024-05-08 21:17:00 -04:00
David Larlet
dcb9fd5b07
An attempt to provide details for frequent errors 2024-05-08 21:17:00 -04:00
David Larlet
5b9a6500d0
First step for documentation translations
The goal is to be able to embed some of the FAQ entries within the app, see #1710 and #813 for instance.
2024-05-08 21:17:00 -04:00
Yohan Boniface
b0b740f9b5 wip: fix CSS selector to determine if browser is open or not 2024-05-08 19:37:28 +02:00
Yohan Boniface
86ae6bb816 wip: better way of computing isMin/MaxModified in facets fields 2024-05-08 19:27:23 +02:00
Yohan Boniface
53458053a7 wip: properly deal with old onLoadPanel 'facet' value
We need to replace it, so the new value is saved and used
elsewhere (eg. in the "UI options" form)
2024-05-08 19:07:13 +02:00
Yohan Boniface
369f798839
Merge pull request #1790 from umap-project/panel-expanded-mobile
fix: allow panel expanded mode in mobile
2024-05-08 18:56:41 +02:00
Yohan Boniface
1b326b3a18
Merge pull request #1799 from umap-project/dependabot/pip/hatch-1.10.0
chore: bump hatch from 1.9.7 to 1.10.0
2024-05-08 18:55:27 +02:00
dependabot[bot]
a4e057b8b1
chore: bump hatch from 1.9.7 to 1.10.0
Bumps [hatch](https://github.com/pypa/hatch) from 1.9.7 to 1.10.0.
- [Release notes](https://github.com/pypa/hatch/releases)
- [Commits](https://github.com/pypa/hatch/compare/hatch-v1.9.7...hatch-v1.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-08 16:54:26 +00:00
Yohan Boniface
9ed2286c5b
Merge pull request #1798 from umap-project/dependabot/pip/django-5.0.5
chore: bump django from 5.0.4 to 5.0.5
2024-05-08 18:54:13 +02:00
Yohan Boniface
61b520b8df
Merge pull request #1797 from umap-project/dependabot/pip/ruff-0.4.3
chore: bump ruff from 0.4.2 to 0.4.3
2024-05-08 18:53:14 +02:00
Yohan Boniface
99effc880b wip: rename facet by filters in user facing labels 2024-05-08 18:46:47 +02:00
Yohan Boniface
0741d2a943 wip: add min/max attributes to minmax filters inputs 2024-05-08 18:40:40 +02:00
Yohan Boniface
76c719f3b1 wip: add a reset button to filters form in browser 2024-05-08 18:40:00 +02:00
Yohan Boniface
46088f3213 wip: highlight modified inputs instead of fieldset in filters 2024-05-07 20:32:40 +02:00
Yohan Boniface
63d936a069 wip: review form style with Aurelie 2024-05-07 20:26:13 +02:00
Yohan Boniface
fa1752c992 fix: keep current selected date/number value when reopening browser 2024-05-07 16:39:28 +02:00
Yohan Boniface
8ef8ad538e wip: one const per line 2024-05-07 15:43:27 +02:00
David Larlet
dcad0e1bb2
Merge pull request #1801 from umap-project/1796-add-purify-attributes
fix: allow `dir` and `title` attributes
2024-05-07 09:40:27 -04:00
Yohan Boniface
2f3e7d03ab chore: fix tests after fieldset refactor 2024-05-07 13:29:03 +02:00
CampaniaGuy
b6bc821d4d Specified import_pictograms has to be run from main folder. 2024-05-07 13:14:27 +02:00
Yohan Boniface
b450acf81d chore: prettier 2024-05-07 12:31:28 +02:00
Yohan Boniface
cd48267cf2 wip: remove unused code 2024-05-07 12:29:48 +02:00
Yohan Boniface
ba0ba1a85d wip: add a badge on filters title and datalayers icon when active 2024-05-07 12:28:13 +02:00
Yohan Boniface
43755c81fa fix: only set date/number facets selected if values have changed
For displaying the badge, we need to know when custom values have
been set. Also, this prevent useless facet checks when user has
changed one value then changed it back to default.
2024-05-07 12:23:17 +02:00
Yohan Boniface
701b00f4f7 wip: do not override selected values when recomputing facets 2024-05-07 12:21:31 +02:00
Yohan Boniface
d805653e3c wip: make explicit in browser.build that we set mode only if defined 2024-05-07 12:20:40 +02:00
CampaniaGuy
7b7583dfe6 Docs improvement 2024-05-07 10:03:34 +02:00
CampaniaGuy
1adf6af50c Expanded docker.md documentation 2024-05-07 09:33:41 +02:00
David Larlet
5b9746066c
fix: allow dir and title attributes
Fix #1796
2024-05-06 18:26:05 -04:00
dependabot[bot]
61f72c99f4
chore: bump ruff from 0.4.2 to 0.4.3
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.4.2 to 0.4.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/v0.4.2...v0.4.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-06 17:43:57 +00:00
David Larlet
8d24cc0ceb
Merge pull request #1800 from umap-project/dependabot/pip/mkdocs-material-9.5.21
chore: bump mkdocs-material from 9.5.18 to 9.5.21
2024-05-06 13:42:48 -04:00
David Larlet
77f284dd8d
chore: bump mkdocs from 1.5.3 to 1.6.0 2024-05-06 13:37:47 -04:00
dependabot[bot]
40950c86ae
chore: bump mkdocs-material from 9.5.18 to 9.5.21
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.18 to 9.5.21.
- [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.18...9.5.21)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-06 17:03:57 +00:00
dependabot[bot]
a08d73a6ea
chore: bump django from 5.0.4 to 5.0.5
Bumps [django](https://github.com/django/django) from 5.0.4 to 5.0.5.
- [Commits](https://github.com/django/django/compare/5.0.4...5.0.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-06 17:03:44 +00:00
Yohan Boniface
0b98ef2f9d wip: replace fake fieldset by proper details/summary tags 2024-05-03 18:53:05 +02:00
Yohan Boniface
406198882a wip: add filter icon for filters button 2024-05-03 18:48:26 +02:00
Yohan Boniface
f78e95b088 wip: remove tabs from browser 2024-05-03 16:06:51 +02:00
Yohan Boniface
aa78b13f8e feat: integrate facets into browser filters 2024-05-03 12:53:06 +02:00
David Larlet
8679c0ded8
Merge pull request #1792 from umap-project/fix-title-html
fix: do not add title to button if content is a DOM node
2024-05-02 11:34:46 -04:00
Yohan Boniface
916da8be94 fix: do not add title to button if content is a DOM node 2024-05-02 17:14:48 +02:00
Yohan Boniface
f1a8180a29
Merge pull request #1789 from umap-project/panel-responsive
Add max-width to panel in landscape mode
2024-05-02 16:41:23 +02:00
Yohan Boniface
bb47299cfa
Merge pull request #1791 from umap-project/expect-timeout
chore: try to change Playwright expect timeout
2024-05-02 15:11:48 +02:00
Yohan Boniface
e688ce8f57 chore: try to change Playwright expect timeout
Some tests randomly fail in the CI because of timeout a bit short.
2024-05-02 14:30:54 +02:00
Yohan Boniface
c40b01fc48 fix: add max-width to panel in landscape mode
In some situation in mobile (eg. when the keyboard is used), the
screen is still considered as landscape, but it is very small, so
make sure the panel does not overflow on the right.

cf #1788
2024-05-02 12:26:36 +02:00
Yohan Boniface
51d5095d2c fix: allow panel expanded mode in mobile 2024-05-02 12:24:36 +02:00
David Larlet
49b240a3db
2.2.2 2024-05-01 14:08:56 -04:00
David Larlet
0cd039fce2
Merge pull request #1787 from umap-project/fix-dompurify-map
fix: vendorize the .map too for dompurify
2024-05-01 14:07:41 -04:00
David Larlet
5bdfc708ee
fix: vendorize the .map too for dompurify
Fix up for  2c1cd46167

We keep the `.mjs` fragment within the filename to avoid changing it manually within the renamed `purify.es.js` file. Given the `.map` extension, it will not affect the nginx (or others) mimetypes configuration.
2024-05-01 13:59:42 -04:00
David Larlet
c05282f19c
2.2.1 2024-05-01 13:36:00 -04:00
David Larlet
05213f1158
Merge pull request #1786 from umap-project/no-mjs
fix: no .mjs extension for JS modules
2024-05-01 13:33:50 -04:00
David Larlet
2c1cd46167
fix: no .mjs extension for JS modules
It requires a special nginx configuration that we want to avoid for all instances deployments:

```
include mime.types;
types {
  application/javascript mjs;
}
```
2024-05-01 13:27:45 -04:00
Yohan Boniface
22e38d6a3d changelog 2024-05-01 18:13:39 +02:00
Yohan Boniface
dc69ec55c8 2.2.0 2024-05-01 18:05:44 +02:00
Yohan Boniface
55dc083866 i18n 2024-05-01 18:04:01 +02:00
Yohan Boniface
0f798d4cc6
Merge pull request #1774 from umap-project/browser-tabs
feat: add browser tabs submenu
2024-05-01 17:54:22 +02:00
Yohan Boniface
85e2a8ef5b
Merge pull request #1785 from umap-project/fix-modifier-macos
fix: deal with the modifier key under macOS
2024-05-01 17:51:58 +02:00
Yohan Boniface
5bfc65167a wip: refactor credits css in caption 2024-05-01 17:48:35 +02:00
Yohan Boniface
6cc34d1f97 wip: change flat tags colors (in browser/caption/iconUrl field) 2024-05-01 17:43:20 +02:00
Yohan Boniface
4e7f1e43c0 wip: make owner closer to title in caption box 2024-05-01 17:43:20 +02:00
Yohan Boniface
00a3c2fe34 wip: change tabs rendering in browser and iconUrl form field 2024-05-01 17:43:20 +02:00
Yohan Boniface
b550c93b87 wip: move owner link above tabs in caption 2024-05-01 17:43:20 +02:00
Yohan Boniface
d013d6b0e3 wip: add browser tabs submenu 2024-05-01 17:43:20 +02:00
David Larlet
d00c394a99
fix: deal with the modifier key under macOS 2024-05-01 11:40:37 -04:00
Yohan Boniface
2cb22dc4b0
Merge pull request #1778 from umap-project/dependabot/pip/pytest-8.2.0
chore: bump pytest from 8.1.1 to 8.2.0
2024-05-01 17:08:36 +02:00
Yohan Boniface
0421c9947d
Merge pull request #1779 from umap-project/dependabot/pip/hatch-1.9.7
chore: bump hatch from 1.9.4 to 1.9.7
2024-05-01 17:08:15 +02:00
Yohan Boniface
cd10a6259f
Merge pull request #1784 from umap-project/fix-alert-anonymous
fix: make sure to display anonymous edit link even if email is not configured
2024-05-01 17:07:57 +02:00
Yohan Boniface
713214e258
Merge pull request #1782 from umap-project/fix-caption
fix: ensure tilelayer attribution with smart text is displayed as HMTL
2024-05-01 17:05:24 +02:00
Yohan Boniface
0002b22f5c chore: skip failing test for now
This test was relying on changing DEFAULT_FROM_EMAIL in the test,
but given this setting is used at load from urls.py, it has no
effect.
2024-05-01 16:57:46 +02:00
dependabot[bot]
b75d1e47df
chore: bump hatch from 1.9.4 to 1.9.7
Bumps [hatch](https://github.com/pypa/hatch) from 1.9.4 to 1.9.7.
- [Release notes](https://github.com/pypa/hatch/releases)
- [Commits](https://github.com/pypa/hatch/compare/hatch-v1.9.4...hatch-v1.9.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-01 14:30:49 +00:00
Yohan Boniface
8c6f7d6a3f
Merge pull request #1780 from umap-project/dependabot/pip/pymdown-extensions-10.8.1
chore: bump pymdown-extensions from 10.8 to 10.8.1
2024-05-01 16:30:06 +02:00
Yohan Boniface
53ec78eed5
Merge pull request #1781 from umap-project/dependabot/pip/ruff-0.4.2
chore: bump ruff from 0.4.1 to 0.4.2
2024-05-01 16:29:53 +02:00
Yohan Boniface
596004c8c0
Merge pull request #1783 from umap-project/fix-name-click
fix: open caption form when clicking on map name, not advanced props
2024-05-01 16:28:40 +02:00
Yohan Boniface
fedb083612 chore: be more explicit on what HTML we allow when escaping 2024-05-01 16:26:38 +02:00
Yohan Boniface
200ee6ea10 chore: fix formatting 2024-05-01 16:26:38 +02:00
Yohan Boniface
c3516516cd chore: change DomUtil.element signature 2024-05-01 16:26:37 +02:00
Yohan Boniface
8c20397209 fix: make sure to display anonymous edit link even if email is not configured 2024-05-01 15:43:10 +02:00
Yohan Boniface
757cc1ee6c fix: open caption form when clicking on map name, not advanced props 2024-05-01 15:31:32 +02:00
Yohan Boniface
dccb93c8a8 fix: make sure we escape all innerHTML calls 2024-04-30 23:19:19 +02:00
Yohan Boniface
cdb46752a9 fix: ensure tilelayer attribution with smart text is displayed as HMTL 2024-04-30 20:02:13 +02:00
dependabot[bot]
8157be0f7d
chore: bump ruff from 0.4.1 to 0.4.2
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.4.1 to 0.4.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/v0.4.1...v0.4.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 17:19:32 +00:00
dependabot[bot]
37283a2a4d
chore: bump pymdown-extensions from 10.8 to 10.8.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.8 to 10.8.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.8...10.8.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>
2024-04-29 17:19:17 +00:00
dependabot[bot]
373c999f8f
chore: bump pytest from 8.1.1 to 8.2.0
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.1.1 to 8.2.0.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.1.1...8.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 17:19:06 +00:00
Yohan Boniface
4ca1450cc6
Merge pull request #1775 from umap-project/fix-layer-back
fix: fix back button in the layer edit form
2024-04-26 16:58:06 +02:00
Yohan Boniface
acb5a68755 fix: fix back button in the layer edit form 2024-04-25 10:56:51 +02:00
Yohan Boniface
45812432fc chore: bump python-social-auth
cf https://github.com/python-social-auth/social-app-django/issues/568
2024-04-25 09:21:24 +02:00
Yohan Boniface
9478b0c248 changelog 2024-04-24 21:35:31 +02:00
Yohan Boniface
6a48d641c9 2.2.0b0 2024-04-24 21:29:21 +02:00
Yohan Boniface
ec7bf88a43
Merge pull request #1773 from umap-project/dependabot/pip/social-auth-app-django-5.4.1
chore: bump social-auth-app-django from 5.4.0 to 5.4.1
2024-04-24 21:15:34 +02:00
Yohan Boniface
bd84922338 chore: remove -x from make test 2024-04-24 21:12:45 +02:00
Yohan Boniface
6c70081794
Merge pull request #1770 from umap-project/dependabot/pip/uwsgi-2.0.25.1
chore: bump uwsgi from 2.0.25 to 2.0.25.1
2024-04-24 21:11:00 +02:00
David Larlet
1def6ad075
Merge pull request #1769 from umap-project/dependabot/pip/ruff-0.4.1
chore: bump ruff from 0.3.7 to 0.4.1
2024-04-24 15:10:50 -04:00
Yohan Boniface
1eb10b0fd3
Merge pull request #1768 from umap-project/dependabot/pip/pymdown-extensions-10.8
chore: bump pymdown-extensions from 10.7.1 to 10.8
2024-04-24 21:10:23 +02:00
Yohan Boniface
e817f1cb0e
Merge pull request #1772 from umap-project/remove-description
feat: remove Map.description
2024-04-24 21:09:26 +02:00
dependabot[bot]
2682f13e1f
chore: bump social-auth-app-django from 5.4.0 to 5.4.1
Bumps [social-auth-app-django](https://github.com/python-social-auth/social-app-django) from 5.4.0 to 5.4.1.
- [Release notes](https://github.com/python-social-auth/social-app-django/releases)
- [Changelog](https://github.com/python-social-auth/social-app-django/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python-social-auth/social-app-django/compare/5.4.0...5.4.1)

---
updated-dependencies:
- dependency-name: social-auth-app-django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-24 18:56:50 +00:00
Yohan Boniface
453056cb15 feat: remove Map.description
The field was not populated since years, and we already have the
info inside the JSONB `settings`.
2024-04-24 16:39:59 +02:00
dependabot[bot]
129531fc51
chore: bump uwsgi from 2.0.25 to 2.0.25.1
Bumps [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.25 to 2.0.25.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 17:30:58 +00:00
dependabot[bot]
931ae7c3d6
chore: bump ruff from 0.3.7 to 0.4.1
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.3.7 to 0.4.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/v0.3.7...v0.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 17:30:51 +00:00
dependabot[bot]
1cd24845b4
chore: bump pymdown-extensions from 10.7.1 to 10.8
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.7.1 to 10.8.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.7.1...10.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 17:30:41 +00:00
Yohan Boniface
52ab531362
Merge pull request #1751 from umap-project/browse-data-expanded
make that "browse data" opens the browser in expanded mode
2024-04-19 17:39:26 +02:00
David Larlet
dc40addef4
Merge pull request #1766 from umap-project/redraw-popup-on-marker-change
fix: redraw popup on marker’s modifications
2024-04-19 11:34:04 -04:00
David Larlet
dd69efb45b
chore: set default navigation timeout for CI 2024-04-19 11:33:38 -04:00
David Larlet
788c638f3d
fix: redraw popup on marker’s modifications 2024-04-19 11:24:06 -04:00
David Larlet
d8c2e14b42
Merge pull request #1763 from umap-project/flammermann-facet-date
Date and number support for facets
2024-04-19 10:58:02 -04:00
David Larlet
c5507fbafe
fix: tests with iso dates and explicit days 2024-04-19 10:27:32 -04:00
Yohan Boniface
65e226ff1c
Merge pull request #1753 from umap-project/msg-no-csv-header
feat: display a message when importer cannot find lat/lng columns
2024-04-19 16:05:04 +02:00
David Larlet
5232d77382
Merge pull request #1765 from umap-project/ci-mock-osm-tiles
Mock OSM tiles requests in Playwright for speed
2024-04-19 09:54:39 -04:00
Yohan Boniface
a1d78437d5 chore: use translate instead of L._ in facets module 2024-04-19 13:19:20 +02:00
Yohan Boniface
37e0582b30 chore: try to parse naive dates as UTC 2024-04-19 13:15:53 +02:00
Yohan Boniface
eb0d17154c chore: add facets.getParser method 2024-04-19 13:15:53 +02:00
Yohan Boniface
b0c6b42c17 chore: fix typo in css 2024-04-19 13:15:53 +02:00
Yohan Boniface
ab85e945be chore: remove unwanted span in translated string 2024-04-19 13:15:53 +02:00
Yohan Boniface
68a22a9177 chore: redraw facets panel if open when changing facetKey 2024-04-19 13:15:53 +02:00
Yohan Boniface
0b1693a1a2 chore: add some tests for facet search 2024-04-19 13:15:53 +02:00
Yohan Boniface
91f0f29d5e chore: refactor FeatureMixin.matchFacets 2024-04-19 13:15:53 +02:00
Yohan Boniface
9c326d09e1 chore: remove the need for makeDirty in U.FormBuilder 2024-04-19 13:15:53 +02:00
Yohan Boniface
53f93ee97e chore: move facets to a dedicated module 2024-04-19 13:15:52 +02:00
Yohan Boniface
47c6473285 chore: refactor facet date and number HTML widgets 2024-04-19 13:11:45 +02:00
flammermann
39857decda resolve merge conflict 2024-04-19 13:11:45 +02:00
flammermann
f4413a8a74 translation capability and small cleanups 2024-04-19 13:11:44 +02:00
flammermann
10b1bc6265 Support date and number properties in facet search - mini fix in placeholder 2024-04-19 13:10:27 +02:00
flammermann
b0c9edba7f Support date and number properties in facet search - refactoring 2024-04-19 13:10:27 +02:00
flammermann
839bb4c5d8 Support date properties in facet search - split type into dataType and inputType 2024-04-19 13:10:27 +02:00
flammermann
2c48b97b4b Support date properties in facet search - enhance UI 2024-04-19 13:10:27 +02:00
flammermann
4042b86746 Support date properties in facet search - state allowed data types 2024-04-19 13:10:27 +02:00
flammermann
ce485f88f9 Support date properties in facet search - remove comments parseDateField 2024-04-19 13:10:27 +02:00
flammermann
763341eacf Support date properties in facet search - move parseDateField 2024-04-19 13:10:27 +02:00
flammermann
ba88dfafcd Support date properties in facet search - change default type 2024-04-19 13:10:27 +02:00
flammermann
4de6bc6c91 Support date properties in facet search - fix indents 2024-04-19 13:10:27 +02:00
flammermann
a2e3d6f327 Support date properties in facet search 2024-04-19 13:10:27 +02:00
Yohan Boniface
099a34f56a
Merge pull request #1764 from umap-project/browser-open-signature
chore: change Panel.open signature
2024-04-19 12:40:02 +02:00
David Larlet
836c3361d7
ci: mock OSM tiles requests in Playwright for speed
Also, cast the PLAYWRIGHT_TIMEOUT parameter.
2024-04-18 14:08:57 -04:00
Yohan Boniface
4ded52e3fc chore: change Panel.open signature 2024-04-18 17:46:56 +02:00
Yohan Boniface
9a46901795
Merge pull request #1750 from umap-project/latest-open-popup
feat: open popup when default view is set to latest
2024-04-17 19:30:10 +02:00
Yohan Boniface
62e7e3c01a
Merge pull request #1755 from umap-project/browser-no-control
fix: make sure we do not render browser in map fragment
2024-04-17 18:33:54 +02:00
Yohan Boniface
1bd1511d6d
Merge pull request #1757 from umap-project/fix-browser-on-save
fix: prevent rebuilding the browser at each save
2024-04-17 18:33:19 +02:00
Yohan Boniface
ba72f59624
Merge pull request #1760 from umap-project/fix-esc-fragment
fix: do not try to close editPanel if not set
2024-04-17 15:10:12 +02:00
Yohan Boniface
67bc181098
Merge pull request #1756 from umap-project/edit-in-osm-in-contextmenu
feat: add link in contextmenu to edit map in OSM
2024-04-17 15:04:09 +02:00
Yohan Boniface
1bf2642090
Merge pull request #1762 from umap-project/pw-timeout
chore: allow to set playwright timeout from env var
2024-04-17 15:03:46 +02:00
Yohan Boniface
0c1c5f117d fix: do not try to close editPanel if not set
When in the user dashboard and opening a map preview, when we
press escape it will try to close non existing panels (they are
not instantiated given there is not edit mode there)
2024-04-17 15:03:25 +02:00
Yohan Boniface
d985a6585e chore: formatting 2024-04-17 14:58:04 +02:00
Yohan Boniface
89c92471bd
Merge pull request #1761 from umap-project/increase-url-template
fix: increase TileLayer.url_template size
2024-04-17 14:57:30 +02:00
Yohan Boniface
d2ba1deac7 Update .github/workflows/test-docs.yml
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2024-04-17 14:57:03 +02:00
Yohan Boniface
c79660c354 chore: allow to set playwright timeout from env var
so we can increase it in the CI
2024-04-17 14:57:02 +02:00
Yohan Boniface
0acf5f2f2f chore: change zoomTo signature to make it more explicit 2024-04-17 14:55:20 +02:00
Yohan Boniface
e8b5331054
Merge pull request #1758 from umap-project/minimal-ogp
feat: add minimal OpenGraph links
2024-04-17 14:34:44 +02:00
Yohan Boniface
d743ffeea0 fix: increase TileLayer.url_template size
fix #255
2024-04-17 11:19:31 +02:00
Yohan Boniface
17e96e6c63 feat: add minimal OpenGraph links
cf #1591
2024-04-17 10:55:07 +02:00
Yohan Boniface
c4b8e24dab fix: prevent rebuilding the browser at each save
Otherwise we lose the browser current context (some layer may
be opened, or user may have scrolled down)
2024-04-17 10:03:30 +02:00
Yohan Boniface
d0cc1cdd3d i18n 2024-04-17 09:45:13 +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
99d5165fcf fix: make sure we do not render browser in map fragment
There was an edge case when map has "dataLayersControl=expanded":
we only overrided "onLoadPanel", so dataLayersControl was still
considerer. Let's have a more generic stop.
2024-04-17 08:27:58 +02:00
Yohan Boniface
f69b766ace
Merge pull request #1737 from umap-project/dependabot/pip/django-5.0.4
chore: bump django from 5.0.3 to 5.0.4
2024-04-16 21:19:30 +02:00
Yohan Boniface
f963e64f71
Merge pull request #1752 from umap-project/dependabot/pip/mkdocs-material-9.5.18
chore: bump mkdocs-material from 9.5.16 to 9.5.18
2024-04-16 21:19:13 +02:00
Yohan Boniface
a6ed20b120 wip: make that "browse data" opens the browser in expanded mode
And also add a "See layer" action in the context menu.

I'm not totally sure it's the way to go, but it's closer to the
current behaviour, and as a user a way missing a way to go straight
to the extanded browser version.
2024-04-16 18:07:21 +02:00
Yohan Boniface
8c418287e4 feat: display a message when importer cannot find lat/lng columns
fix #1699
2024-04-16 17:39:15 +02:00
dependabot[bot]
d62fda635e
chore: bump mkdocs-material from 9.5.16 to 9.5.18
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.16 to 9.5.18.
- [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.16...9.5.18)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-16 14:40:57 +00:00
Yohan Boniface
9d9982d22b
Merge pull request #1745 from umap-project/dependabot/pip/uwsgi-2.0.25
chore: bump uwsgi from 2.0.24 to 2.0.25
2024-04-16 16:40:22 +02:00
Yohan Boniface
25f7f7e6b3
Merge pull request #1746 from umap-project/dependabot/pip/ruff-0.3.7
chore: bump ruff from 0.3.4 to 0.3.7
2024-04-16 16:40:08 +02:00
Yohan Boniface
e2413d1b83
Merge pull request #1749 from umap-project/layers-list-import-panel
fix: update layers list in import panel
2024-04-16 16:36:12 +02:00
Yohan Boniface
0a6b736049
Merge pull request #1748 from umap-project/hide_delete_button
fix: hide delete button for editors in dashboard
2024-04-16 16:35:55 +02:00
Yohan Boniface
4b05a62b8b feat: open popup when default view is set to latest
fix #1726
2024-04-16 14:52:52 +02:00
Yohan Boniface
4f58b64ce5 fix: update layers list in import panel
fix #1729
2024-04-16 13:49:03 +02:00
Yohan Boniface
d3bf9fcdf0 fix: hide delete button for editors in dashboard
fix #1739
2024-04-16 11:32:00 +02:00
Yohan Boniface
05fd33deb7
Merge pull request #1687 from umap-project/browser-revamp
feat: merge "datalayer browser" and "data browser"
2024-04-16 10:38:28 +02:00
Yohan Boniface
2602b27f34 chore: fix tests after rebase 2024-04-16 10:30:05 +02:00
Yohan Boniface
65bad68efe wip: change icon for panel expanded/condensed 2024-04-16 09:09:59 +02:00
Yohan Boniface
9ee672f1e7 wip: fix border for dark panel 2024-04-16 09:09:59 +02:00
Yohan Boniface
4cfe319a91 fix: remove white border from black edit buttons 2024-04-16 09:09:59 +02:00
Yohan Boniface
b933c4badd wip: align panel bottom above scale control 2024-04-16 09:09:59 +02:00
Yohan Boniface
e615e0926a chore: fix tests 2024-04-16 09:09:59 +02:00
Yohan Boniface
573a33df5a chore: use CSS vars for panel 2024-04-16 09:09:59 +02:00
Yohan Boniface
211a86f27c chore: lint 2024-04-16 09:09:59 +02:00
Yohan Boniface
2f1a85144e chore: make panel toolbox sticky instead of fixed
No need to deal with width, that way.
2024-04-16 09:09:59 +02:00
Yohan Boniface
cd01e4085f chore: better align icon and title in panels 2024-04-16 09:09:59 +02:00
Yohan Boniface
8279ae8a62 chore: put back order of edit buttons
We'll certainly change them later, but for now let's create
useless noise for users
2024-04-16 09:09:59 +02:00
Yohan Boniface
2f3d579079 chore: make captionControl nullable in schema.js
So it can be configured to appears in the "More" button
2024-04-16 09:09:59 +02:00
Yohan Boniface
c9acb22d64 chore: remove calls to L. from browser.js 2024-04-16 09:09:59 +02:00
Yohan Boniface
2c248ea124 chore: panel.MODE has been renamed to panel.mode 2024-04-16 09:09:59 +02:00
Yohan Boniface
70cca268e8 chore: fix icons in the dashboard 2024-04-16 09:09:59 +02:00
Yohan Boniface
fa69192804 chore: add min-height for textarea 2024-04-16 09:09:59 +02:00
Yohan Boniface
737292ca76 chore: remove unused CSS 2024-04-16 09:09:59 +02:00
Yohan Boniface
11cd61ff84 chore: remove useless back button from table editor 2024-04-16 09:09:59 +02:00
Yohan Boniface
c5e3dfb95c chore: fix JS syntax to be compatible with browser >= 2020
Safari only supports public field since 2021…
2024-04-16 09:09:59 +02:00
Yohan Boniface
46016cb10b chore: replace panel:xxx events 2024-04-16 09:09:59 +02:00
Yohan Boniface
581f7134fd chore: fix integration tests 2024-04-16 09:09:59 +02:00
Yohan Boniface
7fd2f0ded9 chore: fix drag class 2024-04-16 09:09:59 +02:00
Yohan Boniface
44bae50c85 chore: remove remaining openPanel/closePanel calls 2024-04-16 09:09:59 +02:00
Yohan Boniface
e3ff769ab9 chore: import modules in panel.js 2024-04-16 09:09:59 +02:00
Yohan Boniface
849b194d4f chore: use a specific panel class for table view 2024-04-16 09:09:59 +02:00
Yohan Boniface
0b175d1a56 chore: use icon buttons where possible 2024-04-16 09:09:59 +02:00
Yohan Boniface
3bc57a8512 chore: refactor simple button controls 2024-04-16 09:09:59 +02:00
Yohan Boniface
c4e86c4ab9 wip: move panel to a dedicated module 2024-04-16 09:09:58 +02:00
Yohan Boniface
1e2d990a3a chore: start moving icon related CSS rules to a dedicated file 2024-04-16 09:08:15 +02:00
Yohan Boniface
a516cbd2a3 chore: panel in condensed mode by default 2024-04-16 09:08:15 +02:00
Yohan Boniface
2a2f38e3cd chore: change edit button order 2024-04-16 09:08:15 +02:00
Yohan Boniface
e4ecb1a847 chore: fix test
This action is managed in the header panel, thus it's not a button.
We may make all header actions proper buttons, but maybe in another
PR ?
2024-04-16 09:08:15 +02:00
Yohan Boniface
a360ca0e13 chore: make browser expanded/condensed mode persistent 2024-04-16 09:08:15 +02:00
Yohan Boniface
2147e5a612 chore: add missing umap-icon-16 class in browser toggle button 2024-04-16 09:08:15 +02:00
Yohan Boniface
a018b8863f chore: refactor browser back button 2024-04-16 09:08:15 +02:00
Yohan Boniface
86956c4563 chore: use umap-icon-16 CSS class in panel toolbox 2024-04-16 09:08:15 +02:00
Yohan Boniface
87f611d0b5 chore: refactore panel header/toolbox 2024-04-16 09:08:15 +02:00
Yohan Boniface
8524cc785f chore: fix tests 2024-04-16 09:08:15 +02:00
Yohan Boniface
56e6b20087 wip: add resize button in panel 2024-04-16 09:08:15 +02:00
Yohan Boniface
af203d7b90 wip: remove extra actions from browser/facets 2024-04-16 09:08:15 +02:00
Yohan Boniface
9e3984fdcb wip: do not change panel color if it's not browser
Ugly way to do, but for now I haven't found a better option
2024-04-16 09:08:15 +02:00
Yohan Boniface
41e7b34813 wip: allow to open browser in condensed mode 2024-04-16 09:08:14 +02:00
Yohan Boniface
5b78d6f0ff wip: refactor browser related CSS 2024-04-16 09:04:10 +02:00
Yohan Boniface
b92695dd7f wip: first shot on merging data browser and features browser 2024-04-16 09:04:07 +02:00
517d3a1a81 tests: move functional tests in test_edit_map.py. 2024-04-15 23:46:43 +02:00
6e71009467 chore: Schema: deduplicate impacts keys.
Also:

- move the `type` key before the `impacts` one.
- avoid one-line objects
2024-04-15 23:46:43 +02:00
6841b5fc0f tests: Fix the test with the proper data. 2024-04-15 23:46:43 +02:00
5526a3f4d2 fix: Fix module location for some utils. 2024-04-15 23:46:43 +02:00
5aedf51d0c fix: Use formatNum from Leaflet.Util
It was currently looked for in the uMap utils, where it wasn't present.
2024-04-15 23:46:43 +02:00
3764bcfe3e tests: Use the first visible name when testing.
There are now multiple elements accessed with the same CSS selector.
2024-04-15 23:46:43 +02:00
d52a0c63f0 chore: Always put type before impacts in the schema definition. 2024-04-15 23:46:43 +02:00
0e12e0e5c3 chore: Add schema entries for layers. 2024-04-15 23:46:43 +02:00
ac866e3943 chore: Reorganize tests, remove duplicated ones. 2024-04-15 23:46:43 +02:00
2bcb862319 tests: Add on_edit integration tests 2024-04-15 23:46:43 +02:00
ff019d08de tests: Add getImpactsFromSchema tests 2024-04-15 23:46:43 +02:00
55cc7a098f refactor: Separate ui rendering from data updates
`U.SCHEMA` now contains an `impacts` key, which makes it possible to
specify what part of the UI is impacted by data changes.

A new `render` method has been added on `U.Map` and `U.DataLayer`, which
is used to rerender the proper parts of the UI depending on the passed
properties.

`U.FormBuilder` calls this `render()` method (if present), during form
changes.
2024-04-15 23:46:43 +02:00
dependabot[bot]
7ffa7d7b57
chore: bump ruff from 0.3.4 to 0.3.7
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.3.4 to 0.3.7.
- [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/v0.3.4...v0.3.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-15 17:22:28 +00:00
dependabot[bot]
e68e2bf01b
chore: bump uwsgi from 2.0.24 to 2.0.25
Bumps [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.24 to 2.0.25.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-15 17:22:18 +00:00
dependabot[bot]
bf3cbdd6ae
chore: bump django from 5.0.3 to 5.0.4
Bumps [django](https://github.com/django/django) from 5.0.3 to 5.0.4.
- [Commits](https://github.com/django/django/compare/5.0.3...5.0.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-08 17:53:53 +00:00
David Larlet
99a0007ce0
Merge pull request #1724 from umap-project/dependabot/pip/pillow-10.3.0
chore: bump pillow from 10.2.0 to 10.3.0
2024-04-02 15:05:57 -04:00
David Larlet
369a64f981
Merge pull request #1723 from umap-project/dependabot/pip/mkdocs-material-9.5.16
chore: bump mkdocs-material from 9.5.15 to 9.5.16
2024-04-02 14:58:23 -04:00
David Larlet
ce19e0a19c
Merge pull request #1728 from umap-project/bump-integration-tests-timeout
chore: bump the timeout for integration tests
2024-04-02 14:16:55 -04:00
David Larlet
8c4d887999
chore: bump the timeout for integration tests 2024-04-02 14:01:27 -04:00
dependabot[bot]
ac126dacf0
chore: bump pillow from 10.2.0 to 10.3.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.2.0 to 10.3.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/10.2.0...10.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 17:29:39 +00:00
dependabot[bot]
1f0b5dcc6e
chore: bump mkdocs-material from 9.5.15 to 9.5.16
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.15 to 9.5.16.
- [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.15...9.5.16)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 17:29:20 +00:00
05a25ed8fe [tests] actually add the tests 2024-04-01 11:12:44 +02:00
28d7cff747 [docs] update the "testing" contributing section
It now includes the new commands.
2024-04-01 11:12:44 +02:00
bfd573ae36 [tests] Enable make test to run js+py tests
It will run both the Python and JS tests. Test suites can still be run
independently with the `make testjs` and `make testpy` commands.
2024-04-01 11:12:44 +02:00
c4e527bf8e [chore] move umap utils to a module
Allow the tests to be run from inside a cli, without requiring a browser.
2024-04-01 11:12:44 +02:00
Yohan Boniface
a28db94f72 chore: move Feature.js integration tests to PW 2024-04-01 11:12:26 +02:00
Yohan Boniface
5d88e0e270 fix: fix L.locale no more set 2024-04-01 11:12:26 +02:00
Yohan Boniface
cf61495815 changelog 2024-03-27 22:26:54 +01:00
Yohan Boniface
bf769f26c1 2.1.3 2024-03-27 22:22:28 +01:00
Yohan Boniface
b625ef6450
Merge pull request #1717 from umap-project/fix-datalayers-qs-old_id
fix: honour old_id in datalayers= query string parameter
2024-03-27 22:21:38 +01:00
David Larlet
d4ba1afd10
Merge pull request #1682 from umap-project/dependabot/pip/pytest-8.1.1
chore: bump pytest from 8.0.2 to 8.1.1
2024-03-27 17:12:14 -04:00
Yohan Boniface
90ced76a11 fix: honour old_id in datalayers= query string parameter
fix #1714
2024-03-27 22:10:38 +01:00
Yohan Boniface
c92d24100f
Merge pull request #1716 from umap-project/refactor-init-center
chore: refactor initCenter and controls ordering
2024-03-27 21:38:22 +01:00
Yohan Boniface
42c33ab23e
Merge pull request #1713 from umap-project/remove-js-tests
Remove js tests
2024-03-27 21:37:53 +01:00
Yohan Boniface
e0ff82298a chore: move table editor tests to PW 2024-03-27 21:06:46 +01:00
Yohan Boniface
4669053b18 chore: refactor initCenter and controls ordering
We had an issue (not in Github :p) where a map was not loading
because the defaultView was set to "data", and the layers were
remote data layers. In this case, when computing the remote URL,
we allow to replace georelated variables (like east, west, north,
lat…), which needs the map to have a view.
So:
- the default view was expecting the data to be loaded (="data")
- the data to be loaded needed a default view…

So instead of adding yet another call to _setDefaultView in an
edge case, we reordered the way we initialize the map elements:

- first we initialize the controls (because initCenter needs the
  locate control to exist)
- then we call initCenter
- then we initialize the tile layers (because the miniMap needs it
  to render itself)
- then we call renderControls
2024-03-27 20:14:43 +01:00
Yohan Boniface
ca8f7bf280 chore: add openmap fixture 2024-03-27 13:01:01 +01:00
Yohan Boniface
490a1a6e19 chore: port DataLayer.js tests to PW 2024-03-27 13:00:45 +01:00
Yohan Boniface
6a1fb44085 chore: add leaflet-configure.js in test loaded scripts 2024-03-27 13:00:45 +01:00
Yohan Boniface
b1fbccbdc5 chore: move Map and import tests to PW 2024-03-27 13:00:45 +01:00
Yohan Boniface
8392a748f1
Merge pull request #1704 from umap-project/remove-js-tests
chore: move js tests to PW
2024-03-26 08:55:20 +01:00
Yohan Boniface
c57469ee8b chore: move part of Polyline.js tests to PW 2024-03-26 08:50:55 +01:00
Yohan Boniface
1a2482f1e4 chore: move Polygon integration tests to PW 2024-03-26 08:50:55 +01:00
David Larlet
b3d54ab1f3
Merge pull request #1708 from umap-project/dependabot/pip/ruff-0.3.4
chore: bump ruff from 0.3.3 to 0.3.4
2024-03-25 16:06:42 -04:00
dependabot[bot]
799d004abe
chore: bump ruff from 0.3.3 to 0.3.4
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.3.3 to 0.3.4.
- [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/v0.3.3...v0.3.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 20:02:12 +00:00
Yohan Boniface
4fcda97293
Merge pull request #1709 from umap-project/dependabot/pip/mkdocs-material-9.5.15
chore: bump mkdocs-material from 9.5.14 to 9.5.15
2024-03-25 21:00:51 +01:00
Yohan Boniface
db2a0bc74f changelog 2024-03-25 20:18:00 +01:00
Yohan Boniface
bd438605f3 2.1.2 2024-03-25 20:13:54 +01:00
Yohan Boniface
99207638d9 fix: make sure to order datalayer versions by time
When we changed from id to uuid, we broke the sorting, which
supposed to have a constant id as string prefix from version to
the other.
2024-03-25 20:13:34 +01:00
Yohan Boniface
258262ae14 fix: do not try to read undefined message on error in request.js 2024-03-25 19:44:14 +01:00
Yohan Boniface
73c5a963d9 chore: split lint and format recipes 2024-03-25 19:28:20 +01:00
dependabot[bot]
56708bbd30
chore: bump mkdocs-material from 9.5.14 to 9.5.15
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.14 to 9.5.15.
- [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.14...9.5.15)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 17:42:11 +00:00
Yohan Boniface
b9e27fc885 chore: change default playwright timeout to 5000ms 2024-03-25 15:20:16 +01:00
Yohan Boniface
5d8706c261 chore: remove Permissions tests from JS and update PW ones 2024-03-25 15:20:16 +01:00
Yohan Boniface
98f1e48df9 chore: move Choropleth tests to PW 2024-03-25 15:20:16 +01:00
Yohan Boniface
288c7983fc fix: Path.replace called instead str.replace 2024-03-25 14:40:48 +01:00
dependabot[bot]
e0ef2473a4
chore: bump pytest from 8.0.2 to 8.1.1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.0.2 to 8.1.1.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.0.2...8.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 17:50:54 +00:00
744 changed files with 108110 additions and 52617 deletions

View file

@ -5,7 +5,7 @@
"es6": true
},
"parserOptions": {
"ecmaVersion": 2020,
"ecmaVersion": 2021,
"sourceType": "module"
}
}

23
.github/workflows/close-issues.yml vendored Normal file
View file

@ -0,0 +1,23 @@
# Doc: https://github.com/marketplace/actions/close-stale-issues
name: Close inactive issues
on:
schedule:
- cron: "30 1 * * *"
jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- uses: actions/stale@v5
with:
days-before-issue-stale: 30
days-before-issue-close: 14
stale-issue-label: "stale"
stale-issue-message: "This issue is stale because it has been open for 30 days with no activity."
close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale."
days-before-pr-stale: -1
days-before-pr-close: -1
repo-token: ${{ secrets.GITHUB_TOKEN }}
any-of-labels: need infos,support

26
.github/workflows/release-helm.yml vendored Normal file
View file

@ -0,0 +1,26 @@
name: Release Charts
on:
push:
branches:
- master
jobs:
release:
# depending on default permission settings for your org (contents being read-only or read-write for workloads), you will have to add permissions
# see: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Publish Helm charts
uses: stefanprodan/helm-gh-pages@v1.7.0
with:
charts_dir: charts
linting: off
token: ${{ secrets.GITHUB_TOKEN }}

View file

@ -4,7 +4,9 @@ on:
push:
branches: [master]
pull_request:
branches: [master]
path:
- umap/*
- pyproject.toml
jobs:
tests:
@ -12,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
services:
postgres:
image: postgis/postgis:12-2.5
image: postgis/postgis:14-3.4
ports:
- 5432:5432
env:
@ -20,7 +22,11 @@ jobs:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
ports:
- 6379:6379
strategy:
fail-fast: false
matrix:
@ -28,9 +34,9 @@ jobs:
database: [postgresql]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
@ -40,20 +46,24 @@ jobs:
sudo apt update
sudo apt install libgdal-dev
python -m pip install --upgrade pip
make develop installjs vendors
make develop
npm install mocha
- name: run tests
run: make test
env:
DJANGO_SETTINGS_MODULE: 'umap.tests.settings'
UMAP_SETTINGS: 'umap/tests/settings.py'
PLAYWRIGHT_TIMEOUT: '20000'
REDIS_HOST: localhost
REDIS_PORT: 6379
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.11'
python-version: '3.12'
- name: Install dependencies
run: |
python3 -m pip install -e .[test,dev]
@ -64,18 +74,3 @@ jobs:
- name: Run Docs
run: make docs
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: |
python3 -m pip install -r docs/requirements.txt
- name: Run Docs
run: mkdocs build

14
.gitignore vendored
View file

@ -4,13 +4,13 @@ umap/settings/local/*
docs/_build
umap/remote_static
tmp/*
umap/static/umap/vendors
site/*
.pytest_cache/
node_modules
umap.conf
data
./static
/data
/static
package-lock.json
### Python ###
# Byte-compiled / optimized / DLL files
@ -22,3 +22,11 @@ dist/
*.egg-info/
playwright/.auth/
test-results/
### Transifex ###
tx
# Helm
charts/*/charts
helmfile.yaml
charts/*/Chart.lock

View file

@ -1,24 +1,9 @@
FROM node:alpine AS vendors
RUN apk add git
WORKDIR /srv/umap
COPY package.json .
RUN npm install
COPY . .
RUN npm run vendors
# This part installs deps needed at runtime.
FROM python:3.11-slim as common
FROM python:3.12-slim AS common
RUN apt-get update && \
apt-get install -y --no-install-recommends \
tini \
uwsgi \
sqlite3 \
libpq-dev \
gdal-bin \
@ -28,7 +13,7 @@ RUN apt-get update && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# This part adds deps needed only at buildtime.
FROM common as build
FROM common AS build
RUN apt-get update && \
apt-get install -y --no-install-recommends \
@ -53,13 +38,12 @@ WORKDIR /srv/umap
COPY . /srv/umap
RUN /venv/bin/pip install .[docker]
RUN /venv/bin/pip install .[docker,s3,sync]
FROM common
COPY --from=build /srv/umap/docker/ /srv/umap/docker/
COPY --from=build /venv/ /venv/
COPY --from=vendors /srv/umap/umap/static/umap/vendors /srv/umap/umap/static/umap/vendors
WORKDIR /srv/umap

View file

@ -1,7 +1,5 @@
.DEFAULT_GOAL := help
JS_TEST_URL := http://localhost:8001/umap/static/umap/test/index.html
.PHONY: install
install: ## Install the dependencies
python3 -m pip install --upgrade pip
@ -9,21 +7,21 @@ install: ## Install the dependencies
.PHONY: develop
develop: ## Install the test and dev dependencies
python3 -m pip install -e .[test,dev]
python3 -m pip install -e .[test,dev,sync,s3]
playwright install
.PHONY: format
format: ## Format the code and templates files
djlint umap/templates --reformat &&\
isort --profile black . &&\
ruff format --target-version=py310 .
-djlint umap/templates --reformat
-isort --profile black umap/
-ruff format --target-version=py310 umap/
.PHONY: lint
lint: ## Lint the code and template files
npx eslint umap/static/umap/ &&\
djlint umap/templates --lint &&\
isort --check --profile black umap/ &&\
ruff format --check --target-version=py310 umap/ &&\
npx eslint umap/static/umap/js/
djlint umap/templates --lint
isort --check --profile black umap/
ruff format --check --target-version=py310 umap/
vermin --no-tips --violations -t=3.10- umap/
docs: ## Compile the docs
@ -48,6 +46,13 @@ docker: ## Create a new Docker image and publish it
docker build -t umap/umap:${VERSION} .
docker push umap/umap:${VERSION}
.PHONY: helm
helm: ## Build the helm chart and publish it
$(eval VERSION=$(shell hatch version))
$(eval PACKAGE=$(shell helm package --dependency-update --app-version ${VERSION} ./charts/umap | grep "Successfully packaged" | awk '{print $$NF}'))
@echo "Successfully packaged helm chart in: ${PACKAGE}"
helm push ${PACKAGE} oci://registry-1.docker.io/umap
.PHONY: build
build: ## Build the Python package before release
@hatch build --clean
@ -57,11 +62,13 @@ publish: ## Publish the Python package to Pypi
@hatch publish
make clean
test:
pytest -xv umap/tests/
test: testpy testjs
testpy:
pytest -vv umap/tests/ --dist=loadgroup --reruns 1 --maxfail 10
test-integration:
pytest -xv umap/tests/integration/
pytest -xv umap/tests/integration/ --dist=loadgroup
clean:
rm -f dist/*
@ -77,29 +84,21 @@ vendors:
installjs:
npm install
testjs: node_modules
@{ \
trap 'kill $$PID; exit' INT; \
python -m http.server 8001 & \
PID=$$!; \
sleep 1; \
echo "Opening $(JS_TEST_URL)"; \
if command -v python -m webbrowser > /dev/null 2>&1; then \
python -m webbrowser "$(JS_TEST_URL)"; \
else \
echo "Please open $(JS_TEST_URL) in your web browser"; \
fi; \
wait $$PID; \
}
node_modules/mocha/bin/mocha.js umap/static/umap/unittests/
tx_push:
tx push -s
tx_pull:
tx pull
changelog:
$(eval VERSION=$(shell hatch version))
@# Bearer token is readonly
@printf $(shell curl -sL -X POST -H "Authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/umap-project/umap/releases/generate-notes -d '{"target_commitish":"master","previous_tag_name":"", "tag_name": "${VERSION}"}' | jq .body | sed 's/https:\/\/github.com\/umap-project\/umap\/pull\//#/g' | sed 's/`/\\`/g')
jsdir = umap/static/umap/js/
filepath = "${jsdir}*.js"
.PHONY: pretty
pretty: ## Apply PrettierJS to all JS files (or specified `filepath`)
./node_modules/prettier/bin-prettier.js --write ${filepath}
pretty: ## Apply Biome to all JS files (or specified `jsdir`)
./node_modules/@biomejs/biome/bin/biome check --write ${jsdir}
.PHONY: lebab
lebab: ## Convert JS `filepath` to modern syntax with Lebab, then prettify

52
biome.json Normal file
View file

@ -0,0 +1,52 @@
{
"files": {
"include": ["umap/static/umap/js/**"],
"ignore": ["umap/static/umap/vendors/**"]
},
"formatter": {
"enabled": true,
"formatWithErrors": false,
"ignore": [],
"attributePosition": "auto",
"indentStyle": "space",
"indentWidth": 2,
"lineEnding": "lf",
"lineWidth": 88
},
"linter": {
"enabled": true,
"rules": {
"style": {
"useBlockStatements": "off",
"noShoutyConstants": "warn",
"noParameterAssign": "off"
},
"complexity": {
"noForEach": "off"
},
"performance": {
"noDelete": "off"
}
}
},
"javascript": {
"formatter": {
"arrowParentheses": "always",
"bracketSameLine": false,
"bracketSpacing": true,
"jsxQuoteStyle": "double",
"quoteProperties": "asNeeded",
"quoteStyle": "single",
"semicolons": "asNeeded",
"trailingCommas": "es5"
}
},
"json": {
"formatter": {
"trailingCommas": "none"
}
},
"organizeImports": {
"enabled": true
}
}

23
charts/umap/.helmignore Normal file
View file

@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

16
charts/umap/Chart.yaml Normal file
View file

@ -0,0 +1,16 @@
apiVersion: v2
name: umap
description: A Helm chart to deploy umap on Kubernetes
type: application
version: 0.1.0
appVersion: "2.7.2"
dependencies:
- name: cnpg-cluster
version: 2.0.1
repository: https://charts.enix.io/
alias: cnpg
condition: cnpg.enabled

View file

@ -0,0 +1,73 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "umap.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "umap.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "umap.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "umap.labels" -}}
helm.sh/chart: {{ include "umap.chart" . }}
{{ include "umap.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "umap.selectorLabels" -}}
app.kubernetes.io/name: {{ include "umap.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "umap.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "umap.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}
{{/*
Get the name of the persistent volume claim
*/}}
{{- define "umap.pvcName" -}}
{{- if .Values.persistence.existingClaim -}}
{{- printf "%s" (tpl .Values.persistence.existingClaim $) -}}
{{- else -}}
{{- printf "%s" (include "umap.fullname" .) -}}
{{- end -}}
{{- end -}}

View file

@ -0,0 +1,110 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "umap.fullname" . }}
labels:
{{- include "umap.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "umap.selectorLabels" . | nindent 6 }}
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/secret-config.yaml") . | sha256sum }}
checksum/env: {{ include (print $.Template.BasePath "/secret-env.yaml") . | sha256sum }}
{{- with .Values.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "umap.labels" . | nindent 8 }}
{{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "umap.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
startupProbe:
httpGet:
path: /stats
port: http
livenessProbe:
httpGet:
path: /stats
port: http
readinessProbe:
httpGet:
path: /stats
port: http
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- if .Values.cnpg.enabled }}
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: {{ .Release.Name }}-cnpg-app
key: uri
- name: UMAP_SETTINGS
value: /etc/umap/umap.conf
{{- end }}
envFrom:
- secretRef:
{{- if .Values.umap.envFromSecret }}
name: {{ .Values.umap.envFromSecret }}
{{- else }}
name: {{ include "umap.fullname" . }}-env
{{- end }}
volumeMounts:
- name: config
mountPath: /etc/umap/
readOnly: true
- name: statics
mountPath: /srv/umap/static
{{- if .Values.persistence.enabled }}
- name: data
mountPath: /srv/umap/uploads/
{{- end }}
volumes:
- name: config
secret:
{{- if .Values.umap.configFromSecret }}
secretName: {{ .Values.umap.configFromSecret }}
{{- else }}
secretName: {{ include "umap.fullname" . }}-config
{{- end }}
- name: statics
emptyDir: {}
{{- if .Values.persistence.enabled }}
- name: data
persistentVolumeClaim:
claimName: {{ include "umap.pvcName" . }}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

View file

@ -0,0 +1,31 @@
{{- if .Values.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "umap.fullname" . }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
ingressClassName: {{ .Values.ingress.className }}
tls:
- hosts:
{{- range .Values.ingress.hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ include "umap.fullname" . }}-tls
rules:
{{- range .Values.ingress.hosts }}
- host: {{ . | quote }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ include "umap.fullname" $ }}
port:
number: {{ $.Values.service.port }}
{{- end }}
{{- end }}

View file

@ -0,0 +1,24 @@
{{- if and (.Values.persistence.enabled) (not .Values.persistence.existingClaim) }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
{{- if .Values.persistence.annotations }}
annotations:
{{- toYaml .Values.persistence.annotations | nindent 4 }}
{{- end }}
name: {{ include "umap.pvcName" . }}
labels:
{{- include "umap.labels" . | nindent 4 }}
spec:
accessModes:
{{- range .Values.persistence.accessModes }}
- {{ . | quote }}
{{- end }}
{{- with .Values.persistence.resources }}
resources:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- if .Values.persistence.storageClassName }}
storageClassName: {{ .Values.persistence.storageClassName | quote }}
{{- end }}
{{- end }}

View file

@ -0,0 +1,11 @@
{{ if not .Values.umap.configFromSecret }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "umap.fullname" . }}-config
labels:
{{- include "umap.labels" . | nindent 4 }}
type: Opaque
data:
umap.conf: {{ .Values.umap.config | b64enc }}
{{- end }}

View file

@ -0,0 +1,13 @@
{{ if not .Values.umap.envFromSecret }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "umap.fullname" . }}-env
labels:
{{- include "umap.labels" . | nindent 4 }}
type: Opaque
data:
{{- range $key, $value := .Values.umap.environment }}
{{ $key }}: "{{ $value | b64enc }}"
{{- end }}
{{- end }}

View file

@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "umap.fullname" . }}
labels:
{{- include "umap.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "umap.selectorLabels" . | nindent 4 }}

View file

@ -0,0 +1,13 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "umap.serviceAccountName" . }}
labels:
{{- include "umap.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
automountServiceAccountToken: {{ .Values.serviceAccount.automount }}
{{- end }}

125
charts/umap/values.yaml Normal file
View file

@ -0,0 +1,125 @@
# Default values for umap.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: umap/umap
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: ""
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Automatically mount a ServiceAccount's API credentials?
automount: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podLabels: {}
podSecurityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
service:
type: ClusterIP
port: 8000
ingress:
enabled: false
className: ""
annotations: {}
hosts:
- example.org
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}
umap:
# Set environment variables supported by umap here
# see: https://docs.umap-project.org/en/stable/config/settings/
environment:
SECRET_KEY: CHANGE_ME
STATIC_ROOT: /srv/umap/static
MEDIA_ROOT: /srv/umap/uploads
# Configure environment variables using an existing secret in the same namespace.
# In this case the values above are not used
envFromSecret: null
# You can also provide umap.conf content here:
config: |
from umap.settings.base import *
# See: https://github.com/umap-project/umap/blob/master/umap/settings/local.py.sample
# Configure config file using an existing secret in the same namespace.
# In this case the values above are not used
configFromSecret: null
persistence:
enabled: true
accessModes:
- ReadWriteOnce
annotations: {}
existingClaim: ""
storageClassName: ""
resources:
requests:
storage: 1Gi
# Configure Cloudnative-pg operator for Postgis database
# Alternatively, you can disable CNPG and provide your own
# Postgis database by setting the `umap.environment.DATABASE_URL`
cnpg:
enabled: true
replicaCount: 2
image:
repository: ghcr.io/cloudnative-pg/postgis
tag: 14
persistence:
storageClass: ""
size: 1Gi
clusterExtraSpec:
bootstrap:
initdb:
postInitTemplateSQL:
- CREATE EXTENSION postgis;
- CREATE EXTENSION postgis_topology;
- CREATE EXTENSION fuzzystrmatch;
- CREATE EXTENSION postgis_tiger_geocoder;
# See available values here: https://artifacthub.io/packages/helm/enix/cnpg-cluster?modal=values

View file

@ -1,11 +1,19 @@
version: '3'
services:
# Usefull only to use the real time collaboration
redis:
image: redis:latest
healthcheck:
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
interval: 1s
timeout: 3s
retries: 5
command: ["redis-server"]
db:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 2s
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
interval: 2s
image: postgis/postgis:14-3.3-alpine
environment:
- POSTGRES_HOST_AUTH_METHOD=trust
@ -16,18 +24,35 @@ services:
depends_on:
db:
condition: service_healthy
image: umap/umap:2.0.2
ports:
- "${PORT-8000}:8000"
redis:
condition: service_healthy
image: umap/umap:3.0.2
environment:
- STATIC_ROOT=/srv/umap/static
- MEDIA_ROOT=/srv/umap/uploads
- DATABASE_URL=postgis://postgres@db/postgres
- SECRET_KEY=some-long-and-weirdly-unrandom-secret-key
- SITE_URL=https://umap.local/
- UMAP_ALLOW_ANONYMOUS=True
- DEBUG=1
- REALTIME_ENABLED=1
- REDIS_URL=redis://redis:6379
volumes:
- data:/srv/umap/uploads
- static:/srv/umap/static
proxy:
image: nginx:latest
ports:
- "8000:80"
volumes:
- ./docker/nginx.conf:/etc/nginx/nginx.conf:ro
- static:/static:ro
- data:/data:ro
depends_on:
- app
volumes:
data:
static:
db:

View file

@ -9,5 +9,5 @@ umap collectstatic --noinput
umap wait_for_database
# then migrate the database
umap migrate
# run uWSGI
exec uwsgi --ini docker/uwsgi.ini
# run the server
exec uvicorn --proxy-headers --no-access-log --host 0.0.0.0 umap.asgi:application

111
docker/nginx.conf Normal file
View file

@ -0,0 +1,111 @@
events {
worker_connections 1024; # Adjust this to your needs
}
http {
proxy_cache_path /tmp/nginx_ajax_proxy_cache levels=1:2 keys_zone=ajax_proxy:10m inactive=60m;
proxy_cache_key "$uri$is_args$args";
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
types {
application/javascript mjs;
}
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# Server block
server {
listen 80;
server_name localhost;
# Static file serving
location /static/ {
alias /static/;
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
expires 365d;
access_log /dev/null;
}
# Geojson files
location /uploads/ {
alias /data/;
expires 30d;
}
location /favicon.ico {
alias /static/favicon.ico;
}
# X-Accel-Redirect
location /internal/ {
internal;
gzip_vary on;
gzip_static on;
add_header X-DataLayer-Version $upstream_http_x_datalayer_version;
alias /data/;
}
# Ajax proxy
location ~ ^/proxy/(.*) {
internal;
add_header X-Proxy-Cache $upstream_cache_status always;
proxy_cache_background_update on;
proxy_cache_use_stale updating;
proxy_cache ajax_proxy;
proxy_cache_valid 1m; # Default. Umap will override using X-Accel-Expires
set $target_url $1;
# URL is encoded, so we need a few hack to clean it back.
if ( $target_url ~ (.+)%3A%2F%2F(.+) ){ # fix :// between scheme and destination
set $target_url $1://$2;
}
if ( $target_url ~ (.+?)%3A(.*) ){ # fix : between destination and port
set $target_url $1:$2;
}
if ( $target_url ~ (.+?)%2F(.*) ){ # fix / after port, the rest will be decoded by proxy_pass
set $target_url $1/$2;
}
resolver 8.8.8.8;
add_header X-Proxy-Target $target_url; # For debugging
proxy_pass_request_headers off;
proxy_set_header Content-Type $http_content_type;
proxy_set_header Content-Encoding $http_content_encoding;
proxy_set_header Content-Length $http_content_length;
proxy_read_timeout 10s;
proxy_connect_timeout 5s;
proxy_ssl_server_name on;
proxy_pass $target_url;
proxy_intercept_errors on;
error_page 301 302 307 = @handle_proxy_redirect;
}
location @handle_proxy_redirect {
resolver 8.8.8.8;
set $saved_redirect_location '$upstream_http_location';
proxy_pass $saved_redirect_location;
}
# Proxy pass to ASGI server
location / {
proxy_pass http://app:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_redirect off;
proxy_buffering off;
}
}
}

View file

@ -1,12 +0,0 @@
[uwsgi]
http = :$(PORT)
home = /venv
module = umap.wsgi:application
master = True
vacuum = True
max-requests = 5000
processes = 4
enable-threads = true
static-map = /static=/srv/umap/static
static-map = /uploads=/srv/umap/uploads
buffer-size = 32768

97
docs-users/articles.md Normal file
View file

@ -0,0 +1,97 @@
# Articles
## [Towards uMap 3 😱](https://www.openstreetmap.org/user/David%20Larlet/diary/404654) (2024-07-16)
> The latest 2.4.X release sets the path for two major requested features: real-time collaboration and one-click remote data importers.
>
> Additionally, minor improvements and bugfixes have made the tool more stable and usable.
[Full article →](https://www.openstreetmap.org/user/David%20Larlet/diary/404654){ .md-button }
## [Adding collaboration on uMap, fourth update](https://blog.notmyidea.org/adding-collaboration-on-umap-fourth-update.html) (2024-06-20)
> The main branch of uMap now ships a web socket server, enabling local changes to be replicated to other peers.
>
> Here is short video capturing how the import of <mark>some data can be synced between two browsers</mark>.
[Full article →](https://blog.notmyidea.org/adding-collaboration-on-umap-fourth-update.html){ .md-button }
## [Mapping the CUNY Digital History Archive](https://cuny.manifoldapp.org/read/mapping-the-cuny-digital-history-archive) (2024-05)
> This article discusses the implementation of the Learning CUNY History project, designed as an open education praxis for teaching and learning. Its an example of a project-based assignment for undergraduate students and has evolved to explore the impact of integrating digital archives and digital mapping as instructional-digital tools. The project activates the CUNY Digital History Archive as a method of developing students digital literacy skills and investigates the potential to facilitate students learning. The archive is activated through student investigations and writings related to archival materials. Students then map the items as an interactive semester assignment. The project is described as occurring over three phases, and compares different digital mapping platforms. <mark>Ultimately, after careful consideration since its pilot phase, the project utilizes Open Street Map and uMap.</mark>
[Full article →](https://cuny.manifoldapp.org/read/mapping-the-cuny-digital-history-archive){ .md-button }
## [uMap 2 and beyond 🚀](https://www.openstreetmap.org/user/David%20Larlet/diary/403560) (2024-02-23)
> A [major version](https://pypi.org/project/umap-project/2.0.0/) of uMap has been released last week.
>
> <mark>This release is inauguring a new era in versioning uMap</mark>: in the future, well take care of better documenting breaking changes, so expect more major releases from now on. More details on [how we version](https://docs.umap-project.org/en/master/release/#when-to-make-a-release).
>
> A comprehensive changelog for that version is available in our technical documentation. Most of the changes for a major version are indeed technical, we are taking care of people deploying and maintaining instances with that approach. User-facing features are deployed continuously with our minor versions. We think that scheme is more valuable for the community.
[Full article →](https://www.openstreetmap.org/user/David%20Larlet/diary/403560){ .md-button }
## [Adding collaboration on uMap, third update](https://blog.notmyidea.org/adding-collaboration-on-umap-third-update.html) (2024-02-15)
> Ive spent the last few weeks working on uMap, still with the goal of bringing real-time collaboration to the maps. Im not there yet, but <mark>Ive made some progress that I will relate here</mark>.
[Full article →](https://blog.notmyidea.org/adding-collaboration-on-umap-third-update.html){ .md-button }
## [Adding Real-Time Collaboration to uMap, second week](https://blog.notmyidea.org/adding-real-time-collaboration-to-umap-second-week.html) (2023-11-21)
> I continued working on uMap, an open-source map-making tool to create and share customizable maps, based on Open Street Map data.
>
> <mark>Here is a summary of what I did:</mark>
>
> * I reviewed, rebased and made some minor changes to [a pull request which makes it possible to merge geojson features together](https://github.com/umap-project/umap/pull/772) ;
> * Ive explored around the idea of using SQLite inside the browser, for two reasons : it could make it possible to use the [Spatialite](https://www.gaia-gis.it/fossil/libspatialite/index) extension, and it might help us to implement a CRDT with [cr-sqlite](https://github.com/vlcn-io/cr-sqlite) ;
> * I learned a lot about the SIG field. This is a wide ecosystem with lots of moving parts, which I understand a bit better now.
[Full article →](https://blog.notmyidea.org/adding-real-time-collaboration-to-umap-second-week.html){ .md-button }
## [Adding Real-Time Collaboration to uMap, first week](https://blog.notmyidea.org/adding-real-time-collaboration-to-umap-first-week.html) (2023-11-11)
> Last week, Ive been lucky to start working on uMap, an open-source map-making tool to create and share customizable maps, based on Open Street Map data.
>
> <mark>My goal is to add real-time collaboration to uMap</mark>, but we first want to be sure to understand the issue correctly. There are multiple ways to solve this, so one part of the journey is to understand the problem properly (then, well be able to chose the right path forward).
[Full article →](https://blog.notmyidea.org/adding-real-time-collaboration-to-umap-first-week.html){ .md-button }
## [Experimental choropleth layer in uMap](https://www.openstreetmap.org/user/ybon/diary/402589) (2023-10-12)
> Weve just released the version 1.9.2 of uMap, that includes a new experimental type of layer: <mark>choropleth!</mark>
[Full article →](https://www.openstreetmap.org/user/ybon/diary/402589){ .md-button }
## [uMap: fine-grained permissions and more](https://www.openstreetmap.org/user/David%20Larlet/diary/402475) (2023-09-27)
> We finally managed to tackle a very popular feature request: [datalayers fine-grained permissions](https://github.com/umap-project/umap/pull/1307) 🎉. This is a huge step forward, <mark>allowing for a given map owner to only open a particular datalayer to edition</mark>. It will help people with contributive maps who need to setup a stable/fixed base layer. It also paved the way for even more control over the objects that are allowed for addition and/or edition. Please share with us your desired workflows.
[Full article →](https://www.openstreetmap.org/user/David%20Larlet/diary/402475){ .md-button }
## [Some news about uMap!](https://www.openstreetmap.org/user/ybon/diary/402248) (2023-08-25)
> Since a few month, <mark>uMap has been integrated in a French state incubator</mark>, so things are moving quite a lot!
>
> uMap is now ten years old, and is deployed on many instances around the world. The one I know well is hosted by OSM France, and is close to reach one million maps created and 100.000 users.
>
> This incubation program is ported by the French [“Accélérateur dinitiatives citoyennes”](https://citoyens.transformation.gouv.fr/), it includes coaches and a small budget for non tech needs (UI/UX…). One goal of this program is to find financial support for uMap development and maintainance. A French administration, the [Agence pour la cohésion des territoires](https://agence-cohesion-territoires.gouv.fr/), is the first uMap financial backer since a few months. This allowed us to put up a small team to work, part time, in uMap […]
[Full article →](https://www.openstreetmap.org/user/ybon/diary/402248){ .md-button }
## [uMap: A Free, Open-Source Alternative to Google My Maps](https://cartographicperspectives.org/index.php/journal/article/view/1729) (2022-02-08)
> Since their release in 2005, Google Maps-based tools have become the de facto solutions for a variety of online cartographic projects. Their success has been accompanied by a range of critiques denouncing the individualistic market-based logic imposed by these mapping services. Alternative options to this dominant model have been released since then; uMap is one of them. <mark>uMap is a free, open-source online mapping platform that builds on OpenStreetMap to enable anyone to easily publish web maps individually or collaboratively.</mark> In this paper, we reflect on the potential and limits of uMap based on our own experiences of deploying it in six different mapping projects. Through these experiences, uMap appears particularly well-suited for collaborative mapping projects, due to its ease in connecting to remote data and its high level of interoperability with a range of other applications. On the other hand, uMap seems less relevant for crowdmapping projects, due to its lack of built-in options to manage and control public contributions. Finally, the open-source philosophy of uMap, combined with its simplicity of use and its strong collaborative capacity, make it a great option for activist mapping projects as well as for pedagogical purposes to teach a range of topics including online collaborative cartography.
[Full article →](https://cartographicperspectives.org/index.php/journal/article/view/1729){ .md-button }

View file

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128">
<path d="M36.5 6.2A64 64 0 0 0 64 128C14.5 81.8 3.1 24.8 36.5 6.2zM64 128A64 64 0 0 0 91.5 6.2c33.4 18.6 22 75.6-27.5 121.8z" fill="#fff"/>
<path d="M87.7 33.8a23.7 23.7 0 1 1-47.4 0 23.7 23.7 0 0 1 47.4 0z" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 321 B

72
docs-users/fr/articles.md Normal file
View file

@ -0,0 +1,72 @@
# Articles
## [Créer des cartes interactives personnalisées : uMap ou Leaflet ?](https://www.d-booker.fr/content/242-creer-des-cartes-interactives-personnalisees-umap-ou-leaflet) (2025-02-01)
> Dans ce guide, nous comparerons deux solutions libres populaires : uMap, une plateforme en ligne intuitive, et Leaflet, une bibliothèque JavaScript puissante.
[Article complet →](https://www.d-booker.fr/content/242-creer-des-cartes-interactives-personnalisees-umap-ou-leaflet){ .md-button }
## [Vers uMap 3 😱](https://www.openstreetmap.org/user/David%20Larlet/diary/404654#vers-umap-3-) (2024-07-16)
> La dernière version 2.4.X ouvre la voie à deux fonctionnalités majeures demandées : la collaboration en temps réel et les assistants dimport de données à distance en un clic.
>
> En outre, des améliorations mineures et des corrections de bogues ont rendu loutil plus stable et plus utilisable.
[Article complet →](https://www.openstreetmap.org/user/David%20Larlet/diary/404654#vers-umap-3-){ .md-button }
## [uMap au cœur de la communication des Chambres dagriculture](https://umap.dev.incubateur.anct.gouv.fr/blog/umap-au-cur-de-la-communication-des-chambres-dagriculture/) (2024-07-10)
> Un témoignage de Frédéric Guimier, Consultant Communication et projets numériques au sein de la Chambre dagriculture Pays de la Loire.
[Article complet →](https://umap.incubateur.anct.gouv.fr/blog/umap-au-cur-de-la-communication-des-chambres-dagriculture/){ .md-button }
## [Recenser les cabanes en pierres sèches : projet culturel & collaboratif](https://insidemap.eu/recenser-les-cabanes-en-pierres-seches-projet-culturel-collaboratif/) (2024-07-02)
> Une trouvaille impromptue sur uMap, en balayant les cartes qui saffichent : un carroyage et des dizaines de points, qui au clic affichent des photographies de constructions en pierres sèches. <mark>Il restait à tirer le fil pour comprendre lampleur du projet : le recensement des centaines de cabanes</mark>, relayé sur des sites Internet et adossée à une base de données, Wikipedra. Merci à Jean Louis Barthe pour cette très belle découverte et ses explications.
[Article complet →](https://insidemap.eu/recenser-les-cabanes-en-pierres-seches-projet-culturel-collaboratif/){ .md-button }
## [Partager linformation & mieux prévenir le risque inondation avec uMap](https://umap.incubateur.anct.gouv.fr/blog/partager-linformation-mieux-prevenir-le-risque-inondation-avec-umap/) (2024-06-10)
> Dans les montagnes des Hautes-Pyrénées, les gaves connaissent régulièrement des crues torrentielles, avec comme conséquence des risques majeurs dans les vallées. <mark>Voici la présentation dun projet global qui associe communication et analyse technique sur un outil cartographique basé sur uMap.</mark> Le syndicat mixte du Pays de Lourdes et des Vallées des Gaves propose un portail dinformation consacré à la mémoire des inondations pour sensibiliser les maires et la population des Vallées des Gaves. Benoît Thouary, chargé détudes au service prévention des inondations, géographe de formation spécialisé en prévention des risques naturels, présente cette approche très complète, adossée à des archives multimédias et à une base de données.
[Article complet →](https://umap.incubateur.anct.gouv.fr/blog/partager-linformation-mieux-prevenir-le-risque-inondation-avec-umap/){ .md-button }
## [La cartographie numérique pour mieux lire et mieux écrire](https://eduscol.education.fr/4032/la-cartographie-numerique-pour-mieux-lire-et-mieux-ecrire) (2024-06)
> uMap est une plateforme de cartographie libre et gratuite qui fait partie du SILL (Socle Interministériel des Logiciels Libres). Elle propose par défaut uniquement des fonds de cartes récents, accompagnés doutils de cartographie similaires à ceux dÉdugéo et de Geoportail, avec des fonctionnalités intéressantes de sauvegarde et de partage des cartes. Il est possible dajouter des fonds de cartes anciens en suivant la démarche indiquée avec lexemple de la carte de Metz 1872.
[Article complet →](https://eduscol.education.fr/4032/la-cartographie-numerique-pour-mieux-lire-et-mieux-ecrire){ .md-button }
## [Carte des arbres remarquables, la suite…](https://insidemap.eu/carte-des-arbres-remarquables-la-suite/) (2024-05-25)
> Depuis la première version de la carte en mars 2019, les données ont pu changer et les fonctionnalités duMap ont évolué. Voilà loccasion de refaire la carte et dexplorer dautres approches. Bien entendu les fonctionnalités de diaporama sont toujours actives sur la carte dorigine.
>
> <mark>Les données sur les arbres remarquables sont à disposition sur le portail gouvernemental data.gouv.fr.</mark> Pour automatiser leur import, il est intéressant de choisir le lien…
[Article complet →](https://insidemap.eu/carte-des-arbres-remarquables-la-suite/){ .md-button }
## [Tutoriel : cartographier votre commune, ses voies et ses adresses, avec uMap](https://adresse.data.gouv.fr/blog/utilisez-umap-pour-visualiser-vos-adresses) (2024-05-13)
> Il peut parfois savérer utile, dans le cadre dun travail préparatoire ou pour une présentation, de créer une carte personnalisée de sa commune. À cet effet, <mark>lANCT met à disposition un outil, libre et open-source, à destination des agents publics pour créer des cartes en ligne</mark>, uMap.
>
> Cet outil, par ailleurs accessible sur dautres instances pour le grand public ([uMap OSMFr](https://umap.openstreetmap.fr/) et [FramaCarte](https://framacarte.org/)), se distingue par sa grande polyvalence et ses fonctionnalités avancées de personnalisation. Linstance [uMap ANCT](https://umap.incubateur.anct.gouv.fr/) vise à mieux intégrer cet outil avec les autres outils des agents, à développer des fonctionnalités spécifiques et des configurations sur mesure, ainsi que faciliter un support dédié.
[Article complet →](https://adresse.data.gouv.fr/blog/utilisez-umap-pour-visualiser-vos-adresses){ .md-button }
## [Hervé Baronnet : Libres balades pédagogiques](https://www.cafepedagogique.net/2024/03/29/herve-baronnet-libres-balades-pedagogiques/) (2024-03-29)
> Le numérique peut-il aider à franchir les murs de lÉcole ? LÉcole peut-elle aider à saffranchir des enfermements numériques ? Double défi joliment relevé par Hervé Baronnet, professeur des écoles dans lacadémie de Bordeaux, membre de la Fabrique des Communs Pédagogiques. <mark>Avec le logiciel libre de cartographie numérique uMap, les élèves sont invités à des « balades pédagogiques »</mark> : à explorer et à sapproprier un territoire en produisant des cartes collaboratives et créatives. Présentée à la Journée Du Libre Educatif le 29 mars 2024 à Créteil, la démarche, inspirante, « enseigne des savoirs de manière interactive, concrète et mémorable. » Elle forge le désir et la capacité délargir, de découvrir, de conquérir son espace de vie. « En sortant de lécole / Nous avons rencontré / Un grand chemin de fer / Qui nous a emmenés / Tout autour de la terre / Dans un wagon doré » (Jacques Prévert) ….
[Article complet →](https://www.cafepedagogique.net/2024/03/29/herve-baronnet-libres-balades-pedagogiques/){ .md-button }
## [Blogueur Food & Voyage : ajouter des cartes interactives à vos articles](https://blog.jawg.io/ajouter-des-cartes-interactives-a-vos-articles-de-blog/) (2023-03-21)
> Qui a déjà consulté un blog pour des conseils de voyage ou des idées de restaurants à tester ? … Everybody ? Cest bien ce qui me semblait 😁
>
> Et qui parmi vous, a dû <mark>copier-coller le nom de ces lieux suggérés dans un moteur de recherche pour avoir une idée plus précise doù ils se situaient ?</mark> Bon… je me sens moins seule !
>
> Je vous donne un exemple, vous cherchez un café sympa sur Paris et vous tombez sur larticle « Les 10 cafés les plus cosy de Paris. » Super, il ny a plus quà les trouver. Sauf que, vous jetez un coup dœil à ladresse… euh le 9e, cest quels stations de métro ça ? 🤔😅
[Article complet →](https://blog.jawg.io/ajouter-des-cartes-interactives-a-vos-articles-de-blog/){ .md-button }

23
docs-users/fr/index.md Normal file
View file

@ -0,0 +1,23 @@
# Documentation utilisateur·ice uMap
uMap vous offre la possibilité de concevoir rapidement des cartes personnalisées avec des fonds OpenStreetMap (OSM) et de les intégrer facilement à votre site.
- 📺 Regarder les [vidéos](videos.md) et les [articles](articles.md).
- 🤓 Consulter les tutoriels selon votre niveau.
- 🤔 Explorer les [les questions/réponses de la FAQ](support/faq.md).
- 🤕 Parcourir [la liste des erreurs possibles](support/errors.md).
---
!!! info "Si vous êtes un·e développeur·euse"
Vous allez probablement davantage trouver votre [bonheur par ici](https://docs.umap-project.org).
??? bug "Si vous rencontrez un problème non documenté"
Vous pouvez :
- consulter le [forum dédié sur OSM France](https://forum.openstreetmap.fr/c/utiliser/umap/29) ;
- vérifier si le souci na pas déjà été remonté dans les [issues en cours](https://github.com/umap-project/umap/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) ;
- déclarer [une nouvelle issue](https://github.com/umap-project/umap/issues/new/choose) (en anglais).

View file

@ -0,0 +1,32 @@
# Usages avancés de uMap
## Précharger une carte avec des données {: #preloading-data }
Il est possible de précharger une carte avec des données en utilisant
les paramètres `data` ou `dataUrl` :
* Le paramètre `data` doit être URI encodé
(avec la méthode `encodeURIComponent()` en JavaScript par exemple).
* Le paramètre `dataUrl` doit lier vers une URL encodée
(avec la méthode `encodeURIComponent()` en JavaScript par exemple).
Vous pouvez ajouter le paramètre `dataFormat` en fonction de la
nature de vos données:
* `geojson` (défaut)
* `csv`
* `gpx`
* `georss`
* `kml`
* `osm`
Cet exemple, utilisant le paramètre `data`, va charger une carte avec un marqueur
positionné sur les Chutes du Niagara à partir de données en CSV :
https://umap.openstreetmap.fr/fr/map/?data=name%252Clatitude%252Clongitude%250AChutes%20du%20Niagara%252C43.084799710219066%252C-79.0693759918213&dataFormat=csv
Cet exemple, utilisant le paramètre `dataUrl`, va charger une carte avec les contours géographiques pour
la commune dArles, récupérés dynamiquement depuis
[geo.api.gouv.fr](https://geo.api.gouv.fr/) en GeoJSON :
https://umap.openstreetmap.fr/fr/map/?dataUrl=https%3A%2F%2Fgeo.api.gouv.fr%2Fcommunes%3Fcode%3D13004%26format%3Dgeojson%26geometry%3Dcontour

View file

@ -0,0 +1,5 @@
# Erreurs uMap et leurs significations
## Impossible de déterminer les colonnes de latitude et longitude. {: #error-latlon-columns }
Cela se produit lorsque vous utilisez un fichier CSV sans des noms de colonnes commençant explicitement par `lat` et `lon`.

View file

@ -0,0 +1,118 @@
# Questions Fréquemment Posées (FAQ)
## Quelle syntaxe est acceptée dans les champs de description ? {: #text-formatting }
* `*simple astérisque pour italique*` → *simple astérisque pour italique*
* `**double astérisque pour gras**` → **double astérisque pour gras**
* `# un dièse pour titre 1`<h1>un dièse pour titre 1</h1>
* `## deux dièses pour titre 2`<h2>deux dièses pour titre 2</h2>
* `### trois dièses pour titre 3`<h3>trois dièses pour titre 3</h3>
* `Lien simple : [[http://example.com]]` → Lien simple : [http://example.com](http://example.com)
* `Lien avec texte : [[http://exemple.fr|texte du lien]]` → Lien avec texte : [texte du lien](http://example.com)
* `--- pour un séparateur horizontal`<hr>
## Quels sont les raccourcis clavier? {: #keyboard-shortcuts}
Sur macOS, utliser `Cmd` à la place de `Ctrl`.
### Génériques
* `Ctrl+F` → ouvre le panneau de recherche
* `Ctrl+E` → bascule en mode édition
* `Escape` → ferme le panneau ou la fenêtre dialogue ouverte
* `Shift+drag` sur la carte → zoom vers cette zone
* `Shift+click` sur les boutons de zoom → zoom ou dézoom de trois niveaux
### En mode édition
* `Ctrl+E` → retour à laperçu
* `Ctrl+S` → sauvegarde la carte
* `Ctrl+Z` → annule tous les changements depuis la dernière sauvegarde
* `Ctrl+M` → ajouter un nouveau marqueur
* `Ctrl+P` → commence un nouveau polygone
* `Ctrl+L` → commence une nouvelle ligne
* `Ctrl+I` → ouvre le panneau dimport de données
* `Ctrl+O` → ouvre le panneau dimport et le navigateur de fichiers
* `Ctrl++` → zoom
* `Ctrl+-` → dézoome
* `Shift+click` sur un élément → ouvre le panneau dédition de cet élément
* `Ctrl+Shift+click` sur un élément → ouvre le panneau dédition du calque de cet élément
## Quelle syntaxe est acceptée dans les règles de formattage conditionnel ? {: #conditional-rules }
* `macolonne=impair` → cible les éléments dont la colonne `macolonne` vaut `impair`
* `macolonne!=impair` → cible les éléments dont la colonne `macolonne` est absente ou dont la valeur est différente de `impair`
* `macolonne>12` → cible les éléments dont la colonne `macolonne` est supérieur au nombre `12`
* `macolonne<12.34` → cible les éléments dont la colonne `macolonne` est inférieure au nombre `12.34`
* `macolonne=` → cible les éléments dont la colonne `macolonne` est vide
* `macolonne!=` → cible les éléments dont la colonne `macolonne` n'est pas vide
* `macolonne=true/false` → cible les éléments dont la colonne `macolonne` est explicitement `true` (ou `false`)
* `macolonne!=true/false` → cible les éléments dont la colonne `macolonne` est différente de `true` (ou `false`)
Quand la condition est vraie pour un élément donné, le style associé sera appliqué.
## Comment utiliser les variables ? {: #variables}
Utiliser une variable est aussi simple que `{variable}`.
Il est possible de définir une seconde variable de repli, dans le cas où la première ne serait pas définie: `{variable|repli}`
La valeur de repli peut être une chaîne, définie entre guillemets: `{variable|"repli"}`
Il est possible d'enchaîner plusieurs variables: `{variable|autrevariable|"une chaîne"}`
Il est possible d'utiliser une variable à l'intérieur d'une URL: `[[https://domain.org/?locale={locale}|Wikipedia]]`
Ou même comme chemin vers une image: `{{{variable}}}` (noter le triple `{}`).
### Variables disponibles pour les éléments de la carte:
Ces variables peuvent être utilisées dans le champ description d'un élément, ou comme gabarit manuel de popup.
Toute propriété de l'élément sera disponible, ainsi que:
- `{lat}/{lng}` → la position de l'élément (ou le centroïde dans le cas d'une ligne ou d'un polygone)
- `{alt}` → l'altitude (pour les points uniquement), si elle est définie dans les données
- `{locale}` → la langue sous la forme `fr` ou `fr_CA` quand une variante est utilisée
- `{lang}` → la langue sous la forme `fr` ou `fr-ca` quand une variante est utilisée
- `{measure}` → la longueur d'une ligne ou la surface d'un polygone
- `{gain}`/`{loss}` → la dénivelée positive/négative d'une ligne (seulement si elle contient les altitudes)
- `{rank}` → la rang d'un élément dans son calque
- `{layer}` → le nom du calque de l'élément
- `{zoom}` → le zoom actuel de la carte
### Variables disponibles dans les URL de données distantes:
- `{bbox}` → la bbox de la carte sous la forme `sud_ouest_lng,sud_ouest_lat,nord_est_lng,nord_est_lat`
- `{north}/{top}` → la latitude nord de la vue actuelle de la carte
- `{south}/{bottom}` → la latitude sud de la vue actuelle de la carte
- `{east}/{right}` → la longitude est de la vue actuelle de la carte
- `{west}/{left}` → la longitude ouest de la vue actuelle de la carte
- `{zoom}` → le zoom actuel de la carte
- `{lat}` → la latitude du centre actuel de la carte
- `{lng}` → la longitude du centre actuel de la carte
## Quels statuts peut avoir une carte ? {: #map-statuses}
### En accès
* **Brouillon (privé)**: Vous seul et votre équipe pouvez accéder à la carte.
* **Tout le monde (public)**: Tout le monde peut accéder à la carte, qui est visible dans la recherche et la page daccueil. La carte est indexée dans les moteurs de recherche (Google, etc.).
* **Quiconque a le lien**: La carte est visible par toutes les personnes qui en ont le lien. Elle nest pas indexée dans les moteurs de recherche.
* **Éditeurs et équipe seulement**: Vous seul et votre équipe pouvez accéder à la carte.
Les personnes affichant une carte à laquelle elles nont pas accès auront une page derreur 403.
### En édition
* **Propriétaire uniquement**: Vous seul pouvez modifier la carte.
* **Éditeurs et équipe seulement**: Vous seul et votre équipe pouvez modifier la carte.
* **Tout le monde**: Tout le monde peut modifier la carte, même les comptes anonymes.
Pour les cartes créées sans compte :
* **Modifiable seulement avec le lien dédition secret**: Seules les personnes avec un lien dédition pourront modifier la carte.
Ces réglages sont aussi disponibles pour chaque calque.

View file

@ -0,0 +1,228 @@
!!! abstract "Ce que nous allons apprendre"
- Manipuler une carte uMap
- Partager une carte uMap
- Connaître les principales fonctionnalités de uMap
## Procédons par étapes
### 1. Manipuler la carte
Vous avez reçu par mail un lien vers une carte uMap. Voici les
principaux éléments de la carte, et les opérations disponibles pour la
manipuler. La carte uMap représentée ci-dessous est disponible
[ici](http://umap.openstreetmap.fr/fr/map/festival-des-3-continents_26381).
![Description des différents éléments dune carte](../../static/tutoriels/1-je-consulte-une-carte-umap/anatomie_carte_umap_2021.jpg)
À droite de la carte et selon le choix de son auteur peut être affiché
un des deux panneaux suivants :
- **À propos** : le titre de la carte, une description éventuelle, et
la liste des calques
- **Visualiser les données** : lensemble des éléments de la carte,
répartis par calques (voir plus bas)
Le panneau À propos peut être affiché en cliquant sur le mot "À propos",
toujours visible en bas à droite de la carte.
Comme pour la plupart des cartes interactives vous pouvez :
- déplacer la carte par un glisser-déposer
- effectuer zooms avant et arrière avec les boutons + et -, ou avec la
molette de la souris
- sélectionner un élément de la carte par un clic de la souris :
apparaît alors une fenêtre *popup* affichant une description de
lélément. Celle-ci peut inclure du texte, une image, un lien vers
un site Web. Dans notre exemple la description de chaque cinéma
contient une image qui est un lien sur le site Web du cinéma.
**Remarque** : les boutons en haut à gauche de la carte, ainsi que la
barre de légende, peuvent ne pas être disponibles si lauteur de la
carte a choisi de les cacher.
Voyons maintenant quelques fonctionnalités propres à uMap.
### 2. Le sélecteur de calques
Les éléments dune carte umap peuvent être répartis dans plusieurs
calques, ou couches. Cela permet de structurer une carte, pour quelle
soit plus claire et plus facile à maintenir. Lutilisateur peut choisir
dafficher ou cacher chaque calque individuellement.
<shot-scraper
data-output="static/tutoriels/control-browse.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône du sélecteur de calque(s)."
data-selector=".umap-control-browse"
data-width="48"
data-height="48"
data-padding="5"
>Icône du sélecteur de calque(s).</shot-scraper>
Le sélecteur de calques est
licône visible en haut à gauche de la carte sous les boutons de zoom.
Lorsque vous positionnez la souris sur ce bouton, la liste des calques
apparaît, vous pouvez alors afficher ou cacher chaque calque, ou encore
centrer la carte sur le contenu dun calque.
![Une description des différentes parties dun sélecteur de calques](../../static/tutoriels/1-je-consulte-une-carte-umap/umap_sélecteur_calques.png)
Dans cet exemple le calque « Stations Bicloo » est caché :
cliquer sur loeil de ce calque permet de lafficher.
La liste des calques, avec éventuellement un descriptif de chaque
calque, est aussi visible dans la légende de la carte.
### 3. Le bouton Plus
<shot-scraper
data-output="static/tutoriels/control-more.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône pour afficher plus doptions."
data-width="46"
data-height="33"
data-selector=".umap-control-more"
data-padding="5"
>Icône pour afficher plus doptions.</shot-scraper>
Sous le sélecteur de carte est visible un bouton portant le texte « Plus ».
Un clic sur ce bouton fait apparaître une autre série de boutons.
<shot-scraper
data-output="static/tutoriels/control-search.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône du sélecteur de recherche."
data-selector=".leaflet-control-search"
data-width="48"
data-height="48"
data-padding="5"
>Permet de chercher une localité et de centrer la carte dessus :
saisissez le nom dune commune et tapez sur `Entrée`</shot-scraper>
<shot-scraper
data-output="static/tutoriels/control-fullscreen.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône de la mise en plein écran."
data-selector=".leaflet-control-fullscreen"
data-width="48"
data-height="48"
data-padding="5"
>Place le navigateur en mode plein écran, que lon peut quitter avec le même
bouton ou avec la touche `Échap` du clavier.</shot-scraper>
<shot-scraper
data-output="static/tutoriels/control-embed.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône du partage et de lintégration."
data-selector=".leaflet-control-embed"
data-width="48"
data-height="48"
data-padding="5"
>Permet de partager la carte ou den exporter les données.
Un panneau à droite de la carte est affiché, il est expliqué ci-dessous.</shot-scraper>
<shot-scraper
data-output="static/tutoriels/control-locate.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône de la géolocalisation."
data-selector=".leaflet-control-locate"
data-width="48"
data-height="48"
data-padding="5"
data-javascript="document.querySelector('.umap-control-more').click()"
>
Permet de vous géolocaliser, cest-à-dire centrer la carte sur votre position
actuelle. La géolocalisation exige de demander lautorisation de lutilisateur,
votre navigateur Web peut donc vous demander daccepter ou activer la géolocalisation.
</shot-scraper>
<shot-scraper
data-output="static/tutoriels/measure-control.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône de mesure."
data-selector=".leaflet-measure-control"
data-width="48"
data-height="48"
data-padding="5"
data-javascript="document.querySelector('.umap-control-more').click()"
>
Est un outil de mesure.
Activer cet outil a deux effets : dune part il affiche la longueur
des éléments linéaires de la carte et laire des éléments
surfaciques ; dautre part il vous permet de tracer sur la carte une
ligne dont la longueur est affichée. Cliquez à nouveau sur le bouton
pour désactiver cet outil.
</shot-scraper>
<shot-scraper
data-output="static/tutoriels/control-edit-in-osm.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône pour éditer les données OpenStreetMap."
data-selector=".leaflet-control-edit-in-osm"
data-width="48"
data-height="48"
data-padding="5"
data-javascript="document.querySelector('.umap-control-more').click()"
>
Est utile pour améliorer la carte OpenStreetMap - ce qui sort de lobjet de ce tutoriel.
</shot-scraper>
<shot-scraper
data-output="static/tutoriels/control-icon-layers.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône de changement de fond de carte."
data-selector=".leaflet-iconLayers"
data-width="48"
data-height="48"
data-padding="5"
data-javascript="document.querySelector('.umap-control-more').click()"
>
Affiche plusieurs fonds de carte au survol :
cliquer sur lun deux change le fond de la carte.</shot-scraper>
#### Partager la carte
Le panneau de partage de la carte offre trois possibilités. Votre choix
dépend de la manière dont vous souhaitez partager la carte :
- **URL courte** permet de copier une URL abrégée - équivalente à
lURL de la carte - que vous pouvez par exemple envoyer dans un
mail.
- **Embarquer la carte en iframe** permet dinclure la carte dans une
page Web : il suffit de copier le code HTML et de linsérer dans
celui de votre page Web. Cette possibilité est explorée en détails
dans le tutoriel
[Je publie ma carte et en contrôle laccès](7-publishing-and-permissions.md).
- **Télécharger les données** permet dobtenir les données visibles
sur la carte, dans différents formats. Cela peut vous permettre
dutiliser ces données avec un autre outil.
### 4. Visualiser les données
![umap_donnees.jpg](../../static/tutoriels/1-je-consulte-une-carte-umap/umap_donnees.jpg)
La liste des éléments de la carte peut être affichée avec un clic sur
**Visualiser les données**, accessible depuis le sélecteur de calques,
la barre de légende, ou encore en haut du panneau Légende.
Le panneau alors visible à droite montre lensemble des éléments de la
carte, organisés par calques. La loupe à gauche de chaque élément permet
dafficher sur la carte la popup décrivant cet élément. Le texte de
saisie au-dessus de la liste permet de rechercher un élément, en ne
montrant que ceux dont le nom contient le texte saisi.
## Faisons le point
Ce premier tutoriel nous a permis de découvrir les principales
fonctionnalités dune carte uMap. Nous allons maintenant
[apprendre à créer une telle carte](2-first-map.md).
??? info "Licence"
Travail initié par Antoine Riche sur [CartoCité](https://wiki.cartocite.fr/doku.php?id=umap:1_-_je_consulte_une_carte_umap) sous licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).

View file

@ -0,0 +1,408 @@
!!! abstract "Ce que nous allons apprendre"
- Créer un calque qui utilise des données distantes
- Produire une carte de chaleur (heatmap)
- Afficher des calques en fonction du niveau de zoom
- Afficher des données qui évoluent en temps réel
- Utiliser un portail *open data*
- Créditer la source des données pour respecter la licence
## Procédons par étapes
Jusquici toutes les cartes que nous avons créées montrent des données
gérées par uMap. Même lorsque nous avons utilisé les données dun
tableur dans le tutoriel précédent, ces données ont été *importées* sur
le serveur uMap, où elles sont *stockées*. Si ces données sont
modifiées, nous devons de nouveau les importer pour mettre à jour la
carte.
Dans ce tutoriel nous allons apprendre comment créer une carte qui
utilise des **données distantes**, cest-à-dire stockées sur un autre
serveur que le serveur uMap.
### 1. Jutilise des données distantes
Nous prenons pour ce tutoriel le thème des stations de vélo-partage à
Paris, les fameux Vélib, dont les données sont disponibles en open
data.
#### Utiliser un portail open data
Commençons par observer le jeu de données « Vélib - Localisation et
caractéristique des stations », disponible sur le portail open data de
la ville de Paris :
<https://opendata.paris.fr/explore/dataset/velib-emplacement-des-stations/>.
Longlet **Informations** explique que les données « sont actualisées
chaque minute selon la norme GBFS 1.0 ». Cette norme décrit plusieurs
fichiers, accessibles avec lAPI décrite dans longlet **API**, dont le
format nest pas compris par uMap.
Longlet **Tableau** montre les données : chaque station a un nom et une
capacité (nombre demplacements), ainsi quune position géographique.
Longlet **Export** propose plusieurs formats, dont les formats
**GeoJSON**, **KML** et **GPX**, tous trois compris par uMap. Nous
choisissons le [format GeoJSON](https://fr.wikipedia.org/wiki/GeoJSON),
qui permet dexploiter tous les attributs présents dans les données.
Une possibilité serait de télécharger le fichier puis de limporter dans
uMap, comme nous lavons fait dans le tuto précédent avec un fichier au
format CSV. Outre les manipulations, cela impliquerait de mettre à jour
ces données régulièrement. Nous allons plutôt configurer notre carte
pour accéder directement aux données mises à disposition par le portail
open data. Pour cela nous copions le lien vers le fichier : un clic
droit ouvre un menu contextuel qui permet de **copier le lien** vers le
fichier :
https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/velib-emplacement-des-stations/exports/geojson?lang=fr&timezone=Europe%2FBerlin
![umap-donnees-distantes.png](../../static/tutoriels/10-jintegre-des-donnees-distantes/umap-donnees-distantes.png)
#### Configurer les données distantes
Voyons maintenant comment utiliser ce lien dans uMap. Pour cela nous
créons un nouveau calque et ouvrons, dans les Propriétés du calque,
longlet **Données distantes**. Les informations à fournir sont les
suivantes :
- **URL** : nous collons ici le lien vers le fichier copié
précédemment.
- **Format** : nous devons sélectionner le format, ici **geojson**
- **Licence** : ODbL comme indiqué sur la page dexport du portail
open data
Le bouton **Vérifier lURL** permet de tester laccès au fichier depuis
uMap, et de vérifier que le format choisi correspond bien aux données.
Les données sont alors affichées sur la carte.
#### Proxy ou pas proxy ?
Si cela ne fonctionne pas (uMap affiche un bandeau qui indique «
Problème dans la réponse du serveur »), il est probable que le serveur
sur lequel le fichier est stocké nautorise pas laccès au fichier
depuis un service tiers.
!!! note
Il sagit du mécanisme CORS, décrit dans larticle
Wikipédia [Cross-origin ressource
sharing](https://fr.wikipedia.org/wiki/Cross-origin_resource_sharing).
uMap permet de contourner cette contrainte en faisant transiter le
fichier par le serveur uMap, grâce à loption **Avec proxy** quil
convient alors dactiver. Cette option est associée au menu déroulant
**Cacher la requête avec proxy**, qui permet au serveur uMap de
conserver le fichier afin de ne pas le récupérer à chaque affichage de
la carte. La durée la plus longue (1 jour) serait ici adaptée.
#### Au sujet de la licence
Le fichier des emplacements de stations Vélib est publié sous la
[licence ODbL](https://opendatacommons.org/licenses/odbl/). Celle-ci
exige que le producteur des données soit crédité lors de leur
utilisation. Les informations sur le portail open data indique que ce
producteur est « Autolib Velib Métropole ». Il convient donc de le citer
dans les **Crédits** de la carte, un onglet du menu *Propriétés de la
carte*.
![umap-geojson-properties.png](../../static/tutoriels/10-jintegre-des-donnees-distantes/umap-geojson-properties.png)
#### Afficher le nom et la capacité des stations
Afin dafficher le nom et la capacité de chaque station dans une
infobulle, nous devons déterminer les clefs permettant daccéder à ces
informations. Pour cela il nous faut observer le fichier GeoJSON.
Nous téléchargeons ce fichier depuis longlet Export du portail open
data, ou collons le lien copié précédemment dans la barre de navigation
du navigateur. Soit le fichier est directement affiché dans le
navigateur, soit il est téléchargé : une possibilité consiste alors à
louvrir dans un éditeur de texte, ou à le déposer dans la fenêtre du
navigateur.
Dans le bloc `properties` de chaque élément, nous observons plusieurs
associations clef-valeur : la propriété **name** contient le nom de la
station, **capacity** contient le nombre demplacements. Ces propriétés
correspondent à nos entêtes de colonnes dun fichier CSV (cf. tuto
précédent).
Nous pouvons alors configurer le **Gabarit de la popup** pour afficher
ces informations dans linfobulle de chaque station, comme nous lavons
vu dans le [tuto précédent](9-map-from-spreadsheet.md).
Par exemple :
# {name}
{capacity} emplacements
### 2. Je combine deux calques pour les mêmes données
Il y a beaucoup de stations Vélib et la carte est un peu dense à
léchelle de Paris. À cette échelle il serait plus intéressant davoir
une vue densemble de la répartition de loffre Vélib sur la capitale
et les communes voisines.
![umap-heatmap.png](../../static/tutoriels/10-jintegre-des-donnees-distantes/umap-heatmap.png)
#### Produire une carte de chaleur ou « Heatmap »
uMap permet de présenter les données dun calque sous plusieurs formes,
avec le menu déroulant **Type de calque** dans le menu *Propriétés du
calque*. Les différents types de calques sont :
- **Par défaut** : chaque donnée est affichée individuellement.
- **Avec cluster** : les points proches sont regroupés en un seul
cercle.
- **Heatmap** : les données sont représentées sous forme de *carte de
chaleur*.
- **Choroplèthe** : cet affichage est adapté aux polygones, et permet
de graduer leur couleur.
- **Cercles proportionnels** : cette représentation est adaptée pour
des valeurs quantitatives absolues (qui peuvent sajouter).
La surface des cercles est proportionnelle à la quantité.
Les types *Avec cluster* et *Heatmap* sont plutôt adaptés aux calques
contenant uniquement des points. Lorsquon choisit un de ces modes, un
onglet de configuration apparaît. Pour le type *Heatmap*, longlet
**Heatmap: paramètres** permet dajuster lintensité ou *chaleur* de
la carte (du bleu glacial au rouge brûlant), et de sélectionner une
propriété pour évaluer cette *chaleur*. Celle-ci doit correspondre à une
propriété de nos données contenant des valeurs numériques. Si aucune
propriété nest définie, chaque point a la même valeur et seule la
densité géographique des points influe sur la *heatmap*.
Notre fichier de stations contient justement la propriété `capacity`,
qui correspond au nombre demplacements de chaque station un bon
critère pour représenter loffre de vélos en libre-service. Quant au
**Rayon de heatmap**, un curseur permet de lajuster avec effet immédiat
sur la carte. Il est judicieux de tester ce rayon à différents niveaux
de zoom de la carte, afin que la carte révèle bien les données.
#### Dupliquer le calque
Le type daffichage dun calque sapplique quel que soit le niveau de
zoom. Or aux niveaux de zooms élevés, à léchelle du quartier, il est
plus intéressant de montrer les stations individuelles que la carte de
chaleur. Nous allons combiner les 2 représentations en créant 2 calques
qui utilisent les mêmes données, lun affichant les stations
individuelles, lautre sous forme de Heatmap. Lastuce consiste ensuite
à activer ou désactiver chaque calque en fonction du niveau de zoom.
Procédons par étapes :
1. Dupliquons notre calque avec lopération **Cloner** disponible dans
longlet **Opérations avancées** du panneau Propriétés du calque.
2. Le panneau Propriétés du nouveau calque est alors affiché :
renommons ce calque, par exemple « Heatmap stations Vélib ».
3. Changeons le type de calque pour **Heatmap**, longlet **Heatmap:
paramètres** apparaît.
4. Dans cet onglet, saisissons le nom de la propriété `capacity` et
ajustons le **rayon de heatmap** (une valeur autour de 30 fonctionne
bien pour ce jeu de données)
5. Dans longlet **Données distantes**, configurons le calque pour
quil saffiche **jusquau zoom** 15.
6. De la même manière, configurons le calque initial pour quil
saffiche **à partir du zoom** 15.
Nous faisons ici le choix de superposer, au zoom 15, la heatmap aux
stations individuelles. Cela produit une transition entre les 2 modes de
représentation, et permet de repérer les stations avec un grand nombre
demplacements.
Notez que nous navons pas eu besoin de préciser lURL des données
distantes et leur format : ces paramètres ont été conservés lors de la
duplication du calque.
### 3. Jutilise des données dynamiques
Un autre jeu de données du portail open data sintitule « Vélib - Vélos
et bornes - Disponibilité temps réel » :
<https://opendata.paris.fr/explore/dataset/velib-disponibilite-en-temps-reel/>.
Nous pouvons utiliser ces données *en temps réel* en réalité avec un
léger différé  pour alimenter notre carte uMap, et afficher le nombre
de places et de vélos disponibles. La procédure est la même que
ci-dessus, à une nuance près : loption **Dynamique** de longlet
**Données distantes** doit être activée. Elle indique à uMap de
récupérer les données à chaque affichage de la carte, cest-à-dire à
chaque fois que la carte est déplacée, zoomée ou dézoomée. Pour autant,
ces données ne seront pas automatiquement mises à jour par uMap à un
intervalle de temps régulier : cest à lutilisateur de rafraîchir la
page web ou de déplacer la carte.
![umap-api-properties.png](../../static/tutoriels/10-jintegre-des-donnees-distantes/umap-api-properties.png)
Il reste à
modifier notre gabarit de popup pour afficher les disponibilités en
temps réel. Pour identifier le nom des propriétés, nous pouvons utiliser
longlet **API** sur le portail open data : le panneau **Résultats**
montre un extrait des données avec toutes leurs propriétés. Ces
propriétés sont les mêmes que pour lexport GeoJSON. Voici un exemple
possible de gabarit de popup :
# {name}
{capacity} emplacements dont {numdocksavailable} libres
{numbikesavailable} vélos disponibles dont {ebike} VAE
![umap-api-parameters.png](../../static/tutoriels/10-jintegre-des-donnees-distantes/umap-api-parameters.png)
#### Filtrer les données à la source
Le panneau Résultats dans longlet **API** nous montre lexistence de la
propriété `is_installed`. Celle-ci permet de détecter des stations qui
ne sont pas en service, que nous ne souhaitons pas afficher sur notre
carte.
Le panneau **Requête pour lappel API** permet de générer une requête,
affichée sous ce panneau (**URL de lappel API**), et de visualiser les
données produites par cette requête dans le panneau **Résultats**. Il
permet également dajouter des paramètres à la requête, pour filtrer les
données produites. Le paramètre **refine** permet de filtrer les données
en fonction de la valeur dune ou plusieurs propriétés. Si nous
indiquons `is_installed` pour le nom de la propriété et `NON` pour la
valeur, nous pouvons voir le nombre de stations qui ne sont pas en
service, et que nous ne voulons pas intégrer à notre carte.
Les données produites à laide cet onglet **API** sont au format GBFS,
qui nest pas connu de uMap. Les requêtes dexport au format GeoJSON
acceptent les mêmes paramètres. Pour produire les données filtrées au
format GeoJSON, nous devons donc éditer la requête *à la main*.
Procédons par étapes *un peu geek* :
1. Saisir `is_installed` et `OUI` dans le champ **refine**
2. Supprimer la valeur du champ `limit`, car nous ne voulons pas
*limiter* la réponse de la requête à 20 stations.
3. Observons la requête générée :
`/api/explore/v2.1/catalog/datasets/velib-disponibilite-en-temps-reel/records?refine=is_installed%3AOUI`,
elle se compose de 3 sections :
- lURL de base, jusquau dernier caractère **`/`**
- le **endpoint** `records` suivi du caractère **`?`**
- le paramètre `refine=is_installed%3AOUI` (`%3A` est l*encodage*
du caractère **`:`**)
4. Prenons la requête générée pour lexport GeoJSON :
`https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/velib-disponibilite-en-temps-reel/exports/geojson?lang=fr&timezone=Europe%2FBerlin`,
elle se compose des mêmes sections :
- lURL de base :
`https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/velib-disponibilite-en-temps-reel/exports/`
- le endpoint `geojson?`
- la liste de paramètres `lang=fr&timezone=Europe%2FBerlin` (`%2F`
est lencodage du caractère **`&`** qui permet de séparer
plusieurs paramètres)
5. Nous pouvons combiner lURL et le endpoint de la requête GeoJSON,
suivi du paramètre `refine=is_installed%3AOUI` (les paramètres
`lang` et `timezone` ne sont ici pas utiles) :
`https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/velib-disponibilite-en-temps-reel/exports/geojson?refine=is_installed%3AOUI`
Utiliser cette requête comme URL des données distantes de notre calque
**Stations Vélib** permet de nafficher que les stations en service.
Notez que pouvons aussi utiliser le paramètre `exclude` pour exclure les
stations dont la propriété `is_installed` a la valeur `NON`. Nous
pouvons utiliser ce même mécanisme pour exclure les stations qui nont
aucun vélo disponible :
https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/velib-disponibilite-en-temps-reel/exports/geojson?exclude=is_installed%3ANON&exclude=numbikesavailable%3A0
### 4. Jinjecte des paramètres dans la requête
uMap permet dinjecter dans une requête des paramètres, avec la syntaxe
`{paramX}`. Ces paramètres dépendent de létat de la carte au moment de
lenvoi de la requête :
- les coordonnées du centre de la carte : {lat} et {lng}
- la *bounding_box* de la carte : {bbox} ou {west}, {south}, {east} et
{north}
- le niveau de zoom : {zoom}
Le portail open data peut prendre en compte certains de ces paramètres
pour affiner la requête. Notre objectif est ici de récupérer la
disponibilité des stations se trouvant **dans la partie visible de la
carte**, cest-à-dire dans la *bounding_box*. Cela permet de réduire le
volume de données transférées, et de les afficher plus rapidement.
#### Jutilise la console dAPI de la plateforme open data
Longlet API du jeu de données permet daccéder à la **console dAPI
complète**. Nous choisissons, dans la section Dataset, le *endpoint*
**Export a dataset**.
![umap-api-console.png](../../static/tutoriels/10-jintegre-des-donnees-distantes/umap-api-console.png)
Apparaît alors un formulaire où nous pouvons renseigner les différents
paramètres :
- **dataset_id** est lidentifiant du jeu de données :
`velib-disponibilite-en-temps-reel`
- pour le **format** nous sélectionnons `geojson`
- nous pouvons à nouveau filtrer les stations en service avec le
paramètre **refine** : `is_installed:OUI`
![umap-api-console-dataset.png](../../static/tutoriels/10-jintegre-des-donnees-distantes/umap-api-console-dataset.png)
Définissons le paramètre **where** avec la fonction `in_bbox()` (voir la
[documentation
OpenDataSoft](https://help.opendatasoft.com/apis/ods-explore-v2/#section/ODSQL-predicates/in_bbox()))
et pour linstant des latitudes et longitudes fixes (quelque part à
Paris) :
![umap-api-console-bbox.png](../../static/tutoriels/10-jintegre-des-donnees-distantes/umap-api-console-bbox.png)
**coordonnees_geo** est le nom du champ contenant la géométrie dans les
données dorigine, que lon peut trouver en les exportant dans un format
autre que GeoJSON.
Testons maintenant que la requête fonctionne en cliquant sur **Execute**
: le code de réponse 200 indique que la requête a fonctionné, et il est
possible de télécharger le fichier résultant.
![umap-api-console-execute.png](../../static/tutoriels/10-jintegre-des-donnees-distantes/umap-api-console-execute.png)
#### Je dynamise la requête
Modifions maintenant notre requête *statique* (tous les paramètres sont
fixes) pour la rendre *dynamique*, en remplaçant les coordonnées de la
bounding_box par les paramètres qui seront injectés par uMap. Nous
nutilisons pas ici le paramètre `{bbox}`, car lordre des valeurs ne
correspond pas à celui attendu par lAPI open data. La fonction sécrit
alors :
in_bbox(coordonnees_geo,{south},{west},{north},{east})
ce qui donne avec lencodage :
in_bbox%28coordonnees_geo%2C{south}%2C{west}%2C{north}9%2C{east}%29
La requête encodée complète est donc :
https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/velib-disponibilite-en-temps-reel/exports/geojson?where=in_bbox%28coordonnees_geo%2C{south}%2C{west}%2C{north}9%2C{east}%29&limit=-1&refine=is_installed%3AOUI
Il ne reste plus quà utiliser cette requête comme URL pour nos données
distantes.
Notez quil nest pas nécessaire dutiliser la forme encodée, car uMap
procédera à lencodage. LURL peut donc être plus lisible :
https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/velib-disponibilite-en-temps-reel/exports/geojson?where=in_bbox(coordonnees_geo,{south},{west},{north},{east})&limit=-1&refine=is_installed:OUI
## Faisons le point
La carte produite pour ce tuto est visible ici :
<http://u.osmfr.org/m/1051915/>
Nous avons vu comment **exploiter des données open data** sans les
télécharger, ce qui permet que notre carte reste à jour (à condition
bien sûr que les données soient actualisées par leur producteur). Nous
avons également vu comment **optimiser la requête** en injectant la
*bounding box* de la partie visible de la carte.
Dautres sites mettent à disposition des données via une API, lenjeu
est alors de sapproprier la syntaxe des requêtes en lisant la
documentation et testant les requêtes.
??? info "Licence"
Travail initié par Antoine Riche sur [CartoCité](https://wiki.cartocite.fr/doku.php?id=umap:10_-_j_integre_des_donnees_distantes) sous licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).

View file

@ -0,0 +1,345 @@
!!! abstract "Ce que nous allons apprendre"
- Créer un calque utilisant des *données distantes* cest-à-dire non
stockées par uMap
- Utiliser une **requête Overpass** comme source de données distantes
- Utiliser une *requête dynamique* prenant en compte létendue visible
de la carte
- Contrôler laffichage des calques en fonction du niveau de zoom
## Procédons par étapes
Lobjectif de ce tutoriel est dexplorer les différentes manières
dafficher sur une carte uMap des données externes, ou distantes,
cest-à-dire des données qui ne sont pas stockées sur le serveur uMap.
Nous allons pour cela utiliser des données **OpenStreetMap**, que nous
allons extraire avec l[API
Overpass](https://wiki.openstreetmap.org/wiki/FR:Overpass_API/Overpass_QL).
Nous allons en quelques étapes créer une carte du vélo à Nantes,
montrant les stationnements ainsi que les locations en libre-service.
### 1. Je crée un calque affichant le résultat dune requête Overpass
Commençons par afficher les stations *Bicloo*, les locations de vélos en
libre-service à Nantes. Allons-y étape par étape :
1. produire et tester la requête Overpass avec Overpass Turbo
2. adapter la requête pour produire des données acceptées par uMap
3. exporter la requête
4. créer un calque uMap utilisant cette requête
#### Créer la requête Overpass
Le site [Overpass Turbo](http://overpass-turbo.eu/) propose un assistant
qui facilite la rédaction dune requête. Activez lassistant et
saisissez le texte suivant, qui permet dextraire les locations de vélo
situées sur la commune de Nantes :
amenity=bicycle_rental in Nantes
Cliquez sur **Construire et exécuter la requête** : la requête est créée
dans léditeur à gauche de la carte, puis le résultat est affiché sur la
carte.
![overpass_turbo_assistant.jpg](../../static/tutoriels/11-je-valorise-les-donnees-openstreetmap-avec-overpass-et-umap/overpass_turbo_assistant.jpg)
#### Adapter la requête pour uMap
Avant dexporter la requête nous devons ladapter. Lassistant Overpass
Turbo produit des requêtes dont le résultat est au format JSON. uMap
sait lire des données dans plusieurs formats, dont le format GeoJSON,
mais pas le format JSON produit par Overpass. Par contre uMap comprend
très bien le format XML selon la syntaxe OSM (OpenStreetMap).
Pour que la requête produise des données au format XML/OSM, il suffit de
modifier dans léditeur de requête la clause **`[out:json]`** par
**`[out:xml]`**. Vous pouvez à nouveau exécuter la requête et observer
la différence de format dans longlet **Données** qui montre le résultat
de la requête.
![overpass_turbo_format_xml.jpg](../../static/tutoriels/11-je-valorise-les-donnees-openstreetmap-avec-overpass-et-umap/overpass_turbo_format_xml.jpg)
#### Exporter la requête Overpass
Exportez la requête en cliquant sur **Exporter** : un panneau saffiche.
Ouvrez longlet **Requête** et cliquez sur **compact** à droite de
**Overpass QL**. Un nouvel onglet intitulé **Overpass API Converted
Query** apparaît. Faites un **clic droit** sur la ligne soulignée en
bleu, et choisir **Copier ladresse du lien** (avec Mozilla Firefox) :
lURL de la requête est copié dans le presse-papier.
![overpass_turbo_exporter.jpg](../../static/tutoriels/11-je-valorise-les-donnees-openstreetmap-avec-overpass-et-umap/overpass_turbo_exporter.jpg)
#### Utiliser la requête dans uMap
![umap_requete_overpass_url.png](../../static/tutoriels/11-je-valorise-les-donnees-openstreetmap-avec-overpass-et-umap/umap_requete_overpass_url.png)
Dans un nouvelle carte uMap, créez un calque et ouvrez longlet
**Données distantes**. Collez dans la case URL le contenu du
presse-papier et sélectionez le format **osm**, qui correspond au format
XML dans Overpass.
Notez que lURL est *encodée* pour pouvoir être utilisée comme requête
HTTP : les caractères spéciaux comme `"` sont convertis en `%22`. Ne les
modifiez pas !
Vous pouvez configurer le calque comme cela a été décrit dans les
tutoriels précédents.
![umap_overpass_infobulle.jpg](../../static/tutoriels/11-je-valorise-les-donnees-openstreetmap-avec-overpass-et-umap/umap_overpass_infobulle.jpg)
De la même façon que les valeurs dun tableur peuvent être affichées dans les
infobulles (voir [cette section](9-map-from-spreadsheet.md)
du tutoriel précédent), vous pouvez afficher dans les infobulles les
*tags* OpenStreetMap. Les tags disponibles sont visibles dans longlet
Données sur Overpass Turbo.
Par exemple le gabarit suivant permet dafficher des infobulles comme
celle de droite.
# {name}
{capacity} emplacements
Carte bancaire : {payment:credit_cards}
{note}
### 2. Jaffiche les parkings à vélo efficacement
Ajoutons à notre carte les parkings à vélo. La requête Overpass pour
obtenir les parkings à vélos de Nantes est semblable à celle utilisée
pour les locations, et peut être créée avec lassistant :
`amenity=bicycle_parking in Nantes`.
![overpass_turbo_export_geojson.png](../../static/tutoriels/11-je-valorise-les-donnees-openstreetmap-avec-overpass-et-umap/overpass_turbo_export_geojson.png)
Lexécution de cette requête prend près de 5 secondes. Ce délai est trop
long pour une carte *interactive*. Aussi plutôt que dexécuter le
requête lors de laffichage de la carte nous préférons extraire les
données et les importer dans uMap.
#### Importer des données statiques
Dans Overpass Turbo, cliquez sur **Exporter**, sélectionnez longlet
**Données** puis cliquez sur **Download/copy as GeoJSON**. Cette
opération convertit le résultat de la requête dans le format GeoJSON (un
format standard pour transférer des données géographiques sur internet)
et crée un fichier nommé `export.geojson` dans le dossier
`Téléchargements` de votre ordinateur.
Dans la carte uMap importez le fichier ainsi produit dans un nouveau
calque (voir [cette section](9-map-from-spreadsheet.md) du tutoriel précédent).
Les parkings à vélos sont affichés mais la carte
perd en fluidité et ne réagit pas immédiatement lorsquon zoome ou la
déplace. Cela est dû au nombre élevé de marqueurs affichés sur la carte
(plus de 1600).
#### Afficher une carte de densité
![umap_heatmap.png](../../static/tutoriels/11-je-valorise-les-donnees-openstreetmap-avec-overpass-et-umap/umap_heatmap.png)
Une possibilité pour
contourner ce problème est dafficher les marqueurs sous forme de
clusters, ou de carte de chaleur (heatmap), aussi appelée carte de
densité. Nous choisissons la seconde option qui permet de prendre en
compte le nombre de places de chaque parking, stocké dans le tag
`capacity`.
Ainsi la carte montrera non pas le nombre de parkings à vélos mais le
nombre de places de stationnement (dans OpenStreetMap un seul parking à
vélo peut représenter un grand nombre d*appuis-vélos*).
Dans les propriétés du calque, sélectionnez le Type de calque
**Heatmap**.
Ensuite, dans longlet **Propriétés avancées** saisissez `capacity` dans
le champ **Propriété optionnelle à utiliser pour calculter lintensité
de la heatmap**. Enfin vous pouvez ajuster lintensité de la couleur en
modifiant la **Valeur de rayon pour la heatmap**.
La carte gagne en fluidité, mais lutilisation dune *heatmap* ne permet
pas didentifier lemplacement précis des parkings à vélos. Létape
suivante propose une solution pour résoudre cette inconvénient.
### 3. Jaffiche un calque en fonction du niveau de zoom
Lorsque les données dun calque sont ***distantes*** (cest-à-dire
**non** stockées sur le serveur uMap), il est possible de contrôler
laffichage de ces données en fonction du niveau de zoom. Il faut pour
cela déposer le fichier de données sur un serveur et déterminer lURL de
ce fichier.
#### Utiliser un fichier stocké sur un serveur
![umap_donnees_distantes_wordpress.png](../../static/tutoriels/11-je-valorise-les-donnees-openstreetmap-avec-overpass-et-umap/umap_donnees_distantes_wordpress.png)
Si vous disposez dun accès FTP à un serveur, cela ne pose pas de
difficulté. Si vous avez accès au *back office* dun CMS comme
Wordpress, vous pouvez probablement y déposer un fichier. Prenons
lexemple de Wordpress.
Par sécurité Wordpress ne permet pas de déposer un fichier au format
JSON. Il se fie pour cela à lextension du nom de fichier, il est donc
possible de contourner cette contrainte en renommant le fichier.
Procédons par étapes.
1. renommez le fichier `export.geojson` produit plus haut en
`parkings-velos-nantes.txt`
2. dans le *back office* Wordpress, ajoutez un **Média** et
sélectionnez le fichier ainsi renommé
3. affichez les détails du fichier et copiez son **Adresse Web**, de la
forme
`http://monsite.fr/wp-content/uploads/2018/01/parkings-velos-nantes.txt`
4. créez un nouveau calque uMap et collez cette adresse Web dans le
champ **URL** de longlet **Données distantes**
5. sélectionnez le format **geojson**
6. précisez la licence qui sapplique aux données : **ODbL 1.0**
puisquil sagit de données OpenStreetMap
7. activez loption **Avec proxy** en bas de cet onglet : cela autorise
le navigateur Web à accéder à un fichier stocké sur un serveur autre
que le serveur uMap
8. enregistrez les modifications de la carte
#### Combiner deux calques utilisant le même fichier
Pour associer fluidité de la carte et affichage de chaque parking nous
allons associer deux calques utilisant les mêmes données :
- jusquau niveau de zoom 16, un calque montrant la capacité de
stationnement sous forme de *heatmap*
- à partir du niveau de zoom 16, un calque montrant les parkings à
vélo sous forme de marqueurs
À nouveau procédons par étapes.
1. éditez le calque créé précedemment et dans longlet **Données
distantes** saisissez la valeur **16** dans le champ **Jusquau
zoom**
2. dupliquez le calque avec laction **Cloner** de longlet **Actions
avancées** : ainsi le nouveau calque est déjà configuré pour
utiliser le fichier placé sur le seveur
3. sélectionnez le **Type de calque** par défaut pour le nouveau calque
4. dans longlet **Données distantes** saisissez la valeur **16** dans
le champ **À partir du zoom**
![umap_heatmap_et_infobulle.jpg](../../static/tutoriels/11-je-valorise-les-donnees-openstreetmap-avec-overpass-et-umap/umap_heatmap_et_infobulle.jpg)
Enfin vous pouvez renommer le nouveau calque, configurer le type de
marqueur, et définir le gabarit de popup, par exemple :
# {capacity} emplacements
Type : {bicycle_parking}
Couvert : {covered}
Limage à droite montre un extrait de la carte au niveau de zoom 16,
auquel nous avons choisi dafficher les deux calques.
### 4. Jutilise une requête dynamique
Utiliser des données extraites plutôt quune requête présente un
inconvénient : la mise à jour des données sur OpenStreetMap nest pas
répercutée sur notre carte. Pour pallier à cela nous vous proposons de
modifier le calque montrant les parkings à vélos sous forme de
marqueurs, de sorte quil utilise une requête dynamique.
Une **requête dynamique** permet d*injecter* dans la requête des
*variables* relatives à létat actuel de la carte uMap. Nous allons
utiliser une requête qui sapplique sur la seule partie visible de la
carte, définie par un rectangle (ou *bounding box*). Cette requête
sexécutera à chaque zoom ou déplacement de la carte (doù le terme
*dynamique*) et récupérera les parkings à vélos à lintérieur de ce
rectangle.
#### Simplifier la requête Overpass
!!! note
Pour faciliter lopération nous commençons par
simplifier la requête Overpass. Les points importants sont :
1. placer la clause **`[bbox:{{bbox}}]`** en entête de requête pour que
ce paramètre ne soit présent quune seule fois
2. remplacer la production du résultat par la clause **`out center;`**
qui permet de convertir chaque *way* (fermé ou pas) en un point
[out:xml][bbox:{{bbox}}];
(
node["amenity"="bicycle_parking"];
way["amenity"="bicycle_parking"];
);
out center;
#### Adapter et exporter la requête
![requete_dynamique.png](../../static/tutoriels/11-je-valorise-les-donnees-openstreetmap-avec-overpass-et-umap/requete_dynamique.png)
Lopération est délicate, et exige sang froid et concentration :
1. remplacez `{{box}}` par `{south},{west},{north},{east}` : il sagit
de 4 variables quuMap remplacera, lors de lexécution de la
requête, par les valeurs définissant lemprise de la carte.
2. exportez la requête en utilisant loption **download/copy as
standalone query** : un fichier texte est produit et téléchargé.
3. ouvrez le fichier dans un éditeur de texte et ajoutez en début de
ligne la base de lURL permettant dexécuter une requête Overpass :
`http://overpass-api.de/api/interpreter?data=`
4. copiez la requête modifiée et collez le texte dans le champ URL de
longlet **Données distantes**
5. activez loption **Dynamique** et définissez le zoom à partir duquel
le calque est affiché
6. selon le serveur Overpass utilisé, loption **Avec
proxy** doit être activée ou désactivée (voir ci-dessous)
Par commodité la requête modifiée est reprise ci-dessous, où elle peut
être copiée par un triple-clic :
http://overpass-api.de/api/interpreter?data=[out:xml][bbox:{south},{west},{north},{east}];(node["amenity"="bicycle_parking"];way["amenity"="bicycle_parking"];);out center;
!!! note
Nhésitez pas à utiliser un autre serveur Overpass en
libre service, dont la liste est disponible dans les **Paramètres
généraux** de Overpass Turbo, par exemple
`https://overpass.kumi.systems/`. Attention ce dernier exige
d**activer** loption **Avec proxy**, alors que le serveur
`http://overpass-api.de/` nécessite que loption soit **désactivée**.
!!! note
Nutilisez pas la variable {bbox} car elle sera
remplacée par des coordonnées dont lordre (W,S,N,E) nest pas celui
attendu par Overpass (S,W,N,E) !
Vous pouvez manipuler ci-dessous la carte produite par lensemble de ce
tutoriel. Zoomez jusquà ce que les parkings à vélos apparaissent et
déplacez la carte pour constater laspect dynamique des requêtes.
<iframe width="100%" height="400px" frameBorder="0" src="https://umap.openstreetmap.fr/fr/map/le-velo-a-nantes_189194?scaleControl=false&miniMap=false&scrollWheelZoom=false&zoomControl=true&allowEdit=false&moreControl=false&searchControl=null&tilelayersControl=null&embedControl=null&datalayersControl=false&onLoadPanel=undefined&captionBar=false"></iframe><p><a href="http://umap.openstreetmap.fr/fr/map/le-velo-a-nantes_189194">Voir en plein écran</a></p>
## Faisons le point
Nous avons vu comment créer une carte montrant les données OpenStreetMap
à jour, à laide de requêtes Overpass. Seule la couche montrant la
densité des stationnements sous forme de *heatmap* nécessitera de
renouveler lextraction des données de temps en temps.
!!! note
Les serveurs Overpass utilisés dans ce tutoriel sont
des serveurs en libre service mis à disposition gracieusement. Ces
serveurs sont très sollicités aussi il convient de les utiliser avec
modération.
Si vous produisez une carte destinée à un grand nombre de consultations,
préférez lutilisation de données statiques, importées dans uMap ou
stockées sur un serveur. Merci !
Si vous utilisez Github, ce [court
tutoriel](https://hackmd.io/OkwpRqQ7QXC3p8C0jfTUGQ?view) en anglais
explique comment utiliser un *workflow* pour exécuter une requête
Overpass et placer le résultat en cache.
??? info "Licence"
Travail initié par Antoine Riche sur [CartoCité](https://wiki.cartocite.fr/doku.php?id=umap:11_-_je_valorise_les_donnees_openstreetmap_avec_umap) sous licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).

View file

@ -0,0 +1,141 @@
!!! abstract "Ce que nous allons apprendre"
- Créer un gabarit Grist compatible uMap
- Géocoder des adresses (:fontawesome-solid-landmark-flag: pour les agents publics seulement)
- Rendre un document Grist public
- Lier le CSV de Grist avec un calque uMap
Un [un film tutoriel](https://tube.numerique.gouv.fr/w/kya6m1aFtgDcy2LMkgUBya?start=12s)
a été créé pour montrer le déroulé de ce tutoriel.
## 1. Créer un gabarit Grist compatible uMap
!!! osm-instance "Pour le grand public, les associations…"
Rendez-vous sur le [site officiel de Grist](https://www.getgrist.com/) ou votre propre instance.
!!! french-instance "Pour les agents publics"
Rendez-vous sur le site Grist agents publics via
[La Suite Numérique](https://lasuite.numerique.gouv.fr/services/grist).
Créer un nouveau document vide :
![Interface pour créer un nouveau document Grist.](../../static/tutoriels/grist-new-document.png)
Ajouter les colonnes nécessaires, plus au moins ces trois colonnes : `Adresse`, `Latitude`, `Longitude`.
![Interface dun nouveau document Grist vide.](../../static/tutoriels/grist-empty-document.png)
!!! warning
Attention, il faut mettre les colonnes `Latitude` et `Longitude` en type `Texte` :
![Interface pour renseigner le type des colonnes.](../../static/tutoriels/grist-column-type-text.png)
## 2. Géocoder des adresses (:fontawesome-solid-landmark-flag: pour les agents publics seulement)
!!! french-instance "Pour les agents publics"
Cette conversion nest accessible quaux agents publics, elle consiste
à convertir automatiquement les adresses en coordonnées géographiques
(latitude, longitude). Si vous avez déjà ces informations dans votre
document, vous pouvez passer à létape 3 ci-dessous.
Il faut maintenant ajouter loutil de géocodage développé par lANCT.
Pour ça, cliquer sur « Ajouter une vue à la page » :
![Interface pour créer une vue Grist.](../../static/tutoriels/grist-empty-view.png)
Puis choisir `Custom`, sélectionner le nom de la table dans la source des données
(ici « Table1 »), et aussi sélectionner la table dans `Select by` :
![Interface pour créer une vue custom Grist.](../../static/tutoriels/grist-custom-view.png)
Dans la colonne de droite, si on est sur linstance Grist de lANCT,
choisir « Geocodeur » dans la liste déroulante,
sinon choisir `Custom URL` et ajouter lURL suivante:
<https://betagouv.github.io/grist-custom-widgets-fr-admin/geocode>
Dans le panneau de droite, sélectionner les colonnes permettant de connecter
loutil à notre tableau :
![Interface pour associer les colonnes sur une vue Grist.](../../static/tutoriels/grist-columns-view.png)
La colonne `Adresse` comme source, puis bien référence les colonnes `Latitude` et `Longitude`.
On peut optionnellement ajouter une colonne `Adresse normalisée` (dans le tableur)
et la référencer ici, dans ce cas le géocodeur affichera ladresse quil a trouvé.
Ça permet un contrôle de plus.
Renseigner ensuite une ou plusieurs lignes de données,
en essayant davoir une adresse aussi précise que possible :
![Interface pour convertir via une vue Grist.](../../static/tutoriels/grist-conversion-view.png)
Puis cliquer sur « Traitement spécifique » pour ne traiter
que la ligne sélectionnée, ou bien sur « Traitement global »
pour traiter toutes les lignes du document.
![Interface pour convertir via une vue Grist (résultat).](../../static/tutoriels/grist-conversion-view-result.png)
## 3. Rendre un document Grist public
Il faut ensuite rendre le document Grist public pour pouvoir ensuite le référencer côté uMap.
Pour ça, aller dans « Gérer les utilisateurs » :
![Interface pour gérer les utilisateurs dans Grist.](../../static/tutoriels/grist-user-management.png)
Puis activer laccès public :
![Interface pour ouvrir les permissions dans Grist.](../../static/tutoriels/grist-permissions-management.png)
## 4. Lier le CSV de Grist avec un calque uMap
Pour copier lURL quon va indiquer côté uMap, cest ici
(clic droit « enregistrer le lien ») :
![Interface pour copier le lien vers lexport CSV dans Grist.](../../static/tutoriels/grist-download-csv.png)
Le lien devrait ressembler à quelque chose comme ça :
https://grist.incubateur.net/o/docs/api/docs/4McELEs6kBpQAkmzupHy9F/download/csv?viewSection=1&tableId=Table1&activeSortSpec=%5B%5D&filters=%5B%5D&linkingFilter=%7B%22filters%22%3A%7B%7D%2C%22operations%22%3A%7B%7D%7D
Maintenant, créer une carte sur uMap et ajouter un calque :
![Interface pour ajouter un calque dans uMap.](../../static/tutoriels/grist-umap-newlayer.png)
![Interface pour ajouter un calque dans uMap avec un nom.](../../static/tutoriels/grist-umap-newlayer-name.png)
Dans « Données distantes », ajouter lURL de Grist et choisir le format `CSV` :
![Interface pour ajouter un calque dans uMap avec une URL.](../../static/tutoriels/grist-umap-newlayer-url.png)
Pour une meilleure expérience utilisateurs, vous pouvez choisir
loption `Proxy` avec un cache de la bonne durée selon la fréquence
de mise à jour des données dans Grist :
![Interface pour ajouter un calque dans uMap avec un proxy.](../../static/tutoriels/grist-umap-newlayer-proxy.png)
Pour améliorer l'intégration des données, allez dans les paramètres avancés
de la carte, puis dans les propriétés par défaut et :
- ajouter `Nom` comme clé pour le libellé, le filtre et la recherche
- ajouter `Catégorie` pour générer des filtres automatiques
![Interface pour ajouter un calque avec des filtres dans uMap.](../../static/tutoriels/grist-umap-newlayer-advanced.png)
Et voilà !
![Interface de la carte finale dans uMap.](../../static/tutoriels/grist-umap-result.png)

View file

@ -0,0 +1,235 @@
!!! abstract "Ce que nous allons apprendre"
- distinguer le mode édition du mode consultation
- identifier les étapes nécessaires pour créer une carte
- produire une première carte et la diffuser !
## Procédons par étapes
Lobjet de notre première carte est simple : positionner un ou plusieurs
lieux (domicile, vacances, travail, etc.). Procédons par étapes.
### 1. Le mode édition
!!! osm-instance "Pour le grand public, les associations…"
Rendez-vous sur linstance uMap dOSM <https://umap.openstreetmap.fr/>
!!! french-instance "Pour les agents publics"
Rendez-vous sur le site uMap agents publics <https://umap.incubateur.anct.gouv.fr/>
et connectez-vous en haut à gauche. La connexion utilise ProConnect.
<shot-scraper
data-output="static/tutoriels/create-map.png"
data-url="https://umap.openstreetmap.fr/fr/"
data-alt="Bouton de création dune carte depuis laccueil."
data-width="176"
data-height="119"
data-selector=".button.button-primary"
data-padding="5"
>Bouton de création dune carte depuis laccueil.</shot-scraper>
Apparaît alors sur votre navigateur une carte qui se présente ainsi :
![umap_edition.jpg](../../static/tutoriels/2-je-cree-ma-premiere-carte-umap/umap_edition.jpg)
Nous retrouvons à gauche les boutons disponibles lors de la
[consultation dune carte](1-browsing-a-map.md).
Plusieurs éléments visibles au-dessus et à droite de la carte sont
visibles uniquement lorsque lon crée ou modifie une carte, cest-à-dire
dans le *mode édition* :
- le **nom de la carte** en haut à gauche
- les boutons **Annuler les modifications** et **Enregistrer** en haut à droite
- à droite une série de 3 boutons permettant dajouter des éléments à
la carte : marqueurs, lignes et polygones
- en-dessous une série de 7 boutons permettant de configurer la carte
### 2. Nommer la carte
Une carte doit porter un nom qui renseigne sur ce que représente la carte.
Pour définir le nom de la carte, cliquez sur le bouton
**Modifier le nom ou la légende** ou plus simplement sur `Carte sans nom` dans
le bandeau dentête :
<shot-scraper
data-output="static/tutoriels/modify-name.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton dédition du nom de la carte."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.umap-control-caption"
data-padding="5"
>Bouton dédition du nom de la carte.</shot-scraper>
Un panneau apparaît sur la droite de la carte, il contient en haut un
champ de saisie pour le **nom** de la carte, qui contient le texte
`Carte sans nom` : placez le curseur dans ce champ, supprimez le texte
existant et saisissez le nom de votre carte, par exemple `Mon domicile`.
<shot-scraper
data-output="static/tutoriels/modify-name-panel.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Panneau dédition du nom de la carte."
data-width="410"
data-height="382"
data-selector=".panel.right"
data-padding="5"
data-javascript="document.querySelector('button.map-name').click()"
>Panneau dédition du nom de la carte.</shot-scraper>
Notez que le nom en haut à gauche de la carte est immédiatement modifié.
Vous pouvez également saisir un texte plus long dans le champ
**description**, qui apparaîtra dans le panneau de légende - nous y
reviendrons.
Maintenant, sauvegardez la carte avec le bouton **Enregistrer** : un
texte est affiché en haut de la carte, comme celui ci-dessous :
#### Pour le grand public sur l'instance OSM
<shot-scraper
data-output="static/tutoriels/create-map-alert.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Message dalerte contenant le lien dédition."
data-width="790"
data-height="226"
data-selector='umap-alert-creation [role="dialog"]'
>Message dalerte contenant le lien dédition.</shot-scraper>
Ce texte explique que vous venez de créer une carte **anonyme** et vous
donne un lien (une URL) pour pouvoir modifier la carte. En effet la
carte que vous avez créée nest associée à aucun compte, et **uMap**
considère que seules les personnes ayant ce *lien secret* peuvent la
modifier. Vous devez donc conserver ce lien si vous souhaitez pouvoir
modifier la carte ou saisir votre adresse de courriel pour le recevoir.
Nous verrons dans [le prochain tutoriel](3-create-account.md)
comment créer son catalogue de cartes en utilisant un compte, il nest alors pas
nécessaire de conserver de lien secret.
#### Pour les agents publics sur linstance qui leur est dédiée
Sils ne se sont pas connectés avant de créer leur carte, le message est différent :
![Le lien vers la connexion MonComptePro](../../static/tutoriels/proconnect-connexion.png)
Il nest pas possible denregistrer les modifications apportées à une carte anonyme sur cette instance.
### 3. Ajouter un marqueur
Commencez par déplacer et zoomer la carte pour visualiser lendroit
précis de votre domicile, lieu de vacances ou de travail.
Cliquez ensuite sur le bouton **Ajouter un marqueur**.
<shot-scraper
data-output="static/tutoriels/draw-marker.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton dajout de marqueur."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.umap-draw-marker"
data-padding="5"
>Bouton dajout de marqueur.</shot-scraper>
Le curseur prend la forme dun signe
`+` : déplacez le sur le lieu que vous voulez *marquer* et cliquez avec
le bouton gauche de la souris : un *marqueur bleu* et carré est créé à
cet endroit et un panneau apparaît à droite.
![Un marqueur uMap.](../../static/tutoriels/2-je-cree-ma-premiere-carte-umap/umap_marqueur.jpg)
Ce panneau vous permet
dassocier un nom et une description au marqueur :
- le nom sera affiché au survol du marqueur par la souris
- le nom et la description seront visibles dans une fenêtre dite
*popup* qui apparaîtra lors dun clic sur le marqueur.
Nous verrons plus loin lutilité des calques, et comment modifier les
propriétés du marqueur : forme, couleur, pictogramme, etc.
Répétez lopération pour ajouter les marqueurs que vous jugez utiles à
votre carte.
### 4. Définir lemprise de la carte
Il est important de définir lemprise initiale de la carte, cest-à-dire
la partie du planisphère qui sera affichée lors de la consultation de la
carte.
Cette emprise doit inclure votre marqueur et permettre de situer la
carte. Il convient de trouver un compromis entre un zoom trop éloigné et
un zoom trop rapproché. Le bon compromis dépend essentiellement du
contenu de la carte : la majorité des marqueurs, lignes et polygones
doivent être visibles et utiliser au mieux létendue de la carte.
Vous pouvez aussi considérer le public de la carte : une carte expédiée
à votre voisin peut être très zoomée, une carte envoyée un correspondant
étranger doit permettre de reconnaître le pays où se trouve votre carte.
Pour définir
lemprise, déplacez et zoomez la carte afin dafficher lemprise
souhaitée puis cliquez sur le bouton **Enregistrer le zoom et le centre
actuels**.
<shot-scraper
data-output="static/tutoriels/register-zoom.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton denregistrement du zoom et du centre actuels."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.update-map-extent"
data-padding="5"
>Bouton denregistrement du zoom et du centre actuels.</shot-scraper>
!!! note
uMap enregistre en réalité le centre et le niveau de
zoom. Selon la taille de la fenêtre où est affichée la carte, la partie
visible pourra varier. Il est utile de prévoir une marge autour du
contenu de la carte.
### 5. Enregistrer la carte
Toute modification de la carte doit être sauvegardée
en cliquant sur le bouton **Enregistrer** en haut à droite. Cette
opération enregistre toutes les modifications depuis la dernière
sauvegarde : vous pouvez donc réaliser plusieurs modifications à la
suite puis les enregistrer. A linverse le bouton **Annuler** permet de
supprimer toutes les modifications depuis la dernière sauvegarde.
!!! note
Lenregistrement se fait sur les serveurs dOpenStreetMap dans le cas
dune utilisation duMap OSM ou ceux de lANCT si uMap pour
les agents publics est utilisé.
Après avoir enregistré les modifications, le bouton Annuler est remplacé
par **Désactiver lédition**. Cela vous permet de quitter le mode
édition pour voir la carte en mode consultation. Vous pouvez alors
*tester* votre carte : cliquez sur le marqueur pour afficher la popup et
vérifier son nom et sa description.
**Félicitations !** Vous avez créé votre première carte uMap. Vous
pouvez la diffuser à votre entourage en copiant son URL dans la barre
dadresse du navigateur, ou en copiant son **URL courte** disponible
dans le menu **Partager** vu dans le tutoriel
[Naviguer dans une carte](1-browsing-a-map.md).
## Faisons le point
Votre première carte est créée, en quelques étapes. Lopération est
assez simple, mais le résultat est somme toute assez sommaire. Le
[prochain tutoriel](3-create-account.md) va nous
permettre de créer une jolie carte.
??? info "Licence"
Travail initié par Antoine Riche sur [CartoCité](https://wiki.cartocite.fr/doku.php?id=umap:2_-_je_cree_ma_premiere_carte_umap) sous licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).

View file

@ -0,0 +1,107 @@
!!! abstract "Ce que nous allons apprendre"
- utiliser un compte pour retrouver ses cartes
- créer une équipe
- partager une carte avec une équipe
## Procédons par étapes
Nous avons appris dans [le tutoriel précédent](2-first-map.md) comment créer une
carte anonyme contenant un marqueur. Nous allons à présent créer un compte et une équipe.
Nota : il ny a pas de carte anonyme sur
[linstance uMap pour les agents publics](https://umap.incubateur.anct.gouv.fr/fr/).
Au lieu de créer une carte anonyme, nous allons utiliser un compte pour
créer cette carte.
### 1. Utiliser un compte
**uMap** permet dassocier ses cartes à un compte. Cela présente plusieurs
avantages importants par rapport à la création de cartes anonymes :
- les cartes créées avec un compte constituent un catalogue permettant
daccéder facilement à ses cartes
- on peut modifier chaque carte du catalogue sans avoir besoin de
conserver un lien dédition
- on peut gérer ses cartes en équipe et afficher le nom de léquipe comme auteur
- pour les agents publics sur uMap ANCT : une fois connecté avec MonComptePro, on peut utiliser dautres outils en association avec uMap, comme Grist.
Le logiciel umap ne gère pas directement de comptes utilisateurs : la
gestion des comptes dépend de la configuration du logiciel.
#### Pour le grand public, les associations…
Sur <https://umap.openstreetmap.fr>, vous pouvez utiliser un compte que vous
avez ouvert sur un site Web au choix : OpenStreetMap, Github,
ou Bitbucket. Si vous navez aucun compte sur ces outils, cest le
moment de vous inscrire sur le site www.openstreetmap.org : cliquez
**Créer un compte** dans le coin supérieur droit et suivez les
instructions - une adresse mail vous sera demandée ([plus
dinfos](https://openstreetmap.fr/inscription-openstreetmap)).
![umap_header.png](../../static/tutoriels/3-jutilise-un-compte-et-cree-une-belle-carte/umap_header.png)
Cliquez sur **Connexion /
Créer un compte** puis sur le pictogramme correspondant au compte que
vous souhaitez utiliser. Apparaît alors la page de connexion du site :
saisissez le nom dutilisateur et le mot de passe. La page suivante vous
demande dautoriser lapplication uMap à utiliser ce compte : accordez
cet accès. Vous retrouvez alors la page daccueil de uMap, sur laquelle
le lien de connexion a laissé la place à un lien **Mes cartes** vous
permettant daccéder à lensemble des cartes créées avec ce compte.
![umap_connect.png](../../static/tutoriels/3-jutilise-un-compte-et-cree-une-belle-carte/umap_connect.png)
Notez lURL de la barre dadresse quand vous consultez votre catalogue
de cartes : celle-ci contient le nom de votre compte - par exemple
<https://umap.openstreetmap.fr/fr/user/cartocite/>. Vous pouvez
lutiliser pour accéder à votre catalogue de cartes, même sans être
connecté à votre compte : vous pouvez diffuser cette URL, les
récipiendaires ne pourront pas modifier vos cartes.
#### :fontawesome-solid-landmark-flag: Pour les agents publics
1. Se connectez à ProConnect : <https://moncomptepro.beta.gouv.fr/> <br>
Toute personne qui travaille pour un service public y a accès.
2. Créez un compte, lopération peut prendre quelques minutes.
3. Sur [le site uMap pour les agents publics](https://umap.incubateur.anct.gouv.fr/fr/),
cliquez sur `Me Connecter`.
On peut accéder à la page de création de compte ProConnect directement
depuis [uMap pour les agents publics](https://umap.incubateur.anct.gouv.fr/fr/).
Le tableau de bord souvre, il affiche lensemble des cartes que
vous créez ainsi que les équipes auxquelles vous participez.
!!! french-instance "Pour les agents publics"
Associer une carte à une équipe vous permet dafficher le nom de cette équipe au lieu du vôtre sur une carte (noms de votre commune, de votre service,…). Une équipe peut se composer dune seule personne.
### 2. Créer une équipe
Une fois connecté sur linstance uMap,
cliquer sur « Mon espace », puis « Mes équipes » :
![Lien vers longlet des équipes](../../static/tutoriels/my-teams.png)
Puis sur « Nouvelle équipe » et renseigner les informations
![Formulaire dédition des équipes](../../static/tutoriels/my-teams-form.png)
Lorsquun nouvel utilisateur est associé à une équipe,
il voit léquipe safficher sur son tableau de bord,
il accède à toutes les cartes qui sont partagées et il peut les modifier.
!!! note
Tous les membres dune équipe partagent les mêmes droits dédition sur une carte
qui est associée à une équipe. Une équipe peut être supprimée,
ou son nom modifié en un simple clic.
### 3. Partager une carte avec une équipe
Une fois léquipe créée, il reste encore à donner les droits de modification
dune carte à ses membres. Pour ce faire : ouvrez la carte,
puis sur cliquez sur « Editer » et cliquez en haut de page
à droite du titre sur « Visibilité : Définir qui peut voir et modifier la carte ».
![Panneau de permissions pour la sélection des équipes](../../static/tutoriels/my-teams-permissions.png)

View file

@ -0,0 +1,188 @@
!!! abstract "Ce que nous allons apprendre"
- Gérer son catalogue de cartes
- Choisir un fond de carte
- Sélectionner les options dinterface
## Procédons par étapes
### 1. Retrouver une carte
Vous souhaitez modifier une carte pour laméliorer ou la mettre à jour.
Si vous avez redémarré votre navigateur et à fortiori votre ordinateur,
la première chose à faire est de retrouver la carte ! Si vous avez créé
cette carte avec votre compte, comme nous lavons vu dans le tutoriel
[Créer un compte](3-create-account.md), afficher
une de vos cartes se fait en trois opérations simples :
1. connectez-vous à votre compte umap
2. affichez votre catalogue de cartes
3. cliquez sur le nom de la carte
<figure>
<img alt="Bouton dédition de la carte."
src="../../../static/tutoriels/edit-map.png"
width="110"
height="44">
<figcaption>Bouton dédition de la carte.</figcaption>
</figure>
La carte saffiche alors en mode consultation.
Cliquez sur le bouton avec le crayon en haut à droite de la carte pour
passer en mode édition : vous pouvez dès lors modifier la carte.
Noubliez pas de sauvegarder la carte une fois les modifications
terminées.
!!! note
Il peut être fastidieux de passer du mode édition au
mode consultation et vice-versa de façon répétée. Une astuce consiste à
utiliser pour la même carte deux onglets ou deux navigateurs, lun en
mode édition lautre en mode consultation. Vous devez tout de même
**enregistrer** la carte dans longlet en mode édition avant de
l**actualiser** (par exemple avec la touche F5) dans longlet en mode
consultation.
Vous pouvez retourner à votre catalogue de cartes à tout moment en
cliquant sur **Accueil** tout en bas à droite de la carte.
### 2. Changer le fond de carte
Nous avons vu dans le tutoriel [Naviguer dans une carte](1-browsing-a-map.md)
que plusieurs fonds de carte sont disponibles dans uMap.
Lorsque vous éditez une carte vous pouvez
choisir le fond de carte qui sera utilisé à laffichage de la carte.
<shot-scraper
data-output="static/tutoriels/map-tilelayers.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton de choix de fond de carte."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.update-map-tilelayers"
data-padding="5"
>Bouton de choix de fond de carte.</shot-scraper>
Cliquez sur le pictogramme `Changer le fond de carte` : un panneau à droite montre
une vingtaine de fonds de cartes. Il vous suffit de cliquer sur lun
deux : faites votre choix et noubliez pas denregistrer la
modification.
Le choix du fond de carte est une affaire de goût. Le contexte de la
carte peut vous aider à en choisir un plutôt quun autre, par exemple :
- les fonds **Outdoors**, **Landscape** ou **OpenTopoMap** montrent le
relief : judicieux pour une carte de randonnée
- **OpenCycleMap** montre les grands itinéraires cyclistes, comme les
EuroVélo (Côte Atlantique, Loire à Vélo…)
- **Positron**, **Toner** et **OSM-Monochrome** sont en noir et blanc
: vos marqueurs, lignes et polygones seront plus visibles
- le style **HOTOSM**, créé par le [groupe
humanitaire](http://wiki.openstreetmap.org/wiki/FR:Humanitarian_OSM_Team)
dOpenStreetMap, permet daller jusquà un niveau de zoom élevé
(niveau 20) : intéressant si létendue de votre carte couvre un
quartier ou votre jardin
!!! note
Tous les fonds de carte utilisés par uMap, à
lexception des images aériennes de lIGN, sont réalisés à partir des
données OpenStreetMap. Ils sont produits par des associations, des
entreprises ou des bénévoles qui les mettent gracieusement à
disposition.
Remarquez le texte affiché en bas à droite de la carte : il crédite les
auteurs du fond de carte, par exemple
`Map tiles by Stamen Design - Map Data © OpenStreetMap contributors`.
### 3. Choisir les options dinterface
Vous pouvez configurer les éléments de la carte mis à disposition des
utilisateurs qui consulteront votre carte. Vous pouvez par exemple
ajouter une mini-carte de situation ou une barre de légende, ou encore
décider quels boutons seront affichés.
<shot-scraper
data-output="static/tutoriels/map-settings.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton des options de la carte."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.update-map-settings"
data-padding="5"
>Bouton des options de la carte.</shot-scraper>
Pour cela, ouvrez dans
le menu **Propriétés avancées de la carte** longlet **Options dinterfaces**.
Vous pouvez activer ou désactiver une dizaine doptions dont voici la
signification.
Apparaît alors un long tableau de bord qui vous permet, pour chacun des
boutons sur la gauche de la carte, de contrôler leur visibilité :
- **toujours** indique que le bouton est toujours visible pour
lutilisateur
- **jamais** signifie que le bouton ne sera pas disponible
- **caché** signifie que le bouton nest accessible quaprès un clic
sur le bouton « Plus ».
Les boutons cachés ne seront bien sûr accessibles que si loption
`Voulez-vous afficher le bouton « Plus » ?`
(plus bas sur le tableau de bord) est activée.
<shot-scraper
data-output="static/tutoriels/control-more.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône pour afficher plus doptions."
data-width="46"
data-height="33"
data-selector=".umap-control-more"
data-padding="5"
>Exemple de bouton « Plus ».</shot-scraper>
La partie basse du tableau de bord ne concerne pas ces boutons mais
dautres éléments venant *habiller* la carte :
![umap_properties_bottom.jpg](../../static/tutoriels/4-je-modifie-et-personnalise-ma-carte/umap_properties_bottom.jpg)
Quelques remarques :
- si vous cachez les boutons de zoom **et** désactivez le zoom avec la
molette de la souris, les utilisateurs ne pourront ni zoomer ni
dézoomer … sauf à découvrir le menu accessible avec un clic droit
sur la carte.
- les boutons de navigation en bas des popups permettent de faire
défiler les éléments de la carte
### 4. Copier ou supprimer une carte
Tout en bas des **Propriétés de la cartes**, longlet **Options
avancées** propose deux opérations peu utilisées mais quil est bon de
connaître :
- **Supprimer** supprime la carte du serveur umap, ainsi que les
données qui y sont associées !
- **Cloner cette carte** effectue une copie de la carte et de ses
données. La nouvelle carte est ajoutée à votre catalogue.
Dans les deux cas un message vous demande de confirmer lopération.
## Faisons le point
Vous savez créer, modifier et personnaliser une carte.
Vous savez styliser vos marqueurs, lignes et polygones.
Enfin vous savez gérer votre catalogue de cartes.
Vous allez découvrir comment importer des données en « un clic »
issues de lopen data et gagner du temps par rapport au dessin de toutes les formes.
Une fois ces opérations maîtrisées, les tutoriels de niveau
intermédiaire vous apprendront à structurer vos cartes avec des calques
et enrichir le contenu de vos popups. Vous découvrirez également comment
publier une carte sur un site Web, et définir qui peut la voir et la
modifier.
??? info "Licence"
Travail initié par Antoine Riche sur [CartoCité](https://wiki.cartocite.fr/doku.php?id=umap:4_-_je_modifie_et_personnalise_ma_carte) sous licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).

View file

@ -0,0 +1,158 @@
!!! abstract "Ce que nous allons apprendre"
- Changer la forme, la couleur et le pictogramme dun marqueur
- Créer et modifier une ligne
- Contrôler laffichage des étiquettes
Voici comment réaliser une carte contenant de jolis marqueurs et des lignes
avec pour exemple la carte de nos vacances au
[Camping de la plage Goulien](https://www.openstreetmap.org/way/119055693)
sur la Presquîle de Crozon en Bretagne.
### 1. Créer un joli marqueur
Commençons par créer une carte : donnons-lui un nom, définissons une
emprise et ajoutons un marqueur à [lemplacement du
camping](http://www.openstreetmap.org/?mlat=48.2387&mlon=-4.5434#map=16/48.2387/-4.5434).
Nous avons vu dans [le tutoriel précédent](2-first-map.md) comment effectuer ces opérations.
![umap_marqueur_props.png](../../static/tutoriels/3-jutilise-un-compte-et-cree-une-belle-carte/umap_marqueur_props.png)
Ce gros marqueur bleu nest pas très explicite pour figurer un camping.
Remédions à cela. Dans le panneau latéral visible lorsquun marqueur est
sélectionné, le menu **Propriétés de la forme** permet de modifier
lapparence du marqueur :
- **Couleur** : cliquer sur `définir` permet de choisir une couleur.
Notez que vous pouvez définir une couleur par [son nom
CSS](http://www.w3schools.com/cssref/css_colors.asp) ou par son code
héxadécimal, que vous pouvez choisir par exemple avec ce [sélecteur
de couleurs](http://htmlcolorcodes.com/fr/selecteur-de-couleur/).
- **Forme de licône** : le choix `Par défaut` correspond au marqueur
actuel, les autres choix sont Cercle, Goutte et Épingle.
- **Image de licône** : cliquer sur `définir` pour choisir parmi une
centaine de pictogrammes. Notez que le picto nest affiché que pour
les formes dicônes `Par défaut` et `Goutte`.
Voici le marqueur obtenu avec les propriétés ci-contre :
![umap_camping.png](../../static/tutoriels/3-jutilise-un-compte-et-cree-une-belle-carte/umap_camping.png)
#### Modifier un marqueur
![umap_modifier_marqueur.png](../../static/tutoriels/3-jutilise-un-compte-et-cree-une-belle-carte/umap_modifier_marqueur.png)
Pour modifier un marqueur de la carte, plusieurs possibilités soffrent à vous :
- un clic sur le marqueur vous permet soit dafficher le panneau
dédition (stylo), soit de supprimer le marqueur (corbeille)
- **shift-clic** est un raccourci qui affiche directement le panneau
dédition
- un glisser-déposer vous permet de déplacer le marqueur sur la carte
### 2. Créer une ligne
Le premier jour de vacances nous allons en kayak de mer jusquà la
Pointe de Dinan à louest de la plage de Goulien. Traçons litinéraire
suivi.
<shot-scraper
data-output="static/tutoriels/draw-polyline.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton de dessin dune ligne."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.umap-draw-polyline"
data-padding="5"
>Bouton de dessin dune ligne.</shot-scraper>
Le bouton **Dessiner une ligne** permet de tracer, point par point,
une ligne constiutée de plusieurs segments.
Cliquez à nouveau sur le dernier point tracé pour
terminer la ligne : apparaît alors à droite un panneau permettant de
donner un nom et une description à la ligne, comme pour les marqueurs.
#### Modifier une ligne
A tout moment vous pouvez sélectionner une ligne en double-cliquant
dessus. Vous pouvez alors éditer ses propriétés dans le panneau latéral,
ou modifier son tracé sur la carte :
- **supprimer un point** de la ligne, matérialisé par un carré blanc,
en cliquant dessus
- **déplacer un point** par un glisser-déposer
- **insérer un point** en cliquant sur un carré gris se trouvant au
milieu de chaque segment
- **allonger la ligne** avec un Ctrl-Clic lorsque le curseur est placé
sur le premier ou dernier point
- **couper la ligne** en deux : Clic droit sur un point puis choisir
loption `Scinder la ligne`
![umap_ligne.jpg](../../static/tutoriels/3-jutilise-un-compte-et-cree-une-belle-carte/umap_ligne.jpg)
#### Propriétés dune ligne
![umap_ligne_props.png](../../static/tutoriels/3-jutilise-un-compte-et-cree-une-belle-carte/umap_ligne_props.png)
Les propriétés dune
ligne permettent de définir sa couleur et dautres paramètres
définissant son *style* :
- l**opacité** va de transparent à gauche à totalement opaque à
droite. Plus le trait est épais plus il peut être transparent.
- l**épaisseur** est définie en pixels, sa valeur par défaut est 3 :
glisser le curseur vers la droite pour un trait plus épais (qui sera
plus facile à sélectionner).
Les **propriétés avancées** permettent de :
- **simplifier** le tracé permet de réduire le nombre de points pour
ladapter au niveau de zoom. Il est en général inutile de simplifier
un tracé réalisé *à la main*.
- définir un **traitillé**, par une série de chiffres séparés par des
virgules : longueur (en pixels) visible, longueur invisible,
longueur visible, etc. Lépaisseur du trait doit être prise en
compte : plus les traits sont épais plus les intervalles doivent
être grands.
Voici le style de trait obtenu avec les propriétés ci-contre :
![umap_ligne_tirets.png](../../static/tutoriels/3-jutilise-un-compte-et-cree-une-belle-carte/umap_ligne_tirets.png)
### 3. Ajouter des étiquettes
![etiquettes.png](../../static/tutoriels/3-jutilise-un-compte-et-cree-une-belle-carte/etiquettes.png)
Pour aider lidentification des
différents éléments de notre carte, nous pouvons leur associer une
étiquette. Longlet **Options dinteraction** permet de contrôler
laffichage dune étiquette associée à chaque élément :
- **Afficher une étiquette** active son affichage, elle est alors
placée automatiquement
- **Direction de létiquette** vous permet de fixer la position, à
droite ou à gauche de lélément, ou encore au-dessus ou en-dessous
- **Afficher seulement au survol** de la souris est une option
intéressante si la carte est dense : afficher toutes les étiquettes
surchagerait la carte
- **Étiquette cliquable** permet dafficher linfobulle correspondante
si lutilisateur clique sur létiquette, et non seulement en cas de
clic sur la *géométrie* de lélément.
## Faisons le point
Notre deuxième carte est déjà plus intéressante que la première, et nous
savons la retrouver facilement. Nous avons vu comment créer, *styliser*
et modifier points et lignes. Nous navons pas traité ici des polygones,
qui représentent des surfaces. Certaines fonctionnalités propres aux
polygones méritent dêtre détaillées, ce que nous ferons dans le
tutoriel [Le cas des polygones](8-polygons.md).
Pour le moment voyons comment nous pouvons davantage
[personnaliser notre carte](4-customize-map.md).
??? info "Licence"
Travail initié par Antoine Riche sur [CartoCité](https://wiki.cartocite.fr/doku.php?id=umap:3_-_j_utilise_un_compte_et_cree_une_belle_carte) sous licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).

View file

@ -0,0 +1,221 @@
!!! abstract "Ce que nous allons apprendre"
- consulter des sources de données
- découvrir des exemples de cartes
- cloner une carte uMap
- cas pratique : utiliser un jeu de données placé sur data.gouv.fr
## Lopen data (données ouvertes)
Outre les données produites par ma communauté OpenStreetMap, accessibles sur [GeoDataMine](https://geodatamine.fr/) et dans [lassistant dimport de données de uMap](6-one-click-data-import.md), les ressources dopen data sont nombreuses et variées. En effet, les collectivités de plus de 3 500 habitants et les services publics doivent placer leurs données en open data conformément à la [Loi pour une République numérique](https://www.vie-publique.fr/eclairage/20301-loi-republique-numerique-7-octobre-2016-loi-lemaire-quels-changements). Le service public de la donnée organise leur publication sur [data.gouv.fr](https://www.data.gouv.fr/fr/) qui est un portail généraliste.
Il existe également des bases plus adaptées à des jeux de données, par exemple les archives, des données géographiques, socio-économiques… Les collectivités mettent parfois aussi directement leurs données à disposition sur leurs portails open data. Des éditeurs de solutions proposent également des bases de données.
## 1. Formats de données utilisés par uMap
### geojson
Ce format est utilisé pour des données de type point, ligne, chaîne de caractères, polygone.
Toutes les propriétés sont importées dans uMap.
❓ Usage très large dans uMap.
### gpx
Ce format ouvert permet léchange de coordonnées géographiques issues de GPS, points de cheminement (*waypoints*), traces (*tracks*) ou itinéraires (*routes*).
Propriétés importées dans uMap : `name`, `desc`. (format pour des itinéraires)
❓ Les fichiers gpx peuvent provenir denregistrements personnels, par exemple de traces recueillies randonnées.
### kml
Format propriétaire qui contient des coordonnées géographiques, balisage, styles pour représenter des points, des lignes et des polygones.
Propriétés importées dans uMap : `name`, `description`.
### csv
Cest un format texte ouvert représentant des données tabulaires sous forme de valeurs séparées par des virgules. Pour utiliser un fichier Excel, il faut dabord le convertir en `.csv`.
Propriétés importées dans uMap : virgule, tabulation ou point virgule pour séparer des valeurs. La projection SRS WGS84 est implicite. Seuls les points géométriques sont importés. Limportation se référera au titre dans les entêtes de colonnes de `lat` et `lon` au début de lentête, et est insensible à la casse (peu importe les majuscules ou minuscules). Toutes les autres colonnes sont importées en tant que propriétés.
❓ Usage très large dans uMap, aussi bien pour des données en *open data* que pour ses propres données.
### umap
Cest le format denregistrement dune carte, très utilisé par exemple pour cloner une carte sur linstance OSM et limporter sur linstance uMap pour les agents publics. uMap importe toutes les données de la carte, y compris les calques et les propriétés. Il sagit dun bon moyen de sauvegarder sa carte uMap.
❓ Voir plus loin, comment cloner une carte uMap.
Ainsi quosm et georss.
## 2. Sorienter sur data.gouv.fr
La plateforme [data.gouv.fr](https://www.data.gouv.fr/fr/) propose des données harmonisées, précise la date de mise à jour et permet de contacter ladministrateur qui a déposé le jeu de données. Il suffit dutiliser loutil de recherche pour préciser sa demande puis sélectionner le résultat voulu.
La principale difficulté : savoir quel jeu de données répondrait au besoin. Dans ce cas, il est conseillé de regarder aussi les « thématiques » et les « réutilisations » en bas de page daccueil.
## 3. Gallica ! les archives de la Bibliothèque Nationale de France
La [base Gallica](https://gallica.bnf.fr/accueil/fr/content/accueil-fr?mode=desktop) est particulièrement utile pour afficher dans uMap des images, des cartes postales, des fonds de cartes anciennes. Il nest pas obligatoire de télécharger lillustration, certaines cartes se contentent de placer le lien pour quelle saffiche :
### Vues de villes aux XVIe et XVIIe siècles
![Capture décran de la carte](../../static/tutoriels/find-data-villes.png)
[Lien vers la carte en ligne](https://umap.openstreetmap.fr/fr/map/vues-de-villes-aux-xvie-et-xviie-siecles_635544#7/46.241/-1.329){ .md-button }
Deux exemples utilisant un plan ancien comme fond, en plus des images anciennes qui saffichent en cliquant sur un pointeur :
### Photographies de Marseille 1862 à 1866 par A. Terris
![Capture décran de la carte](../../static/tutoriels/find-data-photos-marseille.png)
[Lien vers la carte en ligne](https://umap.openstreetmap.fr/nl/map/photographies-de-marseille-1862-a-1866-par-a-terri_277962#14/43.2909/5.3815){ .md-button }
### Metz 1872
![Capture décran de la carte](../../static/tutoriels/find-data-metz-1872.png)
[Lien vers la carte en ligne](https://umap.incubateur.anct.gouv.fr/fr/map/metz-1872_50#13/49.1201/6.1419){ .md-button }
Dans ces deux derniers cas, le fond de carte doit être « redressé » avant dêtre utilisé dans uMap comme [fond personnalisé](https://forum.openstreetmap.fr/t/integrer-un-fonds-de-carte-personnalise-sur-umap/19606).
## 4. Bases de données statistiques
uMap permet de représenter des données quantitatives par le biais de [cercles proportionnels](8-proportional-circles.md) ou de [cartes choroplèthes](10-embed-remote-data.md#produire-une-carte-de-chaleur-ou-heatmap) cest à dire des plages de couleurs.
L[INSEE](https://www.insee.fr/fr/accueil) et [Eurostat](https://ec.europa.eu/eurostat/fr/data/database) permettent de télécharger des fichiers statistiques généralistes.
Une fois un fichier enregistré, il faut vérifier le format des données et le modifier au besoin. Attention par exemple aux cellules fusionnées et aux espaces entre les séries de zéro.
## 5. Cloner une carte uMap
Pour utiliser les données dune carte sur un autre fond, en faire plusieurs versions, il suffit de cloner la carte.
Exemple de besoin : présenter sur un site Internet la même carte plusieurs fois, en diversifiant le centrage et les fonds de cartes. La même carte initiale fournit plusieurs vues provenant de clones.
!!! french-instance "Pour les agents publics"
Cette fonctionnalité permet également dimporter sur [linstance uMap agents publics](https://umap.incubateur.anct.gouv.fr/fr/) une carte réalisée sur une autre instance.
Voici les actions :
- sauvegardez la carte que vous souhaitez cloner
- créez une nouvelle carte - pour cloner la carte sur une nouvelle instance : connectez-vous à la nouvelle instance puis créez cette nouvelle carte et
- importez la carte.
Les deux cartes co-existent, une modification sur une carte nimpacte pas lautre carte. Si la carte est partagée sur un site Internet, il faut veiller à **mettre à jour le lien** en cas de changement dinstance.
### 1. Sauvegarder la carte
Cliquez à gauche sur « Partager et télécharger »
<shot-scraper
data-output="static/tutoriels/control-embed.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône du partage et de lintégration."
data-selector=".leaflet-control-embed"
data-width="48"
data-height="48"
data-padding="5"
>Permet de partager la carte ou den exporter les données.</shot-scraper>
puis une fois lécran latéral affiché :
![Capture décran du panneau de téléchargement de la carte](../../static/tutoriels/find-data-download.png)
Cliquez sur « Sauvegarde complète » en bas.
### 2. Créer une carte et importer le fichier
Quitter cet écran, créer une nouvelle carte puis cliquer à droite sur « Importer des données » puis une fois lécran latéral affiché :
![Capture décran du module dimport](../../static/tutoriels/find-data-import-umap.jpg)
Le format de limport reconnaît uMap et le précise.
Cliquez sur « Importer », puis enregistrez.
## 6. Cas pratique : utiliser un jeu de données placé sur data.gouv.fr
Pour un usage dans uMap, les fichiers doivent contenir les coordonnées géographiques des objets. Si le fichier choisi nen contient pas, voir [ici](12-display-grist-data.md#2-geocoder-des-adresses-pour-les-agents-publics-seulement) comment les ajouter (géocodage).
Voici les actions pour dresser la carte des arbres remarquables à Metz : rechercher les données, les importer dans uMap et les retravailler pour améliorer le placement des étiquettes.
### Rechercher les données
La plateforme ouverte des données publiques françaises recense des milliers de jeux de données. Rechercher « Arbres Metz » dans loutil de recherche.
Deux solutions pour utiliser ces données :
* récupérer le fichier au format json : il faudra mettre à jour la carte de temps en temps lorsque les données sources sont mises à jour. Bénéfice : une carte à jour à une date précise.
ou
* utiliser le lien vers les données : dans ce cas, la carte se mettra automatiquement à jour (suppression darbres coupés par exemple, ajout de nouveaux). Inconvénient : la carte est une carte au temps T, on ne conserve pas lhistorique dans ce cas.
![Capture décran du site datagouv](../../static/tutoriels/find-data-datagouv.jpg)
Vous avez le choix. Une fois le fichier téléchargé ou le lien copié, cliquer dans la carte sur uMap le bouton "Importer des données" dans la barre de droite puis dans le cadre au choix :
* Parcourir les fichiers téléchargés et choisir le fichier des arbres remarquables au format Geojson
ou
* Coller lURL stable dansla ligne prévue
![Capture décran du panneau dimport (1)](../../static/tutoriels/find-data-import-panel-1.png)
![Capture décran du panneau dimport (2)](../../static/tutoriels/find-data-import-panel-2.png)
Dans « Choisir le format des données » : sélectionner `Geojson`. Dans le cas où vous choisissez lURL stable, vous pouvez choisir `Associer au calque comme données distantes` et dans ce cas la carte se met automatiquement à jour si le fichier est modifié.
Choisir `Copier dans le calque` pour que la carte reste telle quelle à une date T.
La carte se centre automatiquement sur Metz et tous les arbres remarquables sont placés :
![Capture décran de la carte](../../static/tutoriels/find-data-screenshot-trees.png)
Les informations présentes dans le fichier sont répercutées et accessibles dans un tableau ou en cliquant sur chaque arbre.
### Modifier lapparence des pointeurs pour adapter à la charte dun site
Sélectionner le calque dans la barre de droite et modifier ses réglages en cliquant sur le petit stylo :
![Capture décran du panneau de visualisation](../../static/tutoriels/find-data-visualize-data.png)
Nom : Arbres remarquables (ou par exemple Feuillus ou Arbres de plus de 50 ans…), autant de possibilités que de calques et de couleurs. Puis cliquer sur les propriétés de la forme pour choisir la couleur et la forme du pointeur, mais aussi les options dinteraction : afficher une étiquette au survol par exemple.
![Capture décran de la carte et du panneau de personnalisation](../../static/tutoriels/find-data-trees-customisation.png)
### Afficher les noms des arbres au survol
Toutes les données affichables dans létiquette sont présentées dans les colonnes du tableau associé au calque. Cliquez sur lexplorateur de données à gauche puis sur le visuel "Éditer dans un tableau" (juste à gauche de la corbeille):
<shot-scraper
data-output="static/tutoriels/control-browse.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône du sélecteur de calque(s)."
data-selector=".umap-control-browse"
data-width="48"
data-height="48"
data-padding="5"
>Icône du sélecteur de calque(s).</shot-scraper>
Dans le cas du fichier des arbres remarquables de Metz, le nom des arbres est renseigné comme `nom_commun` et `nom_latin`. Or dans uMap, par défaut, les étiquettes qui saffichent utilisent `name`. Pour que le nom commun saffiche, il faut remplacer `name` par `nom_commun` à droite dans les « Propriétés avancées » (Panneau dinformation de ce calque):
![Capture décran de la carte et du panneau de personnalisation](../../static/tutoriels/find-data-trees-customisation-advanced.png)
Pour que létiquette saffiche seulement au survol, choisir `Caché` un peu plus bas dans « Afficher une étiquette ».
!!! note
- Pour sentraîner, ouvrir les réglages, la carte peut être clonée ici :
https://umap.incubateur.anct.gouv.fr/fr/map/diaporama-des-arbres-remarquables-a-metz_528
- Pour cloner une carte, voir lexplication au point 5 plus haut.

View file

@ -0,0 +1,212 @@
!!! abstract "Ce que nous allons apprendre"
- Formater le texte des infobulles
- Ajouter un lien vers une page Web
- Insérer une photo et définir sa taille
- Intégrer une vidéo
## Procédons par étapes
<shot-scraper
data-output="static/tutoriels/help-box.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Panneau daide au formatage."
data-caption="Panneau daide au formatage."
data-selector=".umap-dialog"
data-width="510"
data-height="326"
data-padding="5"
data-javascript="
new Promise((takeShot) => {
document.querySelector('.leaflet-toolbar-icon.umap-control-caption').click();
setTimeout(() => {
document.querySelector('.umap-field-description .umap-help-button').click();
setTimeout(() => {
takeShot();
}, 1000);
}, 1000);
});
"
>Panneau daide au formatage.</shot-scraper>
Nous avons vu dans
le tutoriel [Naviguer dans une carte](1-browsing-a-map.md)
comment associer un nom et
une description à un élément de la carte. Ce nom et cette description
sont affichés dans une infobulle (*popup* en anglais) qui apparaît
lorsquon clique sur lélément.
Le contenu de cette infobulle peut être enrichi de plusieurs manières :
- en formatant le texte : titres, caractères gras et italiques
- en insérant un ou plusieurs liens vers une page Web
- en insérant une image ou une vidéo
Mettre en forme une infobulle nécessite dutiliser une syntaxe décrite
en cliquant sur le point dinterrogation visible à droite de lintitulé
**description**, reprise ci-contre.
### 1. Mettre en forme le texte dune infobulle
![miseenforme-resultat.png](../../static/tutoriels/5-je-cree-des-infobulles-multimedia/miseenforme-resultat.png)
Un exemple
vaut mieux que de longues explications : la description ci-dessous
produit linfobulle à droite.
![miseenforme-syntaxe.png](../../static/tutoriels/5-je-cree-des-infobulles-multimedia/miseenforme-syntaxe.png)
Notez les points suivants :
- une ligne commençant par `#` définit une ligne titre, un **caractère
espace** doit être placé entre le caractère `#` et le texte du titre
- une **zone vide** est ajoutée automatiquement en-dessous de chaque
titre
- il est possible de combiner caractères gras et italiques en
utilisant `***`
- le triangle en bas à gauche du champ de saisie permet de lagrandir
### 2. Ajouter un lien vers une page Web
Reprenons [la carte de nos vacances à
Crozon](http://u.osmfr.org/m/64936/). Au 3ème jour de vacances un fort
vent dOuest nous amène à aller dans lAnse de Morgat, bien abritée du
vent. Nous décidons de documenter cette visite sur la carte. Nous
ajoutons un marqueur sur la carte, puis découvrons avec intérêt
larticle Wikipédia sur Morgat : <https://fr.wikipedia.org/wiki/Morgat>.
Pour
ajouter à notre infobulle **un lien vers larticle**, il suffit de
copier ladresse de la page Web, affichée dans la barre dadresse du
navigateur, et de la placer entre **double-crochets**. Linfobulle à
droite correspond à la description ci-dessous :
Morgat est un ancien village de pêcheurs.
Article Wikipédia :
[[https://fr.wikipedia.org/wiki/Morgat]]
![miseenforme-liensimple.png](../../static/tutoriels/5-je-cree-des-infobulles-multimedia/miseenforme-liensimple.png)
Nous pouvons aussi **cacher ladresse du lien** et la remplacer par un
texte. Pour cela il suffit de faire suivre ladresse dune barre
verticale (AltGr + 6 sur un clavier français) et du texte :
Morgat est un ancien village de pêcheurs.
[[https://fr.wikipedia.org/wiki/Morgat|Article Wikipédia]]
![miseenforme-lienavectexte.png](../../static/tutoriels/5-je-cree-des-infobulles-multimedia/miseenforme-lienavectexte.png)
Cette forme est particulièrement utile pour les adresses longues.
### 3. Insérer une image
Umap ne permet pas de stocker des images, mais sait afficher des photos
publiées sur un serveur Web.
![miseenforme-photo.png](../../static/tutoriels/5-je-cree-des-infobulles-multimedia/miseenforme-photo.png)
Larticle
Wikipédia montre une belle photo de lAnse de Morgat. Les photos
visibles dans Wikipédia sont sous licence libre *[Creative
Commons](http://creativecommons.fr/)*. Cela signifie que lauteur·rice
de la photo renonce à ses droits dauteur : nous pouvons donc utiliser
cette photo. Pour cela nous devons :
1. copier l**adressse de limage** (cette opération est accessible
dans le menu affiché par un clic droit sur la photo)
2. placer cette adresse entre double accolades :
Morgat est un ancien village de pêcheurs.
{{https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Morgat_8006.jpg/330px-Morgat_8006.jpg}}
[[https://fr.wikipedia.org/wiki/Morgat|Article Wikipédia]]
#### Afficher vos photos
Si vous disposez dun serveur vous pouvez lutiliser stocker vos photos.
#### Modifier la taille dune image
La taille de la photo est
restreinte par la taille de linfobulle. Pour **agrandir une image**
vous devez utiliser une infobulle plus grande. Pour cela ouvrez longlet
`Options dinteraction`, cliquez sur `Définir` en face de
`Style de popup` puis choisissez **Nom et description (large)**.
![styledepopup.png](../../static/tutoriels/5-je-cree-des-infobulles-multimedia/styledepopup.png)
A linverse vous pouvez **réduire la taille dune image**, en faisant
suivre le lien vers la photo dune barre verticale et dun nombre qui
définit la **largeur en pixels** de limage, par exemple :
{{https://framapic.org/xxx/yyy.jpg|400}}
#### Associer une image à un lien vers une page Web
Il est possible dintégrer une image qui ouvre une page Web lorsque
lutilisateur clique dessus. Cela consiste en fait à créer un lien vers
une page Web (syntaxe `[[lien|texte]]`), en utilisant en guise de texte
le lien vers une image (syntaxe `{{image}}`). Exemple avec le site et le
logo Framasoft :
[[https://framasoft.org/|{{https://framasoft.org/nav/img/logo.png}}]]
### 4. Insérer une vidéo
Insérer une vidéo est plus complexe. En effet le navigateur Web a besoin
dun lecteur pour afficher une vidéo. Les sites de partage de vidéos
comme Youtube, DailyMotion ou encore [Framatube](https://framatube.org/)
de Framasoft, proposent pour chaque vidéo un lien qui permet de
lintégrer dans une autre page Web en utilisant une *iframe*.
Nous trouvons sur YouTube une [vidéo des Grottes marines de
Morgat](https://www.youtube.com/watch?v=sKvjd8bGsZM), qui se visitent en
bateau. Pour intégrer cette vidéo à une infobulle, suivez les étapes :
1. ouvrez longlet **Intégrer** visible *sous* la vidéo
2. copiez ladresse après `src=` (sans les guillemets), notez quelle
comporte le terme *embed* qui signifie *intégrer*
![partageyoutube.png](../../static/tutoriels/5-je-cree-des-infobulles-multimedia/partageyoutube.png)
3. coller cette adresse entre **triple accolades** dans linfobulle :
{{{https://www.youtube.com/embed/sKvjd8bGsZM}}}
4. pour un meilleur résultat utilisez un style de popup large, notez la
hauteur et la largeur et définissez la taille de l*iframe* avec les
mêmes valeurs :
{{{https://www.youtube.com/embed/sKvjd8bGsZM|315*560}}}
Voici le résultat, la vidéo peut être directement visionnée dans notre
infobulle :
![miseenforme-video.png](../../static/tutoriels/5-je-cree-des-infobulles-multimedia/miseenforme-video.png)
## Faisons le point
Nous avons à présent tous les éléments pour produire une belle carte,
avec des éléments stylisés et les infobulles qui les décrivent avec un
contenu mis en forme et multimédia : liens, photos et vidéos.
La syntaxe permettant de mettre en forme une infobulle est certes un peu
complexe, mais la bonne nouvelle est que cette même syntaxe peut être
utilisée sur uMap en deux autres endroits :
- la description de la carte, définie dans le menu **Éditer les
paramètres**
- le descriptif des **calques**, que nous découvrons dans le
[prochain tutoriel](6-handling-datalayers.md).
??? info "Licence"
Travail initié par Antoine Riche sur [CartoCité](https://wiki.cartocite.fr/doku.php?id=umap:5_-_je_cree_des_infobulles_multimedia) sous licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).

View file

@ -0,0 +1,185 @@
!!! abstract "Ce que nous allons apprendre"
- Créer des calques et organiser le contenu de la carte
- Définir les propriétés dun calque
- Gérer les calques dune carte
## Procédons par étapes
### 1. Créer un calque
Reprenons la [carte du Festival des 3 continents](http://u.osmfr.org/m/26381/)
vu dans le tutoriel [Naviguer dans une carte](1-browsing-a-map.md). Les
données de cette carte sont organisées en plusieurs calques :
- les cinémas : marqueurs jaunes
- les autres lieux du festival : marqueurs bruns
- les lignes de transport en commun
- les stations de vélo-partage Bicloo
![umap_calques_gauche_droite.jpg](../../static/tutoriels/6-je-structure-ma-carte-avec-des-calques/umap_calques_gauche_droite.jpg)
Le sélecteur de calques permet à lutilisateur de zoomer sur lensemble
des éléments dun calque, de le masquer ou lafficher à loisir. Chaque
calque peut être décrit dans le panneau latéral de la carte. Organiser
les éléments dune carte est donc pratique pour consulter la carte, nous
verrons aussi que cela permet de faciliter sa création.
<shot-scraper
data-output="static/tutoriels/control-browse.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône du sélecteur de calque(s)."
data-selector=".umap-control-browse"
data-width="48"
data-height="48"
data-padding="5"
>Icône du sélecteur de calque(s).</shot-scraper>
Le menu **Gérer les calques**, disponible en mode édition, affiche la liste des calques
existants et permet de créer un nouveau calque. Cliquez ensuite sur
**Ajouter un calque**, apparaît alors le panneau **Propriétés du calque**
du nouveau calque.
![](../../static/tutoriels/6-je-structure-ma-carte-avec-des-calques/umap_layer_props_top.png)
Saisissez le nom du calque et une description de la catégorie déléments
auxquels vous destinez ce calque : ils seront affichés dans le panneau
**À propos**. Ci-dessous le résultat correspondant aux propriétés
saisies à droite.
![umap_layer_description.png](../../static/tutoriels/6-je-structure-ma-carte-avec-des-calques/umap_layer_description.png)
!!! note
Sautez une ligne en début de description
pour celle-ci apparaisse **sous** le nom du calque et non à côté dans le
panneau À propos.
### 2. Organiser le contenu de la carte
Lorsque vous
ajoutez un élément à la carte, en haut du panneau de propriétés de
lélément se trouve un **menu déroulant** qui vous permet de choisir le
calque où placer lélément.
![umap_layer_select.png](../../static/tutoriels/6-je-structure-ma-carte-avec-des-calques/umap_layer_select.png)
Il est bien sûr possible de changer le calque dun élément déjà créé.
Nhésitez donc pas, lorsque votre carte senrichit, à *restructurer* son
contenu en plusieurs couches.
#### Comment définir les calques dune carte ?
Il ny a pas de méthode établie pour définir les calques : cela dépend
vraiment des données placées sur la carte et de lexpérience du
cartographe. Voici, pour quelques thématiques de cartes et à titre
dexemples, une proposition de listes de calques :
- tourisme : hébergement, restauration, transports, musées, points de
vue…
- logistique dun festival : accès, scènes, restauration, sanitaires,
déchets, postes de secours, réseau électrique…
- événement à portée internationale : un ou plusieurs calques par
langue
- structures dun réseau : structures porteuses, adhérentes au réseau,
partenaires
- projet daménagement : les différents scénarios ou variantes du
projet
Nous verrons plus loin que lorsquune carte est intégrée à une page Web,
il est possible de créer plusieurs présentations de la même carte, et de
sélectionner pour chacune quels calques sont visibles. Vous pourrez
donc, à partir dune même carte uMap, diffuser plusieurs cartes dont le
contenu est adapté au public visé par chacune des cartes.
Ainsi pour une carte multi-lingues vous pourrez diffuser la carte en
différentes langues en sélectionnant le ou les calques de chaque langue.
Pour lexemple dune carte de la logistique dun festival, vous pourrez
ainsi diffuser une carte vers le public (accès, scènes, restauration,
sanitaires), une autre vers les équipes techniques (sanitaires, déchets,
réseau électrique), une troisième vers la sécurtié civile (accès, postes
de secours, réseau électrique), etc.
### 3. Définir les propriétés dun calque
Un intérêt majeur de lutilisation des calques est la possibilité de
définir, pour chaque calque, le **style par défaut** des éléments qui
seront ajoutés au calque. Vous éviterez ainsi la tâche fastidieuse de
définir un à un le style de chaque élément et la carte sera nettement
plus *lisible* car homogène. Surtout, si vous décidez que les cinémas
doivent être affichés non plus en jaune mais en rouge, vous ne ferez la
modification quune seule fois pour lensemble du calque et non pour
chacun des éléments.
![](../../static/tutoriels/6-je-structure-ma-carte-avec-des-calques/umap_layer_edit.png)
Dans le
panneau de gestion des calques cliquez sur le crayon pour éditer les
propriétés du calque. Les onglets **Propriétés de la forme** et
**Propriétés avancées** vous permettent de définir les styles par défaut
du calque. Vous retrouvez les mêmes propriétés que celles utilisées dans
le tutoriel [Créer un compte](3-create-account.md).
![umap_legende.png](../../static/tutoriels/6-je-structure-ma-carte-avec-des-calques/umap_legende.png)
Toutes les propriétés, qui
sappliquent aux marqueurs, aux lignes et aux polygones, sont ici
disponibles. Un calque peut en effet contenir indifféremment les trois
types déléments, vous pouvez donc définir les propriétés par défaut
pour chaque catégorie.
Une remarque toutefois : vous pouvez définir **une et une seule
couleur**, qui sapplique à tous les éléments quel que soit leur type.
Cette contrainte vise à créer une carte lisible, en associant une
couleur à chaque calque. Cette couleur apparaît en **légende du panneau
À propos**, comme dans lexemple ci-contre.
### 4. Gérer les calques
Revenons au **panneau de gestion des calques**. Nous avons vu comment
créer un nouveau calque et définir ses propriétés.
![](../../static/tutoriels/6-je-structure-ma-carte-avec-des-calques/umap_gestion_calques.png)
Le carré à droite permet de modifier l**ordre des calques** par un
glisser-déposer. Lordre ainsi défini est celui que lon retrouve dans
le sélecteur de calques et dans la liste des calques du panneau À
Propos.
Lœil permet de cacher/afficher un calque et la loupe de zoomer sur son
contenu, comme pour le sélecteur de calques. Nous verrons plus loin
lutilité d**Éditer dans un tableau** le contenu du calque. **Supprimer
le calque** vous demandera de confirmer lopération, cette opération
supprimant le contenu du calque.
![](../../static/tutoriels/6-je-structure-ma-carte-avec-des-calques/umap_layer_advanced.png)
Enfin, longlet **Actions avancées** permet de vider un calque : cela
supprime ses données mais conserve le calque. Vous pouvez également
**cloner un calque** : cette opération copie le contenu et les
propriétés du calque.
!!! note
Pour créer rapidement un nouveau calque dont
les propriétés sont proches dun calque existant, vous pouvez cloner le
calque initial puis renommer le clone et vider son contenu.
## Faisons le point
Sil est un peu abstrait, le concept de calques est un des atouts de
uMap. Au moment de créer un carte, prenez le temps de définir les
principaux calques en anticipant les usages et les mises à jours de la
carte. Familiarisez-vous à lutilisation des calques, nous en ferons une
grande utilisation dans le niveau avancé.
Nous avons à présent tous les éléments pour réaliser des cartes
structurées, utiles, dont le contenu est riche et joli. Il est temps
dapprendre à publier une carte sur un site internet, cest lobjet du
[prochain tutoriel](7-publishing-and-permissions.md).
??? info "Licence"
Travail initié par Antoine Riche sur [CartoCité](https://wiki.cartocite.fr/doku.php?id=umap:6_-_je_structure_ma_carte_avec_des_calques) sous licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).

View file

@ -0,0 +1,99 @@
!!! abstract "Ce que nous allons apprendre"
- Importer le contour dune commune
- Importer les contours des départements ou des régions
- Importer un point dintérêt (bibliothèques, parkings, …) qui est enregistré sur OpenStreetMap
## Procédons par étapes
Il est conseillé de vérifier si les données nexistent pas avant de se lancer dans leur dessin. On peut gagner un temps précieux avec lassistant dimportation intégré dans uMap et conserver une carte qui nest pas trop lourde au chargement.
Voilà les deux actions à effectuer une fois une carte préexistante, ou une nouvelle carte vierge ouverte :
- Cliquez sur loutil dimport de données dans la barre de droite puis sélectionnez les données déjà prêtes à lemploi
- Cliquez sur « Importer » et le cas échéant enjolivez la carte, car des figurés par défaut sont utilisés
uMap permet dutiliser des données produites par de nombreux services et placées en open data sous différents formats. Nous verrons ultérieurement (niveau intermédiaire) où rechercher ces sources. Dores et déjà, vous pouvez utiliser lassistant dimportation pour récupérer en un clic des contours administratifs et des points dintérêt.
### Ressources disponibles (20/09/2024)
Au 20 septembre 2024, les imports suivants sont disponibles :
- contour dune commune
- contours des départements et des régions
- données issues dOpenStreetMap placées dans [GeoDataMine](https://geodatamine.fr/). Comme son nom lindique, GeoDataMine est une véritable mine de données très utiles pour les services publics :
- Aire de jeux
- Aménagements cyclables
- Banques et DAB
- Base Adresse
- Bibliothèques
- Cimetière
- Cinémas
- Commerces
- Covoiturage
- Déchets et recyclage… jusquà Toilettes
- overpass : pour se familiariser avec les types de requêtes à renseigner dans lassistant, consulter les tutos plus avancés et la [page wiki](https://wiki.openstreetmap.org/wiki/Overpass_turbo/Wizard)
!!! note
Il manque des données ? Nhésitez pas à contribuer pour les ajouter et vous en serez les premiers bénéficiaires !
### Cliquez sur loutil dimport des données
Voici un bref passage en revu des différents imports proposés et pour finir limport de la localisation des bibliothèques de Clermont- Ferrand :
![Gif animé montrant lusage de lassistant dimport](../../static/tutoriels/importer.gif)
## 1. Importer le contour dune commune
Cliquez sur loutil dimportation en bas de la barre de droite, puis cliquez sur le lien « Assistants dimport ».
Cliquez sur « Communes France » et sélectionnez la commune souhaitée dans une liste déroulante. Une fois la commune sélectionnée, le format est reconnu automatiquement (geojson) puis le type de calque (cliquer sur « ? » pour savoir quel choix opérer)
1. Pour que les données soient simplement copiées, choisir « Copier dans le calque ».
2. Pour que la carte évolue si le contour change, choisir « Associer au calque comme donnée distante ».
!!! note
Le code affiché nest pas le code postal mais le code INSEE de la commune.
Voici le résultat avec la commune dArles (la plus vaste de France métropolitaine, un gain certain si on fait léconomie de dessiner son contour !)
![Une carte avec le dessin de la commune dArles importée](../../static/tutoriels/importer-arles.png)
Une fois cet import réalisé, tout est réglable : couleur de contour, de fond, affichage oui non dune étiquette.
## 2. Importer les contours des départements ou des régions
Cliquez sur loutil dimportation en bas de la barre de droite, puis cliquez sur le lien « Assistants dimport ».
Cliquez sur « Contours nationaux » puis soit départements, soit régions et enfin le type de calque (voir supra lexplication). Tous les départements sont importés :
![Une carte avec le dessin de chaque département importé](../../static/tutoriels/importer-departements.png)
## 3. Importer un point dintérêt issu de GeoDataMine
Cliquez sur loutil dimportation en bas de la barre de droite, puis cliquez sur le lien « Assistants dimport ».
Cliquez sur « GeoDataMine (thèmes OSM) » et sélectionnez les informations souhaitées, routes, bâtiments, commerces, services publics, …
Par exemple, en sélectionnant les points deau potable de la CA du Grand Avignon, puis « Copier dans un calque »
![Une carte avec les points deau potable issus dOpenStreetMap](../../static/tutoriels/importer-geodatamine.png)
Voici une réelle économie de temps plutôt que de placer pointeur après pointeur tous les points deau.
## 4. La carte combinée
Bien entendu, on peut tout à fait combiner les différentes couches dinformation et présenter par exemple la carte des Points deau potable dans la CA du Grand Avignon, avec les contours des communes qui composent lEPCI, du département et de la région :
### Points deau potable du Grand Avignon
![Une carte combinant plusieurs imports](../../static/tutoriels/importer-multi.png)
[Voir la carte en plein écran](https://umap.openstreetmap.fr/fr/map/points-deau-potable-grand-avignon_1116739?scaleControl=false&miniMap=false&scrollWheelZoom=true&zoomControl=true&editMode=disabled&moreControl=true&searchControl=null&tilelayersControl=null&embedControl=null&datalayersControl=true&onLoadPanel=none&captionBar=false&captionMenus=true#11/43.9889/4.7962){ .md-button }
Il faudra dans ce cas supprimer toutes les informations inutiles dans le tableau de données qui est accessible dans la barre de gauche pour chaque calque.
Pour gagner du temps : sélectionner tous les départements et désélectionner seulement le Vaucluse, puis cliquer sur « Supprimer les lignes sélectionnées ».

View file

@ -0,0 +1,249 @@
!!! abstract "Ce que nous allons apprendre"
- Insérer une carte dans une page HTML
- Publier une carte sur Wordpress
- Adapter les fonctionnalités de la carte
- Définir qui peut voir ou modifier la carte
## Procédons par étapes
### 1. Insérer une carte dans une page HTML
Nous avons vu dans le tutoriel
[Naviguer dans une carte](1-browsing-a-map.md) que
le menu de partage permet d*embarquer une carte en iframe*, sans donner
plus de détail. Voyons comment cela se passe.
<shot-scraper
data-output="static/tutoriels/control-embed.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône du partage et de lintégration."
data-selector=".leaflet-control-embed"
data-width="48"
data-height="48"
data-padding="5"
>Permet de partager la carte ou den exporter les données.</shot-scraper>
Une **iframe** est une balise du langage informatique HTML qui permet
dintégrer (embarquer) le contenu dune page Web dans une autre page
Web. Cest en fait très simple et nous avons déjà utilisé ce mécanisme
pour intégrer une vidéo dans le tutoriel
[Infobulles multimedia](5-multimedia-tooltips.md).
![export-iframe.png](../../static/tutoriels/7-je-publie-ma-carte-et-en-controle-lacces/export-iframe.png)
Voici les étapes à suivre :
1. ouvrir le panneau **Exporter et partager la carte**
2. copier la totalité du texte sous **Intégrer la carte dans une
iframe** (astuce: placer le curseur sur le texte puis utiliser les
raccourcis clavier <kbd>Ctrl</kbd>+<kbd>a</kbd> pour tout sélectionner
puis <kbd>Ctrl</kbd>+<kbd>c</kbd> pour copier la sélection)
3. coller le texte copié dans le code source du fichier HTML dans
lequel vous souhaitez intégrer la carte (raccourci clavier: <kbd>Ctrl</kbd>+<kbd>v</kbd>)
Voici un exemple minimaliste de fichier HTML dans lequel liframe dune
carte uMap à été intégrée :
<!DOCTYPE html>
<html>
<head>
<title>Exemple de carte uMap intégrée à une page Web</title>
<meta charset="UTF-8">
</head>
<body>
<div>
<h1>La carte du festival</h1>
<iframe width="100%" height="300px" frameBorder="0" src="https://umap.openstreetmap.fr/fr/map/festival-des-3-continents_26381?scaleControl=false&miniMap=false&scrollWheelZoom=false&zoomControl=true&allowEdit=false&moreControl=true&searchControl=null&tilelayersControl=null&embedControl=null&datalayersControl=true&onLoadPanel=caption&captionBar=false"></iframe>
<p><a href="http://umap.openstreetmap.fr/fr/map/festival-des-3-continents_26381">Voir en plein écran</a></p>
<p>Cette carte vous est proposée par CartoCité :-)</p>
</div>
</body>
</html>
Voici la carte intégrée sur cette page, en utilisant les options
dexport par défaut :
<div style="border: solid 1px;">
<h1>La carte du festival</h1>
<iframe width="100%" height="300px" frameBorder="0" src="https://umap.openstreetmap.fr/fr/map/festival-des-3-continents_26381?scaleControl=false&miniMap=false&scrollWheelZoom=false&zoomControl=true&allowEdit=false&moreControl=true&searchControl=null&tilelayersControl=null&embedControl=null&datalayersControl=true&onLoadPanel=caption&captionBar=false"></iframe>
<p><a href="http://umap.openstreetmap.fr/fr/map/festival-des-3-continents_26381">Voir en plein écran</a></p>
<p>Cette carte vous est proposée par CartoCité :-)</p>
</div>
Bien entendu cela suppose de connaître un peu HTML et de disposer dun
serveur sur lequel publier un tel fichier. Mais le principe est posé et
pas si compliqué. Voyons maintenant un cas de figure plus courant.
### 2. Publier une carte sur WordPress
Publier une carte sur un site WordPress se passe de la même façon que
ci-dessus, en copiant le *code HTML de liframe* dans léditeur
WordPress. Il est par contre nécessaire d**utiliser léditeur textuel**
(onglet Texte) et non léditeur visuel.
![import-iframe-wordpress.png](../../static/tutoriels/7-je-publie-ma-carte-et-en-controle-lacces/import-iframe-wordpress.png)
Publiez la page et le tour est joué !
!!! note
Pour des raisons de sécurité, les sites mutualisés
comme <https://fr.wordpress.com/> nautorisent pas linclusion diframe.
Il vous sera donc impossible de publier une carte uMap sur de tels
sites.
### 3. Adapter les fonctionnalités de la carte
La carte intégrée ci-dessus nest pas très pratique : sa hauteur est
insuffisante et le panneau latéral est partiellement visible. Les
boutons disponibles à gauche ne sont pas forcément adaptés, par exemple
nous ne souhaitons pas intégrer le sélecteur de calques.
Longlet **Options dexport de liframe** permet de contrôler tout cela.
Certaines de ces options correspondent aux **Options dinterface** vu
dans le tutoriel
[Personnaliser sa carte](4-customize-map.md). Il suffit
dactiver ces options pour que le *code dimport de liframe* soit
modifié. Une fois les options choisies, copiez ce code puis intégrez-le
dans celui votre page Web.
![options-export-iframe.png](../../static/tutoriels/7-je-publie-ma-carte-et-en-controle-lacces/options-export-iframe.png)
Les premières options sont spécifiques à lexport par iframe et méritent
dêtre commentées :
- la **largeur** de 100% permet dutiliser toute la largeur disponible
de la page. Vous pouvez définir une largeur fixe en remplaçant le
texte par une largeur en pixels, par exemple `800px`
- le **lien "plein écran"** désigne le lien `Voir en plein écran`
placé sous la carte. Celui-ci permet à lutilisateur dafficher la
carte uMap telle nous lavons vue jusquici.
- loption **Vue courante plutôt que vue par défaut** permet
dappliquer le position et le niveau de zoom actuel de la carte à
lexport. Cette option est par exemple intéressante pour produire
plusieurs zooms dune même carte.
- loption **Garder les calques visibles actuellement** permet de
choisir les calques inclus dans la carte exportée. Cette option est
utile pour produire plusieurs cartes pour plusieurs profils
dutilisateurs.
- **Autoriser le zoom avec la molette** est peu adapté si la carte est
intégrée dans une longue page, que les utilisateurs vont faire
défiler avec la molette : arrivé à la carte la page ne défilera plus
et la carte va effectuer un zoom arrière. Rien de grave mais ce
comportement peut être surprenant.
!!! note
Lorsque les options **Vue courante plutôt que vue par
défaut** et **Garder les calques visibles actuellement** sont actives,
modifier la vue courante ou les calques visibles ne modifie pas le code
dexport. Vous devez désactiver puis réactiver loption pour prendre en
compte ces modifications.
Voici par exemple la même carte que ci-dessus, avec une vue et un choix
de calque différents, et la plupart des options désactivées. Il est
possible de déplacer la carte mais pas de zoomer ni modifier les
calques.
<iframe width="600px" height="400px" frameBorder="0"
src="https://umap.openstreetmap.fr/fr/map/festival-des-3-continents_26381?scaleControl=false&miniMap=false&scrollWheelZoom=false&zoomControl=null&allowEdit=false&moreControl=false&searchControl=null&tilelayersControl=null&embedControl=null&datalayersControl=false&onLoadPanel=none&captionBar=false&datalayers=53329%2C53328&locateControl=null&fullscreenControl=false#15/47.2132/-1.5503"
></iframe>
### 4. Définir qui peut voir ou modifier la carte
<shot-scraper
data-output="static/tutoriels/map-permissions.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton de gestion des permissions."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.update-map-permissions"
data-padding="5"
>Bouton de gestion des permissions.</shot-scraper>
Le bouton **Changer
les permissions et les éditeurs** donne accès au panneau **Permissions
de la carte**. Celui-ci vous permet de contrôler, pour chaque carte, qui
peut la voir et qui peut la modifier.
<shot-scraper
data-output="static/tutoriels/map-permissions-panel.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Panneau des permissions."
data-caption="Panneau des permissions."
data-width="410"
data-height="414"
data-selector=".panel.right"
data-padding="5"
data-wait-for="document.querySelector('.panel.right')"
data-javascript="
new Promise((takeShot) => {
document.querySelector('.leaflet-control-edit-save').click();
document.querySelector('#umap-alert-container').style.display='none';
setTimeout(() => {
document.querySelector('.leaflet-toolbar-icon.update-map-permissions').click();
setTimeout(() => {
takeShot();
}, 1000);
}, 1000);
});
"
>Panneau des permissions.</shot-scraper>
Lorsque vous créez une carte celle-ci est visible dans votre *catalogue*
de cartes, dont ladresse est
`http://umap.openstreetmap.fr/fr/user/<votre-compte>/` : loption **Tout
le monde (public)** du menu déroulant **Qui a accès** est sélectionnée.
Les autres options de ce menu sont :
- **quiconque a le lien** : la carte napparaît plus dans votre
catalogue mais les personnes connaissant son lien peuvent la
consulter.
- **seulement les éditeurs** : seules les personnes ayant le droit
déditer la carte, et identifiées comme telles, peuvent consulter la
carte. Toute autre personne se verra refuser laccès. Nutilisez pas
cette option si vous intégrez la carte dans une iframe.
Lorsque vous créez une carte, vous êtes le seul à pouvoir la modifier.
Vous pouvez inviter dautres utilisateurs à la modifier en sélectionnant
loption **Seuls les éditeurs peuvent éditer** dans le menu **Statut
dédition**, puis en saisissant un à un le nom de compte des
utilisateurs invités dans le champ **Éditeurs**.
Le nom de chaque utilisateur est ajouté à la suite de ce champ.
Loption **Tout le monde peut éditer** du menu **Statut dédition** est
utile pour créer une carte collectivement.
!!! note
uMap ne permet pas à plusieurs éditeurs de modifier la
carte simultanément. Le logiciel vous alerte lorsque lopération
**Enregistrer** risque décraser les modifications dun autre
utilisateur, vous devez alors choisir entre ses modifications (en
validant Enregistrer) ou les vôtres (en annulant).
Si vous êtes plusieurs éditeurs dune même carte, concertez-vous avant
de modifier la carte.
Enfin vous pouvez **tranférer la propriété** dune carte à un autre
utilisateur : supprimez le propriétaire actuel (vous) en cliquant sur la
petite croix à droite du champ **Owner**, puis saisissez le nom de
compte de lutilisateur à qui vous donnez la carte.
## Faisons le point
À ce stade nous savons créer une carte structurée avec du contenu
multimédia, nous savons la publier et lintégrer à une page Web, nous
savons même la modifier collectivement. Nous allons bientôt pouvoir
passer au niveau avancé, dans lequel nous allons apprendre à **importer
des données** dans une carte et explorer les capacités douverture de
uMap.
Mais avant cela, nous allons terminer le niveau intermédiaire en
traitant [le cas des polygones](8-polygons.md).
??? info "Licence"
Travail initié par Antoine Riche sur [CartoCité](https://wiki.cartocite.fr/doku.php?id=umap:7_-_je_publie_ma_carte_et_en_controle_l_acces) sous licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).

View file

@ -0,0 +1,227 @@
!!! abstract "Ce que nous allons apprendre"
- Créer un polygone et le modifier
- Styliser un polygone : remplissage et contour(s)
- Associer une URL à un polygone
- Extraire des limites administratives dOpenStreetMap
- Importer des données dans une carte
!!! question
Pourquoi traiter les polygones à part, il ne sagit que dune ligne
fermée ? Un polygone est en réalité bien plus quun ligne fermée. Cette
ligne sépare l**intérieur du polygone** de son extérieur, ceci est
important car uMap peut réagir à un clic à lintérieur du polygone. De
plus un polygone être troué, il est alors défini par plusieurs lignes.
## Procédons par étapes
### 1. Créer un polygone
Revenons à la carte de nos vacances à Crozon. Un jour de beau temps nous
louons un dériveur et naviguons dans la zone définie par le club
nautique. Ajoutons cette zone à la carte.
<shot-scraper
data-output="static/tutoriels/draw-polygon.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton de dessin de polygones."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.umap-draw-polygon"
data-padding="5"
>Bouton de dessin de polygones.</shot-scraper>
Le bouton
**Dessiner un polygone** permet de tracer le périmètre dun polygone
point par point, et de le terminer en cliquant à nouveau sur le dernier
point comme pour le tracé dune ligne. Une différence toutefois : dès le
troisième point lintérieur du polygone est coloré.
#### Propriétés dun polygone
![proprietes_polygones.png](../../static/tutoriels/8-le-cas-des-polygones/proprietes_polygones.png)
La liste des
propriétés dun polygone est assez longue. Les propriétés de la moitié
supérieure du menu sappliquent au périmètre du polygone, et sont
identiques aux propriétés sappliquant aux lignes. Le moitié inférieure
concerne le remplissage du polygone. Noter :
- les options **trait** et **remplissage** permettent de ne pas
afficher le périmètre ou lintérieur du polygone : si aucun de ces
deux éléments est affiché le polygone est invisible.
- la **couleur du remplissage** est par défaut celle du trait, mais
peut être modifiée.
- une faible **opacité du remplissage** permet de voir le fond de
carte *sous* le polygone.
#### Trouer un polygone
Il est parfois utile de créer un ou plusieurs trous dans un polygone,
par exemple pour dessiner une clairière dans une forêt ou un île au
milieu dun étang.
![polygone_trou.jpg](../../static/tutoriels/8-le-cas-des-polygones/polygone_trou.jpg)
Vous pouvez créer un
polygone avec un ou plusieurs trous en cliquant sur loption **Ajouter
un tracé intérieur** lorsque vous sélectionnez un polygone en mode
édition.
Le premier point du *périmètre intérieur* est créé directement là où
vous avez cliqué avant de choisir **Ajouter un tracé intérieur**.
Notez que les propriétés de périmètre dun polygone sappliquent à tous
les périmètres - extérieurs et intérieurs.
### 2. Définir les interactions avec un polygone
Longlet **Options dinteraction** propose deux options spécifiques aux
polygones.
![interaction-desactivee.png](../../static/tutoriels/8-le-cas-des-polygones/interaction-desactivee.png)
Toute interaction peut être désactivée en sélectionnant **OFF** pour
loption **Autoriser les interactions**. Aucune infobulle nest alors
affichée lors dun clic sur le polygone. Cette option est intéressante
pour donner de limportance à une zone de la carte sans que
lutilisateur ne puisse interagir avec.
![ile-de-nantes.jpg](../../static/tutoriels/8-le-cas-des-polygones/ile-de-nantes.jpg)
Voici un exemple montrant
lIle de Nantes entourée dun large trait rouge et sans remplissage. Il
nest possible de cliquer ni sur le contour ni à lintérieur du
polygone.
!!! note
Linteraction avec le polygone reste désactivée en mode
édition. Pour pouvoir éditer le polygone il est alors nécessaire de
passer par le panneau **Visualiser les données** (toujours accessible
par le panneau de Légende lui-même accessible depuis le lien **A
propos** en bas à droite de la carte).
![interaction-url.png](../../static/tutoriels/8-le-cas-des-polygones/interaction-url.png)
À linverse, il est
possible dassocier à un polygone une URL : un clic sur le polygone
ouvre alors la page Web correspondante directement, sans passer par une
infobulle. Il suffit pour cela de définir le **Lien vers…** puis de
saisir lURL. il existe trois options permettant de définir ***où***
sera ouverte la page Web :
- **nouvelle fenêtre** : la page souvre dans un nouvel onglet du
navigateur
- **fenêtre parente** : la page souvre dans le même onglet que celui
de la carte
- **iframe** : si la carte est intégrée dans une iframe, la page Web
est alors ouverte à lintérieur de liframe
### 3. Réaliser un menu cartographique
Associer un URL à un polygone permet de créer un *menu cartographique*,
cest-à-dire une carte permettant daccéder à plusieurs pages Web selon
la zone sur laquelle clique lutilisateur. Voici un exemple montrant les
différents quartiers de Nantes : un clic sur un quartier ouvre la page
correspondante du site <http://www.nantes.fr>.
<iframe width="500px" height="550px" frameBorder="0" src="https://umap.openstreetmap.fr/fr/map/quartiers-de-nantes_126581?scaleControl=false&miniMap=false&scrollWheelZoom=false&zoomControl=false&allowEdit=false&moreControl=false&searchControl=null&tilelayersControl=null&embedControl=null&datalayersControl=false&onLoadPanel=undefined&captionBar=false&fullscreenControl=false&datalayers=311326#12/47.24/-1.5"></iframe>
Voici les étapes pour réaliser cette carte.
#### a. Récupérer les contours des quartiers
Le contour des quartiers de Nantes provient les limites administratives
dOpenStreetMap (pour en savoir plus, consultez cette [page du
Wiki](http://wiki.openstreetmap.org/wiki/WikiProject_France/Liste_limites_administratives)).
Le site [OSM Boundaries](https://osm-boundaries.com/) permet de
sélectionner les limites administratives une à une, puis de les exporter
dans différents formats.
![osm-boundaries.png](../../static/tutoriels/8-le-cas-des-polygones/osm-boundaries.png)
Suivez ces étapes :
1. connectez-vous à votre compte OpenStreetMap (celui-ci est exigé pour
pouvoir exporter les limites administratives)
2. sélectionnez les limites administratives une par une, en ouvrant
successivement les différents niveaux : pays - région - département
etc.
3. sélectionez le format dexport JSON : le format
[GeoJSON](https://fr.wikipedia.org/wiki/GeoJSON) est alors utilisé
4. cliquez sur Export
Vous récupérez dans le dossier des téléchargements un fichier dont
lextension est `.geojson`.
![import-contours.png](../../static/tutoriels/8-le-cas-des-polygones/import-contours.png)
#### b. Importer les contours de quartier dans une carte
<shot-scraper
data-output="static/tutoriels/upload-data.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton dimport de données."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.upload-data"
data-padding="5"
>Bouton dimport de données.</shot-scraper>
Dans une nouvelle
carte, cliquez sur **Importer des données**. Dans le panneau qui appraît
alors, sélectionnez le fichier produit à létape précédente.
Le sélecteur de format se positionne automatiquement sur **geojson**,
sélectionnez-le si ce nest pas le cas, par exemple parce que
lextension du fichier nest pas `.geojson`. Cliquez sur **Importer** :
les contours apparaissent sur la carte.
#### c. Configurer la carte uMap
Configurez le calque afin dafficher une étiquette - au survol ou pas
selon votre choix. Ensuite éditez chaque polygone pour lui associer
lURL vers la page Web correspondante, comme nous lavons vu plus haut.
Enfin vous pouvez, dans les **Paramètres de la carte**, définir les
**Limites géographiques** de la carte. Cela permet dempêcher
lutilisateur de déplacer la carte au-delà de ces limites.
![limites-geographiques.png](../../static/tutoriels/8-le-cas-des-polygones/limites-geographiques.png)
#### d. Intégrer la carte dans une iframe
Récupérez le code de liframe, comme nous lavons vu dans le
[tutoriel précédent](7-publishing-and-permissions.md),
en prenant soin de désactiver toutes les options dinteraction :
boutons de zoom, zoom avec la molette, bouton « Plus », etc.
Copiez ce **code iframe** dans votre page Web, et le tour est joué !
!!! note
Lorsque vous modifiez la carte, vous devez recharger
entièrement la page contenant liframe pour vider le cache du
navigateur, par exemple en utilisant <kbd>Ctrl</kbd>+<kbd>F5</kbd>
sur Firefox.
## Faisons le point
Ce tutoriel marque la fin du niveau intermédiaire. Vous savez structurer
le contenu dune carte avec des calques et utiliser des styles par
défaut. Vous savez formater les infobulles et y intégrer du multimédia.
Vous savez intégrer votre carte dans une page Web et contrôler qui peut
la voir et la modifier.
Nous venons de voir comment importer des données dans une carte, le
niveau avancé va nous permettre daller bien plus loin dans cette
démarche.
??? info "Licence"
Travail initié par Antoine Riche sur [CartoCité](https://wiki.cartocite.fr/doku.php?id=umap:8_-_le_cas_des_polygones) sous licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).

View file

@ -0,0 +1,62 @@
!!! abstract "Ce que nous allons apprendre"
- Vérifier le formats du fichier
- Importer le fichier dans uMap
- Régler lapparences des cercles
## Procédons par étapes
Nous allons importer des données quantitatives et les représenter sous forme de cercles proportionnels. On peut aussi représenter des données distantes par cercles proportionnels (voir les tutoriels plus avancés).
### 1. Vérifier le format du fichier
Pour être utilisable dans uMap, le fichier doit être enregistré au format `.csv`, il doit intégrer les cordonnées géographiques. Sans ces deux conditions, le fichier de données nest pas traité.
Il faut également éviter les mises en forme du type espace entre des blocs de trois zéros, sans quoi les cercles ne seront pas proportionnels, mais tous de même taille.
Si la latitude et la longitude ne sont pas présentes, le fichier doit être géocodé.
Le site de la Base Adresse Nationale propose un outil très pratique : <https://adresse.data.gouv.fr/csv>
Il suffit de placer un fichier au format `.csv` contenant des adresses et de cliquer sur « géocodage ». Loutil en ligne ajoute les coordonnées géographiques des adresses.
### 2. Importer le fichier dans uMap
Cliquer sur loutil dimportation en barre de droite :
<shot-scraper
data-output="static/tutoriels/upload-data.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton dimport de données."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.upload-data"
data-padding="5"
>Bouton dimport de données.</shot-scraper>
Puis choisir le fichier, par exemple ici la population municipale du Cher, le format est `.csv` et cliquer sur « importer » :
![](../../static/tutoriels/circles-markers.png)
Toutes les communes sont représentées par un pointeur. Il reste juste à préciser que les données de ce calque doivent être affichées par cercles proportionnels. Pour ce faire, cliquer sur loutil « Gérer les calques » en barre de droite :
<shot-scraper
data-output="static/tutoriels/control-browse.png"
data-url="https://umap.openstreetmap.fr/en/map/new/"
data-alt="Icône du sélecteur de calque(s)."
data-selector=".umap-control-browse"
data-width="48"
data-height="48"
data-padding="5"
>Icône du sélecteur de calque(s).</shot-scraper>
Puis dans le menu déroulant, sélectionner « Cercles proportionnels » et la donnée de votre tableau que vous voulez représenter en cercles proportionnels :
![](../../static/tutoriels/circles-proportional.jpg)
Il est tout à fait possible de régler la proportionnalité sur les barres de rayon minimum et maximum pour modifier le rendu : lécart est alors amplifié ou plutôt écrasé.
!!! notes
Pour modifier les couleurs des cercles, voir le tutoriel
[Dessiner sur sa carte](/fr/tutorials/4-draw-items/).

View file

@ -0,0 +1,315 @@
!!! abstract "Ce que nous allons apprendre"
- Structurer des données pour pouvoir les géocoder
- Géocoder des adresses et vérifier le résultat
- Importer un tableau de données dans une carte uMap
- Injecter le contenu du tableau dans les infobulles
- Configurer le tri et le filtre des données
## Procédons par étapes
Lobjectif de ce tutoriel est de créer une carte en important des
données dans uMap. Cela peut être utile dans plusieurs situations :
- visualiser des données que vous avez trouvées sur un portail open
data, par exemple <https://data.nantesmetropole.fr/>
- placer sur une carte les contacts (clients, fournisseurs,
concurrents…) que vous gérez dans un tableur
Lenjeu est de placer automatiquement chaque élément à sa **position
géographique**, définie par une **longitude** et une **latitude** (on
parle aussi de **point GPS**). Pour cela il faut que les données soient
**géocodées**, par exemple un tableau contiendra deux colonnes :
latitude et longitude.
Si les données *open data* sont parfois géocodées, ce nest généralement
pas le cas de votre fichier de contacts qui contient des adresses. Il
est dans ce cas nécessaire de passer par une étape de **géocodage**, qui
consiste à convertir chaque adresse en latitude et longitude. Nous
allons traiter ce cas de figure, étape par étape.
### 1. Je crée un tableau avec des adresses
Pour convertir des adresses en longitude et latitude nous allons
utiliser un **géocodeur**. Celui-ci utilise une base de données
dadresses géocodées, parmi lesquelles il recherche ladresse à
géocoder. Voici quelques conseils à suivre pour faciliter la tâche du
géocodeur et obtenir de bons résultats :
- répartir chaque adresse en **plusieurs colonnes** : adresse, code
postal et ville
- porter dans la colonne adresse le **libellé de la voie précédé du
numéro**, par exemple `14 rue de la Paix`, ou le nom du lieu-dit
- placer tout autre élément dadresse (boîte postale, étage…) dans
un autre champ
Voici par exemple quelques adresses bien structurées, provenant du
fichier [Sièges des syndicats intercommunaux de transports scolaires en
Loire-Atlantique](https://data.nantesmetropole.fr/explore/dataset/234400034_031-001_sits_shp/export/)
:
| NOM | ADRESSE | COMPL_ADR | CP | VILLE |
| ------------------------| -----------------------| -----------------------------| -------| --------------------------|
| C. C. LOIRE et SILLON | 2 bd de la Loire | | 44260 | SAVENAY |
| C. C. COEUR dESTUAIRE | 1 Cours dArmor | Route de Savenay | 44360 | SAINT ETIENNE DE MONTLUC |
| RESEAU CAP ATLANTIC | 4 rue Alphonse Daudet | Zone Tertiaire de Kerbiniou | 44350 | GUERANDE |
| SITS SUD LOIRE LAC | ZI de la Seiglerie | | 44270 | MACHECOUL |
Lutilisation de majuscules ou minuscules na en général pas
dincidence. Le tableau peut bien sûr contenir dautres colonnes, comme
ici les colonnes NOM et COMPL_ADR.
!!! note
Pour la suite des opérations, il est important que le
tableur respecte les règles suivantes :
- la première ligne du tableur doit contenir les noms de colonnes, les
autres lignes contiennent les données et rien dautre
- les noms de colonnes ne doivent contenir ni espace ni accent ou
autre caractère spécial
- les noms de colonnes doivent être tous différents
- les cellules ne doivent pas contenir de "retour chariot" ou "saut de
ligne"
- les cellules ne doivent pas être fusionnées
En dautres termes, le tableur doit représenter une **base de données**.
### 2. Je convertis les adresses en coordonnées géographiques
Plusieurs **géocodeurs** sont disponibles sur internet. La qualité du
géocodage peut différer en fonction de plusieurs facteurs :
- votre adresse est incomplète ou contient une erreur, par exemple un
mauvais code postal
- la base dadresses utilisée contient des adresses erronées ou nest
pas à jour
- lalgorithme chargé de comparer votre adresse à celles de la base de
données fait de mauvaises hypothèses
Aucun géocodeur nest parfait. Il est donc important de **vérifier la
qualité du géocodage**, voire de comparer et combiner le résultat de
plusieurs géocodeurs. La plupart des géocodeurs produisent, en
complément à chaque latitude et longitude, un score permettant dévaluer
la qualité du résultat.
En France le site <https://adresse.data.gouv.fr> donne accès à la Base
Adresse Nationale (BAN). Il fournit plusieurs outils, dont le [géocodeur
CSV](https://adresse.data.gouv.fr/csv) qui permet de géocoder une liste
dadresses très rapidement avec de bons résultats.
[DoGeocodeur](https://dogeo.fr/_apps/DoGeocodeur/) est un site
particulièrement bien pensé : il sait utiliser plusieurs géocodeurs
(Google, IGN, BAN…) et combiner leur résultat, afficher le résultat
sur une carte, et vous permet de positionner manuellement une adresse.
Lui aussi utilise des fichiers CSV.
!!! note
CSV désigne un fichier texte contenant les données dun
tableau, dont les valeurs (le contenu de chaque cellule) sont séparées
par des virgules (CSV signifie *comma-separated values*) … ou par un
autre caractère : limportant est que ce **séparateur** ne soit pas
utilisé à lintérieur dune valeur. Le point-virgule est souvent utilisé
comme séparateur pour créer un fichier CSV.
Pour géocoder les adresses dun tableau, les étapes à suivre sont :
1. exporter le tableau dans un fichier au format CSV, en choisissant le
séparateur (conseil : point-virgule) et le jeu de caractères
(encodage) **UTF-8**. Inclure les entêtes de colonnes si loption
vous est proposée. Voici par exemple le panneau dexport CSV de
LibreOffice Calc :
![export_csv_libreoffice_calc.png](../../static/tutoriels/9-je-cree-une-carte-a-partir-dun-tableur/export_csv_libreoffice_calc.png)
2. importer le fichier CSV dans le site de géocodage de votre choix,
celui-ci vous demande en général de sélectionner les noms de
colonnes correspondant à ladresse, au code postal et à la commune
3. vérifier le résultat du géocodage, lajuster et le compléter au
besoin
4. exporter le résultat, qui sera lui aussi au format CSV
!!! note
Pour exporter un fichier CSV en UTF-8 avec Microsoft
Excel, le menu **Options Web** dans la fenêtre **Enregistrer sous**
permet, dans longlet **Encodage**, de sélectionner **Unicode (UTF-8)**.
Malheureusement cela **ne fonctionne pas pour MS Excel 2016 ni Office
365/Excel**, il sagit dun [bogue
connu](https://answers.microsoft.com/en-us/msoffice/forum/all/office-365excel-generates-incorrect-csv-utf-8/56516c38-78d8-40f5-90b3-f5d9db3d6d10).
Pour contourner ce bogue, une possibilité est dutiliser léditeur
[Notepad++](https://notepad-plus-plus.org/) que vous devez installer. Ne
pas changer lencodage lors de lexport CSV, puis ouvrir le fichier dans
Notepad++, convertir en UTF-8 dans le menu **Encodage**, enfin
enregistrer le fichier.
### 3. Jimporte le tableau géocodé dans un calque
Cliquez sur
**Importer des données** pour afficher le panneau du même nom, puis
sélectionnez le fichier précédemment géocodé.
<shot-scraper
data-output="static/tutoriels/upload-data.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton dimport de données."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.upload-data"
data-padding="5"
>Bouton dimport de données.</shot-scraper>
![importer_des_donnees.png](../../static/tutoriels/9-je-cree-une-carte-a-partir-dun-tableur/importer_des_donnees.png)
Vérifiez que uMap a bien reconnu **CSV** pour le format des données, et
choisissez de les importer dans un **nouveau calque**.
Enfin cliquez sur **Importer** : les données sont chargées puis
affichées sur la carte. Les lignes nayant pas de position géographique
sont ignorées, un message est alors affiché.
!!! note
uMap utilise la première ligne du fichier CSV pour
identifier les noms de colonnes, en particulier **latitude** et
**longitude** qui sont utilisés pour positionner les points (**lat** et
**lon** sont aussi compris). Vérifiez la présence de ces noms de
colonnes si lopération échoue. Attention également à ce que les
coordonnées soient exprimées en **degrés décimaux**, avec un point pour
délimiter les décimales. Exemple: 48.40 est correct mais 48,40 et 48°24
ne sont pas valides pour uMap.
Notez que vous pouvez directement coller les données dans le panneau
dimport. Il est cependant intéressant de passer par un fichier que vous
pouvez conserver sur votre poste.
Enfin vous pouvez réimporter les données, par exemple après les avoir
mises à jour. Sélectionnez alors le même calque et cochez la case
**Remplacer le contenu du calque**.
### 4. Jinsère le contenu du tableau dans les infobulles
![infobulle_nom_du_calque.png](../../static/tutoriels/9-je-cree-une-carte-a-partir-dun-tableur/infobulle_nom_du_calque.png)
Cliquez maintenant sur un marqueur importé à létape précédente :
linfobulle affiche le nom du calque (en loccurence le nom du fichier
importé si vous ne lavez pas renommé) au lieu du nom présent dans le
tableau de données.
Il y a plusieurs possibilités pour rémédier à cela.
#### Modifier le champ utilisé
![cle_du_libelle.png](../../static/tutoriels/9-je-cree-une-carte-a-partir-dun-tableur/cle_du_libelle.png)
Éditez le calque et
modifiez, dans longlet Propriétés avancées, la **Clé pour le libellé**.
Saisissez le nom de la colonne du fichier importé. Chaque infobulle
affiche désormais le contenu de cette colonne.
![infobulle_nom_correct.png](../../static/tutoriels/9-je-cree-une-carte-a-partir-dun-tableur/infobulle_nom_correct.png)
!!! note
Respecter la casse, cest-à-dire les majuscules et
minuscules. Le nom de colonne ne doit pas contenir de caractère spécial
: accents, espace, ponctuation…
#### Afficher un tableau
![popup_tableau.png](../../static/tutoriels/9-je-cree-une-carte-a-partir-dun-tableur/popup_tableau.png)
Le contenu du tableau peut
être affiché dans les infobulles, sous forme dun tableau à deux
colonnes : lintitulé et la valeur correspondante.
Dans longlet **Options dinteraction** du calque, changez le **Style de
la popup** en **Tableau**. Voici un exemple de résultat :
![infobulle_tableau.png](../../static/tutoriels/9-je-cree-une-carte-a-partir-dun-tableur/infobulle_tableau.png)
![modifier_tableau.png](../../static/tutoriels/9-je-cree-une-carte-a-partir-dun-tableur/modifier_tableau.png)
Notez que vous
pouvez modifier le contenu du tableau en cliquant sur **Éditer dans un
tableau** dans le sélecteur de calques. Vous pouvez alors supprimer ou
renommer des colonnes, voire même modifier les cellules du tableau.
#### Définir le gabarit des infobulles
![gabarit_popup.png](../../static/tutoriels/9-je-cree-une-carte-a-partir-dun-tableur/gabarit_popup.png)
Le tableau ci-dessus nest
pas particulièrement joli avec ses libellés en majuscules.
Dans le tutoriel [5-multimedia-tooltips.md) nous avons vu
comment formater le contenu dune infobulle. Nous pouvons utiliser la
même syntaxe pour définir le contenu de **toutes les infobulles dun
calque**, en y intégrant le contenu des cellules du tableau.
Dans longlet **Options dinteraction** du calque, éditez le **Gabarit
du contenu de la popup**. Définissez le format des popups (titres,
caractère gras, etc.) comme vu précédemment. Pour *injecter* le contenu
dune cellule dans linfobulle, il suffit dajouter le nom de la colonne
placé entre accolades, par exemple **{NOM}**.
![infobulle_avec_gabarit.png](../../static/tutoriels/9-je-cree-une-carte-a-partir-dun-tableur/infobulle_avec_gabarit.png)
Vous pouvez utiliser dans le gabarit tous les champs du tableau. Voici à
droite un exemple de gabarit et le résultat pour une infobulle.
**Cette approche est très puissante.** Vous pouvez lutiliser pour
injecter, pour chaque ligne du tableau, un lien vers un site internet
(et pourquoi pas le texte associé), une image ou une iframe. Il suffit
pour cela dintégrer le nom de colonnes et ses accolades, à la syntaxe
de mise en forme du texte, par exemple `[[{LIEN_SITE}|{TEXTE_LIEN}]]` ou
encore `{{{URL_IMAGE}}}`.
### 5. Je configure le tri et les filtres
![config_filtres.png](../../static/tutoriels/9-je-cree-une-carte-a-partir-dun-tableur/config_filtres.png)
Nous avons vu dans le tutoriel
[Je consulte une carte uMap](1-browsing-a-map.md) quil
est possible de voir lensemble des données de la carte sous la forme
dune liste. Cette liste peut aussi filtrée par lutilisateur, à partir
dun mot par exemple.
<shot-scraper
data-output="static/tutoriels/map-settings.png"
data-url="https://umap.openstreetmap.fr/fr/map/new/"
data-alt="Bouton des options de la carte."
data-width="46"
data-height="47"
data-selector=".leaflet-toolbar-icon.update-map-settings"
data-padding="5"
>Bouton des options de la carte.</shot-scraper>
Pour permettre aux
utilisateurs de filtrer les données il convient de préciser à uMap à
quel(s) champ(s) le "mot-filtre" doit sappliquer. Cela seffectue dans
longlet **Propriétés par défaut** des **Propriétés de la carte**. Vous
pouvez indiquer plusieurs noms de champ (noms de colonne), le filtre
sappliquera à chacun des champs.
Notez que vous pouvez également trier la liste en sélectionnant la **Clé
de tri**, cest-à-dire le nom de la colonne utilisée pour le tri (tri
croissant uniquement). Enfin vous pouvez définir la clé par défaut pour
le libellé, qui sera utilisée si celle-ci nest pas définie pour le
calque.
!!! note
Les clés de tri et de filtre sappliquent à lensemble
des données, tous calques confondus. Si votre carte est constituée de
plusieurs calques, il est donc conseillé dutiliser le même nom de clé
pour désigner le même type dinformation. Évitez par exemple dutiliser
**Ville** pour un calque et **Commune** pour un autre, utilisez plutôt
**Commune** pour les deux.
## Faisons le point
Ce tutoriel est probablement le plus complexe de la série. Appréciez
toutefois les possibilités offertes par uMap pour intégrer des données
externes.
??? info "Licence"
Travail initié par Antoine Riche sur [CartoCité](https://wiki.cartocite.fr/doku.php?id=umap:9_-_je_cree_une_carte_a_partir_dun_tableur) sous licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).

61
docs-users/fr/videos.md Normal file
View file

@ -0,0 +1,61 @@
# Vidéos uMap
## Faire la carte de son marché de Noël
<iframe title="Faire la carte de son marché de Noël" width="560" height="315" src="https://tube.numerique.gouv.fr/videos/embed/7d3a95ad-37dc-4af1-ac15-17992cb95869" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>
## Atelier « Afficher des donnees Grist dans uMap »
<iframe title="Atelier Afficher des donnees Grist dans uMap" width="560" height="315" src="https://tube.numerique.gouv.fr/videos/embed/517beed6-ed57-430d-ad76-61e0c4784338" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>
## Transformer un tableau Grist en carte avec uMap
<iframe title="Transformer une table Grist en carte avec uMap" width="560" height="315" src="https://tube.numerique.gouv.fr/videos/embed/9e5b09d5-c660-41a0-8591-cae347c88e65" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>
## uMap incubé par lÉtat, ça donne quoi ?
<iframe title="uMap incubé par lÉtat, ça donne quoi ?" width="560" height="315" src="https://peertube.openstreetmap.fr/videos/embed/c564dcfd-4b0b-4796-86ac-ca8624226cd3" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>
## uMap a 10 ans, bilan et perspectives
<iframe title="uMap a 10 ans, bilan et perspectives" width="560" height="315" src="https://peertube.openstreetmap.fr/videos/embed/f4f122d4-0ff5-4015-bd64-ea507ad5f5b5" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups"></iframe>
## Retour dexpérience sur lutilisation duMap à la Chambre dagriculture des Pays de la Loire
<iframe title="Retour dexpérience sur lutilisation duMap à la Chambre dagriculture des Pays de la Loire" width="560" height="315" src="https://peertube.openstreetmap.fr/videos/embed/8fde9bc7-2687-44ca-8984-5a37f60fc2e1" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups"></iframe>
## Exemples cartes uMap
<iframe title="Exemples cartes uMap" width="560" height="315" src="https://peertube.openstreetmap.fr/videos/embed/3e8a55d3-761e-48bd-a871-86e65f137e9e" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups"></iframe>
---
## Tutoriel - Umap, croquis et carte interactive (bases sans création de compte)
<iframe width="560" height="315" src="https://www.youtube.com/embed/-gR4IN1meOY?si=g_wLc3ZI67yJ-wrK" title="Tutoriel - Umap, croquis et carte interactive (bases sans création de compte)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
## Tutoriel - Umap / Openstreetmap (carte enrichie)
<iframe width="560" height="315" src="https://www.youtube.com/embed/j7o96lUxN6o?si=IcczSafYOedaMAwX" title="Tutoriel - Umap / Openstreetmap (carte enrichie)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
---
## Mieux visualiser une balade pédagogique ?
Cette vidéo va vous faire découvrir des fonctionnalités de base, tel que le déplacement sur la carte, le zoom, les filtres pour le choix de certaines balades et ainsi améliorer la lisibilité de la carte :
<video controls src="http://balades-pedagogiques.org/wp-content/uploads/2023/11/Mieux-visualiser-les-balades-1.mp4"></video>
Vidéo proposée par [balades-pedagogiques.org](http://balades-pedagogiques.org/?page_id=14).
## Comment se repérer et mesurer des distances ?
Cette vidéo va vous faire découvrir les fonctionnalités permettant la recherche d&rsquo;un lieu et de mesurer une distance sur la carte :
<video controls src="http://balades-pedagogiques.org/wp-content/uploads/2023/11/Se-reperer-et-mesurer-des-distances.mp4"></video>
Vidéo proposée par [balades-pedagogiques.org](http://balades-pedagogiques.org/?page_id=14).
---
[Suggérer dautres vidéos ?](https://github.com/umap-project/umap/issues/new/choose){ .md-button }

22
docs-users/index.md Normal file
View file

@ -0,0 +1,22 @@
# uMap user documentation
uMap lets you create maps with OpenStreetMap layers in a minute, and embed them in your site.
- 🤓 Check out [videos](videos.md) and [articles](articles.md).
- 🤔 Explore [questions/answers from FAQ](support/faq.md).
- 🤕 Browse [potential errors and their details](support/errors.md).
!!! info "Are you a developer?"
This documentation is intended for users.
If you are looking for developer documentation, have a look at [the dedicated documentation](https://docs.umap-project.org/).
??? bug "What if there is an undocumented bug?"
You can:
- reach [the dedicated mailing-list](https://lists.openstreetmap.org/listinfo/umap)
- check if the issue [has already been reported](https://github.com/umap-project/umap/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)
- declare [a new issue](https://github.com/umap-project/umap/issues/new/choose)

View file

@ -0,0 +1,5 @@
# Force rtfd to use a recent version of mkdocs
mkdocs==1.6.1
pymdown-extensions==10.14.3
mkdocs-material==9.6.12
mkdocs-static-i18n==1.3.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Some files were not shown because too many files have changed in this diff Show more