umap-project 2.8.0__py3-none-any.whl → 2.8.0a1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (44) hide show
  1. umap/__init__.py +1 -1
  2. umap/locale/en/LC_MESSAGES/django.po +13 -13
  3. umap/management/commands/empty_trash.py +2 -5
  4. umap/static/umap/css/form.css +0 -3
  5. umap/static/umap/js/modules/data/features.js +4 -19
  6. umap/static/umap/js/modules/data/layer.js +19 -41
  7. umap/static/umap/js/modules/importer.js +20 -65
  8. umap/static/umap/js/modules/rendering/icon.js +1 -2
  9. umap/static/umap/js/modules/rendering/map.js +7 -7
  10. umap/static/umap/js/modules/rendering/popup.js +10 -9
  11. umap/static/umap/js/modules/rendering/template.js +9 -53
  12. umap/static/umap/js/modules/rendering/ui.js +2 -6
  13. umap/static/umap/js/modules/request.js +2 -2
  14. umap/static/umap/js/modules/schema.js +0 -1
  15. umap/static/umap/js/modules/ui/dialog.js +0 -5
  16. umap/static/umap/js/modules/umap.js +10 -33
  17. umap/static/umap/js/modules/utils.js +0 -2
  18. umap/static/umap/js/umap.controls.js +4 -7
  19. umap/static/umap/js/umap.forms.js +0 -44
  20. umap/static/umap/locale/en.js +1 -3
  21. umap/static/umap/locale/en.json +1 -3
  22. umap/static/umap/locale/fr.js +1 -3
  23. umap/static/umap/locale/fr.json +1 -3
  24. umap/static/umap/map.css +166 -34
  25. umap/static/umap/vars.css +1 -0
  26. umap/templates/base.html +0 -2
  27. umap/templates/umap/components/alerts/alert.html +0 -4
  28. umap/templates/umap/css.html +0 -3
  29. umap/templates/umap/js.html +0 -2
  30. umap/templates/umap/map_init.html +0 -2
  31. umap/templates/umap/user_dashboard.html +0 -2
  32. umap/tests/integration/test_edit_datalayer.py +0 -11
  33. umap/tests/integration/test_import.py +1 -20
  34. umap/tests/test_team_views.py +1 -35
  35. umap/tests/test_views.py +74 -0
  36. umap/views.py +15 -20
  37. {umap_project-2.8.0.dist-info → umap_project-2.8.0a1.dist-info}/METADATA +1 -1
  38. {umap_project-2.8.0.dist-info → umap_project-2.8.0a1.dist-info}/RECORD +41 -44
  39. umap/settings/local_s3.py +0 -45
  40. umap/tests/fixtures/test_upload_simple_marker.json +0 -19
  41. umap/tests/test_dashboard.py +0 -82
  42. {umap_project-2.8.0.dist-info → umap_project-2.8.0a1.dist-info}/WHEEL +0 -0
  43. {umap_project-2.8.0.dist-info → umap_project-2.8.0a1.dist-info}/entry_points.txt +0 -0
  44. {umap_project-2.8.0.dist-info → umap_project-2.8.0a1.dist-info}/licenses/LICENSE +0 -0
umap/tests/test_views.py CHANGED
@@ -267,6 +267,80 @@ def test_change_user_slug(client, user, settings):
267
267
  assert f"/en/user/{user.pk}/" in response.content.decode()
268
268
 
269
269
 
270
+ @pytest.mark.django_db
271
+ def test_user_dashboard_is_restricted_to_logged_in(client):
272
+ response = client.get(reverse("user_dashboard"))
273
+ assert response.status_code == 302
274
+ assert response["Location"] == "/en/login/?next=/en/me"
275
+
276
+
277
+ @pytest.mark.django_db
278
+ def test_user_dashboard_display_user_maps(client, map):
279
+ client.login(username=map.owner.username, password="123123")
280
+ response = client.get(reverse("user_dashboard"))
281
+ assert response.status_code == 200
282
+ body = response.content.decode()
283
+ assert map.name in body
284
+ assert f"{map.get_absolute_url()}?edit" in body
285
+ assert f"{map.get_absolute_url()}?share" in body
286
+ assert f"/map/{map.pk}/download" in body
287
+ assert "Everyone (public)" in body
288
+ assert "Owner only" in body
289
+
290
+
291
+ @pytest.mark.django_db
292
+ def test_user_dashboard_do_not_display_blocked_user_maps(client, map):
293
+ map.share_status = Map.BLOCKED
294
+ map.save()
295
+ client.login(username=map.owner.username, password="123123")
296
+ response = client.get(reverse("user_dashboard"))
297
+ assert response.status_code == 200
298
+ body = response.content.decode()
299
+ assert map.name not in body
300
+
301
+
302
+ @pytest.mark.django_db
303
+ def test_user_dashboard_do_not_display_deleted_user_maps(client, map):
304
+ map.share_status = Map.DELETED
305
+ map.save()
306
+ client.login(username=map.owner.username, password="123123")
307
+ response = client.get(reverse("user_dashboard"))
308
+ assert response.status_code == 200
309
+ body = response.content.decode()
310
+ assert map.name not in body
311
+
312
+
313
+ @pytest.mark.django_db
314
+ def test_user_dashboard_display_user_team_maps(client, map, team, user):
315
+ user.teams.add(team)
316
+ user.save()
317
+ map.team = team
318
+ map.save()
319
+ client.login(username=user.username, password="123123")
320
+ response = client.get(reverse("user_dashboard"))
321
+ assert response.status_code == 200
322
+ body = response.content.decode()
323
+ assert map.name in body
324
+ assert map.get_absolute_url() in body
325
+
326
+
327
+ @pytest.mark.django_db
328
+ def test_user_dashboard_display_user_maps_distinct(client, map):
329
+ # cf https://github.com/umap-project/umap/issues/1325
330
+ anonymap = MapFactory(name="Map witout owner should not appear")
331
+ user1 = UserFactory(username="user1")
332
+ user2 = UserFactory(username="user2")
333
+ map.editors.add(user1)
334
+ map.editors.add(user2)
335
+ map.save()
336
+ client.login(username=map.owner.username, password="123123")
337
+ response = client.get(reverse("user_dashboard"))
338
+ assert response.status_code == 200
339
+ body = response.content.decode()
340
+ assert body.count(f'<a href="/en/map/test-map_{map.pk}">test map</a>') == 1
341
+ assert body.count(anonymap.name) == 0
342
+
343
+
270
344
  @pytest.mark.django_db
271
345
  def test_logout_should_return_redirect(client, user, settings):
272
346
  client.login(username=user.username, password="123123")
umap/views.py CHANGED
@@ -317,11 +317,7 @@ class TeamMaps(PaginatorMixin, DetailView):
317
317
  context_object_name = "current_team"
318
318
 
319
319
  def get_maps(self):
320
- qs = Map.public
321
- user = self.request.user
322
- if user.is_authenticated and user in self.object.users.all():
323
- qs = Map.objects
324
- return qs.filter(team=self.object).order_by("-modified_at")
320
+ return Map.public.filter(team=self.object).order_by("-modified_at")
325
321
 
326
322
  def get_context_data(self, **kwargs):
327
323
  kwargs.update(
@@ -456,27 +452,27 @@ showcase = MapsShowCase.as_view()
456
452
 
457
453
 
458
454
  def validate_url(request):
459
- assert request.method == "GET", "Wrong HTTP method"
455
+ assert request.method == "GET"
460
456
  url = request.GET.get("url")
461
- assert url, "Missing URL"
457
+ assert url
462
458
  try:
463
459
  URLValidator(url)
464
- except ValidationError as err:
465
- raise AssertionError(err)
466
- assert "HTTP_REFERER" in request.META, "Missing HTTP_REFERER"
460
+ except ValidationError:
461
+ raise AssertionError()
462
+ assert "HTTP_REFERER" in request.META
467
463
  referer = urlparse(request.META.get("HTTP_REFERER"))
468
464
  toproxy = urlparse(url)
469
465
  local = urlparse(settings.SITE_URL)
470
- assert toproxy.hostname, "No hostname"
471
- assert referer.hostname == local.hostname, f"{referer.hostname} != {local.hostname}"
472
- assert toproxy.hostname != "localhost", "Invalid localhost target"
473
- assert toproxy.netloc != local.netloc, "Invalid netloc"
466
+ assert toproxy.hostname
467
+ assert referer.hostname == local.hostname
468
+ assert toproxy.hostname != "localhost"
469
+ assert toproxy.netloc != local.netloc
474
470
  try:
475
471
  # clean this when in python 3.4
476
472
  ipaddress = socket.gethostbyname(toproxy.hostname)
477
- except Exception as err:
478
- raise AssertionError(err)
479
- assert not PRIVATE_IP.match(ipaddress), "Private IP"
473
+ except:
474
+ raise AssertionError()
475
+ assert not PRIVATE_IP.match(ipaddress)
480
476
  return url
481
477
 
482
478
 
@@ -484,8 +480,7 @@ class AjaxProxy(View):
484
480
  def get(self, *args, **kwargs):
485
481
  try:
486
482
  url = validate_url(self.request)
487
- except AssertionError as err:
488
- print(f"AjaxProxy: {err}")
483
+ except AssertionError:
489
484
  return HttpResponseBadRequest()
490
485
  try:
491
486
  ttl = int(self.request.GET.get("ttl"))
@@ -1173,7 +1168,7 @@ class DataLayerView(BaseDetailView):
1173
1168
  # (no gzip/cache-control/If-Modified-Since/If-None-Match)
1174
1169
  data = self.filedata
1175
1170
  response = HttpResponse(data, content_type="application/geo+json")
1176
- response["X-Datalayer-Version"] = self.fileversion
1171
+ response["X-Datalayer-Version"] = self.fileversion
1177
1172
  return response
1178
1173
 
1179
1174
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: umap-project
3
- Version: 2.8.0
3
+ Version: 2.8.0a1
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>
@@ -1,4 +1,4 @@
1
- umap/__init__.py,sha256=pqaOv5KRQNjstgj7H87OMN7XK40urPl2P7yYvx8Zee0,18
1
+ umap/__init__.py,sha256=GQ1xPGwR_--i3-Pg0nkWcPAdD7uLAEBfX3aVZiWlVc0,20
2
2
  umap/admin.py,sha256=LoQytPGK6pLBqZ5QgQ9DIPAxhTG31cTtHOCqO9BY5S4,2645
3
3
  umap/apps.py,sha256=5ssKqPUuNJlapaBmr4LY_HDb7J1NFCT3wzythxQOOfs,109
4
4
  umap/asgi.py,sha256=CuVSNBwNb4AvuaD_Ha3ehtvf-c46ijZoVOSoP6WhXp8,432
@@ -12,7 +12,7 @@ umap/middleware.py,sha256=p8EPW_gYW8Wh2lk0DNIAkZQbYlBZugW7Yq4iiA7L4aE,514
12
12
  umap/models.py,sha256=4SzhKdyWXfJMdzEpCyVPnzbTT-TGbDusAy7SP_8UuwI,17929
13
13
  umap/urls.py,sha256=LA3zxyu-GDo8kVqdyU7_bdbDGhDJV8_yFW4oEPTXw4s,7559
14
14
  umap/utils.py,sha256=19i8ibi-1IXxafT4k_yOHMhD-DsPH74Ll9qw-UrUkM4,5856
15
- umap/views.py,sha256=Z1_X5FaAhco-O_Np6FP8nXDgG-bqOL005R_qWT_GsMg,46414
15
+ umap/views.py,sha256=xSKBdbRFtoA0RXm5qCrVAoir4gm0_rN7d-70Nzbg0pQ,46016
16
16
  umap/websocket_server.py,sha256=D9sTHhKg0DG37b8bw7KWTKMDc6TPyTkNLCVkh2mlFOo,6604
17
17
  umap/wsgi.py,sha256=IopIgnDZbCus3XpSetTHnra9VyzWi0Y2tJo-CmfTWCY,1132
18
18
  umap/bin/__init__.py,sha256=iA3ON4A6NCpenrn3q2OgefUKF5QRFIQS-FtS0pxruI8,234
@@ -37,7 +37,7 @@ umap/locale/de/LC_MESSAGES/django.po,sha256=kVaio9t9AKF3vBcZJ-Q2P6Ua90MIwbIRCABW
37
37
  umap/locale/el/LC_MESSAGES/django.mo,sha256=bJOH3_UQZoEfYi9mrsWHZfV6fVhMgnuiNQ_Dc_xOcuA,15058
38
38
  umap/locale/el/LC_MESSAGES/django.po,sha256=ruqAlyQryr7Ip5aTbjEwH6eumb_b8JS-u6qcl9yjN04,22180
39
39
  umap/locale/en/LC_MESSAGES/django.mo,sha256=UXCQbz2AxBvh-IQ7bGgjoBnijo8h9DfE9107A-2Mgkk,337
40
- umap/locale/en/LC_MESSAGES/django.po,sha256=Ht498JmD3Zp08W7qpOjJBTngf6oSMW2pR5dT3OneL5Q,13628
40
+ umap/locale/en/LC_MESSAGES/django.po,sha256=RCM-hylLym43OQaDWCABqnHAyip57gwj4P_UNfyr3oU,13627
41
41
  umap/locale/es/LC_MESSAGES/django.mo,sha256=rblKBhki-DnIAVxbo2UCYQCIte1dqRZDyAjDQCJgKug,11985
42
42
  umap/locale/es/LC_MESSAGES/django.po,sha256=E0xSceHtg4CkgSHT2mFPRdiBP9n8c-PnKDXHQgAgStA,18690
43
43
  umap/locale/et/LC_MESSAGES/django.mo,sha256=Y5ulivMuS2IOR9ITeWRx6PBynPn6LBFUizrFWRraR1s,5051
@@ -114,7 +114,7 @@ umap/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
114
  umap/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
115
  umap/management/commands/anonymous_edit_url.py,sha256=hsWgPzZJmLCoDKTWziFUuwq-DdnSiXkSal2t2TIED-s,1070
116
116
  umap/management/commands/clean_tilelayer.py,sha256=Rcc2PibUUreU0jUZMtUlyqVvgbQMLMuuCZ2tkrzRqHU,5712
117
- umap/management/commands/empty_trash.py,sha256=POmBXloLoPZ_6MFbgsDz4YOKGmEwIWrvMt5v5QMi7ZM,1136
117
+ umap/management/commands/empty_trash.py,sha256=guGnu72EYOiRtS-pLjxByFOmFtq1Ra0JR0SWBOZDOsY,1024
118
118
  umap/management/commands/generate_js_locale.py,sha256=wkf-PFIHS7m4ZhyL1ZRMBLqyUeY2SlOrTXS42tE0-bs,1281
119
119
  umap/management/commands/import_pictograms.py,sha256=RuQDCoiKamba4l3fZUGAXRyd-3zwWWT5c5AhgDvs7AQ,2369
120
120
  umap/management/commands/migrate_to_S3.py,sha256=GBGnydc107v75NYsQfMLLO7Jx0i2g7EKEfE00YZVb1M,1130
@@ -149,7 +149,6 @@ umap/settings/__init__.py,sha256=aPJkOTk0uFusIBA-uOjdUi10R5Cxt4jl5yv2_uCTUvo,170
149
149
  umap/settings/base.py,sha256=rhaIDby2wSb4v8IBx_6xqHVnIigD4G0xzdHX2-9UfNM,11096
150
150
  umap/settings/dev.py,sha256=pj1mpmZXiI2syW8pB01wcVeqCFABF3V-nlOxArir4cw,386
151
151
  umap/settings/local.py.sample,sha256=wpnoe7qtXer_xBuhWbcbqcSCotTJRu6h8hG7N-sD0b4,3157
152
- umap/settings/local_s3.py,sha256=tunaCRn_I7P0IZH-UJpB1I5ft2kE0ZIBY8GYZeLYyfM,1387
153
152
  umap/static/.gitignore,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
153
  umap/static/umap/base.css,sha256=oUvs6YBtFZCgOEk7tVhnlkooORFZ5e1I9qSFGNeBrlw,3771
155
154
  umap/static/umap/bitbucket.png,sha256=Z-xsnM3QOUn9tJQ0RjPXCpALghrzaDDZP7wSePSjSr8,9125
@@ -157,16 +156,16 @@ umap/static/umap/content.css,sha256=04_50AU8iF26_979Ds0sMby4LlKIpm3J08zsv1-blIY,
157
156
  umap/static/umap/font.css,sha256=fYmTKNd_Ts6TrmBbnLRgyeUS4vpfxkEqhLR-pkd3KrA,904
158
157
  umap/static/umap/github.png,sha256=Yiw6VX71qO87vNgJaDuirn3JVlUwrzIpkT9vbtROg1o,1564
159
158
  umap/static/umap/keycloak.png,sha256=K-23F1dda0wD_39dXN5KmGqmgFvde6baNiZ8gdk0NyY,16598
160
- umap/static/umap/map.css,sha256=B82ED0WSOrJs4kh943ThK-vi5sU6250DStSsDkfYhVw,25208
159
+ umap/static/umap/map.css,sha256=thD4iHeGokMMbMKXj-QFlSwyyjZh5YHSSqUUR8Ts2EM,28473
161
160
  umap/static/umap/nav.css,sha256=IKB8Ga8TRal8naxjsgrcrnCO2eaKUL3YNofJB9IN9l0,1865
162
161
  umap/static/umap/openstreetmap.png,sha256=xccBb_RsN7uchm7fRowVLjrzmCtj1-1PLByurkdjcr8,19408
163
162
  umap/static/umap/theme.css,sha256=gkbyghlT5kNfz0Qyg1JL7xalqvHVx321eO9qlnvcaAU,49
164
163
  umap/static/umap/twitter.png,sha256=BnVH7PcYlgKW56KHSOMRPevji2DvhJmvzFjl3-iF7c0,3225
165
- umap/static/umap/vars.css,sha256=OUwPeNbExmoMkyCwmBtqOese9JqjvC87hvJRDP4u4S8,1825
164
+ umap/static/umap/vars.css,sha256=ckkSD9F7D9-IM8P-6qnU8CAxIPS6yq-rNQnzsoofUPo,1856
166
165
  umap/static/umap/css/bar.css,sha256=u40xqJQtYgBDfhdELlXxkh9kPmn7T2pMEJQWeiG6EvA,4851
167
166
  umap/static/umap/css/contextmenu.css,sha256=AdPajFTy2M_yHbkMKDYdh45gRO4amNd0OXRYYDNZSI4,437
168
167
  umap/static/umap/css/dialog.css,sha256=9qwy9rOcTQY6SPkteM7dW1t36XQBJVoGETQatSOvffM,879
169
- umap/static/umap/css/form.css,sha256=BW5R_mr4xXN1HaT97v6IPSFMQUH4tsxOm1eJkrpyVJI,13632
168
+ umap/static/umap/css/form.css,sha256=CPBhU9tXuHeo6yng68v1LQcTEfsdM3nv2VNCWMYW3QM,13589
170
169
  umap/static/umap/css/icon.css,sha256=-lFltPt6bgAhzXPWqYW97JTY3Y22dbR7KXoOmLZQiU8,4328
171
170
  umap/static/umap/css/importers.css,sha256=iS3krkVPpqUQlPNQXSyByyho7rHBzxYqm04bPyKo_qY,1455
172
171
  umap/static/umap/css/panel.css,sha256=fRPw-dyrcRegoOxTOWTDjBwuI_aHNPmmBOY16flsCBI,3073
@@ -222,9 +221,9 @@ umap/static/umap/img/source/16-white.svg,sha256=0xOMZOwpZW72QHt4SPao4BEr2lE6kZvW
222
221
  umap/static/umap/img/source/16.svg,sha256=r3ZFL-rjyozbiboXDQOkoCLHW-0LTQa4Di9qF7z7qV0,44441
223
222
  umap/static/umap/img/source/24-white.svg,sha256=t5713m3RdG9vunV2nUhLY4o4xT9v7ke3NY42g9FeAnE,29206
224
223
  umap/static/umap/img/source/24.svg,sha256=2HY-QmZc2_eV3TyqGLlzqgJXCLVbrzKQV5Q6JLWgNiI,38319
225
- umap/static/umap/js/umap.controls.js,sha256=gk6IFPepAJ6QRAX48PJWwukVjbxpzf3UANw0fF0VabQ,30016
224
+ umap/static/umap/js/umap.controls.js,sha256=gY3ej4xzkrFsaySkUD_bYXcaSKLgFN6P_e65cDch8hE,29947
226
225
  umap/static/umap/js/umap.core.js,sha256=FGx6GVcfrE_sn_izOt5r4DLkbO3-bv28jeXV8kwwUio,7029
227
- umap/static/umap/js/umap.forms.js,sha256=clc4Kb3F8jpGXlLiilgW6EQtFmEXmnXx9BfmkFEhkFo,32962
226
+ umap/static/umap/js/umap.forms.js,sha256=X0aTpmG5D2z-bSuD_Rpw73hx3o8Zz7d7qfBuvTpnYW4,31978
228
227
  umap/static/umap/js/components/base.js,sha256=gDb1fGuNCC1KEu4PlQflC1PDNyrulhqLhmlsjyCJpps,1575
229
228
  umap/static/umap/js/components/fragment.js,sha256=-rOrcyPpZ5ihD_hh0C1qrYpaim11JYh5fg0x_od_m5U,379
230
229
  umap/static/umap/js/components/alerts/alert.css,sha256=fSmbDDjXjEYLfgnEAVDhyqWiBOUy2YhVRy0_den-7Dk,4930
@@ -238,32 +237,32 @@ umap/static/umap/js/modules/formatter.js,sha256=drbIxbDGrcHOUtzJtC4B5iKpm8-YNg_b
238
237
  umap/static/umap/js/modules/global.js,sha256=7jm6NLZ5PM2yrkbWHdWkoDFcevgIAMqE-vZQRXcIgEo,934
239
238
  umap/static/umap/js/modules/help.js,sha256=0vsDTFGcPz2coG_LBeGPSUQupZTFUes6kCwQCPBUjuU,9694
240
239
  umap/static/umap/js/modules/i18n.js,sha256=dEpjsWoEZa-Tr5_MDO0tuWkt7kLL3crxXqhttyP-khU,1387
241
- umap/static/umap/js/modules/importer.js,sha256=1RTRY9w_fn24lMTlpH_ktbDvvNCO1VHDihN3oSu25co,11045
240
+ umap/static/umap/js/modules/importer.js,sha256=hfFXTXtyCueeEZrs-cq6EAnicgRANzijbhoihYFT-RE,10000
242
241
  umap/static/umap/js/modules/leaflet-configure.js,sha256=P3aD8iNGxuVNv-xW4Di4txAjNmnlpKtCCzDvPaKEdQ8,243
243
242
  umap/static/umap/js/modules/orderable.js,sha256=zDtcElZ_MVPoGba8Iv9bxOzk4vuN7C-5XVl4UomDYHE,2521
244
243
  umap/static/umap/js/modules/permissions.js,sha256=RxKrfjLo6hdGuAvwQrzUUJJznD5RkmSkAHVMidA9iKQ,8497
245
- umap/static/umap/js/modules/request.js,sha256=9GRJoOPbdkHL9OFP6Joaf5wzsJckPyiG2O7AxQciTik,3885
244
+ umap/static/umap/js/modules/request.js,sha256=hMy3dleGRxstKsksbNa15w7jk4H9-nAV_ub-JdNhDD8,3881
246
245
  umap/static/umap/js/modules/rules.js,sha256=z_QmGH5HdS1HVtJXBjQsGkz7kus_E2NocZAqaP7BN1g,7433
247
246
  umap/static/umap/js/modules/saving.js,sha256=oO6S23KldT19e3xM_iupw0ZDruyyCNHBx5e5wtrejhI,689
248
- umap/static/umap/js/modules/schema.js,sha256=j3x41xqQpLaKJvWDJOr_l6-UMATofanhBDBvaS7KvKc,13186
247
+ umap/static/umap/js/modules/schema.js,sha256=RuBO5obpccTPH_iPXRU-lwyj1SoX9bp619tknrPiZjI,13141
249
248
  umap/static/umap/js/modules/share.js,sha256=s1X59VpMqut_Vhg7l7LV2IZDm9obRVbDH9wZbG5kX3c,7182
250
249
  umap/static/umap/js/modules/slideshow.js,sha256=zcRzOMkJvhps1npGRjHkdK4Ce3UkqOsv8OsDgQWO-bg,3567
251
250
  umap/static/umap/js/modules/tableeditor.js,sha256=6p2YE2-NF4NkwLDQkqrl90P_PwOYdFao0-ac_AkOwWs,9854
252
- umap/static/umap/js/modules/umap.js,sha256=BBCNn7IWOQ2e3r_hcUxDXbNUM7o1jLAEylwPF-xSQ3Q,50578
251
+ umap/static/umap/js/modules/umap.js,sha256=n509OKscghGTM_sXlvcobVdJG36NRpeQA5pIlmEaUDI,49989
253
252
  umap/static/umap/js/modules/urls.js,sha256=76cFqycj2O8huuoYYBvxnVt2Fc2UDbgrRsiv6lQmcSY,890
254
- umap/static/umap/js/modules/utils.js,sha256=O0Hq8mhQFHrsv8h0hhPKz-hBCtDfi1IDaZup5iXMMyc,12331
255
- umap/static/umap/js/modules/data/features.js,sha256=3HTKNE1OmX3L_8QQRg6O0NgF3wOqx5BpWt4AUJKHU_M,31973
256
- umap/static/umap/js/modules/data/layer.js,sha256=IegG8IyMt-AxzF3noVjXcUUcJRSx0jYG-bVRvQ8HnIU,35124
253
+ umap/static/umap/js/modules/utils.js,sha256=fYzo-WjRzDZsdjv3CI9U4Es3AqOfuBCJuRq997m2EfQ,12309
254
+ umap/static/umap/js/modules/data/features.js,sha256=rd5WpZoai3u4baWxi_8m2vtwGLuI-9hdH4PGnrjqg_4,31667
255
+ umap/static/umap/js/modules/data/layer.js,sha256=WhB0ZSaNpI082JKL28EYLjY2fhoIXdOhMwn8JDuqtqM,34530
257
256
  umap/static/umap/js/modules/importers/cadastrefr.js,sha256=KHqxHleFRFzNi98gegvUM1R6eJorAGGcMft_ktUg-ug,2262
258
257
  umap/static/umap/js/modules/importers/communesfr.js,sha256=6q6ilmYhhuSmgdrvfTyEDNyMLbc9J9Bt8VMZVXB8ZOA,1723
259
258
  umap/static/umap/js/modules/importers/datasets.js,sha256=StZbRiq_1vqe0OO1w66k5Lwzju8RntmHpWe9HWIDfRE,1372
260
259
  umap/static/umap/js/modules/importers/geodatamine.js,sha256=vIxANzNc1TAe3QcZroIxqNvos1vexBmKDTtzErBNiY4,2949
261
260
  umap/static/umap/js/modules/importers/overpass.js,sha256=cY2kb3Fs8tA6PqBjGyc5bI0mg7L1ijapIAkVGwEhSwI,3341
262
- umap/static/umap/js/modules/rendering/icon.js,sha256=ZMN6R6ji1au3Iq7XrVLkXgDOzTveU-bMsnFewL0Kaz0,7938
263
- umap/static/umap/js/modules/rendering/map.js,sha256=tASIpjHaTDlveiErTbmxH4eMywdVMQ9pZjZHQUykSf4,12880
264
- umap/static/umap/js/modules/rendering/popup.js,sha256=k07zuqIo3wx1wdjE8lEtjljjNXgOcxND6Pey68_-_F0,2577
265
- umap/static/umap/js/modules/rendering/template.js,sha256=reTRxFmrCj0l4euOIyy7ieI_vW_7AOBS5XMxvcg2x1U,9524
266
- umap/static/umap/js/modules/rendering/ui.js,sha256=Pz7vS8jhbTy7k70mXBFwR8OH1McI98NeRCT6Fc_x7pM,14317
261
+ umap/static/umap/js/modules/rendering/icon.js,sha256=hguSJt3wDqe0oSQIm1zrYSbyktKVQUWv-QTo5fYdlc8,7861
262
+ umap/static/umap/js/modules/rendering/map.js,sha256=rmI6Y6HHWxWVNokhXl0ADkQDoHzJda5KRdrIZGWrzKI,12956
263
+ umap/static/umap/js/modules/rendering/popup.js,sha256=EHfOSPb8BmbGK6-DcGekfbIDpNjH-y8L2QnpfbJEr3Y,2604
264
+ umap/static/umap/js/modules/rendering/template.js,sha256=LRLhU8kKoZpvyPR2h1E3XyfS4BY07p3b82KPZPk5rbU,7890
265
+ umap/static/umap/js/modules/rendering/ui.js,sha256=KmAoFiLjiA6IqWzn8gK4U7H_361aAIXZjNWVgnxm_go,14323
267
266
  umap/static/umap/js/modules/rendering/layers/base.js,sha256=DeXxRwTatoxxGStT1tWyNQVCrIkbgd7ZaawIPxWIcOQ,2525
268
267
  umap/static/umap/js/modules/rendering/layers/classified.js,sha256=h4cKB4sZ05MTwlE_kur292HRHxdaSkuwIMmW5JaU-Ac,14679
269
268
  umap/static/umap/js/modules/rendering/layers/cluster.js,sha256=970BbIdiOUQTdNRRRA_4sY2L-1fTe6wb0wBFeuHZxww,3368
@@ -275,7 +274,7 @@ umap/static/umap/js/modules/sync/websocket.js,sha256=1UtvsTAm-gkfpBRcLPykPvDyax3
275
274
  umap/static/umap/js/modules/ui/bar.js,sha256=zoWNOKhs-Sf5pFTlPFoEAysS-AUF6ZlXdO5UA9jom2A,7570
276
275
  umap/static/umap/js/modules/ui/base.js,sha256=8PN8TRIBqTANRufwVvV0XzOdaYQuRCnlWGbTGq8FZiM,2491
277
276
  umap/static/umap/js/modules/ui/contextmenu.js,sha256=VzC94uGUt8DkzC60Gcbz-MxivfSITEqUC91Fkpq1gjk,2550
278
- umap/static/umap/js/modules/ui/dialog.js,sha256=geAcMf2ajpNpDePDbaOz_kOiWOZWtpOHT7kBYqOHEa0,5620
277
+ umap/static/umap/js/modules/ui/dialog.js,sha256=Jh2jb4qjxx_eTGAU9cRZHwWhtyk2HFVg7dkP8eCtBLQ,5403
279
278
  umap/static/umap/js/modules/ui/panel.js,sha256=phPWwCFxQ9AJ9auPPayD5Xtf6yQemQSZHlVlLANfTx0,3240
280
279
  umap/static/umap/js/modules/ui/tooltip.js,sha256=M2KBb5CA4AvaA-6QgfpUKMYQuGXzTqx4ZVA9fkMRBEs,1642
281
280
  umap/static/umap/locale/am_ET.js,sha256=TsgZgJkMMmFAJE0nJIq62r8hHvFgLLjcA6axXQlkbog,33822
@@ -298,8 +297,8 @@ umap/static/umap/locale/de.js,sha256=wUAKh3L1vhrHH819XeKeLalw8GOhjh5G-yErBUDY4R0
298
297
  umap/static/umap/locale/de.json,sha256=cM1Q4WS2qCtQebyUHnHmblS4aj9j4TooDwk_nSQ8pqs,32723
299
298
  umap/static/umap/locale/el.js,sha256=aK9fBOMEaQf-a3IU3lEhJ5qeDNRtHIR5k_WD0n09d88,41377
300
299
  umap/static/umap/locale/el.json,sha256=G3O0k62tIsf654xUZO0x988aKIAo0zZCHzRibDxpjo8,41312
301
- umap/static/umap/locale/en.js,sha256=89UHZNqyNhy86A0lPxmFzsw7UYV-f6hHEwnYg4yzQAw,30259
302
- umap/static/umap/locale/en.json,sha256=U5vQn1-kXUsmAm5tTN2-NbC6UulPa0ERVfs4JQywAwo,30194
300
+ umap/static/umap/locale/en.js,sha256=3zFUHDjehyf1qhY9NcO3SkiTY0cdEinrpIOSez3upRw,30089
301
+ umap/static/umap/locale/en.json,sha256=9EbcClQgnn14besF7LctqoxAWPR4qvnRiMIoN3XeuHY,30024
303
302
  umap/static/umap/locale/en_US.json,sha256=E8ScCCs3lXiHOJPqTNxd7maDyhkkF3GNqN-r2p27lLQ,29813
304
303
  umap/static/umap/locale/es.js,sha256=xYnvTBRzycvrYhEA5yr8uFV8aeCoVLPsJegdccDdjQg,32933
305
304
  umap/static/umap/locale/es.json,sha256=-JF4DZ5B4yk2Qvhj4FsEhZs0UybS0m0t2roH0cvnPXw,32868
@@ -311,8 +310,8 @@ umap/static/umap/locale/fa_IR.js,sha256=qn-Oc23zaIz_ua3DAvvVljn--jn2fR7eaMF-bsyp
311
310
  umap/static/umap/locale/fa_IR.json,sha256=ql1IvgBcDHiAD6ho500PwRE2y8x9gSfsKq96IQgAZTw,38633
312
311
  umap/static/umap/locale/fi.js,sha256=wyW-hHzNfKHoPKata6sw_TBx3Grz227eXscuabAGbwQ,30915
313
312
  umap/static/umap/locale/fi.json,sha256=lDQ6_RxXtcNI_kahg8XBWlVYUE-MvgUqJA_Ue6DJj3c,30850
314
- umap/static/umap/locale/fr.js,sha256=VLtQz8W6InWu90Ccxx3gJZwuVQ2AutTKImvjdbrNv3U,33146
315
- umap/static/umap/locale/fr.json,sha256=DzTqe44_JAMHYiNFqGbF3VLHmoXSoavJXcvRegigw-8,33081
313
+ umap/static/umap/locale/fr.js,sha256=qcNce3E8OnRxRQwi8bRm9XhcixmTGtZrdEN-4fjcPSA,32978
314
+ umap/static/umap/locale/fr.json,sha256=RgemOdmvz98TVih78sXjhJ-D69KFE5xk12yr-75cMEo,32913
316
315
  umap/static/umap/locale/gl.js,sha256=ninZHPi3xo8aatt9G6zBNXCX6br0Na7-t20JJT0XDX4,31478
317
316
  umap/static/umap/locale/gl.json,sha256=b99nZnWgtOZf1Uj-WUCPnWLrcvg5IGDYCV0wc7ntgb8,31413
318
317
  umap/static/umap/locale/he.js,sha256=jljbzL6uctwBN5fzwQM4lFZ6ZLXKzldUeDTyzQTSyqU,33381
@@ -455,7 +454,7 @@ umap/storage/s3.py,sha256=KAYu3vAqXbd5UhaoPxG6zcGtBfKZOzzi-6uY6YEuIcY,1962
455
454
  umap/storage/staticfiles.py,sha256=mxFcenC1JECmpNy4H0e7vX8GObDZVXzs1RPjQFWNd5k,2473
456
455
  umap/templates/404.html,sha256=1yLlD8rSF_9cfjm5FYy--P46HLVbHeFkJiW9nRzM--E,399
457
456
  umap/templates/500.html,sha256=Z8x47OVfYXquAYAlmRB0EJVTCiCaBppFFiFEmoYsMYY,5202
458
- umap/templates/base.html,sha256=wb-WxYqyJ-GVQWJYrpVqLE4FYz3hOu0lJic6XL8VPxY,1548
457
+ umap/templates/base.html,sha256=_Q0Ikwese3vlUl0pKQdzHDy_oRT9OV4uWh0RGFaYAQA,1499
459
458
  umap/templates/auth/user_detail.html,sha256=ud6AnM2ZK9WN8SuAnmKhZlGN0Wbi-GOzy09hoPfL04I,525
460
459
  umap/templates/auth/user_form.html,sha256=h9NZi9KIC_5jkvj5KAsxX5CdiYCrQ2lrl9qpr5ObPcg,1730
461
460
  umap/templates/auth/user_stars.html,sha256=LAGZU50ki2SCqZ0o_NBfN7T2RDl-L_1EGLixu5OH4AY,545
@@ -465,17 +464,17 @@ umap/templates/umap/about_summary.html,sha256=5pvCvX34YHk_XCtZfcRSznvRwi_-UJMioD
465
464
  umap/templates/umap/branding.html,sha256=8IzkIWqiZckgkX9FC-n1v6f8JIB2q7DcX3JHscxsaYA,60
466
465
  umap/templates/umap/content.html,sha256=KfNQ18LcbxFd00tHQeirGy5Vh75qQNM6pj0bQbcy4Bo,2246
467
466
  umap/templates/umap/content_footer.html,sha256=wkdc4Usuq4-vDIJHPxv-KS6KL4gBkUl7ARyU7zz1Zis,1154
468
- umap/templates/umap/css.html,sha256=rlqw64vDT-mpl3Ckv6izFuU-BQHJwXw9Aw1TeFmhL80,2308
467
+ umap/templates/umap/css.html,sha256=kOo_21HmUKEfZk6rUtZaBbiidens27wDUH3fdYEoU-k,2266
469
468
  umap/templates/umap/dashboard_menu.html,sha256=DEzGwiL_U1ntDpY0Ybda5ijDMSNw-n7Vb-V7HrsqYgo,688
470
469
  umap/templates/umap/footer.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
471
470
  umap/templates/umap/header.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
472
471
  umap/templates/umap/home.html,sha256=021I4eVLjMWvhsIqo2k2FADXla2c4UClAJ1uy9R5KVI,839
473
- umap/templates/umap/js.html,sha256=5BFbBGsBpebyGgn8yTnj-TEZ1qrWQUTjDC4AJHLdnug,2466
472
+ umap/templates/umap/js.html,sha256=txh_b153ORSG9OSMxgQp9jbZHwtVoWWzt6fBFiIK7sE,2425
474
473
  umap/templates/umap/locale.js,sha256=AP-mSJQq5RyC3eNaBbk-sOsD80r0_qlvuK1afXdsVo4,112
475
474
  umap/templates/umap/login_popup_end.html,sha256=kcENvhycpVvvIzbNasX1rcSI_67A6pttkWCxy0vHC8g,693
476
475
  umap/templates/umap/map_detail.html,sha256=xMOsbF7NWJ-mpShR0ciJ8MrTeG2OYDm8OIL0yHbW6eg,1192
477
476
  umap/templates/umap/map_fragment.html,sha256=ZRIA3W2tuIecv2LtxyKNSW4k7PmCxRlFmI6TIKC1EV8,152
478
- umap/templates/umap/map_init.html,sha256=5hX7FE0vN6P70KFf8aKusOCERGzy9JoCPg7oyoIWfLQ,334
477
+ umap/templates/umap/map_init.html,sha256=rfx8IUol6YTQwBcyaYBEuFDvFzTtFqs5Jh1Yc5gdGbs,285
479
478
  umap/templates/umap/map_list.html,sha256=Jb-VU3dQdRWsW80nyyRq1Eb6UrhAoIfGleu1cNMJKwc,673
480
479
  umap/templates/umap/map_table.html,sha256=WrH86ybY_GzzRmALfON_oni9aFuIswgOtpTSJ5h8SEY,5778
481
480
  umap/templates/umap/messages.html,sha256=liEsg-I26XHb0FOBAbzFsZl2RfNQtGt-HKoE6jHefbI,190
@@ -488,9 +487,9 @@ umap/templates/umap/success.html,sha256=3FG4yWwtdF3zvVWQ2ZAjCkgv0kcSNZlUjgYy_b-X
488
487
  umap/templates/umap/team_confirm_delete.html,sha256=D4EKfuzVjAexHKPHRsSHpjuAjMNl0iCPtaW2NEGUk2A,448
489
488
  umap/templates/umap/team_detail.html,sha256=4gd8YjvVqGysXNJtzAaZwOpBAADLzJ_ekFRPQp1sHYM,699
490
489
  umap/templates/umap/team_form.html,sha256=yG_zxmJfEwLC5Mof-4SHYcx6lfkOjbGVusQGT7iqSNs,1922
491
- umap/templates/umap/user_dashboard.html,sha256=nls1Nzhwvv1QKI3fOV_2QPuQocCKVZ3STvBKXaKUJZ8,2527
490
+ umap/templates/umap/user_dashboard.html,sha256=kMKk8YHDJkLzs9M9ZBMkrshnDtknrt2dn6OXQb3FeMw,2478
492
491
  umap/templates/umap/user_teams.html,sha256=MfelqIwoLRVjvX-KpVtwqh0I7pNx3oDRhqmSRdpT4bs,1570
493
- umap/templates/umap/components/alerts/alert.html,sha256=ZvisQkz2GfK2jxEqTosYH72N5gIK1604ATVNa_vHT7U,3564
492
+ umap/templates/umap/components/alerts/alert.html,sha256=eQRALES_PzIP3qs16eXq9SGz2KWODr4VY0tyl_hARCw,3482
494
493
  umap/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
495
494
  umap/templatetags/umap_tags.py,sha256=OumX1AI9uWzNP3zbjexTz7lGp10FweW0NRFSsdQ_cuU,1759
496
495
  umap/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -498,7 +497,6 @@ umap/tests/base.py,sha256=x9GVS5eAzc1CHyNxx5gd2w0AJCeHIr4nmX4yak8LhyM,4768
498
497
  umap/tests/conftest.py,sha256=KQCZanCTl1ABLIKOuyxS_cpBoXGiwjDc29jsLBiSWxY,1633
499
498
  umap/tests/settings.py,sha256=tY70LMFXyo_WijswqGyeWai7vBzM62k7IA8pkkbc9y4,816
500
499
  umap/tests/test_clean_tilelayer.py,sha256=wGTd_AHOTmQ4QMswAyc-1_lJmQOSyhY3OahLAusEIdA,2515
501
- umap/tests/test_dashboard.py,sha256=w9IgKdupP9JpixLqvNl6UKbglgFVN_dG_R9Zvw1SJy0,2880
502
500
  umap/tests/test_datalayer.py,sha256=NWX7o-sLOrq3nHT0GDywz5vtJU4HJhZZh11r_rWxhVA,9539
503
501
  umap/tests/test_datalayer_s3.py,sha256=6V3AK22AXkFNjx5__SyBk0Uj0rTDAjJQv67r7D_MDVc,4155
504
502
  umap/tests/test_datalayer_views.py,sha256=Fx_oQF3hBC2FVHTTjTScXbFS2d7FRKdBL7QFFexvKkg,22880
@@ -508,10 +506,10 @@ umap/tests/test_map.py,sha256=vrtheSMQNk45kBIcJ0QY9K7HKYee5yg4Vnp78DyaIwQ,5170
508
506
  umap/tests/test_map_views.py,sha256=EKLJnQ-xk_bkaJ6P7OJ2bnya5orbaSnWFV8GIYcjDNk,33823
509
507
  umap/tests/test_merge_features.py,sha256=uLZSW00WAI8_nZS0KPP8gg8U4nnky-XGb-VhhKUxv1M,2275
510
508
  umap/tests/test_statics.py,sha256=xKuxT8Xj5Ii7gKISuiSfDj7dpjmJ2Ierby3Lg-haZCg,1264
511
- umap/tests/test_team_views.py,sha256=edmqn_tx4XQ1sEQtB7CpuJT6WwQQiUyUYu8-ESZxFcw,5615
509
+ umap/tests/test_team_views.py,sha256=vExhJ3c1cJ7vgxe0G20UzTKkzR5D2UgAapk09muUg5w,4481
512
510
  umap/tests/test_tilelayer.py,sha256=toVpVutEvMLWKx5uH7ZbGNPGzqICZx1_S2OOpIfYPfQ,603
513
511
  umap/tests/test_utils.py,sha256=noh-AFL3qV-dNZYr8L1acsYC02SI710Bq2ZXV-jBEzk,407
514
- umap/tests/test_views.py,sha256=5KXUH46dtjCItm4nqyrpvgnmM6_YMQ3zjcRPTC8rKBo,15820
512
+ umap/tests/test_views.py,sha256=R8uTHHbZmYcDFpzFiFhNod214v15GI1r1yVJmtqeu2E,18444
515
513
  umap/tests/test_websocket_server.py,sha256=BQ9Sy5VC9kBAfPWVxqcXoi9yfq12nfNvBE_j5rTFk7w,696
516
514
  umap/tests/fixtures/categorized_highway.geojson,sha256=p7QHOd8nXi7yVq37gY6Ca8BXkjaLnDxW9Fq0Zcm3Fk4,15830
517
515
  umap/tests/fixtures/choropleth_region_chomage.geojson,sha256=mVVbYlf92Sr3wWH9ETm43FdHz1U3zjsn91HuU5H5r4Y,21325
@@ -531,7 +529,6 @@ umap/tests/fixtures/test_upload_empty_coordinates.json,sha256=-mJ_1orzUAROfE4PXc
531
529
  umap/tests/fixtures/test_upload_georss.xml,sha256=lfmVA0qGDakCG48jjsLmSIE1U6iZ9yyFuqqX6Srt8Js,1160
532
530
  umap/tests/fixtures/test_upload_missing_name.json,sha256=klSMHb6laTghzU4AdIG1_p5UZ1LbAJCCKnJea0qEFAI,4566
533
531
  umap/tests/fixtures/test_upload_non_linear_ring.json,sha256=WOR0NnJHNUUW6VKzZyIxU7WL1llnAmEVJwCWla6XOds,1525
534
- umap/tests/fixtures/test_upload_simple_marker.json,sha256=jH15G5PxgVO-DZb4TPxVMAi1_uzhkvZcFkVUb50CS3Q,393
535
532
  umap/tests/integration/__init__.py,sha256=nqQ2miDnSZOKDuFhQ5saFN3qQuK73Cs6xL9Od-mEKG4,57
536
533
  umap/tests/integration/conftest.py,sha256=OTKeDdLBpFUsqFCnHD-QY2X1iv5m4jIaE__4T4qKdDY,2468
537
534
  umap/tests/integration/helpers.py,sha256=vvGX5b-DS2fMVDdeXz1lH2IleZkRHjyL7DVvatJU8Do,344
@@ -548,14 +545,14 @@ umap/tests/integration/test_dashboard.py,sha256=LClLBc8lgDM1-NGhkvUSUMLmMuKt3sR1
548
545
  umap/tests/integration/test_datalayer.py,sha256=cxsf65noYTucEMLuUz8DfJ9abXHhAq0n65MvdBmBRVo,5492
549
546
  umap/tests/integration/test_draw_polygon.py,sha256=Ub_1Witps_BLwMMmQ4M0vPIyQOEQ_Bq82znpJdWpCfY,25385
550
547
  umap/tests/integration/test_draw_polyline.py,sha256=lPr5hz-wHL9oC2B3yveNHC-OxdzWvcf8fHMBZbXTuss,14801
551
- umap/tests/integration/test_edit_datalayer.py,sha256=vC_bpfw_eMvYzhu3x6E2vS4gDFb55Ud5p64mfRqZBf4,10292
548
+ umap/tests/integration/test_edit_datalayer.py,sha256=Q2y7IEd66f637pkjGYRs_EtFsfQJg40Dk-5ey44_LpA,9798
552
549
  umap/tests/integration/test_edit_map.py,sha256=d76M4J6rumDQ6sKaOyTA45dWAkwAOtoUuNkW-GsA-fo,7134
553
550
  umap/tests/integration/test_edit_marker.py,sha256=sj4n2mCYQ-qZ02jFHA566Wg_y9F6oXb1AxddnthSQHI,4746
554
551
  umap/tests/integration/test_edit_polygon.py,sha256=JeIW6NcBltIl958uJ_T-0dRCT5gOo9JrNtULvg7nxf4,5286
555
552
  umap/tests/integration/test_export_map.py,sha256=jH0BXm-7Ov26OEkve9-xKMfRwXwR73zRrZLIQusyUOY,12112
556
553
  umap/tests/integration/test_facets_browser.py,sha256=J--y2rpI__0RIPzcTx4Kn2UwuurFdh-6i_Y4c6GxUyY,10658
557
554
  umap/tests/integration/test_features_id_generation.py,sha256=e99_8AxeMAi53JjVGlsI32zlrXGAU19FHJfTuYdiBVQ,1511
558
- umap/tests/integration/test_import.py,sha256=dBkj-E9LSUTZvcMK8-MratR5aDz0jLrWEuh6Mek0vzg,31266
555
+ umap/tests/integration/test_import.py,sha256=88ep2QaVJ26GF45dPIjwy9S3yCiVulZkTbEUYLDUPKA,30533
559
556
  umap/tests/integration/test_map.py,sha256=2ZO54RFVycJKGczfioX0nU1oCu29FVC9hR6wbT4s1NE,8736
560
557
  umap/tests/integration/test_map_list.py,sha256=l1FImKnJkY7DupYX8waKaUZqhnORR20L8dzaqu-eF8E,1280
561
558
  umap/tests/integration/test_map_preview.py,sha256=kP0vkEiUN7EJNCvZgNeUAzrrXfgwpU0S2UnmOBV4P5A,3540
@@ -575,8 +572,8 @@ umap/tests/integration/test_view_marker.py,sha256=ZLS6-GOWYpjeoYGHiHa7HesXJTLu9w
575
572
  umap/tests/integration/test_view_polygon.py,sha256=NMJC6Nt9VpQ8FIU9Pqq2OspHv49xsWlsoXCr8iBa0VA,2060
576
573
  umap/tests/integration/test_view_polyline.py,sha256=aJoXKmLhJaN0yhPdDCVskZNGx3q3mLDkjVPhZ30cadA,13959
577
574
  umap/tests/integration/test_websocket_sync.py,sha256=Xjn8z7Gj2PAmPmLkMTsHztFmhzsfyE3vg-wfewpA2I4,15511
578
- umap_project-2.8.0.dist-info/METADATA,sha256=M08A_pa_2geppqqM3y3aZBGZ2hG6CsYZmPyrOtiE_Zg,2991
579
- umap_project-2.8.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
580
- umap_project-2.8.0.dist-info/entry_points.txt,sha256=gz-KDQfEsMLBae8ABOD3foJsCYGPW1tA4Y394R_1RW8,39
581
- umap_project-2.8.0.dist-info/licenses/LICENSE,sha256=kQtrtRKgiPhcl7aO0-lmvbrNAXu7WHyiXvPrUk-TD2Q,820
582
- umap_project-2.8.0.dist-info/RECORD,,
575
+ umap_project-2.8.0a1.dist-info/METADATA,sha256=MRv8Aho0zddPOihVvrm8zDHu-JYcjSARVr8ZlsO8Shg,2993
576
+ umap_project-2.8.0a1.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
577
+ umap_project-2.8.0a1.dist-info/entry_points.txt,sha256=gz-KDQfEsMLBae8ABOD3foJsCYGPW1tA4Y394R_1RW8,39
578
+ umap_project-2.8.0a1.dist-info/licenses/LICENSE,sha256=kQtrtRKgiPhcl7aO0-lmvbrNAXu7WHyiXvPrUk-TD2Q,820
579
+ umap_project-2.8.0a1.dist-info/RECORD,,
umap/settings/local_s3.py DELETED
@@ -1,45 +0,0 @@
1
- from umap.settings.local import *
2
-
3
- DATABASES = {
4
- "default": {
5
- "ENGINE": "django.contrib.gis.db.backends.postgis",
6
- "NAME": "umaps3",
7
- }
8
- }
9
-
10
- STORAGES = {
11
- "default": {
12
- "BACKEND": "storages.backends.s3.S3Storage",
13
- "OPTIONS": {
14
- "access_key": "OScTD3CClCcO54Ax2DLz",
15
- "secret_key": "eK9tfPRHoFh0nKLkZpJJoC4RJS1ptGfko3iBBd5k",
16
- "bucket_name": "umap-default",
17
- "region_name": "eu",
18
- "endpoint_url": "http://127.0.0.1:9000",
19
- },
20
- },
21
- "data": {
22
- "BACKEND": "umap.storage.s3.S3DataStorage",
23
- "OPTIONS": {
24
- "access_key": "OScTD3CClCcO54Ax2DLz",
25
- "secret_key": "eK9tfPRHoFh0nKLkZpJJoC4RJS1ptGfko3iBBd5k",
26
- "bucket_name": "umap",
27
- "region_name": "eu",
28
- "endpoint_url": "http://127.0.0.1:9000",
29
- },
30
- },
31
- "staticfiles": {
32
- "BACKEND": "storages.backends.s3.S3Storage",
33
- "OPTIONS": {
34
- "access_key": "OScTD3CClCcO54Ax2DLz",
35
- "secret_key": "eK9tfPRHoFh0nKLkZpJJoC4RJS1ptGfko3iBBd5k",
36
- "bucket_name": "umap-staticfiles",
37
- "region_name": "eu",
38
- "endpoint_url": "http://127.0.0.1:9000",
39
- "default_acl": "public-read",
40
- # "querystring_auth": False,
41
- },
42
- },
43
- }
44
-
45
- # STATIC_URL = "http://127.0.0.1:9000/umap-staticfiles/"
@@ -1,19 +0,0 @@
1
- {
2
- "crs": null,
3
- "type": "FeatureCollection",
4
- "features": [
5
- {
6
- "type": "Feature",
7
- "geometry": {
8
- "coordinates": [
9
- -1.09314,
10
- 50.791718
11
- ],
12
- "type": "Point"
13
- },
14
- "properties": {
15
- "name": "Portsmouth"
16
- }
17
- }
18
- ]
19
- }
@@ -1,82 +0,0 @@
1
- import pytest
2
- from django.contrib.auth import get_user_model
3
- from django.urls import reverse
4
-
5
- from umap.models import Map
6
-
7
- from .base import MapFactory, UserFactory
8
-
9
- User = get_user_model()
10
-
11
- pytestmark = pytest.mark.django_db
12
-
13
-
14
- def test_user_dashboard_is_restricted_to_logged_in(client):
15
- response = client.get(reverse("user_dashboard"))
16
- assert response.status_code == 302
17
- assert response["Location"] == "/en/login/?next=/en/me"
18
-
19
-
20
- def test_user_dashboard_display_user_maps(client, map):
21
- client.login(username=map.owner.username, password="123123")
22
- response = client.get(reverse("user_dashboard"))
23
- assert response.status_code == 200
24
- body = response.content.decode()
25
- assert map.name in body
26
- assert f"{map.get_absolute_url()}?edit" in body
27
- assert f"{map.get_absolute_url()}?share" in body
28
- assert f"/map/{map.pk}/download" in body
29
- assert "Everyone (public)" in body
30
- assert "Owner only" in body
31
-
32
-
33
- def test_user_dashboard_do_not_display_blocked_user_maps(client, map):
34
- map.share_status = Map.BLOCKED
35
- map.save()
36
- client.login(username=map.owner.username, password="123123")
37
- response = client.get(reverse("user_dashboard"))
38
- assert response.status_code == 200
39
- body = response.content.decode()
40
- assert map.name not in body
41
-
42
-
43
- def test_user_dashboard_do_not_display_deleted_user_maps(client, map):
44
- map.share_status = Map.DELETED
45
- map.save()
46
- client.login(username=map.owner.username, password="123123")
47
- response = client.get(reverse("user_dashboard"))
48
- assert response.status_code == 200
49
- body = response.content.decode()
50
- assert map.name not in body
51
-
52
-
53
- @pytest.mark.parametrize("share_status", [Map.DRAFT, Map.PRIVATE, Map.PUBLIC, Map.OPEN])
54
- def test_user_dashboard_display_user_team_maps(client, map, team, user, share_status):
55
- user.teams.add(team)
56
- user.save()
57
- map.team = team
58
- map.share_status = share_status
59
- map.save()
60
- assert map.owner != user
61
- client.login(username=user.username, password="123123")
62
- response = client.get(reverse("user_dashboard"))
63
- assert response.status_code == 200
64
- body = response.content.decode()
65
- assert map.name in body
66
- assert map.get_absolute_url() in body
67
-
68
-
69
- def test_user_dashboard_display_user_maps_distinct(client, map):
70
- # cf https://github.com/umap-project/umap/issues/1325
71
- anonymap = MapFactory(name="Map witout owner should not appear")
72
- user1 = UserFactory(username="user1")
73
- user2 = UserFactory(username="user2")
74
- map.editors.add(user1)
75
- map.editors.add(user2)
76
- map.save()
77
- client.login(username=map.owner.username, password="123123")
78
- response = client.get(reverse("user_dashboard"))
79
- assert response.status_code == 200
80
- body = response.content.decode()
81
- assert body.count(f'<a href="/en/map/test-map_{map.pk}">test map</a>') == 1
82
- assert body.count(anonymap.name) == 0