umap-project 2.1.3__py3-none-any.whl → 2.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of umap-project might be problematic. Click here for more details.

Files changed (200) hide show
  1. umap/__init__.py +1 -1
  2. umap/context_processors.py +1 -0
  3. umap/locale/br/LC_MESSAGES/django.mo +0 -0
  4. umap/locale/en/LC_MESSAGES/django.po +32 -32
  5. umap/locale/hu/LC_MESSAGES/django.mo +0 -0
  6. umap/locale/it/LC_MESSAGES/django.mo +0 -0
  7. umap/locale/ms/LC_MESSAGES/django.mo +0 -0
  8. umap/migrations/0020_alter_tilelayer_url_template.py +19 -0
  9. umap/migrations/0021_remove_map_description.py +16 -0
  10. umap/models.py +8 -6
  11. umap/settings/base.py +1 -0
  12. umap/static/umap/base.css +43 -156
  13. umap/static/umap/content.css +7 -25
  14. umap/static/umap/css/icon.css +112 -0
  15. umap/static/umap/css/panel.css +140 -0
  16. umap/static/umap/img/16-white.svg +5 -1
  17. umap/static/umap/img/16.svg +7 -4
  18. umap/static/umap/img/24-white.svg +3 -1
  19. umap/static/umap/img/24.svg +3 -4
  20. umap/static/umap/img/source/16-white.svg +176 -940
  21. umap/static/umap/img/source/16.svg +8 -5
  22. umap/static/umap/img/source/24-white.svg +5 -3
  23. umap/static/umap/img/source/24.svg +6 -7
  24. umap/static/umap/js/modules/browser.js +97 -73
  25. umap/static/umap/js/modules/dompurify.js +12 -0
  26. umap/static/umap/js/modules/facets.js +149 -0
  27. umap/static/umap/js/modules/global.js +9 -1
  28. umap/static/umap/js/modules/i18n.js +7 -0
  29. umap/static/umap/js/modules/orderable.js +84 -0
  30. umap/static/umap/js/modules/panel.js +76 -0
  31. umap/static/umap/js/modules/request.js +0 -1
  32. umap/static/umap/js/modules/schema.js +324 -223
  33. umap/static/umap/js/modules/urls.js +1 -16
  34. umap/static/umap/js/modules/utils.js +340 -0
  35. umap/static/umap/js/umap.autocomplete.js +40 -25
  36. umap/static/umap/js/umap.controls.js +227 -369
  37. umap/static/umap/js/umap.core.js +77 -366
  38. umap/static/umap/js/umap.datalayer.permissions.js +1 -1
  39. umap/static/umap/js/umap.features.js +62 -42
  40. umap/static/umap/js/umap.forms.js +128 -36
  41. umap/static/umap/js/umap.icon.js +11 -4
  42. umap/static/umap/js/umap.importer.js +78 -57
  43. umap/static/umap/js/umap.js +179 -156
  44. umap/static/umap/js/umap.layer.js +79 -40
  45. umap/static/umap/js/umap.permissions.js +13 -9
  46. umap/static/umap/js/umap.popup.js +26 -30
  47. umap/static/umap/js/umap.share.js +12 -9
  48. umap/static/umap/js/umap.tableeditor.js +4 -6
  49. umap/static/umap/js/umap.ui.js +10 -60
  50. umap/static/umap/locale/am_ET.js +243 -227
  51. umap/static/umap/locale/am_ET.json +21 -9
  52. umap/static/umap/locale/ar.js +243 -227
  53. umap/static/umap/locale/ar.json +21 -9
  54. umap/static/umap/locale/ast.js +243 -227
  55. umap/static/umap/locale/ast.json +21 -9
  56. umap/static/umap/locale/bg.js +243 -227
  57. umap/static/umap/locale/bg.json +21 -9
  58. umap/static/umap/locale/br.js +253 -237
  59. umap/static/umap/locale/br.json +25 -13
  60. umap/static/umap/locale/ca.js +243 -227
  61. umap/static/umap/locale/ca.json +21 -9
  62. umap/static/umap/locale/cs_CZ.js +243 -227
  63. umap/static/umap/locale/cs_CZ.json +21 -9
  64. umap/static/umap/locale/da.js +243 -227
  65. umap/static/umap/locale/da.json +21 -9
  66. umap/static/umap/locale/de.js +243 -227
  67. umap/static/umap/locale/de.json +21 -9
  68. umap/static/umap/locale/el.js +243 -227
  69. umap/static/umap/locale/el.json +21 -9
  70. umap/static/umap/locale/en.js +243 -234
  71. umap/static/umap/locale/en.json +22 -10
  72. umap/static/umap/locale/en_US.json +21 -9
  73. umap/static/umap/locale/es.js +243 -227
  74. umap/static/umap/locale/es.json +21 -9
  75. umap/static/umap/locale/et.js +243 -227
  76. umap/static/umap/locale/et.json +21 -9
  77. umap/static/umap/locale/eu.js +227 -199
  78. umap/static/umap/locale/eu.json +1 -1
  79. umap/static/umap/locale/fa_IR.js +243 -227
  80. umap/static/umap/locale/fa_IR.json +21 -9
  81. umap/static/umap/locale/fi.js +243 -227
  82. umap/static/umap/locale/fi.json +21 -9
  83. umap/static/umap/locale/fr.js +243 -234
  84. umap/static/umap/locale/fr.json +21 -9
  85. umap/static/umap/locale/gl.js +243 -227
  86. umap/static/umap/locale/gl.json +21 -9
  87. umap/static/umap/locale/he.js +243 -227
  88. umap/static/umap/locale/he.json +21 -9
  89. umap/static/umap/locale/hr.js +243 -227
  90. umap/static/umap/locale/hr.json +21 -9
  91. umap/static/umap/locale/hu.js +243 -234
  92. umap/static/umap/locale/hu.json +21 -9
  93. umap/static/umap/locale/id.js +243 -227
  94. umap/static/umap/locale/id.json +21 -9
  95. umap/static/umap/locale/is.js +243 -227
  96. umap/static/umap/locale/is.json +21 -9
  97. umap/static/umap/locale/it.js +243 -234
  98. umap/static/umap/locale/it.json +21 -9
  99. umap/static/umap/locale/ja.js +243 -227
  100. umap/static/umap/locale/ja.json +21 -9
  101. umap/static/umap/locale/ko.js +243 -227
  102. umap/static/umap/locale/ko.json +21 -9
  103. umap/static/umap/locale/lt.js +243 -227
  104. umap/static/umap/locale/lt.json +21 -9
  105. umap/static/umap/locale/ms.js +243 -234
  106. umap/static/umap/locale/ms.json +22 -10
  107. umap/static/umap/locale/nl.js +246 -230
  108. umap/static/umap/locale/nl.json +21 -9
  109. umap/static/umap/locale/no.js +243 -227
  110. umap/static/umap/locale/no.json +21 -9
  111. umap/static/umap/locale/pl.js +243 -227
  112. umap/static/umap/locale/pl.json +21 -9
  113. umap/static/umap/locale/pl_PL.json +21 -9
  114. umap/static/umap/locale/pt.js +243 -227
  115. umap/static/umap/locale/pt.json +21 -9
  116. umap/static/umap/locale/pt_BR.js +243 -227
  117. umap/static/umap/locale/pt_BR.json +21 -9
  118. umap/static/umap/locale/pt_PT.js +243 -227
  119. umap/static/umap/locale/pt_PT.json +21 -9
  120. umap/static/umap/locale/ro.js +243 -227
  121. umap/static/umap/locale/ro.json +21 -9
  122. umap/static/umap/locale/ru.js +243 -227
  123. umap/static/umap/locale/ru.json +21 -9
  124. umap/static/umap/locale/si.js +1 -1
  125. umap/static/umap/locale/si.json +1 -1
  126. umap/static/umap/locale/sk_SK.js +243 -227
  127. umap/static/umap/locale/sk_SK.json +21 -9
  128. umap/static/umap/locale/sl.js +243 -227
  129. umap/static/umap/locale/sl.json +21 -9
  130. umap/static/umap/locale/sr.js +243 -227
  131. umap/static/umap/locale/sr.json +21 -9
  132. umap/static/umap/locale/sv.js +243 -227
  133. umap/static/umap/locale/sv.json +21 -9
  134. umap/static/umap/locale/th_TH.js +243 -227
  135. umap/static/umap/locale/th_TH.json +21 -9
  136. umap/static/umap/locale/tr.js +243 -227
  137. umap/static/umap/locale/tr.json +21 -9
  138. umap/static/umap/locale/uk_UA.js +243 -227
  139. umap/static/umap/locale/uk_UA.json +21 -9
  140. umap/static/umap/locale/vi.js +243 -227
  141. umap/static/umap/locale/vi.json +21 -9
  142. umap/static/umap/locale/vi_VN.json +21 -9
  143. umap/static/umap/locale/zh.js +243 -227
  144. umap/static/umap/locale/zh.json +21 -9
  145. umap/static/umap/locale/zh_CN.json +21 -9
  146. umap/static/umap/locale/zh_TW.Big5.json +21 -9
  147. umap/static/umap/locale/zh_TW.js +243 -234
  148. umap/static/umap/locale/zh_TW.json +21 -9
  149. umap/static/umap/map.css +124 -264
  150. umap/static/umap/test/DataLayer.js +463 -0
  151. umap/static/umap/test/Feature.js +0 -226
  152. umap/static/umap/test/TableEditor.js +104 -0
  153. umap/static/umap/test/Util.js +0 -521
  154. umap/static/umap/test/index.html +0 -1
  155. umap/static/umap/unittests/URLs.js +1 -1
  156. umap/static/umap/unittests/utils.js +610 -0
  157. umap/static/umap/vars.css +9 -0
  158. umap/static/umap/vendors/dompurify/purify.es.mjs +1525 -0
  159. umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +1 -0
  160. umap/static/umap/vendors/iconlayers/iconLayers.js +1 -1
  161. umap/templates/umap/css.html +2 -0
  162. umap/templates/umap/js.html +0 -1
  163. umap/templates/umap/map_detail.html +4 -0
  164. umap/templates/umap/map_table.html +12 -10
  165. umap/templatetags/umap_tags.py +5 -0
  166. umap/tests/integration/conftest.py +12 -1
  167. umap/tests/integration/test_anonymous_owned_map.py +27 -5
  168. umap/tests/integration/test_basics.py +21 -0
  169. umap/tests/integration/test_browser.py +12 -25
  170. umap/tests/integration/test_choropleth.py +1 -1
  171. umap/tests/integration/test_dashboard.py +10 -0
  172. umap/tests/integration/test_datalayer.py +8 -6
  173. umap/tests/integration/test_edit_datalayer.py +24 -19
  174. umap/tests/integration/test_edit_map.py +189 -2
  175. umap/tests/integration/test_edit_marker.py +120 -0
  176. umap/tests/integration/test_edit_polygon.py +122 -0
  177. umap/tests/integration/test_facets_browser.py +104 -14
  178. umap/tests/integration/test_import.py +72 -20
  179. umap/tests/integration/test_map.py +19 -17
  180. umap/tests/integration/test_map_list.py +28 -0
  181. umap/tests/integration/test_owned_map.py +10 -10
  182. umap/tests/integration/test_picto.py +5 -5
  183. umap/tests/integration/test_querystring.py +9 -15
  184. umap/tests/integration/test_slideshow.py +0 -5
  185. umap/tests/integration/test_statics.py +3 -2
  186. umap/tests/integration/test_tableeditor.py +1 -5
  187. umap/tests/integration/test_tilelayer.py +10 -0
  188. umap/tests/integration/test_view_marker.py +64 -0
  189. umap/tests/integration/test_view_polygon.py +59 -0
  190. umap/tests/integration/test_view_polyline.py +51 -0
  191. umap/tests/test_map_views.py +13 -0
  192. {umap_project-2.1.3.dist-info → umap_project-2.2.0.dist-info}/METADATA +12 -12
  193. {umap_project-2.1.3.dist-info → umap_project-2.2.0.dist-info}/RECORD +198 -182
  194. {umap_project-2.1.3.dist-info → umap_project-2.2.0.dist-info}/WHEEL +1 -1
  195. umap/static/umap/vendors/dompurify/purify.min.js +0 -3
  196. umap/static/umap/vendors/dompurify/purify.min.js.map +0 -1
  197. /umap/tests/integration/{test_polygon.py → test_draw_polygon.py} +0 -0
  198. /umap/tests/integration/{test_polyline.py → test_draw_polyline.py} +0 -0
  199. {umap_project-2.1.3.dist-info → umap_project-2.2.0.dist-info}/entry_points.txt +0 -0
  200. {umap_project-2.1.3.dist-info → umap_project-2.2.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,59 @@
1
+ import re
2
+
3
+ import pytest
4
+ from playwright.sync_api import expect
5
+
6
+ from ..base import DataLayerFactory
7
+
8
+ pytestmark = pytest.mark.django_db
9
+
10
+ DATALAYER_DATA = {
11
+ "type": "FeatureCollection",
12
+ "features": [
13
+ {
14
+ "type": "Feature",
15
+ "properties": {"name": "name poly", "description": "poly description"},
16
+ "id": "gyNzM",
17
+ "geometry": {
18
+ "type": "Polygon",
19
+ "coordinates": [
20
+ [
21
+ [11.25, 53.585984],
22
+ [10.151367, 52.975108],
23
+ [12.689209, 52.167194],
24
+ [14.084473, 53.199452],
25
+ [12.634277, 53.618579],
26
+ [11.25, 53.585984],
27
+ [11.25, 53.585984],
28
+ ],
29
+ ],
30
+ },
31
+ },
32
+ ],
33
+ }
34
+
35
+
36
+ @pytest.fixture
37
+ def bootstrap(map, live_server):
38
+ map.settings["properties"]["zoom"] = 6
39
+ map.settings["geometry"] = {
40
+ "type": "Point",
41
+ "coordinates": [8.429, 53.239],
42
+ }
43
+ map.save()
44
+ DataLayerFactory(map=map, data=DATALAYER_DATA)
45
+
46
+
47
+ def test_should_open_popup_on_click(live_server, map, page, bootstrap):
48
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
49
+ polygon = page.locator("path").first
50
+ expect(polygon).to_have_attribute("fill-opacity", "0.3")
51
+ polygon.click()
52
+ expect(page.locator(".leaflet-popup-content-wrapper")).to_be_visible()
53
+ expect(page.get_by_role("heading", name="name poly")).to_be_visible()
54
+ expect(page.get_by_text("poly description")).to_be_visible()
55
+ # It's not a round value
56
+ expect(polygon).to_have_attribute("fill-opacity", re.compile(r"0.5\d+"))
57
+ # Close popup
58
+ page.locator("#map").click()
59
+ expect(polygon).to_have_attribute("fill-opacity", "0.3")
@@ -0,0 +1,51 @@
1
+ import pytest
2
+ from playwright.sync_api import expect
3
+
4
+ from ..base import DataLayerFactory
5
+
6
+ pytestmark = pytest.mark.django_db
7
+
8
+ DATALAYER_DATA = {
9
+ "type": "FeatureCollection",
10
+ "features": [
11
+ {
12
+ "type": "Feature",
13
+ "properties": {"name": "name line", "description": "line description"},
14
+ "geometry": {
15
+ "type": "LineString",
16
+ "coordinates": [
17
+ # Flat line so PW will click on it
18
+ # (it compute the center of the element)
19
+ [11.25, 53.585984],
20
+ [10.151367, 52.975108],
21
+ ],
22
+ },
23
+ },
24
+ ],
25
+ }
26
+
27
+
28
+ @pytest.fixture
29
+ def bootstrap(map, live_server):
30
+ map.settings["properties"]["zoom"] = 6
31
+ map.settings["geometry"] = {
32
+ "type": "Point",
33
+ "coordinates": [8.429, 53.239],
34
+ }
35
+ map.save()
36
+ DataLayerFactory(map=map, data=DATALAYER_DATA)
37
+
38
+
39
+ def test_should_open_popup_on_click(live_server, map, page, bootstrap):
40
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
41
+ line = page.locator("path").first
42
+ expect(line).to_have_attribute("stroke-opacity", "0.5")
43
+ line.click()
44
+ expect(page.locator(".leaflet-popup-content-wrapper")).to_be_visible()
45
+ expect(page.get_by_role("heading", name="name line")).to_be_visible()
46
+ expect(page.get_by_text("line description")).to_be_visible()
47
+ # It's not a round value
48
+ expect(line).to_have_attribute("stroke-opacity", "1")
49
+ # Close popup
50
+ page.locator("#map").click()
51
+ expect(line).to_have_attribute("stroke-opacity", "0.5")
@@ -847,3 +847,16 @@ def test_oembed_link(client, map, datalayer):
847
847
  f'?url=http%3A%2F%2Ftestserver%2Fen%2Fmap%2Ftest-map_{map.id}&format=json"'
848
848
  ) in response.content.decode()
849
849
  assert 'title="test map oEmbed URL" />' in response.content.decode()
850
+
851
+
852
+ def test_ogp_links(client, map, datalayer):
853
+ response = client.get(map.get_absolute_url())
854
+ assert response.status_code == 200
855
+ content = response.content.decode()
856
+ assert (
857
+ f'<meta property="og:url" content="http://umap.org{map.get_absolute_url()}" />'
858
+ in content
859
+ )
860
+ assert f'<meta property="og:title" content="{map.name}" />' in content
861
+ assert f'<meta property="og:description" content="{map.description}" />' in content
862
+ assert '<meta property="og:site_name" content="uMap" />' in content
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: umap-project
3
- Version: 2.1.3
3
+ Version: 2.2.0
4
4
  Summary: Create maps with OpenStreetMap layers in a minute and embed them in your site.
5
5
  Author-email: Yohan Boniface <yb@enix.org>
6
6
  Maintainer-email: David Larlet <david@larlet.fr>
@@ -19,32 +19,32 @@ Requires-Python: >=3.10
19
19
  Requires-Dist: django-agnocomplete==2.2.0
20
20
  Requires-Dist: django-environ==0.11.2
21
21
  Requires-Dist: django-probes==1.7.0
22
- Requires-Dist: django==5.0.3
23
- Requires-Dist: pillow==10.2.0
22
+ Requires-Dist: django==5.0.4
23
+ Requires-Dist: pillow==10.3.0
24
24
  Requires-Dist: psycopg==3.1.18
25
25
  Requires-Dist: rcssmin==1.1.2
26
26
  Requires-Dist: requests==2.31.0
27
27
  Requires-Dist: rjsmin==1.2.2
28
- Requires-Dist: social-auth-app-django==5.4.0
29
- Requires-Dist: social-auth-core==4.5.3
28
+ Requires-Dist: social-auth-app-django==5.4.1
29
+ Requires-Dist: social-auth-core==4.5.4
30
30
  Provides-Extra: dev
31
31
  Requires-Dist: djlint==1.34.1; extra == 'dev'
32
- Requires-Dist: hatch==1.9.4; extra == 'dev'
32
+ Requires-Dist: hatch==1.9.7; extra == 'dev'
33
33
  Requires-Dist: isort==5.13.2; extra == 'dev'
34
- Requires-Dist: mkdocs-material==9.5.15; extra == 'dev'
34
+ Requires-Dist: mkdocs-material==9.5.18; extra == 'dev'
35
35
  Requires-Dist: mkdocs==1.5.3; extra == 'dev'
36
- Requires-Dist: pymdown-extensions==10.7.1; extra == 'dev'
37
- Requires-Dist: ruff==0.3.4; extra == 'dev'
36
+ Requires-Dist: pymdown-extensions==10.8.1; extra == 'dev'
37
+ Requires-Dist: ruff==0.4.2; extra == 'dev'
38
38
  Requires-Dist: vermin==1.6.0; extra == 'dev'
39
39
  Provides-Extra: docker
40
- Requires-Dist: uwsgi==2.0.24; extra == 'docker'
40
+ Requires-Dist: uwsgi==2.0.25.1; extra == 'docker'
41
41
  Provides-Extra: test
42
42
  Requires-Dist: factory-boy==3.2.1; extra == 'test'
43
43
  Requires-Dist: playwright>=1.39; extra == 'test'
44
44
  Requires-Dist: pytest-django==4.8.0; extra == 'test'
45
45
  Requires-Dist: pytest-playwright==0.4.4; extra == 'test'
46
46
  Requires-Dist: pytest-xdist<4,>=3.5.0; extra == 'test'
47
- Requires-Dist: pytest==8.1.1; extra == 'test'
47
+ Requires-Dist: pytest==8.2.0; extra == 'test'
48
48
  Description-Content-Type: text/markdown
49
49
 
50
50
  # uMap project