umap-project 2.7.0__py3-none-any.whl → 2.7.0b0__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 (72) hide show
  1. umap/__init__.py +1 -1
  2. umap/locale/es/LC_MESSAGES/django.mo +0 -0
  3. umap/locale/es/LC_MESSAGES/django.po +128 -134
  4. umap/settings/base.py +1 -1
  5. umap/static/umap/css/contextmenu.css +1 -1
  6. umap/static/umap/css/importers.css +0 -4
  7. umap/static/umap/img/16.svg +184 -1
  8. umap/static/umap/img/24-white.svg +0 -1
  9. umap/static/umap/img/24.svg +0 -1
  10. umap/static/umap/img/source/16.svg +200 -753
  11. umap/static/umap/img/source/24-white.svg +2 -3
  12. umap/static/umap/img/source/24.svg +2 -3
  13. umap/static/umap/js/modules/browser.js +0 -47
  14. umap/static/umap/js/modules/caption.js +4 -10
  15. umap/static/umap/js/modules/data/layer.js +14 -26
  16. umap/static/umap/js/modules/importer.js +0 -3
  17. umap/static/umap/js/modules/importers/communesfr.js +2 -2
  18. umap/static/umap/js/modules/rendering/layers/classified.js +0 -2
  19. umap/static/umap/js/modules/rendering/ui.js +6 -28
  20. umap/static/umap/js/modules/share.js +3 -1
  21. umap/static/umap/js/modules/slideshow.js +1 -1
  22. umap/static/umap/js/modules/sync/engine.js +8 -14
  23. umap/static/umap/js/modules/sync/hlc.js +3 -3
  24. umap/static/umap/js/modules/sync/updaters.js +2 -14
  25. umap/static/umap/js/modules/tableeditor.js +1 -1
  26. umap/static/umap/js/modules/ui/contextmenu.js +2 -18
  27. umap/static/umap/js/modules/utils.js +4 -24
  28. umap/static/umap/js/umap.controls.js +10 -31
  29. umap/static/umap/js/umap.core.js +1 -1
  30. umap/static/umap/js/umap.js +23 -31
  31. umap/static/umap/locale/ca.js +4 -8
  32. umap/static/umap/locale/ca.json +4 -8
  33. umap/static/umap/locale/en.js +1 -5
  34. umap/static/umap/locale/en.json +1 -5
  35. umap/static/umap/locale/es.js +319 -330
  36. umap/static/umap/locale/es.json +319 -330
  37. umap/static/umap/locale/fr.js +1 -5
  38. umap/static/umap/locale/fr.json +1 -5
  39. umap/static/umap/map.css +7 -37
  40. umap/static/umap/unittests/hlc.js +3 -10
  41. umap/static/umap/unittests/utils.js +0 -24
  42. umap/static/umap/vars.css +1 -2
  43. umap/static/umap/vendors/colorbrewer/colorbrewer.js +317 -309
  44. umap/static/umap/vendors/dompurify/purify.es.js +16 -15
  45. umap/static/umap/vendors/dompurify/purify.es.mjs.map +1 -1
  46. umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.js +2 -2
  47. umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.js.map +1 -1
  48. umap/static/umap/vendors/simple-statistics/simple-statistics.min.js +1 -1
  49. umap/static/umap/vendors/simple-statistics/simple-statistics.min.js.map +1 -1
  50. umap/templates/umap/css.html +2 -0
  51. umap/templates/umap/js.html +1 -0
  52. umap/templates/umap/map_detail.html +2 -2
  53. umap/tests/fixtures/test_upload_data.csv +2 -2
  54. umap/tests/integration/test_browser.py +7 -69
  55. umap/tests/integration/test_caption.py +3 -3
  56. umap/tests/integration/test_datalayer.py +5 -1
  57. umap/tests/integration/test_edit_datalayer.py +2 -1
  58. umap/tests/integration/test_edit_map.py +1 -1
  59. umap/tests/integration/test_edit_marker.py +1 -1
  60. umap/tests/integration/test_facets_browser.py +3 -3
  61. umap/tests/integration/test_import.py +4 -0
  62. umap/tests/integration/test_map.py +4 -0
  63. umap/tests/integration/test_view_marker.py +0 -63
  64. umap/tests/test_map_views.py +0 -19
  65. {umap_project-2.7.0.dist-info → umap_project-2.7.0b0.dist-info}/METADATA +10 -14
  66. {umap_project-2.7.0.dist-info → umap_project-2.7.0b0.dist-info}/RECORD +69 -72
  67. umap/asgi.py +0 -15
  68. umap/static/umap/img/importers/cadastrefr.svg +0 -23
  69. umap/static/umap/js/modules/importers/cadastrefr.js +0 -62
  70. {umap_project-2.7.0.dist-info → umap_project-2.7.0b0.dist-info}/WHEEL +0 -0
  71. {umap_project-2.7.0.dist-info → umap_project-2.7.0b0.dist-info}/entry_points.txt +0 -0
  72. {umap_project-2.7.0.dist-info → umap_project-2.7.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -10,6 +10,8 @@
10
10
  href="{% static 'umap/vendors/editinosm/Leaflet.EditInOSM.css' %}" />
11
11
  <link rel="stylesheet"
12
12
  href="{% static 'umap/vendors/minimap/Control.MiniMap.min.css' %}" />
13
+ <link rel="stylesheet"
14
+ href="{% static 'umap/vendors/contextmenu/leaflet.contextmenu.min.css' %}" />
13
15
  <link rel="stylesheet"
14
16
  href="{% static 'umap/vendors/toolbar/leaflet.toolbar.css' %}" />
15
17
  <link rel="stylesheet"
@@ -36,6 +36,7 @@
36
36
  <script src="{% static 'umap/vendors/iconlayers/iconLayers.js' %}" defer></script>
37
37
  <script src="{% static 'umap/vendors/locatecontrol/L.Control.Locate.min.js' %}"
38
38
  defer></script>
39
+ <script src="{% static 'umap/vendors/colorbrewer/colorbrewer.js' %}" defer></script>
39
40
  <script src="{% static 'umap/vendors/simple-statistics/simple-statistics.min.js' %}"
40
41
  defer></script>
41
42
  <script src="{% static 'umap/js/umap.core.js' %}" defer></script>
@@ -17,8 +17,8 @@
17
17
  {% umap_css %}
18
18
  {{ block.super }}
19
19
  {% umap_js locale=locale %}
20
- {% if UMAP_DEMO_SITE or object.share_status != object.PUBLIC %}
21
- <meta name="robots" content="noindex,nofollow">
20
+ {% if object.share_status != object.PUBLIC %}
21
+ <meta name="robots" content="noindex">
22
22
  {% endif %}
23
23
  <link rel="alternate"
24
24
  type="application/json+oembed"
@@ -1,3 +1,3 @@
1
1
  Foo,Latitude,geo_Longitude,title,description
2
- bar,48.5,14.5,a point somewhere,the description of this point
3
- bar,45.7,14.7,a point somewhere else,the description of this other point
2
+ bar,41.34,122.86,a point somewhere,the description of this point
3
+ bar,43.34,121.86,a point somewhere else,the description of this other point
@@ -81,7 +81,7 @@ def test_data_browser_should_be_open(live_server, page, bootstrap, map):
81
81
 
82
82
 
83
83
  def test_data_browser_should_be_filterable(live_server, page, bootstrap, map):
84
- page.goto(f"{live_server.url}{map.get_absolute_url()}#2/19/-2")
84
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
85
85
  expect(page.get_by_title("Features in this layer: 3")).to_be_visible()
86
86
  markers = page.locator(".leaflet-marker-icon")
87
87
  paths = page.locator(".leaflet-overlay-pane path")
@@ -115,7 +115,7 @@ def test_filter_uses_layer_setting_if_any(live_server, page, bootstrap, map):
115
115
  datalayer = map.datalayer_set.first()
116
116
  datalayer.settings["labelKey"] = "foo"
117
117
  datalayer.save()
118
- page.goto(f"{live_server.url}{map.get_absolute_url()}#2/19/-2")
118
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
119
119
  expect(page.get_by_title("Features in this layer: 3")).to_be_visible()
120
120
  markers = page.locator(".leaflet-marker-icon")
121
121
  paths = page.locator(".leaflet-overlay-pane path")
@@ -154,7 +154,7 @@ def test_filter_works_with_variable_in_labelKey(live_server, page, map):
154
154
  data = deepcopy(DATALAYER_DATA)
155
155
  data["_umap_options"]["labelKey"] = "{name} ({bar})"
156
156
  DataLayerFactory(map=map, data=data)
157
- page.goto(f"{live_server.url}{map.get_absolute_url()}#2/19/-2")
157
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
158
158
  expect(page.get_by_title("Features in this layer: 3")).to_be_visible()
159
159
  markers = page.locator(".leaflet-marker-icon")
160
160
  paths = page.locator(".leaflet-overlay-pane path")
@@ -182,7 +182,7 @@ def test_filter_works_with_missing_name(live_server, page, map):
182
182
  data = deepcopy(DATALAYER_DATA)
183
183
  del data["features"][0]["properties"]["name"]
184
184
  DataLayerFactory(map=map, data=data, name="foobar")
185
- page.goto(f"{live_server.url}{map.get_absolute_url()}#2/19/-2")
185
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
186
186
  expect(page.get_by_title("Features in this layer: 3")).to_be_visible()
187
187
  markers = page.locator(".leaflet-marker-icon")
188
188
  paths = page.locator(".leaflet-overlay-pane path")
@@ -299,7 +299,7 @@ def test_data_browser_with_variable_in_name(live_server, page, bootstrap, map):
299
299
  # Include a variable
300
300
  map.settings["properties"]["labelKey"] = "{name} ({foo})"
301
301
  map.save()
302
- page.goto(f"{live_server.url}{map.get_absolute_url()}#2/19/-2")
302
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
303
303
  expect(page.get_by_text("one point in france (point)")).to_be_visible()
304
304
  expect(page.get_by_text("one line in new zeland (line)")).to_be_visible()
305
305
  expect(page.get_by_text("one polygon in greenland (polygon)")).to_be_visible()
@@ -335,7 +335,7 @@ def test_should_sort_features_in_natural_order(live_server, map, page):
335
335
 
336
336
 
337
337
  def test_should_redraw_list_on_feature_delete(live_server, openmap, page, bootstrap):
338
- page.goto(f"{live_server.url}{openmap.get_absolute_url()}#2/19/-2")
338
+ page.goto(f"{live_server.url}{openmap.get_absolute_url()}")
339
339
  # Enable edit
340
340
  page.get_by_role("button", name="Edit").click()
341
341
  buttons = page.locator(".umap-browser .datalayer li .icon-delete")
@@ -380,7 +380,7 @@ def test_should_use_color_variable(live_server, map, page):
380
380
 
381
381
 
382
382
  def test_should_allow_to_toggle_datalayer_visibility(live_server, map, page, bootstrap):
383
- page.goto(f"{live_server.url}{map.get_absolute_url()}#2/19/-2")
383
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
384
384
  markers = page.locator(".leaflet-marker-icon")
385
385
  paths = page.locator(".leaflet-overlay-pane path")
386
386
  expect(markers).to_have_count(1)
@@ -414,65 +414,3 @@ def test_should_have_edit_buttons_in_edit_mode(live_server, openmap, page, boots
414
414
  expect(delete_layer).to_be_visible()
415
415
  expect(edit_feature).to_have_count(3)
416
416
  expect(delete_feature).to_have_count(3)
417
-
418
-
419
- def test_main_toolbox_toggle_all_layers(live_server, map, page):
420
- map.settings["properties"]["onLoadPanel"] = "databrowser"
421
- map.save()
422
- data = {
423
- "type": "FeatureCollection",
424
- "features": [
425
- {
426
- "type": "Feature",
427
- "properties": {"name": "one point"},
428
- "geometry": {"type": "Point", "coordinates": [3.33, 46.92]},
429
- },
430
- ],
431
- }
432
- DataLayerFactory(map=map, data=data)
433
- data = {
434
- "type": "FeatureCollection",
435
- "features": [
436
- {
437
- "type": "Feature",
438
- "properties": {"name": "one other point"},
439
- "geometry": {"type": "Point", "coordinates": [3.34, 46.94]},
440
- },
441
- ],
442
- }
443
- DataLayerFactory(map=map, data=data)
444
- data = {
445
- "type": "FeatureCollection",
446
- "features": [
447
- {
448
- "type": "Feature",
449
- "properties": {"name": "another point"},
450
- "geometry": {"type": "Point", "coordinates": [3.35, 46.95]},
451
- },
452
- ],
453
- "_umap_options": {"displayOnLoad": False},
454
- }
455
- DataLayerFactory(map=map, data=data, settings={"displayOnLoad": False})
456
- page.goto(f"{live_server.url}{map.get_absolute_url()}#10/46.93/3.33")
457
- markers = page.locator(".leaflet-marker-icon")
458
- expect(markers).to_have_count(2)
459
- # Only one is off
460
- expect(page.locator(".datalayer.off")).to_have_count(1)
461
-
462
- # Click on button
463
- page.locator(".umap-browser [data-ref=toggle]").click()
464
- # Should have hidden the two other layers
465
- expect(page.locator(".datalayer.off")).to_have_count(3)
466
- expect(markers).to_have_count(0)
467
-
468
- # Click again
469
- page.locator(".umap-browser [data-ref=toggle]").click()
470
- # Should shown all layers
471
- expect(page.locator(".datalayer.off")).to_have_count(0)
472
- expect(markers).to_have_count(3)
473
-
474
- # Click again
475
- page.locator(".umap-browser [data-ref=toggle]").click()
476
- # Should hidden again all layers
477
- expect(page.locator(".datalayer.off")).to_have_count(3)
478
- expect(markers).to_have_count(0)
@@ -20,11 +20,11 @@ def test_caption(live_server, page, map):
20
20
  panel = page.locator(".panel.left.on")
21
21
  expect(panel).to_have_class(re.compile(".*condensed.*"))
22
22
  expect(panel.locator(".umap-caption")).to_be_visible()
23
- expect(panel.locator(".caption-item").get_by_text(basic.name)).to_be_visible()
23
+ expect(panel.locator(".datalayer-legend").get_by_text(basic.name)).to_be_visible()
24
24
  expect(
25
- panel.locator(".caption-item .off").get_by_text(non_loaded.name)
25
+ panel.locator(".datalayer-legend .off").get_by_text(non_loaded.name)
26
26
  ).to_be_visible()
27
- expect(panel.locator(".caption-item").get_by_text(hidden.name)).to_be_hidden()
27
+ expect(panel.locator(".datalayer-legend").get_by_text(hidden.name)).to_be_hidden()
28
28
 
29
29
 
30
30
  def test_caption_should_display_owner_as_author(live_server, page, map):
@@ -55,6 +55,10 @@ def test_should_honour_fromZoom(live_server, map, datalayer, page):
55
55
  expect(markers).to_be_visible()
56
56
 
57
57
 
58
+ @pytest.mark.skipif(
59
+ os.environ.get("CI", "false") == "true",
60
+ reason="Test is failing intermittently, skipping in the CI",
61
+ )
58
62
  def test_should_honour_toZoom(live_server, map, datalayer, page):
59
63
  set_options(datalayer, displayOnLoad=True, toZoom=6)
60
64
  page.goto(f"{live_server.url}{map.get_absolute_url()}#7/48.55/14.68")
@@ -107,7 +111,7 @@ def test_should_honour_color_variable(live_server, map, page):
107
111
  },
108
112
  }
109
113
  DataLayerFactory(map=map, data=data)
110
- page.goto(f"{live_server.url}{map.get_absolute_url()}#6/47.5/2.5")
114
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
111
115
  expect(page.locator(".leaflet-overlay-pane path[fill='tomato']"))
112
116
  markers = page.locator(".leaflet-marker-icon .icon_container")
113
117
  expect(markers).to_have_css("background-color", "rgb(240, 248, 255)")
@@ -86,6 +86,7 @@ def test_can_clone_datalayer(live_server, openmap, login, datalayer, page):
86
86
 
87
87
 
88
88
  def test_can_change_icon_class(live_server, openmap, page):
89
+ # Faster than doing a login
89
90
  data = {
90
91
  "type": "FeatureCollection",
91
92
  "features": [
@@ -97,7 +98,7 @@ def test_can_change_icon_class(live_server, openmap, page):
97
98
  ],
98
99
  }
99
100
  DataLayerFactory(map=openmap, data=data)
100
- page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit#6/45.3/1")
101
+ page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit")
101
102
  expect(page.locator(".umap-div-icon")).to_be_visible()
102
103
  page.get_by_role("link", name="Manage layers").click()
103
104
  expect(page.locator(".umap-circle-icon")).to_be_hidden()
@@ -23,7 +23,7 @@ def test_can_edit_name(page, live_server, tilelayer):
23
23
 
24
24
  def test_can_edit_name_on_click_on_toolbar(page, live_server, tilelayer):
25
25
  page.goto(f"{live_server.url}/en/map/new/")
26
- page.locator(".umap-main-edit-toolbox .map-name").click()
26
+ page.locator(".map-name").click()
27
27
  name_input = page.locator('.map-metadata input[name="name"]')
28
28
  expect(name_input).to_be_visible()
29
29
 
@@ -40,7 +40,7 @@ def test_can_edit_on_shift_click(live_server, openmap, page, datalayer):
40
40
 
41
41
 
42
42
  def test_marker_style_should_have_precedence(live_server, openmap, page, bootstrap):
43
- page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit#6/48.5/19")
43
+ page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit")
44
44
 
45
45
  # Change colour at layer level
46
46
  page.get_by_role("link", name="Manage layers").click()
@@ -175,7 +175,7 @@ def test_date_facet_search(live_server, page, map):
175
175
  map.save()
176
176
  DataLayerFactory(map=map, data=DATALAYER_DATA1)
177
177
  DataLayerFactory(map=map, data=DATALAYER_DATA2)
178
- page.goto(f"{live_server.url}{map.get_absolute_url()}#6/47.5/-1.5")
178
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
179
179
  markers = page.locator(".leaflet-marker-icon")
180
180
  expect(markers).to_have_count(4)
181
181
  expect(page.get_by_text("Date Filter")).to_be_visible()
@@ -196,7 +196,7 @@ def test_choice_with_empty_value(live_server, page, map):
196
196
  del data["features"][1]["properties"]["mytype"]
197
197
  DataLayerFactory(map=map, data=data)
198
198
  DataLayerFactory(map=map, data=DATALAYER_DATA2)
199
- page.goto(f"{live_server.url}{map.get_absolute_url()}#6/47.5/-1.5")
199
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
200
200
  expect(page.get_by_text("<empty value>")).to_be_visible()
201
201
  markers = page.locator(".leaflet-marker-icon")
202
202
  expect(markers).to_have_count(4)
@@ -212,7 +212,7 @@ def test_number_with_zero_value(live_server, page, map):
212
212
  data["features"][0]["properties"]["mynumber"] = 0
213
213
  DataLayerFactory(map=map, data=data)
214
214
  DataLayerFactory(map=map, data=DATALAYER_DATA2)
215
- page.goto(f"{live_server.url}{map.get_absolute_url()}#6/47.5/-1.5")
215
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
216
216
  expect(page.get_by_label("Min")).to_have_value("0")
217
217
  expect(page.get_by_label("Max")).to_have_value("14")
218
218
  page.get_by_label("Min").fill("1")
@@ -71,6 +71,10 @@ def test_umap_import_from_file(live_server, tilelayer, page):
71
71
  expect(nonloaded).to_have_count(1)
72
72
 
73
73
 
74
+ @pytest.mark.skipif(
75
+ os.environ.get("CI", "false") == "true",
76
+ reason="Test is failing intermittently, skipping in the CI",
77
+ )
74
78
  def test_umap_import_from_textarea(live_server, tilelayer, page, settings):
75
79
  settings.UMAP_ALLOW_ANONYMOUS = True
76
80
  page.goto(f"{live_server.url}/map/new/")
@@ -148,6 +148,10 @@ def test_default_view_latest_with_polygon(map, live_server, page):
148
148
  expect(layers).to_have_count(1)
149
149
 
150
150
 
151
+ @pytest.mark.skipif(
152
+ os.environ.get("CI", "false") == "true",
153
+ reason="Test is failing intermittently, skipping in the CI",
154
+ )
151
155
  def test_default_view_locate(browser, live_server, map):
152
156
  context = browser.new_context(
153
157
  geolocation={"longitude": 8.52967, "latitude": 39.16267},
@@ -106,66 +106,3 @@ def test_extended_properties_in_popup(live_server, map, page, bootstrap):
106
106
  expect(page.get_by_text("Alt: 241")).to_be_visible()
107
107
  expect(page.get_by_text("Zoom: 7")).to_be_visible()
108
108
  expect(page.get_by_text("Layer: test datalayer")).to_be_visible()
109
-
110
-
111
- def test_only_visible_markers_are_added_to_dom(live_server, map, page):
112
- data = {
113
- "type": "FeatureCollection",
114
- "features": [
115
- {
116
- "type": "Feature",
117
- "properties": {
118
- "name": "marker 1",
119
- "description": "added to dom",
120
- },
121
- "geometry": {
122
- "type": "Point",
123
- "coordinates": [14.6, 48.5],
124
- },
125
- },
126
- {
127
- "type": "Feature",
128
- "properties": {
129
- "name": "marker 2",
130
- "description": "not added to dom at load",
131
- },
132
- "geometry": {
133
- "type": "Point",
134
- "coordinates": [12.6, 44.5],
135
- },
136
- },
137
- ],
138
- }
139
- DataLayerFactory(map=map, data=data)
140
- map.settings["properties"]["showLabel"] = True
141
- map.save()
142
- page.goto(f"{live_server.url}{map.get_absolute_url()}")
143
- markers = page.locator(".leaflet-marker-icon")
144
- tooltips = page.locator(".leaflet-tooltip")
145
- expect(markers).to_have_count(1)
146
- expect(tooltips).to_have_count(1)
147
-
148
- # Zoom in/out to show the other marker
149
- page.get_by_label("Zoom out").click()
150
- expect(markers).to_have_count(2)
151
- expect(tooltips).to_have_count(2)
152
- page.get_by_label("Zoom in").click()
153
- expect(markers).to_have_count(1)
154
- expect(tooltips).to_have_count(1)
155
-
156
- # Drag map to show/hide the marker
157
- map_el = page.locator("#map")
158
- map_el.drag_to(
159
- map_el,
160
- source_position={"x": 100, "y": 600},
161
- target_position={"x": 100, "y": 200},
162
- )
163
- expect(markers).to_have_count(2)
164
- expect(tooltips).to_have_count(2)
165
- map_el.drag_to(
166
- map_el,
167
- source_position={"x": 100, "y": 600},
168
- target_position={"x": 100, "y": 200},
169
- )
170
- expect(markers).to_have_count(1)
171
- expect(tooltips).to_have_count(1)
@@ -861,22 +861,3 @@ def test_ogp_links(client, map, datalayer):
861
861
  assert f'<meta property="og:title" content="{map.name}" />' in content
862
862
  assert f'<meta property="og:description" content="{map.description}" />' in content
863
863
  assert '<meta property="og:site_name" content="uMap" />' in content
864
-
865
-
866
- def test_non_public_map_should_have_noindex_meta(client, map, datalayer):
867
- map.share_status = Map.OPEN
868
- map.save()
869
- response = client.get(map.get_absolute_url())
870
- assert response.status_code == 200
871
- assert (
872
- '<meta name="robots" content="noindex,nofollow">' in response.content.decode()
873
- )
874
-
875
-
876
- def test_demo_instance_should_have_noindex(client, map, datalayer, settings):
877
- settings.UMAP_DEMO_SITE = True
878
- response = client.get(map.get_absolute_url())
879
- assert response.status_code == 200
880
- assert (
881
- '<meta name="robots" content="noindex,nofollow">' in response.content.decode()
882
- )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: umap-project
3
- Version: 2.7.0
3
+ Version: 2.7.0b0
4
4
  Summary: Create maps with OpenStreetMap layers in a minute and embed them in your site.
5
5
  Author-email: Yohan Boniface <yb@enix.org>
6
6
  Maintainer-email: David Larlet <david@larlet.fr>
@@ -19,37 +19,33 @@ Requires-Python: >=3.10
19
19
  Requires-Dist: django-agnocomplete==2.2.0
20
20
  Requires-Dist: django-environ==0.11.2
21
21
  Requires-Dist: django-probes==1.7.0
22
- Requires-Dist: django==5.1.2
23
- Requires-Dist: pillow==11.0.0
22
+ Requires-Dist: django==5.1.1
23
+ Requires-Dist: pillow==10.4.0
24
24
  Requires-Dist: psycopg==3.2.3
25
- Requires-Dist: rcssmin==1.1.3
25
+ Requires-Dist: pydantic==2.9.2
26
+ Requires-Dist: rcssmin==1.1.2
26
27
  Requires-Dist: requests==2.32.3
27
- Requires-Dist: rjsmin==1.2.3
28
+ Requires-Dist: rjsmin==1.2.2
28
29
  Requires-Dist: social-auth-app-django==5.4.2
29
30
  Requires-Dist: social-auth-core==4.5.4
31
+ Requires-Dist: websockets==13.1
30
32
  Provides-Extra: dev
31
33
  Requires-Dist: djlint==1.35.2; extra == 'dev'
32
- Requires-Dist: hatch==1.13.0; extra == 'dev'
34
+ Requires-Dist: hatch==1.12.0; extra == 'dev'
33
35
  Requires-Dist: isort==5.13.2; extra == 'dev'
34
- Requires-Dist: mkdocs-material==9.5.42; extra == 'dev'
36
+ Requires-Dist: mkdocs-material==9.5.39; extra == 'dev'
35
37
  Requires-Dist: mkdocs-static-i18n==1.2.3; extra == 'dev'
36
38
  Requires-Dist: mkdocs==1.6.1; extra == 'dev'
37
39
  Requires-Dist: pymdown-extensions==10.11.2; extra == 'dev'
38
- Requires-Dist: ruff==0.7.0; extra == 'dev'
40
+ Requires-Dist: ruff==0.6.8; extra == 'dev'
39
41
  Requires-Dist: vermin==1.6.0; extra == 'dev'
40
42
  Provides-Extra: docker
41
43
  Requires-Dist: uwsgi==2.0.27; extra == 'docker'
42
- Provides-Extra: sync
43
- Requires-Dist: channels==4.1.0; extra == 'sync'
44
- Requires-Dist: daphne==4.1.2; extra == 'sync'
45
- Requires-Dist: pydantic==2.9.2; extra == 'sync'
46
- Requires-Dist: websockets==13.1; extra == 'sync'
47
44
  Provides-Extra: test
48
45
  Requires-Dist: factory-boy==3.3.1; extra == 'test'
49
46
  Requires-Dist: playwright>=1.39; extra == 'test'
50
47
  Requires-Dist: pytest-django==4.9.0; extra == 'test'
51
48
  Requires-Dist: pytest-playwright==0.5.2; extra == 'test'
52
- Requires-Dist: pytest-rerunfailures==14.0; extra == 'test'
53
49
  Requires-Dist: pytest-xdist<4,>=3.5.0; extra == 'test'
54
50
  Requires-Dist: pytest==8.3.3; extra == 'test'
55
51
  Description-Content-Type: text/markdown