umap-project 2.1.2__tar.gz → 2.1.3__tar.gz
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.
- {umap_project-2.1.2 → umap_project-2.1.3}/PKG-INFO +4 -4
- {umap_project-2.1.2 → umap_project-2.1.3}/pyproject.toml +3 -3
- umap_project-2.1.3/umap/__init__.py +1 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/models.py +2 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.controls.js +29 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.features.js +3 -1
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.importer.js +4 -5
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.js +27 -36
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.layer.js +7 -6
- umap_project-2.1.3/umap/static/umap/test/Map.js +37 -0
- umap_project-2.1.3/umap/static/umap/test/Polygon.js +111 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/test/Polyline.js +0 -116
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/test/index.html +1 -4
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/conftest.py +9 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_data.csv +2 -1
- umap_project-2.1.3/umap/tests/fixtures/test_upload_data.umap +171 -0
- umap_project-2.1.3/umap/tests/fixtures/test_upload_data_osm.json +33 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/conftest.py +5 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_anonymous_owned_map.py +3 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_browser.py +4 -11
- umap_project-2.1.3/umap/tests/integration/test_choropleth.py +89 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_collaborative_editing.py +30 -1
- umap_project-2.1.3/umap/tests/integration/test_datalayer.py +130 -0
- umap_project-2.1.3/umap/tests/integration/test_edit_datalayer.py +180 -0
- umap_project-2.1.3/umap/tests/integration/test_edit_map.py +15 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_facets_browser.py +31 -0
- umap_project-2.1.3/umap/tests/integration/test_import.py +399 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_map.py +17 -37
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_owned_map.py +18 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_picto.py +20 -33
- umap_project-2.1.3/umap/tests/integration/test_polygon.py +363 -0
- umap_project-2.1.3/umap/tests/integration/test_polyline.py +325 -0
- umap_project-2.1.3/umap/tests/integration/test_tableeditor.py +27 -0
- umap_project-2.1.2/umap/__init__.py +0 -1
- umap_project-2.1.2/umap/static/umap/test/Choropleth.js +0 -245
- umap_project-2.1.2/umap/static/umap/test/DataLayer.js +0 -463
- umap_project-2.1.2/umap/static/umap/test/Map.js +0 -341
- umap_project-2.1.2/umap/static/umap/test/Permissions.js +0 -74
- umap_project-2.1.2/umap/static/umap/test/Polygon.js +0 -367
- umap_project-2.1.2/umap/static/umap/test/TableEditor.js +0 -104
- umap_project-2.1.2/umap/tests/integration/test_drawing.py +0 -243
- umap_project-2.1.2/umap/tests/integration/test_edit_datalayer.py +0 -46
- umap_project-2.1.2/umap/tests/integration/test_import.py +0 -54
- {umap_project-2.1.2 → umap_project-2.1.3}/.gitignore +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/LICENSE +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/README.md +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/admin.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/apps.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/autocomplete.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/bin/__init__.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/context_processors.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/decorators.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/fields.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/forms.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/am_ET/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/am_ET/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ar/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ar/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ast/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ast/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/bg/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/bg/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/br/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/br/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ca/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ca/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/cs_CZ/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/da/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/da/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/de/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/de/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/el/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/el/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/en/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/en/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/es/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/es/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/et/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/et/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/eu/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/eu/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/fa_IR/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/fa_IR/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/fi/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/fi/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/fr/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/fr/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/gl/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/gl/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/he/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/he/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/hr/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/hr/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/hu/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/hu/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/id/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/id/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/is/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/is/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/it/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/it/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ja/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ja/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ko/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ko/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/lt/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/lt/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ms/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ms/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/nl/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/nl/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/no/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/no/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/pl/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/pl/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/pt/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/pt/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/pt_BR/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/pt_PT/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ro/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ro/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ru/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/ru/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/si/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/si/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/sk_SK/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/sl/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/sl/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/sr/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/sr/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/sv/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/sv/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/th_TH/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/th_TH/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/tr/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/tr/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/uk_UA/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/uk_UA/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/vi/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/vi/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/zh/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/zh/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/locale/zh_TW/LC_MESSAGES/django.po +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/management/__init__.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/management/commands/__init__.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/management/commands/anonymous_edit_url.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/management/commands/generate_js_locale.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/management/commands/import_pictograms.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/managers.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/middleware.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0001_initial.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0002_tilelayer_tms.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0003_add_tilelayer.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0004_add_licence.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0005_remove_map_tilelayer.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0006_auto_20190407_0719.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0007_auto_20190416_1757.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0008_alter_map_settings.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0009_star.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0010_alter_map_edit_status_alter_map_share_status.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0011_alter_map_edit_status_alter_map_share_status.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0012_datalayer_settings.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0013_datalayer_edit_status.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0014_map_created_at.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0015_alter_pictogram_pictogram.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0016_pictogram_category.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0017_migrate_to_openstreetmap_oauth2.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0018_datalayer_uuid.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/0019_migrate_internal_remote_datalayers.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/migrations/__init__.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/settings/__init__.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/settings/base.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/settings/dev.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/settings/local.py.sample +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/.gitignore +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/base.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/bitbucket.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/content.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/favicons/apple-touch-icon.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/favicons/favicon.ico +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/favicons/icon-192.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/favicons/icon-512.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/favicons/icon.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-Light.woff +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-Light.woff2 +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-LightItalic.woff +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-LightItalic.woff2 +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-SemiBold.woff +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-SemiBold.woff2 +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/font.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/github.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/16-white.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/16.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/24-white.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/24.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/edit.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/icon-bg.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/icon-delete.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/icon-download.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/icon-duplicate.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/icon-edit.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/icon-share.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/icon-view.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/logo.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/logo_filigree.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/logo_small.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/marker.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/marker.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/opensource.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/osm.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/search.gif +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/source/16-white.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/source/16.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/source/24-white.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/img/source/24.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/components/fragment.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/modules/browser.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/modules/global.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/modules/i18n.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/modules/leaflet-configure.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/modules/request.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/modules/schema.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/modules/urls.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/modules/utils.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.autocomplete.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.core.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.datalayer.permissions.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.forms.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.icon.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.permissions.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.popup.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.share.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.slideshow.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.tableeditor.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/js/umap.ui.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/am_ET.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/am_ET.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ar.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ar.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ast.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ast.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/bg.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/bg.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/br.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/br.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ca.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ca.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/cs_CZ.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/cs_CZ.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/da.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/da.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/de.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/de.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/el.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/el.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/en.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/en.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/en_US.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/es.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/es.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/et.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/et.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/eu.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/eu.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/fa_IR.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/fa_IR.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/fi.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/fi.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/fr.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/fr.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/gl.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/gl.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/he.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/he.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/hr.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/hr.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/hu.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/hu.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/id.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/id.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/is.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/is.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/it.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/it.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ja.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ja.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ko.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ko.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/lt.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/lt.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ms.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ms.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/nl.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/nl.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/no.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/no.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/pl.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/pl.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/pl_PL.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/pt.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/pt.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/pt_BR.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/pt_BR.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/pt_PT.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/pt_PT.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ro.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ro.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ru.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/ru.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/si.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/si.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/sk_SK.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/sk_SK.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/sl.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/sl.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/sr.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/sr.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/sv.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/sv.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/th_TH.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/th_TH.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/tr.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/tr.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/uk_UA.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/uk_UA.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/vi.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/vi.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/vi_VN.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/zh.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/zh.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/zh_CN.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/zh_TW.Big5.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/zh_TW.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/locale/zh_TW.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/map.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/nav.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/openstreetmap.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/test/.eslintrc +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/test/Feature.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/test/Marker.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/test/Util.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/test/_pre.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/theme.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/twitter.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/unittests/URLs.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vars.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/colorbrewer/colorbrewer.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/contextmenu/leaflet.contextmenu.min.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/contextmenu/leaflet.contextmenu.min.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/csv2geojson/csv2geojson.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/dompurify/purify.min.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/dompurify/purify.min.js.map +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/editable/Leaflet.Editable.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/editable/Path.Drag.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/editinosm/Leaflet.EditInOSM.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/editinosm/Leaflet.EditInOSM.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/editinosm/edit-in-osm.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/fullscreen/Leaflet.fullscreen.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/fullscreen/Leaflet.fullscreen.min.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/fullscreen/fullscreen.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/fullscreen/fullscreen@2x.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/fullscreen/leaflet.fullscreen.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/georsstogeojson/GeoRSSToGeoJSON.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/hash/leaflet-hash.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/heat/leaflet-heat.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/i18n/Leaflet.i18n.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/iconlayers/check.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/iconlayers/iconLayers.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/iconlayers/iconLayers.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/iconlayers/transparent-pixel.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/images/layers-2x.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/images/layers.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/images/marker-icon-2x.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/images/marker-icon.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/images/marker-shadow.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet-src.esm.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet-src.esm.js.map +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet-src.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet-src.js.map +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet.js.map +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/loading/Control.Loading.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/loading/Control.Loading.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.css.map +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.js.map +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/MarkerCluster.Default.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/MarkerCluster.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/WhereAreTheJavascriptFiles.txt +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/leaflet.markercluster-src.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/leaflet.markercluster-src.js.map +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/leaflet.markercluster.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/leaflet.markercluster.js.map +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/measurable/Leaflet.Measurable.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/measurable/Leaflet.Measurable.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/minimap/Control.MiniMap.min.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/minimap/Control.MiniMap.min.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/minimap/images/toggle.png +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/minimap/images/toggle.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/osmtogeojson/osmtogeojson.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/photon/leaflet.photon.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/simple-statistics/simple-statistics.min.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/simple-statistics/simple-statistics.min.js.map +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/togeojson/togeojson.umd.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/togeojson/togeojson.umd.js.map +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/togpx/togpx.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/tokml/tokml.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/toolbar/leaflet.toolbar-src.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/toolbar/leaflet.toolbar-src.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/toolbar/leaflet.toolbar.css +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/static/umap/vendors/toolbar/leaflet.toolbar.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/storage.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/404.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/500.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/auth/user_detail.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/auth/user_form.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/auth/user_stars.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/base.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/registration/login.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/about.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/about_summary.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/branding.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/content.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/content_footer.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/css.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/footer.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/header.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/home.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/js.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/locale.js +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/login_popup_end.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/map_detail.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/map_fragment.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/map_init.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/map_list.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/map_table.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/messages.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/navigation.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/password_change.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/password_change_done.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/search.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/search_bar.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/success.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templates/umap/user_dashboard.html +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templatetags/__init__.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/templatetags/umap_tags.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/__init__.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/base.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/fixtures/choropleth_region_chomage.geojson +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/fixtures/circle.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/fixtures/display_on_load.umap +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/fixtures/star.svg +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_data.gpx +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_data.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_data.kml +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_empty_coordinates.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_missing_name.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_non_linear_ring.json +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/__init__.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_basics.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_dashboard.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_export_map.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_features_id_generation.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_map_preview.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_querystring.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_share.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_slideshow.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_star.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_statics.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/integration/test_tilelayer.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/settings.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/test_datalayer.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/test_datalayer_views.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/test_licence.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/test_map.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/test_map_views.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/test_merge_features.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/test_tilelayer.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/test_utils.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/tests/test_views.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/urls.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/utils.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/views.py +0 -0
- {umap_project-2.1.2 → umap_project-2.1.3}/umap/wsgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: umap-project
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.3
|
|
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>
|
|
@@ -31,10 +31,10 @@ Provides-Extra: dev
|
|
|
31
31
|
Requires-Dist: djlint==1.34.1; extra == 'dev'
|
|
32
32
|
Requires-Dist: hatch==1.9.4; 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.15; extra == 'dev'
|
|
35
35
|
Requires-Dist: mkdocs==1.5.3; extra == 'dev'
|
|
36
36
|
Requires-Dist: pymdown-extensions==10.7.1; extra == 'dev'
|
|
37
|
-
Requires-Dist: ruff==0.3.
|
|
37
|
+
Requires-Dist: ruff==0.3.4; extra == 'dev'
|
|
38
38
|
Requires-Dist: vermin==1.6.0; extra == 'dev'
|
|
39
39
|
Provides-Extra: docker
|
|
40
40
|
Requires-Dist: uwsgi==2.0.24; extra == 'docker'
|
|
@@ -44,7 +44,7 @@ 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.1.1; extra == 'test'
|
|
48
48
|
Description-Content-Type: text/markdown
|
|
49
49
|
|
|
50
50
|
# uMap project
|
|
@@ -44,10 +44,10 @@ dependencies = [
|
|
|
44
44
|
[project.optional-dependencies]
|
|
45
45
|
dev = [
|
|
46
46
|
"hatch==1.9.4",
|
|
47
|
-
"ruff==0.3.
|
|
47
|
+
"ruff==0.3.4",
|
|
48
48
|
"djlint==1.34.1",
|
|
49
49
|
"mkdocs==1.5.3",
|
|
50
|
-
"mkdocs-material==9.5.
|
|
50
|
+
"mkdocs-material==9.5.15",
|
|
51
51
|
"vermin==1.6.0",
|
|
52
52
|
"pymdown-extensions==10.7.1",
|
|
53
53
|
"isort==5.13.2",
|
|
@@ -55,7 +55,7 @@ dev = [
|
|
|
55
55
|
test = [
|
|
56
56
|
"factory-boy==3.2.1",
|
|
57
57
|
"playwright>=1.39",
|
|
58
|
-
"pytest==8.
|
|
58
|
+
"pytest==8.1.1",
|
|
59
59
|
"pytest-django==4.8.0",
|
|
60
60
|
"pytest-playwright==0.4.4",
|
|
61
61
|
"pytest-xdist>=3.5.0,<4",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
VERSION = "2.1.3"
|
|
@@ -443,6 +443,8 @@ class DataLayer(NamedModel):
|
|
|
443
443
|
"name": self.name,
|
|
444
444
|
"displayOnLoad": self.display_on_load,
|
|
445
445
|
}
|
|
446
|
+
if self.old_id:
|
|
447
|
+
obj["old_id"] = self.old_id
|
|
446
448
|
obj["id"] = self.pk
|
|
447
449
|
obj["permissions"] = {"edit_status": self.edit_status}
|
|
448
450
|
obj["editMode"] = "advanced" if self.can_edit(user, request) else "disabled"
|
|
@@ -1234,6 +1234,35 @@ U.StarControl = L.Control.extend({
|
|
|
1234
1234
|
},
|
|
1235
1235
|
})
|
|
1236
1236
|
|
|
1237
|
+
/*
|
|
1238
|
+
* Take control over L.Control.Locate to be able to
|
|
1239
|
+
* call start() before adding the control (and thus the button) to the map.
|
|
1240
|
+
*/
|
|
1241
|
+
U.Locate = L.Control.Locate.extend({
|
|
1242
|
+
initialize: function (map, options) {
|
|
1243
|
+
// When calling start(), it will try to add a location marker
|
|
1244
|
+
// on the layer, which is normally added in the addTo/onAdd method
|
|
1245
|
+
this._layer = this.options.layer = new L.LayerGroup()
|
|
1246
|
+
// When calling start(), it will call _activate(), which then adds
|
|
1247
|
+
// location related event listeners on the map
|
|
1248
|
+
this.map = map
|
|
1249
|
+
L.Control.Locate.prototype.initialize.call(this, options)
|
|
1250
|
+
},
|
|
1251
|
+
|
|
1252
|
+
onAdd: function (map) {
|
|
1253
|
+
const active = this._active
|
|
1254
|
+
const container = L.Control.Locate.prototype.onAdd.call(this, map)
|
|
1255
|
+
this._active = active
|
|
1256
|
+
return container
|
|
1257
|
+
},
|
|
1258
|
+
|
|
1259
|
+
_activate: function () {
|
|
1260
|
+
this._map = this.map
|
|
1261
|
+
L.Control.Locate.prototype._activate.call(this)
|
|
1262
|
+
this._map = null
|
|
1263
|
+
}
|
|
1264
|
+
})
|
|
1265
|
+
|
|
1237
1266
|
U.Search = L.PhotonSearch.extend({
|
|
1238
1267
|
initialize: function (map, input, options) {
|
|
1239
1268
|
this.options.placeholder = L._('Type a place name or coordinates')
|
|
@@ -888,7 +888,9 @@ U.PathMixin = {
|
|
|
888
888
|
const other = new (this instanceof U.Polyline ? U.Polyline : U.Polygon)(
|
|
889
889
|
this.map,
|
|
890
890
|
shape,
|
|
891
|
-
{
|
|
891
|
+
{
|
|
892
|
+
geojson: { properties },
|
|
893
|
+
}
|
|
892
894
|
)
|
|
893
895
|
this.datalayer.addLayer(other)
|
|
894
896
|
other.edit()
|
|
@@ -39,11 +39,10 @@ U.Importer = L.Class.extend({
|
|
|
39
39
|
this.container,
|
|
40
40
|
L._('Choose the layer to import in')
|
|
41
41
|
)
|
|
42
|
-
this.clearLabel = L.DomUtil.
|
|
42
|
+
this.clearLabel = L.DomUtil.element(
|
|
43
43
|
'label',
|
|
44
|
-
'',
|
|
45
|
-
this.container
|
|
46
|
-
L._('Replace layer content')
|
|
44
|
+
{ textContent: L._('Replace layer content'), for: 'datalayer-clear-check' },
|
|
45
|
+
this.container
|
|
47
46
|
)
|
|
48
47
|
this.submitInput = L.DomUtil.element(
|
|
49
48
|
'input',
|
|
@@ -59,7 +58,7 @@ U.Importer = L.Class.extend({
|
|
|
59
58
|
)
|
|
60
59
|
this.clearFlag = L.DomUtil.element(
|
|
61
60
|
'input',
|
|
62
|
-
{ type: 'checkbox', name: 'clear' },
|
|
61
|
+
{ type: 'checkbox', name: 'clear', id: 'datalayer-clear-check' },
|
|
63
62
|
this.clearLabel
|
|
64
63
|
)
|
|
65
64
|
let option
|
|
@@ -67,14 +67,15 @@ U.Map = L.Map.extend({
|
|
|
67
67
|
this.description = this.options.description
|
|
68
68
|
this.demoTileInfos = this.options.demoTileInfos
|
|
69
69
|
this.options.zoomControl = zoomControl !== undefined ? zoomControl : true
|
|
70
|
-
this.options.fullscreenControl =
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
this.options.fullscreenControl =
|
|
71
|
+
fullscreenControl !== undefined ? fullscreenControl : true
|
|
72
|
+
this.datalayersFromQueryString = L.Util.queryString('datalayers')
|
|
73
|
+
if (this.datalayersFromQueryString) {
|
|
74
|
+
this.datalayersFromQueryString = this.datalayersFromQueryString
|
|
75
|
+
.toString()
|
|
76
|
+
.split(',')
|
|
74
77
|
}
|
|
75
78
|
|
|
76
|
-
if (L.Browser.ielt9) this.options.editMode = 'disabled' // TODO include ie9
|
|
77
|
-
|
|
78
79
|
let editedFeature = null
|
|
79
80
|
const self = this
|
|
80
81
|
try {
|
|
@@ -114,12 +115,12 @@ U.Map = L.Map.extend({
|
|
|
114
115
|
// Needed for actions labels
|
|
115
116
|
this.help = new U.Help(this)
|
|
116
117
|
|
|
117
|
-
if (this.options.hash) this.addHash()
|
|
118
|
-
this.initTileLayers()
|
|
119
|
-
// Needs tilelayer to exist for minimap
|
|
120
118
|
this.initControls()
|
|
121
119
|
// Needs locate control and hash to exist
|
|
122
120
|
this.initCenter()
|
|
121
|
+
this.initTileLayers()
|
|
122
|
+
// Needs tilelayer to exist for minimap
|
|
123
|
+
this.renderControls()
|
|
123
124
|
this.handleLimitBounds()
|
|
124
125
|
this.initDataLayers()
|
|
125
126
|
|
|
@@ -268,9 +269,9 @@ U.Map = L.Map.extend({
|
|
|
268
269
|
},
|
|
269
270
|
|
|
270
271
|
overrideSchema: function (schema) {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
272
|
+
for (const [key, extra] of Object.entries(schema)) {
|
|
273
|
+
U.SCHEMA[key] = L.extend({}, U.SCHEMA[key], extra)
|
|
274
|
+
}
|
|
274
275
|
},
|
|
275
276
|
|
|
276
277
|
initControls: function () {
|
|
@@ -297,7 +298,7 @@ U.Map = L.Map.extend({
|
|
|
297
298
|
zoomOutTitle: L._('Zoom out'),
|
|
298
299
|
})
|
|
299
300
|
this._controls.datalayers = new U.DataLayersControl(this)
|
|
300
|
-
this._controls.locate =
|
|
301
|
+
this._controls.locate = new U.Locate(this, {
|
|
301
302
|
strings: {
|
|
302
303
|
title: L._('Center map on your location'),
|
|
303
304
|
},
|
|
@@ -336,9 +337,6 @@ U.Map = L.Map.extend({
|
|
|
336
337
|
this.drop = new U.DropControl(this)
|
|
337
338
|
this.share = new U.Share(this)
|
|
338
339
|
this._controls.tilelayers = new U.TileLayerControl(this)
|
|
339
|
-
this._controls.tilelayers.setLayers()
|
|
340
|
-
|
|
341
|
-
this.renderControls()
|
|
342
340
|
},
|
|
343
341
|
|
|
344
342
|
renderControls: function () {
|
|
@@ -353,13 +351,13 @@ U.Map = L.Map.extend({
|
|
|
353
351
|
'umap-slideshow-enabled',
|
|
354
352
|
this.options.slideshow && this.options.slideshow.active
|
|
355
353
|
)
|
|
356
|
-
for (const
|
|
357
|
-
this.removeControl(
|
|
354
|
+
for (const control of Object.values(this._controls)) {
|
|
355
|
+
this.removeControl(control)
|
|
358
356
|
}
|
|
359
357
|
if (this.options.noControl) return
|
|
360
358
|
|
|
361
359
|
this._controls.attribution = new U.AttributionControl().addTo(this)
|
|
362
|
-
if (this.options.miniMap
|
|
360
|
+
if (this.options.miniMap) {
|
|
363
361
|
this.whenReady(function () {
|
|
364
362
|
if (this.selected_tilelayer) {
|
|
365
363
|
this._controls.miniMap = new L.Control.MiniMap(this.selected_tilelayer, {
|
|
@@ -392,6 +390,7 @@ U.Map = L.Map.extend({
|
|
|
392
390
|
if (this.getOption('permanentCredit')) this._controls.permanentCredit.addTo(this)
|
|
393
391
|
if (this.getOption('moreControl')) this._controls.more.addTo(this)
|
|
394
392
|
if (this.getOption('scaleControl')) this._controls.scale.addTo(this)
|
|
393
|
+
this._controls.tilelayers.setLayers()
|
|
395
394
|
},
|
|
396
395
|
|
|
397
396
|
initDataLayers: async function (datalayers) {
|
|
@@ -652,26 +651,18 @@ U.Map = L.Map.extend({
|
|
|
652
651
|
},
|
|
653
652
|
|
|
654
653
|
initCenter: function () {
|
|
654
|
+
this._setDefaultCenter()
|
|
655
|
+
if (this.options.hash) this.addHash()
|
|
655
656
|
if (this.options.hash && this._hash.parseHash(location.hash)) {
|
|
656
657
|
// FIXME An invalid hash will cause the load to fail
|
|
657
658
|
this._hash.update()
|
|
658
659
|
} else if (this.options.defaultView === 'locate' && !this.options.noControl) {
|
|
659
|
-
// When using locate as default map view AND activating easing
|
|
660
|
-
// Leaflet.locate will ask the map view to compute transition to user
|
|
661
|
-
// position, so in this case we do need a default center, so let's
|
|
662
|
-
// set it anyway
|
|
663
|
-
this._setDefaultCenter()
|
|
664
660
|
this._controls.locate.start()
|
|
665
661
|
} else if (this.options.defaultView === 'data') {
|
|
666
|
-
this.onceDataLoaded(
|
|
667
|
-
if (!this.fitDataBounds()) return this._setDefaultCenter()
|
|
668
|
-
})
|
|
662
|
+
this.onceDataLoaded(this.fitDataBounds)
|
|
669
663
|
} else if (this.options.defaultView === 'latest') {
|
|
670
664
|
this.onceDataLoaded(() => {
|
|
671
|
-
if (!this.hasData())
|
|
672
|
-
this._setDefaultCenter()
|
|
673
|
-
return
|
|
674
|
-
}
|
|
665
|
+
if (!this.hasData()) return
|
|
675
666
|
const datalayer = this.firstVisibleDatalayer()
|
|
676
667
|
let feature
|
|
677
668
|
if (datalayer) {
|
|
@@ -681,11 +672,7 @@ U.Map = L.Map.extend({
|
|
|
681
672
|
return
|
|
682
673
|
}
|
|
683
674
|
}
|
|
684
|
-
// Fallback, no datalayer or no feature found
|
|
685
|
-
this._setDefaultCenter()
|
|
686
675
|
})
|
|
687
|
-
} else {
|
|
688
|
-
this._setDefaultCenter()
|
|
689
676
|
}
|
|
690
677
|
},
|
|
691
678
|
|
|
@@ -974,6 +961,8 @@ U.Map = L.Map.extend({
|
|
|
974
961
|
formData.append('settings', JSON.stringify(geojson))
|
|
975
962
|
const uri = this.urls.get('map_save', { map_id: this.options.umap_id })
|
|
976
963
|
const [data, response, error] = await this.server.post(uri, {}, formData)
|
|
964
|
+
// FIXME: login_required response will not be an error, so it will not
|
|
965
|
+
// stop code while it should
|
|
977
966
|
if (!error) {
|
|
978
967
|
let duration = 3000,
|
|
979
968
|
alert = { content: L._('Map has been saved!'), level: 'info' }
|
|
@@ -1538,7 +1527,9 @@ U.Map = L.Map.extend({
|
|
|
1538
1527
|
metadataFields = ['options.name', 'options.description'],
|
|
1539
1528
|
title = L.DomUtil.create('h3', '', container)
|
|
1540
1529
|
title.textContent = L._('Edit map properties')
|
|
1541
|
-
const builder = new U.FormBuilder(this, metadataFields
|
|
1530
|
+
const builder = new U.FormBuilder(this, metadataFields, {
|
|
1531
|
+
className: 'map-metadata',
|
|
1532
|
+
})
|
|
1542
1533
|
const form = builder.build()
|
|
1543
1534
|
container.appendChild(form)
|
|
1544
1535
|
this._editControls(container)
|
|
@@ -609,12 +609,13 @@ U.DataLayer = L.Evented.extend({
|
|
|
609
609
|
},
|
|
610
610
|
|
|
611
611
|
autoLoaded: function () {
|
|
612
|
-
return
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
612
|
+
if (!this.map.datalayersFromQueryString) return this.options.displayOnLoad
|
|
613
|
+
const datalayerIds = this.map.datalayersFromQueryString
|
|
614
|
+
let loadMe = datalayerIds.includes(this.umap_id.toString())
|
|
615
|
+
if (this.options.old_id) {
|
|
616
|
+
loadMe = loadMe || datalayerIds.includes(this.options.old_id.toString())
|
|
617
|
+
}
|
|
618
|
+
return loadMe
|
|
618
619
|
},
|
|
619
620
|
|
|
620
621
|
insertBefore: function (other) {
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
describe('U.Map', () => {
|
|
2
|
+
let map, datalayer
|
|
3
|
+
before(async () => {
|
|
4
|
+
await fetchMock.mock(
|
|
5
|
+
/\/datalayer\/62\/\?.*/,
|
|
6
|
+
JSON.stringify(RESPONSES.datalayer62_GET)
|
|
7
|
+
)
|
|
8
|
+
this.options = {
|
|
9
|
+
umap_id: 99,
|
|
10
|
+
}
|
|
11
|
+
map = initMap({ umap_id: 99 })
|
|
12
|
+
const datalayer_options = defaultDatalayerData()
|
|
13
|
+
await map.initDataLayers([datalayer_options])
|
|
14
|
+
datalayer = map.getDataLayerByUmapId(62)
|
|
15
|
+
})
|
|
16
|
+
after(() => {
|
|
17
|
+
fetchMock.restore()
|
|
18
|
+
clickCancel()
|
|
19
|
+
resetMap()
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
describe('#localizeUrl()', function () {
|
|
23
|
+
it('should replace known variables', function () {
|
|
24
|
+
assert.equal(
|
|
25
|
+
map.localizeUrl('http://example.org/{zoom}'),
|
|
26
|
+
'http://example.org/' + map.getZoom()
|
|
27
|
+
)
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
it('should keep unknown variables', function () {
|
|
31
|
+
assert.equal(
|
|
32
|
+
map.localizeUrl('http://example.org/{unkown}'),
|
|
33
|
+
'http://example.org/{unkown}'
|
|
34
|
+
)
|
|
35
|
+
})
|
|
36
|
+
})
|
|
37
|
+
})
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
describe('U.Polygon', function () {
|
|
2
|
+
var p2ll, map, datalayer
|
|
3
|
+
|
|
4
|
+
before(function () {
|
|
5
|
+
map = initMap({ umap_id: 99 })
|
|
6
|
+
enableEdit()
|
|
7
|
+
p2ll = function (x, y) {
|
|
8
|
+
return map.containerPointToLatLng([x, y])
|
|
9
|
+
}
|
|
10
|
+
datalayer = map.createDataLayer()
|
|
11
|
+
datalayer.connectToMap()
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
after(function () {
|
|
15
|
+
clickCancel()
|
|
16
|
+
resetMap()
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
afterEach(function () {
|
|
20
|
+
datalayer.empty()
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
describe('#isMulti()', function () {
|
|
24
|
+
it('should return false for basic Polygon', function () {
|
|
25
|
+
var layer = new U.Polygon(
|
|
26
|
+
map,
|
|
27
|
+
[
|
|
28
|
+
[1, 2],
|
|
29
|
+
[3, 4],
|
|
30
|
+
[5, 6],
|
|
31
|
+
],
|
|
32
|
+
{ datalayer: datalayer }
|
|
33
|
+
)
|
|
34
|
+
assert.notOk(layer.isMulti())
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
it('should return false for nested basic Polygon', function () {
|
|
38
|
+
var latlngs = [[[p2ll(100, 150), p2ll(150, 200), p2ll(200, 100)]]],
|
|
39
|
+
layer = new U.Polygon(map, latlngs, { datalayer: datalayer })
|
|
40
|
+
assert.notOk(layer.isMulti())
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
it('should return false for simple Polygon with hole', function () {
|
|
44
|
+
var layer = new U.Polygon(
|
|
45
|
+
map,
|
|
46
|
+
[
|
|
47
|
+
[
|
|
48
|
+
[1, 2],
|
|
49
|
+
[3, 4],
|
|
50
|
+
[5, 6],
|
|
51
|
+
],
|
|
52
|
+
[
|
|
53
|
+
[7, 8],
|
|
54
|
+
[9, 10],
|
|
55
|
+
[11, 12],
|
|
56
|
+
],
|
|
57
|
+
],
|
|
58
|
+
{ datalayer: datalayer }
|
|
59
|
+
)
|
|
60
|
+
assert.notOk(layer.isMulti())
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
it('should return true for multi Polygon', function () {
|
|
64
|
+
var latLngs = [
|
|
65
|
+
[
|
|
66
|
+
[
|
|
67
|
+
[1, 2],
|
|
68
|
+
[3, 4],
|
|
69
|
+
[5, 6],
|
|
70
|
+
],
|
|
71
|
+
],
|
|
72
|
+
[
|
|
73
|
+
[
|
|
74
|
+
[7, 8],
|
|
75
|
+
[9, 10],
|
|
76
|
+
[11, 12],
|
|
77
|
+
],
|
|
78
|
+
],
|
|
79
|
+
]
|
|
80
|
+
var layer = new U.Polygon(map, latLngs, { datalayer: datalayer })
|
|
81
|
+
assert.ok(layer.isMulti())
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
it('should return true for multi Polygon with hole', function () {
|
|
85
|
+
var latLngs = [
|
|
86
|
+
[
|
|
87
|
+
[
|
|
88
|
+
[10, 20],
|
|
89
|
+
[30, 40],
|
|
90
|
+
[50, 60],
|
|
91
|
+
],
|
|
92
|
+
],
|
|
93
|
+
[
|
|
94
|
+
[
|
|
95
|
+
[0, 10],
|
|
96
|
+
[10, 10],
|
|
97
|
+
[10, 0],
|
|
98
|
+
],
|
|
99
|
+
[
|
|
100
|
+
[2, 3],
|
|
101
|
+
[2, 4],
|
|
102
|
+
[3, 4],
|
|
103
|
+
],
|
|
104
|
+
],
|
|
105
|
+
]
|
|
106
|
+
var layer = new U.Polygon(map, latLngs, { datalayer: datalayer })
|
|
107
|
+
assert.ok(layer.isMulti())
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
})
|
|
@@ -234,72 +234,6 @@ describe('U.Polyline', function () {
|
|
|
234
234
|
})
|
|
235
235
|
})
|
|
236
236
|
|
|
237
|
-
describe('#addShape', function () {
|
|
238
|
-
it('"add shape" control should not be visible by default', function () {
|
|
239
|
-
assert.notOk(qs('.umap-draw-polyline-multi'))
|
|
240
|
-
})
|
|
241
|
-
|
|
242
|
-
it('"add shape" control should be visible when editing a Polyline', function () {
|
|
243
|
-
var layer = new U.Polyline(this.map, [p2ll(100, 100), p2ll(100, 200)], {
|
|
244
|
-
datalayer: this.datalayer,
|
|
245
|
-
}).addTo(this.datalayer)
|
|
246
|
-
layer.edit()
|
|
247
|
-
assert.ok(qs('.umap-draw-polyline-multi'))
|
|
248
|
-
})
|
|
249
|
-
|
|
250
|
-
it('"add shape" control should extend the same multi', function () {
|
|
251
|
-
var layer = new U.Polyline(this.map, [p2ll(100, 100), p2ll(100, 200)], {
|
|
252
|
-
datalayer: this.datalayer,
|
|
253
|
-
}).addTo(this.datalayer)
|
|
254
|
-
layer.edit()
|
|
255
|
-
assert.notOk(layer.isMulti())
|
|
256
|
-
happen.click(qs('.umap-draw-polyline-multi'))
|
|
257
|
-
happen.at('mousemove', 300, 300)
|
|
258
|
-
happen.at('click', 300, 300)
|
|
259
|
-
happen.at('mousemove', 350, 300)
|
|
260
|
-
happen.at('click', 350, 300)
|
|
261
|
-
happen.at('click', 350, 300)
|
|
262
|
-
assert.ok(layer.isMulti())
|
|
263
|
-
assert.equal(this.datalayer._index.length, 1)
|
|
264
|
-
})
|
|
265
|
-
})
|
|
266
|
-
|
|
267
|
-
describe('#transferShape', function () {
|
|
268
|
-
it('should transfer simple line shape to another line', function () {
|
|
269
|
-
var latlngs = [p2ll(100, 150), p2ll(100, 200), p2ll(200, 100)],
|
|
270
|
-
layer = new U.Polyline(this.map, latlngs, {
|
|
271
|
-
datalayer: this.datalayer,
|
|
272
|
-
}).addTo(this.datalayer),
|
|
273
|
-
other = new U.Polyline(this.map, [p2ll(200, 300), p2ll(300, 200)], {
|
|
274
|
-
datalayer: this.datalayer,
|
|
275
|
-
}).addTo(this.datalayer)
|
|
276
|
-
assert.ok(this.map.hasLayer(layer))
|
|
277
|
-
layer.transferShape(p2ll(150, 150), other)
|
|
278
|
-
assert.equal(other._latlngs.length, 2)
|
|
279
|
-
assert.deepEqual(other._latlngs[1], latlngs)
|
|
280
|
-
assert.notOk(this.map.hasLayer(layer))
|
|
281
|
-
})
|
|
282
|
-
|
|
283
|
-
it('should transfer multi line shape to another line', function () {
|
|
284
|
-
var latlngs = [
|
|
285
|
-
[p2ll(100, 150), p2ll(100, 200), p2ll(200, 100)],
|
|
286
|
-
[p2ll(200, 300), p2ll(300, 200)],
|
|
287
|
-
],
|
|
288
|
-
layer = new U.Polyline(this.map, latlngs, {
|
|
289
|
-
datalayer: this.datalayer,
|
|
290
|
-
}).addTo(this.datalayer),
|
|
291
|
-
other = new U.Polyline(this.map, [p2ll(250, 300), p2ll(350, 200)], {
|
|
292
|
-
datalayer: this.datalayer,
|
|
293
|
-
}).addTo(this.datalayer)
|
|
294
|
-
assert.ok(this.map.hasLayer(layer))
|
|
295
|
-
layer.transferShape(p2ll(150, 150), other)
|
|
296
|
-
assert.equal(other._latlngs.length, 2)
|
|
297
|
-
assert.deepEqual(other._latlngs[1], latlngs[0])
|
|
298
|
-
assert.ok(this.map.hasLayer(layer))
|
|
299
|
-
assert.equal(layer._latlngs.length, 1)
|
|
300
|
-
})
|
|
301
|
-
})
|
|
302
|
-
|
|
303
237
|
describe('#mergeShapes', function () {
|
|
304
238
|
it('should remove duplicated join point when merging', function () {
|
|
305
239
|
var latlngs = [
|
|
@@ -349,54 +283,4 @@ describe('U.Polyline', function () {
|
|
|
349
283
|
})
|
|
350
284
|
})
|
|
351
285
|
|
|
352
|
-
describe('#isolateShape', function () {
|
|
353
|
-
it('should not allow to isolate simple line', function () {
|
|
354
|
-
var latlngs = [p2ll(100, 150), p2ll(100, 200), p2ll(200, 100)],
|
|
355
|
-
layer = new U.Polyline(this.map, latlngs, {
|
|
356
|
-
datalayer: this.datalayer,
|
|
357
|
-
}).addTo(this.datalayer)
|
|
358
|
-
assert.equal(this.datalayer._index.length, 1)
|
|
359
|
-
assert.ok(this.map.hasLayer(layer))
|
|
360
|
-
layer.isolateShape(p2ll(150, 150))
|
|
361
|
-
assert.equal(layer._latlngs.length, 3)
|
|
362
|
-
assert.equal(this.datalayer._index.length, 1)
|
|
363
|
-
})
|
|
364
|
-
|
|
365
|
-
it('should isolate multipolyline shape', function () {
|
|
366
|
-
var latlngs = [
|
|
367
|
-
[p2ll(100, 150), p2ll(100, 200), p2ll(200, 100)],
|
|
368
|
-
[[p2ll(200, 300), p2ll(300, 200)]],
|
|
369
|
-
],
|
|
370
|
-
layer = new U.Polyline(this.map, latlngs, {
|
|
371
|
-
datalayer: this.datalayer,
|
|
372
|
-
}).addTo(this.datalayer)
|
|
373
|
-
assert.equal(this.datalayer._index.length, 1)
|
|
374
|
-
assert.ok(this.map.hasLayer(layer))
|
|
375
|
-
var other = layer.isolateShape(p2ll(150, 150))
|
|
376
|
-
assert.equal(this.datalayer._index.length, 2)
|
|
377
|
-
assert.equal(other._latlngs.length, 3)
|
|
378
|
-
assert.deepEqual(other._latlngs, latlngs[0])
|
|
379
|
-
assert.ok(this.map.hasLayer(layer))
|
|
380
|
-
assert.ok(this.map.hasLayer(other))
|
|
381
|
-
assert.equal(layer._latlngs.length, 1)
|
|
382
|
-
other.remove()
|
|
383
|
-
})
|
|
384
|
-
})
|
|
385
|
-
|
|
386
|
-
describe('#clone', function () {
|
|
387
|
-
it('should clone polyline', function () {
|
|
388
|
-
var latlngs = [p2ll(100, 150), p2ll(100, 200), p2ll(200, 100)],
|
|
389
|
-
layer = new U.Polyline(this.map, latlngs, {
|
|
390
|
-
datalayer: this.datalayer,
|
|
391
|
-
}).addTo(this.datalayer)
|
|
392
|
-
assert.equal(this.datalayer._index.length, 1)
|
|
393
|
-
other = layer.clone()
|
|
394
|
-
assert.ok(this.map.hasLayer(other))
|
|
395
|
-
assert.equal(this.datalayer._index.length, 2)
|
|
396
|
-
// Must not be the same reference
|
|
397
|
-
assert.notEqual(layer._latlngs, other._latlngs)
|
|
398
|
-
assert.equal(L.Util.formatNum(layer._latlngs[0].lat), other._latlngs[0].lat)
|
|
399
|
-
assert.equal(L.Util.formatNum(layer._latlngs[0].lng), other._latlngs[0].lng)
|
|
400
|
-
})
|
|
401
|
-
})
|
|
402
286
|
})
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<title>Umap front Tests</title>
|
|
5
5
|
<meta charset="utf-8" />
|
|
6
|
+
<script type="module" src="../js/modules/leaflet-configure.js" defer></script>
|
|
6
7
|
<script type="module" src="../js/modules/global.js" defer></script>
|
|
7
8
|
|
|
8
9
|
<script src="../vendors/editable/Path.Drag.js" defer></script>
|
|
@@ -88,15 +89,11 @@
|
|
|
88
89
|
</script>
|
|
89
90
|
<script src="./_pre.js" defer></script>
|
|
90
91
|
<script src="./Map.js" defer></script>
|
|
91
|
-
<script src="./DataLayer.js" defer></script>
|
|
92
|
-
<script src="./TableEditor.js" defer></script>
|
|
93
92
|
<script src="./Feature.js" defer></script>
|
|
94
93
|
<script src="./Marker.js" defer></script>
|
|
95
94
|
<script src="./Polyline.js" defer></script>
|
|
96
95
|
<script src="./Polygon.js" defer></script>
|
|
97
96
|
<script src="./Util.js" defer></script>
|
|
98
|
-
<script src="./Permissions.js" defer></script>
|
|
99
|
-
<script src="./Choropleth.js" defer></script>
|
|
100
97
|
<script type="module" src="./URLs.js" defer></script>
|
|
101
98
|
<style type="text/css">
|
|
102
99
|
#mocha {
|
|
@@ -5,6 +5,8 @@ import pytest
|
|
|
5
5
|
from django.core.cache import cache
|
|
6
6
|
from django.core.signing import get_cookie_signer
|
|
7
7
|
|
|
8
|
+
from umap.models import Map
|
|
9
|
+
|
|
8
10
|
from .base import (
|
|
9
11
|
DataLayerFactory,
|
|
10
12
|
LicenceFactory,
|
|
@@ -48,6 +50,13 @@ def map(licence, tilelayer):
|
|
|
48
50
|
return MapFactory(owner=user, licence=licence)
|
|
49
51
|
|
|
50
52
|
|
|
53
|
+
@pytest.fixture
|
|
54
|
+
def openmap(map):
|
|
55
|
+
map.edit_status = Map.ANONYMOUS
|
|
56
|
+
map.save()
|
|
57
|
+
return map
|
|
58
|
+
|
|
59
|
+
|
|
51
60
|
@pytest.fixture
|
|
52
61
|
def anonymap(map):
|
|
53
62
|
map.owner = None
|