umap-project 2.8.2__py3-none-any.whl → 2.9.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/admin.py +15 -2
- umap/asgi.py +12 -7
- umap/context_processors.py +1 -0
- umap/locale/br/LC_MESSAGES/django.mo +0 -0
- umap/locale/br/LC_MESSAGES/django.po +111 -67
- umap/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- umap/locale/cs_CZ/LC_MESSAGES/django.po +110 -66
- umap/locale/el/LC_MESSAGES/django.mo +0 -0
- umap/locale/el/LC_MESSAGES/django.po +129 -85
- umap/locale/en/LC_MESSAGES/django.po +103 -60
- umap/locale/es/LC_MESSAGES/django.mo +0 -0
- umap/locale/es/LC_MESSAGES/django.po +114 -69
- umap/locale/fr/LC_MESSAGES/django.mo +0 -0
- umap/locale/fr/LC_MESSAGES/django.po +105 -61
- umap/locale/gl/LC_MESSAGES/django.mo +0 -0
- umap/locale/gl/LC_MESSAGES/django.po +216 -171
- umap/locale/it/LC_MESSAGES/django.mo +0 -0
- umap/locale/it/LC_MESSAGES/django.po +142 -98
- umap/locale/nl/LC_MESSAGES/django.mo +0 -0
- umap/locale/nl/LC_MESSAGES/django.po +196 -151
- umap/locale/pt/LC_MESSAGES/django.mo +0 -0
- umap/locale/pt/LC_MESSAGES/django.po +115 -71
- umap/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
- umap/locale/zh_TW/LC_MESSAGES/django.po +109 -65
- umap/management/commands/empty_trash.py +12 -1
- umap/migrations/0026_datalayer_modified_at_datalayer_share_status.py +26 -0
- umap/models.py +43 -13
- umap/settings/base.py +5 -2
- umap/static/umap/base.css +5 -2
- umap/static/umap/content.css +2 -22
- umap/static/umap/css/bar.css +39 -10
- umap/static/umap/css/contextmenu.css +14 -2
- umap/static/umap/css/form.css +33 -39
- umap/static/umap/css/icon.css +47 -5
- umap/static/umap/css/panel.css +20 -2
- umap/static/umap/css/popup.css +0 -1
- umap/static/umap/css/tooltip.css +33 -31
- umap/static/umap/img/16-white.svg +5 -3
- umap/static/umap/img/16.svg +1 -1
- umap/static/umap/img/24-white.svg +17 -16
- umap/static/umap/img/24.svg +29 -18
- umap/static/umap/img/providers/bitbucket.png +0 -0
- umap/static/umap/img/providers/github.png +0 -0
- umap/static/umap/img/providers/keycloak.png +0 -0
- umap/static/umap/img/providers/openstreetmap-oauth2.png +0 -0
- umap/static/umap/img/providers/twitter-oauth2.png +0 -0
- umap/static/umap/img/source/16-white.svg +6 -4
- umap/static/umap/img/source/16.svg +1 -1
- umap/static/umap/img/source/24-white.svg +20 -18
- umap/static/umap/img/source/24.svg +30 -19
- umap/static/umap/js/components/alerts/alert.js +4 -1
- umap/static/umap/js/modules/browser.js +8 -8
- umap/static/umap/js/modules/caption.js +30 -7
- umap/static/umap/js/modules/data/features.js +101 -56
- umap/static/umap/js/modules/data/layer.js +108 -83
- umap/static/umap/js/modules/form/builder.js +242 -0
- umap/static/umap/js/modules/form/fields.js +1346 -0
- umap/static/umap/js/modules/formatter.js +9 -8
- umap/static/umap/js/modules/help.js +20 -24
- umap/static/umap/js/modules/importer.js +6 -3
- umap/static/umap/js/modules/permissions.js +11 -6
- umap/static/umap/js/modules/rendering/icon.js +5 -1
- umap/static/umap/js/modules/rendering/layers/classified.js +12 -8
- umap/static/umap/js/modules/rendering/layers/cluster.js +11 -1
- umap/static/umap/js/modules/rendering/map.js +1 -23
- umap/static/umap/js/modules/rendering/ui.js +20 -38
- umap/static/umap/js/modules/rules.js +3 -2
- umap/static/umap/js/modules/saving.js +5 -0
- umap/static/umap/js/modules/schema.js +8 -6
- umap/static/umap/js/modules/share.js +3 -3
- umap/static/umap/js/modules/sync/engine.js +56 -26
- umap/static/umap/js/modules/sync/updaters.js +15 -6
- umap/static/umap/js/modules/sync/websocket.js +50 -37
- umap/static/umap/js/modules/tableeditor.js +3 -2
- umap/static/umap/js/modules/ui/bar.js +101 -9
- umap/static/umap/js/modules/ui/base.js +7 -24
- umap/static/umap/js/modules/ui/contextmenu.js +9 -2
- umap/static/umap/js/modules/ui/panel.js +5 -1
- umap/static/umap/js/modules/ui/tooltip.js +19 -11
- umap/static/umap/js/modules/umap.js +121 -68
- umap/static/umap/js/modules/utils.js +196 -12
- umap/static/umap/js/umap.controls.js +11 -353
- umap/static/umap/locale/am_ET.js +17 -5
- umap/static/umap/locale/am_ET.json +17 -5
- umap/static/umap/locale/ar.js +17 -5
- umap/static/umap/locale/ar.json +17 -5
- umap/static/umap/locale/ast.js +17 -5
- umap/static/umap/locale/ast.json +17 -5
- umap/static/umap/locale/bg.js +17 -5
- umap/static/umap/locale/bg.json +17 -5
- umap/static/umap/locale/br.js +33 -20
- umap/static/umap/locale/br.json +33 -20
- umap/static/umap/locale/ca.js +17 -5
- umap/static/umap/locale/ca.json +17 -5
- umap/static/umap/locale/cs_CZ.js +15 -5
- umap/static/umap/locale/cs_CZ.json +15 -5
- umap/static/umap/locale/da.js +17 -5
- umap/static/umap/locale/da.json +17 -5
- umap/static/umap/locale/de.js +17 -5
- umap/static/umap/locale/de.json +17 -5
- umap/static/umap/locale/el.js +63 -51
- umap/static/umap/locale/el.json +63 -51
- umap/static/umap/locale/en.js +15 -5
- umap/static/umap/locale/en.json +15 -5
- umap/static/umap/locale/en_US.json +17 -5
- umap/static/umap/locale/es.js +25 -13
- umap/static/umap/locale/es.json +25 -13
- umap/static/umap/locale/et.js +17 -5
- umap/static/umap/locale/et.json +17 -5
- umap/static/umap/locale/eu.js +17 -5
- umap/static/umap/locale/eu.json +17 -5
- umap/static/umap/locale/fa_IR.js +17 -5
- umap/static/umap/locale/fa_IR.json +17 -5
- umap/static/umap/locale/fi.js +17 -5
- umap/static/umap/locale/fi.json +17 -5
- umap/static/umap/locale/fr.js +16 -6
- umap/static/umap/locale/fr.json +16 -6
- umap/static/umap/locale/gl.js +357 -345
- umap/static/umap/locale/gl.json +357 -345
- umap/static/umap/locale/he.js +17 -5
- umap/static/umap/locale/he.json +17 -5
- umap/static/umap/locale/hr.js +17 -5
- umap/static/umap/locale/hr.json +17 -5
- umap/static/umap/locale/hu.js +14 -5
- umap/static/umap/locale/hu.json +14 -5
- umap/static/umap/locale/id.js +17 -5
- umap/static/umap/locale/id.json +17 -5
- umap/static/umap/locale/is.js +17 -5
- umap/static/umap/locale/is.json +17 -5
- umap/static/umap/locale/it.js +125 -113
- umap/static/umap/locale/it.json +125 -113
- umap/static/umap/locale/ja.js +17 -5
- umap/static/umap/locale/ja.json +17 -5
- umap/static/umap/locale/ko.js +17 -5
- umap/static/umap/locale/ko.json +17 -5
- umap/static/umap/locale/lt.js +17 -5
- umap/static/umap/locale/lt.json +17 -5
- umap/static/umap/locale/ms.js +17 -5
- umap/static/umap/locale/ms.json +17 -5
- umap/static/umap/locale/nl.js +132 -119
- umap/static/umap/locale/nl.json +132 -119
- umap/static/umap/locale/no.js +17 -5
- umap/static/umap/locale/no.json +17 -5
- umap/static/umap/locale/pl.js +17 -5
- umap/static/umap/locale/pl.json +17 -5
- umap/static/umap/locale/pl_PL.json +17 -5
- umap/static/umap/locale/pt.js +38 -25
- umap/static/umap/locale/pt.json +38 -25
- umap/static/umap/locale/pt_BR.js +17 -5
- umap/static/umap/locale/pt_BR.json +17 -5
- umap/static/umap/locale/pt_PT.js +17 -5
- umap/static/umap/locale/pt_PT.json +17 -5
- umap/static/umap/locale/ro.js +17 -5
- umap/static/umap/locale/ro.json +17 -5
- umap/static/umap/locale/ru.js +17 -5
- umap/static/umap/locale/ru.json +17 -5
- umap/static/umap/locale/sk_SK.js +17 -5
- umap/static/umap/locale/sk_SK.json +17 -5
- umap/static/umap/locale/sl.js +17 -5
- umap/static/umap/locale/sl.json +17 -5
- umap/static/umap/locale/sr.js +17 -5
- umap/static/umap/locale/sr.json +17 -5
- umap/static/umap/locale/sv.js +17 -5
- umap/static/umap/locale/sv.json +17 -5
- umap/static/umap/locale/th_TH.js +17 -5
- umap/static/umap/locale/th_TH.json +17 -5
- umap/static/umap/locale/tr.js +17 -5
- umap/static/umap/locale/tr.json +17 -5
- umap/static/umap/locale/uk_UA.js +17 -5
- umap/static/umap/locale/uk_UA.json +17 -5
- umap/static/umap/locale/vi.js +17 -5
- umap/static/umap/locale/vi.json +17 -5
- umap/static/umap/locale/vi_VN.json +17 -5
- umap/static/umap/locale/zh.js +17 -5
- umap/static/umap/locale/zh.json +17 -5
- umap/static/umap/locale/zh_CN.json +17 -5
- umap/static/umap/locale/zh_TW.Big5.json +17 -5
- umap/static/umap/locale/zh_TW.js +15 -5
- umap/static/umap/locale/zh_TW.json +15 -5
- umap/static/umap/map.css +29 -76
- umap/static/umap/nav.css +6 -3
- umap/static/umap/unittests/utils.js +14 -0
- umap/static/umap/vars.css +3 -0
- umap/static/umap/vendors/dompurify/purify.es.js +138 -354
- umap/static/umap/vendors/dompurify/purify.es.mjs.map +1 -1
- umap/static/umap/vendors/editable/Leaflet.Editable.js +1 -0
- umap/sync/__init__.py +0 -0
- umap/sync/app.py +187 -0
- umap/sync/payloads.py +56 -0
- umap/templates/auth/user_detail.html +4 -0
- umap/templates/auth/user_form.html +9 -6
- umap/templates/auth/user_stars.html +4 -0
- umap/templates/base.html +1 -1
- umap/templates/registration/login.html +2 -5
- umap/templates/umap/about.html +5 -0
- umap/templates/umap/about_summary.html +2 -2
- umap/templates/umap/components/provider.html +8 -0
- umap/templates/umap/content_footer.html +1 -1
- umap/templates/umap/css.html +0 -2
- umap/templates/umap/js.html +0 -4
- umap/templates/umap/map_detail.html +1 -1
- umap/templates/umap/password_change.html +4 -0
- umap/templates/umap/password_change_done.html +4 -0
- umap/templates/umap/search.html +4 -0
- umap/templates/umap/search_bar.html +1 -0
- umap/templates/umap/team_confirm_delete.html +4 -0
- umap/templates/umap/team_detail.html +4 -0
- umap/templates/umap/team_form.html +4 -0
- umap/templates/umap/user_dashboard.html +1 -1
- umap/templates/umap/user_teams.html +4 -0
- umap/tests/base.py +3 -1
- umap/tests/integration/conftest.py +16 -23
- umap/tests/integration/test_anonymous_owned_map.py +2 -2
- umap/tests/integration/test_basics.py +4 -7
- umap/tests/integration/test_caption.py +1 -0
- umap/tests/integration/test_categorized_layer.py +4 -8
- umap/tests/integration/test_choropleth.py +1 -1
- umap/tests/integration/test_conditional_rules.py +3 -3
- umap/tests/integration/test_draw_polygon.py +14 -22
- umap/tests/integration/test_draw_polyline.py +6 -14
- umap/tests/integration/test_edit_datalayer.py +11 -11
- umap/tests/integration/test_edit_map.py +30 -4
- umap/tests/integration/test_edit_marker.py +5 -5
- umap/tests/integration/test_edit_polygon.py +6 -6
- umap/tests/integration/test_features_id_generation.py +2 -6
- umap/tests/integration/test_import.py +115 -29
- umap/tests/integration/test_optimistic_merge.py +1 -0
- umap/tests/integration/test_owned_map.py +1 -1
- umap/tests/integration/test_picto.py +8 -8
- umap/tests/integration/test_save.py +3 -2
- umap/tests/integration/test_star.py +13 -9
- umap/tests/integration/test_tableeditor.py +8 -7
- umap/tests/integration/test_view_marker.py +10 -0
- umap/tests/integration/test_websocket_sync.py +239 -64
- umap/tests/settings.py +2 -0
- umap/tests/test_datalayer.py +2 -3
- umap/tests/test_datalayer_views.py +20 -1
- umap/tests/test_empty_trash.py +10 -3
- umap/tests/test_map_views.py +11 -0
- umap/utils.py +27 -11
- umap/views.py +37 -6
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/METADATA +22 -22
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/RECORD +247 -248
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/WHEEL +1 -1
- umap/management/commands/run_websocket_server.py +0 -23
- umap/settings/local_s3.py +0 -45
- umap/static/umap/bitbucket.png +0 -0
- umap/static/umap/github.png +0 -0
- umap/static/umap/js/umap.forms.js +0 -1242
- umap/static/umap/keycloak.png +0 -0
- umap/static/umap/openstreetmap.png +0 -0
- umap/static/umap/twitter.png +0 -0
- umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +0 -468
- umap/static/umap/vendors/toolbar/leaflet.toolbar.css +0 -1
- umap/static/umap/vendors/toolbar/leaflet.toolbar.js +0 -1
- umap/tests/test_websocket_server.py +0 -22
- umap/websocket_server.py +0 -202
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/entry_points.txt +0 -0
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/licenses/LICENSE +0 -0
umap/tests/test_map_views.py
CHANGED
|
@@ -810,6 +810,17 @@ def test_oembed_shared_status_map(client, map, datalayer, share_status):
|
|
|
810
810
|
assert response.status_code == 403
|
|
811
811
|
|
|
812
812
|
|
|
813
|
+
def test_download_does_not_include_delete_datalayers(client, map, datalayer):
|
|
814
|
+
datalayer.share_status = DataLayer.DELETED
|
|
815
|
+
datalayer.save()
|
|
816
|
+
url = reverse("map_download", args=(map.pk,))
|
|
817
|
+
response = client.get(url)
|
|
818
|
+
assert response.status_code == 200
|
|
819
|
+
# Test response is a json
|
|
820
|
+
j = json.loads(response.content.decode())
|
|
821
|
+
assert j["layers"] == []
|
|
822
|
+
|
|
823
|
+
|
|
813
824
|
def test_oembed_no_url_map(client, map, datalayer):
|
|
814
825
|
url = reverse("map_oembed")
|
|
815
826
|
response = client.get(url)
|
umap/utils.py
CHANGED
|
@@ -7,23 +7,39 @@ from django.core.serializers.json import DjangoJSONEncoder
|
|
|
7
7
|
from django.urls import URLPattern, URLResolver, get_resolver
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
def
|
|
10
|
+
def _get_url_names(module):
|
|
11
|
+
def _get_names(resolver):
|
|
12
|
+
names = []
|
|
13
|
+
for pattern in resolver.url_patterns:
|
|
14
|
+
if getattr(pattern, "url_patterns", None):
|
|
15
|
+
# Do not add "admin" and other third party apps urls.
|
|
16
|
+
if not pattern.namespace:
|
|
17
|
+
names.extend(_get_names(pattern))
|
|
18
|
+
elif getattr(pattern, "name", None):
|
|
19
|
+
names.append(pattern.name)
|
|
20
|
+
return names
|
|
21
|
+
|
|
22
|
+
return _get_names(get_resolver(module))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _urls_for_js():
|
|
11
26
|
"""
|
|
12
27
|
Return templated URLs prepared for javascript.
|
|
13
28
|
"""
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
29
|
+
urls = {}
|
|
30
|
+
modules = ["umap.urls"]
|
|
31
|
+
if settings.WEBSOCKET_ENABLED:
|
|
32
|
+
modules.append("umap.sync.app")
|
|
33
|
+
for module in modules:
|
|
34
|
+
names = _get_url_names(module)
|
|
35
|
+
urls.update(
|
|
36
|
+
dict(zip(names, [get_uri_template(url, module=module) for url in names]))
|
|
37
|
+
)
|
|
22
38
|
urls.update(getattr(settings, "UMAP_EXTRA_URLS", {}))
|
|
23
39
|
return urls
|
|
24
40
|
|
|
25
41
|
|
|
26
|
-
def get_uri_template(urlname, args=None, prefix=""):
|
|
42
|
+
def get_uri_template(urlname, args=None, prefix="", module=None):
|
|
27
43
|
"""
|
|
28
44
|
Utility function to return an URI Template from a named URL in django
|
|
29
45
|
Copied from django-digitalpaper.
|
|
@@ -45,7 +61,7 @@ def get_uri_template(urlname, args=None, prefix=""):
|
|
|
45
61
|
paths = template % dict([p, "{%s}" % p] for p in args)
|
|
46
62
|
return "%s/%s" % (prefix, paths)
|
|
47
63
|
|
|
48
|
-
resolver = get_resolver(
|
|
64
|
+
resolver = get_resolver(module)
|
|
49
65
|
parts = urlname.split(":")
|
|
50
66
|
if len(parts) > 1 and parts[0] in resolver.namespace_dict:
|
|
51
67
|
namespace = parts[0]
|
umap/views.py
CHANGED
|
@@ -15,7 +15,7 @@ from urllib.request import Request, build_opener
|
|
|
15
15
|
|
|
16
16
|
from django.conf import settings
|
|
17
17
|
from django.contrib import messages
|
|
18
|
-
from django.contrib.auth import get_user_model
|
|
18
|
+
from django.contrib.auth import BACKEND_SESSION_KEY, get_user_model
|
|
19
19
|
from django.contrib.auth import logout as do_logout
|
|
20
20
|
from django.contrib.gis.measure import D
|
|
21
21
|
from django.contrib.postgres.search import SearchQuery, SearchVector
|
|
@@ -605,15 +605,22 @@ class MapDetailMixin(SessionMixin):
|
|
|
605
605
|
"schema": Map.extra_schema,
|
|
606
606
|
"id": self.get_id(),
|
|
607
607
|
"starred": self.is_starred(),
|
|
608
|
+
"stars": self.stars(),
|
|
608
609
|
"licences": dict((l.name, l.json) for l in Licence.objects.all()),
|
|
609
610
|
"umap_version": VERSION,
|
|
610
611
|
"featuresHaveOwner": settings.UMAP_DEFAULT_FEATURES_HAVE_OWNERS,
|
|
611
612
|
"websocketEnabled": settings.WEBSOCKET_ENABLED,
|
|
612
|
-
"websocketURI": settings.WEBSOCKET_FRONT_URI,
|
|
613
613
|
"importers": settings.UMAP_IMPORTERS,
|
|
614
614
|
"defaultLabelKeys": settings.UMAP_LABEL_KEYS,
|
|
615
615
|
}
|
|
616
616
|
created = bool(getattr(self, "object", None))
|
|
617
|
+
if created:
|
|
618
|
+
properties.update(
|
|
619
|
+
{
|
|
620
|
+
"created_at": self.object.created_at,
|
|
621
|
+
"modified_at": self.object.modified_at,
|
|
622
|
+
}
|
|
623
|
+
)
|
|
617
624
|
if (created and self.object.owner) or (not created and not user.is_anonymous):
|
|
618
625
|
edit_statuses = Map.EDIT_STATUS
|
|
619
626
|
datalayer_statuses = DataLayer.EDIT_STATUS
|
|
@@ -671,6 +678,9 @@ class MapDetailMixin(SessionMixin):
|
|
|
671
678
|
def is_starred(self):
|
|
672
679
|
return False
|
|
673
680
|
|
|
681
|
+
def stars(self):
|
|
682
|
+
return 0
|
|
683
|
+
|
|
674
684
|
def get_geojson(self):
|
|
675
685
|
return {
|
|
676
686
|
"geometry": {
|
|
@@ -732,14 +742,14 @@ class MapView(MapDetailMixin, PermissionsMixin, DetailView):
|
|
|
732
742
|
def get_datalayers(self):
|
|
733
743
|
# When initializing datalayers from map, we cannot get the reference version
|
|
734
744
|
# the normal way, which is from the header X-Reference-Version
|
|
735
|
-
return [dl.metadata(self.request) for dl in self.object.
|
|
745
|
+
return [dl.metadata(self.request) for dl in self.object.datalayers]
|
|
736
746
|
|
|
737
747
|
@property
|
|
738
748
|
def edit_mode(self):
|
|
739
749
|
edit_mode = "disabled"
|
|
740
750
|
if self.object.can_edit(self.request):
|
|
741
751
|
edit_mode = "advanced"
|
|
742
|
-
elif any(d.can_edit(self.request) for d in self.object.
|
|
752
|
+
elif any(d.can_edit(self.request) for d in self.object.datalayers):
|
|
743
753
|
edit_mode = "simple"
|
|
744
754
|
return edit_mode
|
|
745
755
|
|
|
@@ -773,6 +783,9 @@ class MapView(MapDetailMixin, PermissionsMixin, DetailView):
|
|
|
773
783
|
return False
|
|
774
784
|
return Star.objects.filter(by=user, map=self.object).exists()
|
|
775
785
|
|
|
786
|
+
def stars(self):
|
|
787
|
+
return Star.objects.filter(map=self.object).count()
|
|
788
|
+
|
|
776
789
|
|
|
777
790
|
class MapDownload(DetailView):
|
|
778
791
|
model = Map
|
|
@@ -1074,7 +1087,9 @@ class ToggleMapStarStatus(View):
|
|
|
1074
1087
|
else:
|
|
1075
1088
|
Star.objects.create(map=map_inst, by=self.request.user)
|
|
1076
1089
|
status = True
|
|
1077
|
-
return simple_json_response(
|
|
1090
|
+
return simple_json_response(
|
|
1091
|
+
starred=status, stars=Star.objects.filter(map=map_inst).count()
|
|
1092
|
+
)
|
|
1078
1093
|
|
|
1079
1094
|
|
|
1080
1095
|
class MapShortUrl(RedirectView):
|
|
@@ -1293,6 +1308,7 @@ class DataLayerUpdate(FormLessEditMixin, UpdateView):
|
|
|
1293
1308
|
|
|
1294
1309
|
def form_valid(self, form):
|
|
1295
1310
|
self.object = form.save()
|
|
1311
|
+
self.object.map.save(update_fields=["modified_at"])
|
|
1296
1312
|
data = {**self.object.metadata(self.request)}
|
|
1297
1313
|
if self.request.session.get("needs_reload"):
|
|
1298
1314
|
data["geojson"] = json.loads(self.object.geojson.read().decode())
|
|
@@ -1309,7 +1325,7 @@ class DataLayerDelete(DeleteView):
|
|
|
1309
1325
|
self.object = self.get_object()
|
|
1310
1326
|
if self.object.map != self.kwargs["map_inst"]:
|
|
1311
1327
|
return HttpResponseForbidden()
|
|
1312
|
-
self.object.
|
|
1328
|
+
self.object.move_to_trash()
|
|
1313
1329
|
return simple_json_response(info=_("Layer successfully deleted."))
|
|
1314
1330
|
|
|
1315
1331
|
|
|
@@ -1403,3 +1419,18 @@ class LoginPopupEnd(TemplateView):
|
|
|
1403
1419
|
"""
|
|
1404
1420
|
|
|
1405
1421
|
template_name = "umap/login_popup_end.html"
|
|
1422
|
+
|
|
1423
|
+
def get(self, *args, **kwargs):
|
|
1424
|
+
backend = self.request.session[BACKEND_SESSION_KEY]
|
|
1425
|
+
if backend in settings.DEPRECATED_AUTHENTICATION_BACKENDS:
|
|
1426
|
+
name = backend.split(".")[-1]
|
|
1427
|
+
messages.error(
|
|
1428
|
+
self.request,
|
|
1429
|
+
_(
|
|
1430
|
+
"Using “%(name)s” to authenticate is deprecated. "
|
|
1431
|
+
"Please configure another provider in your profile page."
|
|
1432
|
+
)
|
|
1433
|
+
% {"name": name},
|
|
1434
|
+
)
|
|
1435
|
+
return HttpResponseRedirect(reverse("user_profile"))
|
|
1436
|
+
return super().get(*args, **kwargs)
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: umap-project
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.9.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>
|
|
7
|
+
License-File: LICENSE
|
|
7
8
|
Keywords: django,geodjango,leaflet,map,openstreetmap
|
|
8
9
|
Classifier: Development Status :: 4 - Beta
|
|
9
10
|
Classifier: Intended Audience :: Developers
|
|
@@ -16,41 +17,40 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
16
17
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
17
18
|
Requires-Python: >=3.10
|
|
18
19
|
Requires-Dist: django-agnocomplete==2.2.0
|
|
19
|
-
Requires-Dist: django-environ==0.
|
|
20
|
+
Requires-Dist: django-environ==0.12.0
|
|
20
21
|
Requires-Dist: django-probes==1.7.0
|
|
21
|
-
Requires-Dist: django==5.1.
|
|
22
|
-
Requires-Dist: pillow==11.
|
|
23
|
-
Requires-Dist: psycopg==3.2.
|
|
24
|
-
Requires-Dist: rcssmin==1.2.
|
|
22
|
+
Requires-Dist: django==5.1.6
|
|
23
|
+
Requires-Dist: pillow==11.1.0
|
|
24
|
+
Requires-Dist: psycopg==3.2.4
|
|
25
|
+
Requires-Dist: rcssmin==1.2.1
|
|
25
26
|
Requires-Dist: requests==2.32.3
|
|
26
|
-
Requires-Dist: rjsmin==1.2.
|
|
27
|
+
Requires-Dist: rjsmin==1.2.4
|
|
27
28
|
Requires-Dist: social-auth-app-django==5.4.2
|
|
28
29
|
Requires-Dist: social-auth-core==4.5.4
|
|
29
30
|
Provides-Extra: dev
|
|
30
|
-
Requires-Dist: djlint==1.36.
|
|
31
|
+
Requires-Dist: djlint==1.36.4; extra == 'dev'
|
|
31
32
|
Requires-Dist: hatch==1.14.0; extra == 'dev'
|
|
32
|
-
Requires-Dist: isort==
|
|
33
|
-
Requires-Dist: mkdocs-material==9.
|
|
34
|
-
Requires-Dist: mkdocs-static-i18n==1.
|
|
33
|
+
Requires-Dist: isort==6.0.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: mkdocs-material==9.6.4; extra == 'dev'
|
|
35
|
+
Requires-Dist: mkdocs-static-i18n==1.3.0; extra == 'dev'
|
|
35
36
|
Requires-Dist: mkdocs==1.6.1; extra == 'dev'
|
|
36
|
-
Requires-Dist: pymdown-extensions==10.
|
|
37
|
-
Requires-Dist: ruff==0.
|
|
37
|
+
Requires-Dist: pymdown-extensions==10.14.3; extra == 'dev'
|
|
38
|
+
Requires-Dist: ruff==0.9.6; extra == 'dev'
|
|
38
39
|
Requires-Dist: vermin==1.6.0; extra == 'dev'
|
|
39
40
|
Provides-Extra: docker
|
|
40
41
|
Requires-Dist: uwsgi==2.0.28; extra == 'docker'
|
|
41
42
|
Provides-Extra: s3
|
|
42
43
|
Requires-Dist: django-storages[s3]==1.14.4; extra == 's3'
|
|
43
44
|
Provides-Extra: sync
|
|
44
|
-
Requires-Dist:
|
|
45
|
-
Requires-Dist:
|
|
46
|
-
Requires-Dist: pydantic==2.10.3; extra == 'sync'
|
|
47
|
-
Requires-Dist: websockets==13.1; extra == 'sync'
|
|
45
|
+
Requires-Dist: pydantic==2.10.6; extra == 'sync'
|
|
46
|
+
Requires-Dist: redis==5.2.1; extra == 'sync'
|
|
48
47
|
Provides-Extra: test
|
|
49
|
-
Requires-Dist:
|
|
50
|
-
Requires-Dist:
|
|
48
|
+
Requires-Dist: daphne==4.1.2; extra == 'test'
|
|
49
|
+
Requires-Dist: factory-boy==3.3.3; extra == 'test'
|
|
50
|
+
Requires-Dist: moto[s3]==5.0.28; extra == 'test'
|
|
51
51
|
Requires-Dist: playwright>=1.39; extra == 'test'
|
|
52
|
-
Requires-Dist: pytest-django==4.
|
|
53
|
-
Requires-Dist: pytest-playwright==0.
|
|
52
|
+
Requires-Dist: pytest-django==4.10.0; extra == 'test'
|
|
53
|
+
Requires-Dist: pytest-playwright==0.7.0; extra == 'test'
|
|
54
54
|
Requires-Dist: pytest-rerunfailures==15.0; extra == 'test'
|
|
55
55
|
Requires-Dist: pytest-xdist<4,>=3.5.0; extra == 'test'
|
|
56
56
|
Requires-Dist: pytest==8.3.4; extra == 'test'
|