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.
- umap/__init__.py +1 -1
- umap/context_processors.py +1 -0
- umap/locale/br/LC_MESSAGES/django.mo +0 -0
- umap/locale/en/LC_MESSAGES/django.po +32 -32
- umap/locale/hu/LC_MESSAGES/django.mo +0 -0
- umap/locale/it/LC_MESSAGES/django.mo +0 -0
- umap/locale/ms/LC_MESSAGES/django.mo +0 -0
- umap/migrations/0020_alter_tilelayer_url_template.py +19 -0
- umap/migrations/0021_remove_map_description.py +16 -0
- umap/models.py +8 -6
- umap/settings/base.py +1 -0
- umap/static/umap/base.css +43 -156
- umap/static/umap/content.css +7 -25
- umap/static/umap/css/icon.css +112 -0
- umap/static/umap/css/panel.css +140 -0
- umap/static/umap/img/16-white.svg +5 -1
- umap/static/umap/img/16.svg +7 -4
- umap/static/umap/img/24-white.svg +3 -1
- umap/static/umap/img/24.svg +3 -4
- umap/static/umap/img/source/16-white.svg +176 -940
- umap/static/umap/img/source/16.svg +8 -5
- umap/static/umap/img/source/24-white.svg +5 -3
- umap/static/umap/img/source/24.svg +6 -7
- umap/static/umap/js/modules/browser.js +97 -73
- umap/static/umap/js/modules/dompurify.js +12 -0
- umap/static/umap/js/modules/facets.js +149 -0
- umap/static/umap/js/modules/global.js +9 -1
- umap/static/umap/js/modules/i18n.js +7 -0
- umap/static/umap/js/modules/orderable.js +84 -0
- umap/static/umap/js/modules/panel.js +76 -0
- umap/static/umap/js/modules/request.js +0 -1
- umap/static/umap/js/modules/schema.js +324 -223
- umap/static/umap/js/modules/urls.js +1 -16
- umap/static/umap/js/modules/utils.js +340 -0
- umap/static/umap/js/umap.autocomplete.js +40 -25
- umap/static/umap/js/umap.controls.js +227 -369
- umap/static/umap/js/umap.core.js +77 -366
- umap/static/umap/js/umap.datalayer.permissions.js +1 -1
- umap/static/umap/js/umap.features.js +62 -42
- umap/static/umap/js/umap.forms.js +128 -36
- umap/static/umap/js/umap.icon.js +11 -4
- umap/static/umap/js/umap.importer.js +78 -57
- umap/static/umap/js/umap.js +179 -156
- umap/static/umap/js/umap.layer.js +79 -40
- umap/static/umap/js/umap.permissions.js +13 -9
- umap/static/umap/js/umap.popup.js +26 -30
- umap/static/umap/js/umap.share.js +12 -9
- umap/static/umap/js/umap.tableeditor.js +4 -6
- umap/static/umap/js/umap.ui.js +10 -60
- umap/static/umap/locale/am_ET.js +243 -227
- umap/static/umap/locale/am_ET.json +21 -9
- umap/static/umap/locale/ar.js +243 -227
- umap/static/umap/locale/ar.json +21 -9
- umap/static/umap/locale/ast.js +243 -227
- umap/static/umap/locale/ast.json +21 -9
- umap/static/umap/locale/bg.js +243 -227
- umap/static/umap/locale/bg.json +21 -9
- umap/static/umap/locale/br.js +253 -237
- umap/static/umap/locale/br.json +25 -13
- umap/static/umap/locale/ca.js +243 -227
- umap/static/umap/locale/ca.json +21 -9
- umap/static/umap/locale/cs_CZ.js +243 -227
- umap/static/umap/locale/cs_CZ.json +21 -9
- umap/static/umap/locale/da.js +243 -227
- umap/static/umap/locale/da.json +21 -9
- umap/static/umap/locale/de.js +243 -227
- umap/static/umap/locale/de.json +21 -9
- umap/static/umap/locale/el.js +243 -227
- umap/static/umap/locale/el.json +21 -9
- umap/static/umap/locale/en.js +243 -234
- umap/static/umap/locale/en.json +22 -10
- umap/static/umap/locale/en_US.json +21 -9
- umap/static/umap/locale/es.js +243 -227
- umap/static/umap/locale/es.json +21 -9
- umap/static/umap/locale/et.js +243 -227
- umap/static/umap/locale/et.json +21 -9
- umap/static/umap/locale/eu.js +227 -199
- umap/static/umap/locale/eu.json +1 -1
- umap/static/umap/locale/fa_IR.js +243 -227
- umap/static/umap/locale/fa_IR.json +21 -9
- umap/static/umap/locale/fi.js +243 -227
- umap/static/umap/locale/fi.json +21 -9
- umap/static/umap/locale/fr.js +243 -234
- umap/static/umap/locale/fr.json +21 -9
- umap/static/umap/locale/gl.js +243 -227
- umap/static/umap/locale/gl.json +21 -9
- umap/static/umap/locale/he.js +243 -227
- umap/static/umap/locale/he.json +21 -9
- umap/static/umap/locale/hr.js +243 -227
- umap/static/umap/locale/hr.json +21 -9
- umap/static/umap/locale/hu.js +243 -234
- umap/static/umap/locale/hu.json +21 -9
- umap/static/umap/locale/id.js +243 -227
- umap/static/umap/locale/id.json +21 -9
- umap/static/umap/locale/is.js +243 -227
- umap/static/umap/locale/is.json +21 -9
- umap/static/umap/locale/it.js +243 -234
- umap/static/umap/locale/it.json +21 -9
- umap/static/umap/locale/ja.js +243 -227
- umap/static/umap/locale/ja.json +21 -9
- umap/static/umap/locale/ko.js +243 -227
- umap/static/umap/locale/ko.json +21 -9
- umap/static/umap/locale/lt.js +243 -227
- umap/static/umap/locale/lt.json +21 -9
- umap/static/umap/locale/ms.js +243 -234
- umap/static/umap/locale/ms.json +22 -10
- umap/static/umap/locale/nl.js +246 -230
- umap/static/umap/locale/nl.json +21 -9
- umap/static/umap/locale/no.js +243 -227
- umap/static/umap/locale/no.json +21 -9
- umap/static/umap/locale/pl.js +243 -227
- umap/static/umap/locale/pl.json +21 -9
- umap/static/umap/locale/pl_PL.json +21 -9
- umap/static/umap/locale/pt.js +243 -227
- umap/static/umap/locale/pt.json +21 -9
- umap/static/umap/locale/pt_BR.js +243 -227
- umap/static/umap/locale/pt_BR.json +21 -9
- umap/static/umap/locale/pt_PT.js +243 -227
- umap/static/umap/locale/pt_PT.json +21 -9
- umap/static/umap/locale/ro.js +243 -227
- umap/static/umap/locale/ro.json +21 -9
- umap/static/umap/locale/ru.js +243 -227
- umap/static/umap/locale/ru.json +21 -9
- umap/static/umap/locale/si.js +1 -1
- umap/static/umap/locale/si.json +1 -1
- umap/static/umap/locale/sk_SK.js +243 -227
- umap/static/umap/locale/sk_SK.json +21 -9
- umap/static/umap/locale/sl.js +243 -227
- umap/static/umap/locale/sl.json +21 -9
- umap/static/umap/locale/sr.js +243 -227
- umap/static/umap/locale/sr.json +21 -9
- umap/static/umap/locale/sv.js +243 -227
- umap/static/umap/locale/sv.json +21 -9
- umap/static/umap/locale/th_TH.js +243 -227
- umap/static/umap/locale/th_TH.json +21 -9
- umap/static/umap/locale/tr.js +243 -227
- umap/static/umap/locale/tr.json +21 -9
- umap/static/umap/locale/uk_UA.js +243 -227
- umap/static/umap/locale/uk_UA.json +21 -9
- umap/static/umap/locale/vi.js +243 -227
- umap/static/umap/locale/vi.json +21 -9
- umap/static/umap/locale/vi_VN.json +21 -9
- umap/static/umap/locale/zh.js +243 -227
- umap/static/umap/locale/zh.json +21 -9
- umap/static/umap/locale/zh_CN.json +21 -9
- umap/static/umap/locale/zh_TW.Big5.json +21 -9
- umap/static/umap/locale/zh_TW.js +243 -234
- umap/static/umap/locale/zh_TW.json +21 -9
- umap/static/umap/map.css +124 -264
- umap/static/umap/test/DataLayer.js +463 -0
- umap/static/umap/test/Feature.js +0 -226
- umap/static/umap/test/TableEditor.js +104 -0
- umap/static/umap/test/Util.js +0 -521
- umap/static/umap/test/index.html +0 -1
- umap/static/umap/unittests/URLs.js +1 -1
- umap/static/umap/unittests/utils.js +610 -0
- umap/static/umap/vars.css +9 -0
- umap/static/umap/vendors/dompurify/purify.es.mjs +1525 -0
- umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +1 -0
- umap/static/umap/vendors/iconlayers/iconLayers.js +1 -1
- umap/templates/umap/css.html +2 -0
- umap/templates/umap/js.html +0 -1
- umap/templates/umap/map_detail.html +4 -0
- umap/templates/umap/map_table.html +12 -10
- umap/templatetags/umap_tags.py +5 -0
- umap/tests/integration/conftest.py +12 -1
- umap/tests/integration/test_anonymous_owned_map.py +27 -5
- umap/tests/integration/test_basics.py +21 -0
- umap/tests/integration/test_browser.py +12 -25
- umap/tests/integration/test_choropleth.py +1 -1
- umap/tests/integration/test_dashboard.py +10 -0
- umap/tests/integration/test_datalayer.py +8 -6
- umap/tests/integration/test_edit_datalayer.py +24 -19
- umap/tests/integration/test_edit_map.py +189 -2
- umap/tests/integration/test_edit_marker.py +120 -0
- umap/tests/integration/test_edit_polygon.py +122 -0
- umap/tests/integration/test_facets_browser.py +104 -14
- umap/tests/integration/test_import.py +72 -20
- umap/tests/integration/test_map.py +19 -17
- umap/tests/integration/test_map_list.py +28 -0
- umap/tests/integration/test_owned_map.py +10 -10
- umap/tests/integration/test_picto.py +5 -5
- umap/tests/integration/test_querystring.py +9 -15
- umap/tests/integration/test_slideshow.py +0 -5
- umap/tests/integration/test_statics.py +3 -2
- umap/tests/integration/test_tableeditor.py +1 -5
- umap/tests/integration/test_tilelayer.py +10 -0
- umap/tests/integration/test_view_marker.py +64 -0
- umap/tests/integration/test_view_polygon.py +59 -0
- umap/tests/integration/test_view_polyline.py +51 -0
- umap/tests/test_map_views.py +13 -0
- {umap_project-2.1.3.dist-info → umap_project-2.2.0.dist-info}/METADATA +12 -12
- {umap_project-2.1.3.dist-info → umap_project-2.2.0.dist-info}/RECORD +198 -182
- {umap_project-2.1.3.dist-info → umap_project-2.2.0.dist-info}/WHEEL +1 -1
- umap/static/umap/vendors/dompurify/purify.min.js +0 -3
- umap/static/umap/vendors/dompurify/purify.min.js.map +0 -1
- /umap/tests/integration/{test_polygon.py → test_draw_polygon.py} +0 -0
- /umap/tests/integration/{test_polyline.py → test_draw_polyline.py} +0 -0
- {umap_project-2.1.3.dist-info → umap_project-2.2.0.dist-info}/entry_points.txt +0 -0
- {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")
|
umap/tests/test_map_views.py
CHANGED
|
@@ -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
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: umap-project
|
|
3
|
-
Version: 2.
|
|
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.
|
|
23
|
-
Requires-Dist: pillow==10.
|
|
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.
|
|
29
|
-
Requires-Dist: social-auth-core==4.5.
|
|
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.
|
|
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.
|
|
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.
|
|
37
|
-
Requires-Dist: ruff==0.
|
|
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.
|
|
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.
|
|
47
|
+
Requires-Dist: pytest==8.2.0; extra == 'test'
|
|
48
48
|
Description-Content-Type: text/markdown
|
|
49
49
|
|
|
50
50
|
# uMap project
|