umap-project 2.5.0__py3-none-any.whl → 2.6.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (276) hide show
  1. umap/__init__.py +1 -1
  2. umap/admin.py +6 -1
  3. umap/context_processors.py +2 -1
  4. umap/decorators.py +13 -2
  5. umap/forms.py +26 -2
  6. umap/locale/br/LC_MESSAGES/django.mo +0 -0
  7. umap/locale/br/LC_MESSAGES/django.po +252 -146
  8. umap/locale/ca/LC_MESSAGES/django.mo +0 -0
  9. umap/locale/ca/LC_MESSAGES/django.po +274 -162
  10. umap/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  11. umap/locale/cs_CZ/LC_MESSAGES/django.po +261 -150
  12. umap/locale/de/LC_MESSAGES/django.mo +0 -0
  13. umap/locale/de/LC_MESSAGES/django.po +299 -187
  14. umap/locale/el/LC_MESSAGES/django.mo +0 -0
  15. umap/locale/el/LC_MESSAGES/django.po +215 -159
  16. umap/locale/en/LC_MESSAGES/django.po +211 -155
  17. umap/locale/es/LC_MESSAGES/django.mo +0 -0
  18. umap/locale/es/LC_MESSAGES/django.po +255 -144
  19. umap/locale/eu/LC_MESSAGES/django.mo +0 -0
  20. umap/locale/eu/LC_MESSAGES/django.po +254 -198
  21. umap/locale/fa_IR/LC_MESSAGES/django.mo +0 -0
  22. umap/locale/fa_IR/LC_MESSAGES/django.po +347 -235
  23. umap/locale/fr/LC_MESSAGES/django.mo +0 -0
  24. umap/locale/fr/LC_MESSAGES/django.po +216 -160
  25. umap/locale/hu/LC_MESSAGES/django.mo +0 -0
  26. umap/locale/hu/LC_MESSAGES/django.po +215 -159
  27. umap/locale/it/LC_MESSAGES/django.mo +0 -0
  28. umap/locale/it/LC_MESSAGES/django.po +252 -146
  29. umap/locale/ms/LC_MESSAGES/django.mo +0 -0
  30. umap/locale/ms/LC_MESSAGES/django.po +252 -146
  31. umap/locale/pl/LC_MESSAGES/django.mo +0 -0
  32. umap/locale/pl/LC_MESSAGES/django.po +254 -148
  33. umap/locale/pt/LC_MESSAGES/django.mo +0 -0
  34. umap/locale/pt/LC_MESSAGES/django.po +215 -159
  35. umap/locale/sv/LC_MESSAGES/django.mo +0 -0
  36. umap/locale/sv/LC_MESSAGES/django.po +254 -143
  37. umap/locale/th_TH/LC_MESSAGES/django.mo +0 -0
  38. umap/locale/th_TH/LC_MESSAGES/django.po +125 -70
  39. umap/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  40. umap/locale/zh_TW/LC_MESSAGES/django.po +256 -145
  41. umap/migrations/0022_add_team.py +94 -0
  42. umap/models.py +45 -10
  43. umap/settings/__init__.py +2 -0
  44. umap/settings/base.py +9 -2
  45. umap/static/umap/base.css +32 -41
  46. umap/static/umap/content.css +19 -25
  47. umap/static/umap/css/icon.css +63 -37
  48. umap/static/umap/css/importers.css +1 -1
  49. umap/static/umap/css/slideshow.css +7 -5
  50. umap/static/umap/css/tableeditor.css +4 -3
  51. umap/static/umap/img/16-white.svg +1 -4
  52. umap/static/umap/img/16.svg +2 -6
  53. umap/static/umap/img/24-white.svg +4 -4
  54. umap/static/umap/img/24.svg +6 -6
  55. umap/static/umap/img/source/16-white.svg +2 -5
  56. umap/static/umap/img/source/16.svg +3 -7
  57. umap/static/umap/img/source/24-white.svg +7 -14
  58. umap/static/umap/img/source/24.svg +10 -17
  59. umap/static/umap/js/components/alerts/alert.css +20 -8
  60. umap/static/umap/js/modules/autocomplete.js +8 -12
  61. umap/static/umap/js/modules/browser.js +4 -3
  62. umap/static/umap/js/modules/caption.js +9 -11
  63. umap/static/umap/js/modules/data/features.js +993 -0
  64. umap/static/umap/js/modules/data/layer.js +1210 -0
  65. umap/static/umap/js/modules/formatter.js +12 -3
  66. umap/static/umap/js/modules/global.js +21 -5
  67. umap/static/umap/js/modules/importers/overpass.js +22 -8
  68. umap/static/umap/js/modules/permissions.js +280 -0
  69. umap/static/umap/js/{umap.icon.js → modules/rendering/icon.js} +77 -56
  70. umap/static/umap/js/modules/rendering/layers/base.js +105 -0
  71. umap/static/umap/js/modules/rendering/layers/classified.js +484 -0
  72. umap/static/umap/js/modules/rendering/layers/cluster.js +103 -0
  73. umap/static/umap/js/modules/rendering/layers/heat.js +182 -0
  74. umap/static/umap/js/modules/rendering/popup.js +99 -0
  75. umap/static/umap/js/modules/rendering/template.js +217 -0
  76. umap/static/umap/js/modules/rendering/ui.js +610 -0
  77. umap/static/umap/js/modules/rules.js +16 -3
  78. umap/static/umap/js/modules/schema.js +25 -1
  79. umap/static/umap/js/modules/share.js +66 -45
  80. umap/static/umap/js/modules/sync/updaters.js +9 -10
  81. umap/static/umap/js/modules/tableeditor.js +7 -7
  82. umap/static/umap/js/modules/ui/dialog.js +8 -4
  83. umap/static/umap/js/modules/utils.js +22 -13
  84. umap/static/umap/js/umap.controls.js +80 -146
  85. umap/static/umap/js/umap.core.js +9 -9
  86. umap/static/umap/js/umap.forms.js +41 -17
  87. umap/static/umap/js/umap.js +72 -65
  88. umap/static/umap/locale/am_ET.js +8 -2
  89. umap/static/umap/locale/am_ET.json +8 -2
  90. umap/static/umap/locale/ar.js +8 -2
  91. umap/static/umap/locale/ar.json +8 -2
  92. umap/static/umap/locale/ast.js +8 -2
  93. umap/static/umap/locale/ast.json +8 -2
  94. umap/static/umap/locale/bg.js +8 -2
  95. umap/static/umap/locale/bg.json +8 -2
  96. umap/static/umap/locale/br.js +42 -36
  97. umap/static/umap/locale/br.json +42 -36
  98. umap/static/umap/locale/ca.js +67 -61
  99. umap/static/umap/locale/ca.json +67 -61
  100. umap/static/umap/locale/cs_CZ.js +8 -2
  101. umap/static/umap/locale/cs_CZ.json +8 -2
  102. umap/static/umap/locale/da.js +8 -2
  103. umap/static/umap/locale/da.json +8 -2
  104. umap/static/umap/locale/de.js +143 -137
  105. umap/static/umap/locale/de.json +143 -137
  106. umap/static/umap/locale/el.js +54 -48
  107. umap/static/umap/locale/el.json +54 -48
  108. umap/static/umap/locale/en.js +10 -2
  109. umap/static/umap/locale/en.json +10 -2
  110. umap/static/umap/locale/en_US.json +8 -2
  111. umap/static/umap/locale/es.js +8 -2
  112. umap/static/umap/locale/es.json +8 -2
  113. umap/static/umap/locale/et.js +8 -2
  114. umap/static/umap/locale/et.json +8 -2
  115. umap/static/umap/locale/eu.js +346 -338
  116. umap/static/umap/locale/eu.json +346 -338
  117. umap/static/umap/locale/fa_IR.js +415 -407
  118. umap/static/umap/locale/fa_IR.json +415 -407
  119. umap/static/umap/locale/fi.js +8 -2
  120. umap/static/umap/locale/fi.json +8 -2
  121. umap/static/umap/locale/fr.js +11 -3
  122. umap/static/umap/locale/fr.json +11 -3
  123. umap/static/umap/locale/gl.js +8 -2
  124. umap/static/umap/locale/gl.json +8 -2
  125. umap/static/umap/locale/he.js +8 -2
  126. umap/static/umap/locale/he.json +8 -2
  127. umap/static/umap/locale/hr.js +8 -2
  128. umap/static/umap/locale/hr.json +8 -2
  129. umap/static/umap/locale/hu.js +31 -23
  130. umap/static/umap/locale/hu.json +31 -23
  131. umap/static/umap/locale/id.js +8 -2
  132. umap/static/umap/locale/id.json +8 -2
  133. umap/static/umap/locale/is.js +8 -2
  134. umap/static/umap/locale/is.json +8 -2
  135. umap/static/umap/locale/it.js +8 -2
  136. umap/static/umap/locale/it.json +8 -2
  137. umap/static/umap/locale/ja.js +8 -2
  138. umap/static/umap/locale/ja.json +8 -2
  139. umap/static/umap/locale/ko.js +8 -2
  140. umap/static/umap/locale/ko.json +8 -2
  141. umap/static/umap/locale/lt.js +8 -2
  142. umap/static/umap/locale/lt.json +8 -2
  143. umap/static/umap/locale/ms.js +8 -2
  144. umap/static/umap/locale/ms.json +8 -2
  145. umap/static/umap/locale/nl.js +8 -2
  146. umap/static/umap/locale/nl.json +8 -2
  147. umap/static/umap/locale/no.js +8 -2
  148. umap/static/umap/locale/no.json +8 -2
  149. umap/static/umap/locale/pl.js +54 -48
  150. umap/static/umap/locale/pl.json +54 -48
  151. umap/static/umap/locale/pl_PL.json +8 -2
  152. umap/static/umap/locale/pt.js +24 -18
  153. umap/static/umap/locale/pt.json +24 -18
  154. umap/static/umap/locale/pt_BR.js +8 -2
  155. umap/static/umap/locale/pt_BR.json +8 -2
  156. umap/static/umap/locale/pt_PT.js +214 -208
  157. umap/static/umap/locale/pt_PT.json +214 -208
  158. umap/static/umap/locale/ro.js +8 -2
  159. umap/static/umap/locale/ro.json +8 -2
  160. umap/static/umap/locale/ru.js +8 -2
  161. umap/static/umap/locale/ru.json +8 -2
  162. umap/static/umap/locale/sk_SK.js +8 -2
  163. umap/static/umap/locale/sk_SK.json +8 -2
  164. umap/static/umap/locale/sl.js +8 -2
  165. umap/static/umap/locale/sl.json +8 -2
  166. umap/static/umap/locale/sr.js +8 -2
  167. umap/static/umap/locale/sr.json +8 -2
  168. umap/static/umap/locale/sv.js +8 -2
  169. umap/static/umap/locale/sv.json +8 -2
  170. umap/static/umap/locale/th_TH.js +33 -27
  171. umap/static/umap/locale/th_TH.json +33 -27
  172. umap/static/umap/locale/tr.js +8 -2
  173. umap/static/umap/locale/tr.json +8 -2
  174. umap/static/umap/locale/uk_UA.js +8 -2
  175. umap/static/umap/locale/uk_UA.json +8 -2
  176. umap/static/umap/locale/vi.js +8 -2
  177. umap/static/umap/locale/vi.json +8 -2
  178. umap/static/umap/locale/vi_VN.json +8 -2
  179. umap/static/umap/locale/zh.js +8 -2
  180. umap/static/umap/locale/zh.json +8 -2
  181. umap/static/umap/locale/zh_CN.json +8 -2
  182. umap/static/umap/locale/zh_TW.Big5.json +8 -2
  183. umap/static/umap/locale/zh_TW.js +102 -96
  184. umap/static/umap/locale/zh_TW.json +102 -96
  185. umap/static/umap/map.css +111 -108
  186. umap/static/umap/nav.css +19 -10
  187. umap/static/umap/unittests/utils.js +230 -107
  188. umap/static/umap/vars.css +1 -0
  189. umap/static/umap/vendors/csv2geojson/csv2geojson.js +62 -40
  190. umap/static/umap/vendors/editable/Leaflet.Editable.js +2079 -1937
  191. umap/storage.py +4 -3
  192. umap/templates/404.html +5 -1
  193. umap/templates/500.html +3 -1
  194. umap/templates/auth/user_detail.html +8 -2
  195. umap/templates/auth/user_form.html +19 -10
  196. umap/templates/auth/user_stars.html +8 -2
  197. umap/templates/base.html +1 -0
  198. umap/templates/registration/login.html +18 -3
  199. umap/templates/umap/about.html +1 -0
  200. umap/templates/umap/about_summary.html +22 -7
  201. umap/templates/umap/components/alerts/alert.html +42 -21
  202. umap/templates/umap/content.html +2 -0
  203. umap/templates/umap/content_footer.html +7 -3
  204. umap/templates/umap/css.html +1 -0
  205. umap/templates/umap/dashboard_menu.html +15 -0
  206. umap/templates/umap/home.html +14 -4
  207. umap/templates/umap/js.html +4 -9
  208. umap/templates/umap/login_popup_end.html +10 -4
  209. umap/templates/umap/map_detail.html +8 -2
  210. umap/templates/umap/map_fragment.html +3 -1
  211. umap/templates/umap/map_init.html +2 -1
  212. umap/templates/umap/map_list.html +6 -3
  213. umap/templates/umap/map_table.html +36 -12
  214. umap/templates/umap/messages.html +0 -1
  215. umap/templates/umap/navigation.html +2 -1
  216. umap/templates/umap/password_change.html +5 -1
  217. umap/templates/umap/password_change_done.html +8 -2
  218. umap/templates/umap/search.html +8 -2
  219. umap/templates/umap/search_bar.html +1 -0
  220. umap/templates/umap/team_confirm_delete.html +19 -0
  221. umap/templates/umap/team_detail.html +27 -0
  222. umap/templates/umap/team_form.html +60 -0
  223. umap/templates/umap/user_dashboard.html +7 -9
  224. umap/templates/umap/user_teams.html +51 -0
  225. umap/tests/base.py +8 -1
  226. umap/tests/conftest.py +6 -0
  227. umap/tests/fixtures/test_circles_layer.geojson +219 -0
  228. umap/tests/fixtures/test_upload_georss.xml +20 -0
  229. umap/tests/integration/conftest.py +18 -4
  230. umap/tests/integration/helpers.py +12 -0
  231. umap/tests/integration/test_anonymous_owned_map.py +23 -0
  232. umap/tests/integration/test_basics.py +29 -0
  233. umap/tests/integration/test_browser.py +20 -0
  234. umap/tests/integration/test_caption.py +20 -0
  235. umap/tests/integration/test_circles_layer.py +69 -0
  236. umap/tests/integration/test_conditional_rules.py +102 -17
  237. umap/tests/integration/test_draw_polygon.py +138 -13
  238. umap/tests/integration/test_draw_polyline.py +8 -18
  239. umap/tests/integration/test_edit_datalayer.py +3 -3
  240. umap/tests/integration/test_import.py +124 -5
  241. umap/tests/integration/test_owned_map.py +21 -13
  242. umap/tests/integration/test_querystring.py +7 -0
  243. umap/tests/integration/test_team.py +47 -0
  244. umap/tests/integration/test_tilelayer.py +19 -2
  245. umap/tests/integration/test_view_marker.py +28 -1
  246. umap/tests/integration/test_websocket_sync.py +5 -5
  247. umap/tests/test_datalayer.py +32 -7
  248. umap/tests/test_datalayer_views.py +1 -1
  249. umap/tests/test_map.py +30 -4
  250. umap/tests/test_map_views.py +2 -2
  251. umap/tests/test_statics.py +40 -0
  252. umap/tests/test_team_views.py +131 -0
  253. umap/tests/test_views.py +15 -1
  254. umap/urls.py +23 -13
  255. umap/views.py +116 -10
  256. {umap_project-2.5.0.dist-info → umap_project-2.6.0.dist-info}/METADATA +14 -14
  257. {umap_project-2.5.0.dist-info → umap_project-2.6.0.dist-info}/RECORD +260 -253
  258. umap/static/umap/js/umap.datalayer.permissions.js +0 -70
  259. umap/static/umap/js/umap.features.js +0 -1290
  260. umap/static/umap/js/umap.layer.js +0 -1837
  261. umap/static/umap/js/umap.permissions.js +0 -208
  262. umap/static/umap/js/umap.popup.js +0 -341
  263. umap/static/umap/test/TableEditor.js +0 -104
  264. umap/static/umap/vendors/leaflet/leaflet-src.js +0 -14512
  265. umap/static/umap/vendors/leaflet/leaflet-src.js.map +0 -1
  266. umap/static/umap/vendors/leaflet/leaflet.js +0 -6
  267. umap/static/umap/vendors/leaflet/leaflet.js.map +0 -1
  268. umap/static/umap/vendors/markercluster/WhereAreTheJavascriptFiles.txt +0 -5
  269. umap/static/umap/vendors/markercluster/leaflet.markercluster-src.js +0 -2718
  270. umap/static/umap/vendors/markercluster/leaflet.markercluster-src.js.map +0 -1
  271. umap/static/umap/vendors/toolbar/leaflet.toolbar-src.css +0 -117
  272. umap/static/umap/vendors/toolbar/leaflet.toolbar-src.js +0 -365
  273. umap/tests/integration/test_statics.py +0 -47
  274. {umap_project-2.5.0.dist-info → umap_project-2.6.0.dist-info}/WHEEL +0 -0
  275. {umap_project-2.5.0.dist-info → umap_project-2.6.0.dist-info}/entry_points.txt +0 -0
  276. {umap_project-2.5.0.dist-info → umap_project-2.6.0.dist-info}/licenses/LICENSE +0 -0
umap/storage.py CHANGED
@@ -8,6 +8,7 @@ from rjsmin import jsmin
8
8
 
9
9
  class UmapManifestStaticFilesStorage(ManifestStaticFilesStorage):
10
10
  support_js_module_import_aggregation = True
11
+ max_post_process_passes = 15
11
12
 
12
13
  # We remove `;` at the end of all regexps to match our biome config.
13
14
  _js_module_import_aggregation_patterns = (
@@ -32,12 +33,12 @@ class UmapManifestStaticFilesStorage(ManifestStaticFilesStorage):
32
33
  'import"%(url)s"\n',
33
34
  ),
34
35
  (
35
- r"""(?P<matched>import\(["'](?P<url>.*?)["']\))\.then""",
36
- """import("%(url)s")""",
36
+ r"""(?P<matched>import\(["'](?P<url>.*?)["']\)\.then)""",
37
+ """import("%(url)s").then""",
37
38
  ),
38
39
  (
39
40
  r"""(?P<matched>await import\(["'](?P<url>.*?)["']\))""",
40
- """import("%(url)s")""",
41
+ """await import("%(url)s")""",
41
42
  ),
42
43
  ),
43
44
  )
umap/templates/404.html CHANGED
@@ -1,5 +1,7 @@
1
1
  {% extends "base.html" %}
2
+
2
3
  {% load i18n static %}
4
+
3
5
  {% block content %}
4
6
  <div class="content404">
5
7
  <a href="{% url "home" %}"
@@ -9,7 +11,9 @@
9
11
  <img alt="0" width="128px" height="128px" src="{% static "umap/img/logo.svg" %}">
10
12
  4
11
13
  </h1>
12
- <h2>Not Found</h2>
14
+ <h2>
15
+ Not Found
16
+ </h2>
13
17
  </a>
14
18
  </div>
15
19
  {% endblock content %}
umap/templates/500.html CHANGED
@@ -22,7 +22,9 @@
22
22
  width="128px"
23
23
  height="128px"
24
24
  src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTI4IgogICBoZWlnaHQ9IjEyOCIKICAgaWQ9InN2ZzIiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC40IHI5OTM5IgogICBzb2RpcG9kaTpkb2NuYW1lPSJsb2dvLnN2ZyIKICAgaW5rc2NhcGU6ZXhwb3J0LWZpbGVuYW1lPSIvaG9tZS95Ym9uL0NvZGUvcHJvamVjdHMvdW1hcC91bWFwL3N0YXRpYy91bWFwL2ltZy9sb2dvX2ZpbGlncmVlLnBuZyIKICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjExNS4yIgogICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTE1LjIiPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSI0IgogICAgIGlua3NjYXBlOmN4PSI1OC40MDU5NTIiCiAgICAgaW5rc2NhcGU6Y3k9IjYwLjAxMTEyMiIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtcGFnZT0iZmFsc2UiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxMzY2IgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9Ijc0NCIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMjQiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQyOTg1IgogICAgICAgZW1wc3BhY2luZz0iNCIKICAgICAgIHZpc2libGU9InRydWUiCiAgICAgICBlbmFibGVkPSJ0cnVlIgogICAgICAgc25hcHZpc2libGVncmlkbGluZXNvbmx5PSJ0cnVlIgogICAgICAgZW1wY29sb3I9IiMwMDAwM2IiCiAgICAgICBlbXBvcGFjaXR5PSIwLjI1MDk4MDM5IiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTciPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlIC8+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTkyNC4zNjIxOCkiPgogICAgPGcKICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZTtkaXNwbGF5OmJsb2NrIgogICAgICAgaWQ9ImxheWVyNCIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMDg3OTg0MDUsMCwwLDAuMDg1OTUyMTIsLTExMS44MDEzNywxMDIzLjI4NzkpIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LWZpbGVuYW1lPSIvaG9tZS95Ym9uL1dvcmsvb3NtdG91Y2g2NC5wbmciCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMjguNzk5OTk5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjI4Ljc5OTk5OSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMzIzZTU2O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0iTSAzNi41MzEyNSA2LjE4NzUgQyAxNC45MzEzMTUgMTYuNDY3NjY5IDAgMzguNDg1OTA4IDAgNjQgQyAwIDk5LjM0NjIyNCAyOC42NTM3NzYgMTI4IDY0IDEyOCBDIDE0LjUzMTY5NyA4MS44Mjk1ODQgMy4xNDE4OTY1IDI0Ljc5MTUyIDM2LjUzMTI1IDYuMTg3NSB6IE0gNjQgMTI4IEMgOTkuMzQ2MjI0IDEyOCAxMjggOTkuMzQ2MjI0IDEyOCA2NCBDIDEyOCAzOC40ODU5MDggMTEzLjA2ODY4IDE2LjQ2NzY2OSA5MS40Njg3NSA2LjE4NzUgQyAxMjQuODU4MSAyNC43OTE1MiAxMTMuNDY4MyA4MS44Mjk1ODQgNjQgMTI4IHogIgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCw5MjQuMzYyMTgpIgogICAgICAgaWQ9InBhdGgyOTg3IiAvPgogICAgPGcKICAgICAgIGlkPSJnNDkxMiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDIuNTYsMCwwLDIuNTYsLTE4MS4xMiwtMTM2Ny43NjUpIgogICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2U6bm9uZSIgLz4KICAgIDxwYXRoCiAgICAgICBzb2RpcG9kaTp0eXBlPSJhcmMiCiAgICAgICBzdHlsZT0iZmlsbDojMzIzZTU2O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgaWQ9InBhdGg1MjYzIgogICAgICAgc29kaXBvZGk6Y3g9IjcwIgogICAgICAgc29kaXBvZGk6Y3k9IjE4IgogICAgICAgc29kaXBvZGk6cng9IjE4IgogICAgICAgc29kaXBvZGk6cnk9IjE4IgogICAgICAgZD0iTSA4OCwxOCBDIDg4LDI3Ljk0MTEyNSA3OS45NDExMjUsMzYgNzAsMzYgNjAuMDU4ODc1LDM2IDUyLDI3Ljk0MTEyNSA1MiwxOCA1Miw4LjA1ODg3NDUgNjAuMDU4ODc1LDAgNzAsMCA3OS45NDExMjUsMCA4OCw4LjA1ODg3NDUgODgsMTggeiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMzE0MjY5NywwLDAsMS4zMTQyNjk3LC0yNy45OTg4NzgsOTM0LjUyODU1KSIgLz4KICA8L2c+Cjwvc3ZnPgo=" />
25
- <h1>Oops, Server error…</h1>
25
+ <h1>
26
+ Oops, Server error…
27
+ </h1>
26
28
  </div>
27
29
  </body>
28
30
  </html>
@@ -1,15 +1,21 @@
1
1
  {% extends "umap/content.html" %}
2
+
2
3
  {% load i18n %}
4
+
3
5
  {% block maincontent %}
4
6
  <div class="col wide">
5
- <h2 class="section">{% blocktrans %}Browse {{ current_user }}'s maps{% endblocktrans %}</h2>
7
+ <h2 class="section">
8
+ {% blocktrans %}Browse {{ current_user }}'s maps{% endblocktrans %}
9
+ </h2>
6
10
  </div>
7
11
  <div class="wrapper">
8
12
  <div class="map_list row">
9
13
  {% if maps %}
10
14
  {% include "umap/map_list.html" %}
11
15
  {% else %}
12
- <div>{% blocktrans %}{{ current_user }} has no maps.{% endblocktrans %}</div>
16
+ <div>
17
+ {% blocktrans %}{{ current_user }} has no maps.{% endblocktrans %}
18
+ </div>
13
19
  {% endif %}
14
20
  </div>
15
21
  </div>
@@ -1,17 +1,18 @@
1
1
  {% extends "umap/content.html" %}
2
+
2
3
  {% load i18n %}
4
+
3
5
  {% block maincontent %}
4
- <div class="row">
5
- <h2 class="section tabs">
6
- <a href="{% url "user_dashboard" %}">{% trans "My Maps" %}</a>
7
- <a class="selected" href="{% url 'user_profile' %}">{% trans "My Profile" %}</a>
8
- </h2>
9
- </div>
6
+ {% include "umap/dashboard_menu.html" with selected="profile" %}
10
7
  <div class="wrapper">
11
8
  <div class="row">
12
9
  {% if form.non_field_errors %}
13
10
  <ul class="form-errors">
14
- {% for error in form.non_field_errors %}<li>{{ error }}</li>{% endfor %}
11
+ {% for error in form.non_field_errors %}
12
+ <li>
13
+ {{ error }}
14
+ </li>
15
+ {% endfor %}
15
16
  </ul>
16
17
  {% endif %}
17
18
  <form id="user_form" method="post">
@@ -22,13 +23,21 @@
22
23
  </div>
23
24
  {% if backends.backends|length %}
24
25
  <div class="row">
25
- <h3>{% trans "Your current providers" %}</h3>
26
+ <h3>
27
+ {% trans "Your current providers" %}
28
+ </h3>
26
29
  <ul>
27
- {% for name in providers %}<li>{{ name|title }}</li>{% endfor %}
30
+ {% for name in providers %}
31
+ <li>
32
+ {{ name|title }}
33
+ </li>
34
+ {% endfor %}
28
35
  </ul>
29
36
  </div>
30
37
  <div class="row">
31
- <h3>{% trans "Connect to another provider" %}</h3>
38
+ <h3>
39
+ {% trans "Connect to another provider" %}
40
+ </h3>
32
41
  <p>
33
42
  {% blocktrans %}It's a good habit to connect your account to more than one provider, in case one provider becomes unavailable, temporarily or even permanently.{% endblocktrans %}
34
43
  </p>
@@ -1,15 +1,21 @@
1
1
  {% extends "umap/content.html" %}
2
+
2
3
  {% load i18n %}
4
+
3
5
  {% block maincontent %}
4
6
  <div class="col wide">
5
- <h2 class="section">{% blocktrans %}Browse {{ current_user }}'s starred maps{% endblocktrans %}</h2>
7
+ <h2 class="section">
8
+ {% blocktrans %}Browse {{ current_user }}'s starred maps{% endblocktrans %}
9
+ </h2>
6
10
  </div>
7
11
  <div class="wrapper">
8
12
  <div class="map_list row">
9
13
  {% if maps %}
10
14
  {% include "umap/map_list.html" %}
11
15
  {% else %}
12
- <div>{% blocktrans %}{{ current_user }} has no starred maps yet.{% endblocktrans %}</div>
16
+ <div>
17
+ {% blocktrans %}{{ current_user }} has no starred maps yet.{% endblocktrans %}
18
+ </div>
13
19
  {% endif %}
14
20
  </div>
15
21
  </div>
umap/templates/base.html CHANGED
@@ -1,4 +1,5 @@
1
1
  {% load umap_tags i18n static %}
2
+
2
3
  <!DOCTYPE html>
3
4
  <html {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
4
5
  <head>
@@ -1,5 +1,12 @@
1
1
  {% extends "base.html" %}
2
+
3
+ {% load i18n %}
4
+
5
+ {% block head_title %}
6
+ {% trans "Login" %}
7
+ {% endblock head_title %}
2
8
  {% load umap_tags i18n %}
9
+
3
10
  {% block extra_head %}
4
11
  {% umap_css %}
5
12
  {{ block.super }}
@@ -13,11 +20,17 @@
13
20
  {% include "umap/branding.html" %}
14
21
  </header>
15
22
  {% if ENABLE_ACCOUNT_LOGIN %}
16
- <h2>{% trans "Please log in with your account" %}</h2>
23
+ <h2>
24
+ {% trans "Please log in with your account" %}
25
+ </h2>
17
26
  <div>
18
27
  {% if form.non_field_errors %}
19
28
  <ul class="form-errors">
20
- {% for error in form.non_field_errors %}<li>{{ error }}</li>{% endfor %}
29
+ {% for error in form.non_field_errors %}
30
+ <li>
31
+ {{ error }}
32
+ </li>
33
+ {% endfor %}
21
34
  </ul>
22
35
  {% endif %}
23
36
  <form id="login_form" action="{% url "login" %}" method="post">
@@ -34,7 +47,9 @@
34
47
  </div>
35
48
  {% endif %}
36
49
  {% if backends.backends|length %}
37
- <h2>{% trans "Please choose a provider" %}</h2>
50
+ <h2>
51
+ {% trans "Please choose a provider" %}
52
+ </h2>
38
53
  <div>
39
54
  <ul class="login-grid block-grid">
40
55
  {% for name in backends.backends %}
@@ -1,4 +1,5 @@
1
1
  {% extends "umap/content.html" %}
2
+
2
3
  {% block maincontent %}
3
4
  {% include "umap/about_summary.html" %}
4
5
  {% endblock maincontent %}
@@ -1,4 +1,5 @@
1
1
  {% load i18n static %}
2
+
2
3
  <div class="wrapper about_summary highlights">
3
4
  <div class="row">
4
5
  <div class="col quarter mwide">
@@ -18,13 +19,27 @@
18
19
  width="128px"
19
20
  height="128px" />
20
21
  <ul>
21
- <li>{% trans "Choose the layers of your map" %}</li>
22
- <li>{% trans "Add POIs: markers, lines, polygons..." %}</li>
23
- <li>{% trans "Manage POIs colours and icons" %}</li>
24
- <li>{% trans "Manage map options: display a minimap, locate user on load…" %}</li>
25
- <li>{% trans "Batch import geostructured data (geojson, gpx, kml, osm...)" %}</li>
26
- <li>{% trans "Choose the license for your data" %}</li>
27
- <li>{% trans "Embed and share your map" %}</li>
22
+ <li>
23
+ {% trans "Choose the layers of your map" %}
24
+ </li>
25
+ <li>
26
+ {% trans "Add POIs: markers, lines, polygons..." %}
27
+ </li>
28
+ <li>
29
+ {% trans "Manage POIs colours and icons" %}
30
+ </li>
31
+ <li>
32
+ {% trans "Manage map options: display a minimap, locate user on load…" %}
33
+ </li>
34
+ <li>
35
+ {% trans "Batch import geostructured data (geojson, gpx, kml, osm...)" %}
36
+ </li>
37
+ <li>
38
+ {% trans "Choose the license for your data" %}
39
+ </li>
40
+ <li>
41
+ {% trans "Embed and share your map" %}
42
+ </li>
28
43
  </ul>
29
44
  </div>
30
45
  <div class="col quarter mwide">
@@ -1,33 +1,39 @@
1
1
  {% load i18n static %}
2
2
 
3
3
  <style type="text/css">
4
- @import "{% static 'umap/js/components/alerts/alert.css' %}";
4
+ @import "{% static 'umap/js/components/alerts/alert.css' %}";
5
5
  </style>
6
-
7
6
  <template id="umap-alert-template">
8
7
  <div role="dialog" class="dark window umap-alert">
9
8
  <div>
10
- <p role="alert"></p>
9
+ <p role="alert">
10
+ </p>
11
11
  </div>
12
12
  <ul class="buttons">
13
13
  <li>
14
- <button class="icon icon-16 icon-close" aria-label="{% translate "Close" %}" data-close></button>
14
+ <button class="icon icon-16 icon-close"
15
+ aria-label="{% translate "Close" %}"
16
+ data-close>
17
+ </button>
15
18
  </li>
16
19
  </ul>
17
20
  </div>
18
21
  </template>
19
-
20
22
  <umap-alert></umap-alert>
21
-
22
23
  <template id="umap-alert-creation-template">
23
24
  <div role="dialog" class="dark window umap-alert">
24
25
  <div>
25
- <h3 role="alert"></h3>
26
+ <h3 role="alert">
27
+ </h3>
26
28
  {% url "login" as login_url %}
27
- <p><em>{% blocktranslate %}Pro-tip: to easily find back your maps, <a href="{{ login_url }}" target="_blank">create an account</a> or <a href="{{ login_url }}" target="_blank">log in</a>.{% endblocktranslate %}</em></p>
29
+ <p>
30
+ <em>{% blocktranslate %}Pro-tip: to easily find back your maps, <a href="{{ login_url }}" target="_blank">create an account</a> or <a href="{{ login_url }}" target="_blank">log in</a>.{% endblocktranslate %}</em>
31
+ </p>
28
32
  <div id="link-wrapper">
29
33
  <form>
30
- <label for="url">{% translate "Here is your secret link to edit the map, please keep it safe:" %}</label>
34
+ <label for="url">
35
+ {% translate "Here is your secret link to edit the map, please keep it safe:" %}
36
+ </label>
31
37
  <fieldset role="group">
32
38
  <input type="url" name="url" id="url">
33
39
  <input type="button" value="{% translate "Copy link" %}">
@@ -36,46 +42,61 @@
36
42
  </div>
37
43
  <div id="form-wrapper" hidden>
38
44
  <form>
39
- <label for="email">{% translate "Enter your email address to receive the secret link:" %}</label>
45
+ <label for="email">
46
+ {% translate "Enter your email address to receive the secret link:" %}
47
+ </label>
40
48
  <fieldset role="group">
41
- <input type="email" name="email" id="email" placeholder="{% translate "Email" %}" required>
42
- <input type="submit" value="{% translate "Send me the link" %}" class="umap-action">
49
+ <input type="email"
50
+ name="email"
51
+ id="email"
52
+ placeholder="{% translate "Email" %}"
53
+ required>
54
+ <input type="submit"
55
+ value="{% translate "Send me the link" %}"
56
+ class="umap-action">
43
57
  </fieldset>
44
58
  </form>
45
59
  </div>
46
60
  </div>
47
61
  <ul class="buttons">
48
62
  <li>
49
- <button class="icon icon-16 icon-close" aria-label="{% translate "Close" %}" data-close></button>
63
+ <button class="icon icon-16 icon-close"
64
+ aria-label="{% translate "Close" %}"
65
+ data-close>
66
+ </button>
50
67
  </li>
51
68
  </ul>
52
69
  </div>
53
70
  </template>
54
-
55
71
  <umap-alert-creation></umap-alert-creation>
56
-
57
72
  <template id="umap-alert-conflict-template">
58
73
  <div role="dialog" class="dark window umap-alert">
59
74
  <div>
60
- <p role="alert"></p>
75
+ <p role="alert">
76
+ </p>
61
77
  <div id="conflict-wrapper">
62
78
  <form>
63
79
  <a href="#" onclick="document.url" target="_blank">{% translate "See their edits in another tab" %}</a>
64
- <input id="your-changes" type="submit" value="{% translate "Keep your changes and loose theirs" %}">
65
- <input id="their-changes" type="submit" value="{% translate "Keep their changes and loose yours" %}">
80
+ <input id="your-changes"
81
+ type="submit"
82
+ value="{% translate "Keep your changes and loose theirs" %}">
83
+ <input id="their-changes"
84
+ type="submit"
85
+ value="{% translate "Keep their changes and loose yours" %}">
66
86
  </form>
67
87
  </div>
68
88
  </div>
69
89
  <ul class="buttons">
70
90
  <li>
71
- <button class="icon icon-16 icon-close" aria-label="{% translate "Close" %}" data-close></button>
91
+ <button class="icon icon-16 icon-close"
92
+ aria-label="{% translate "Close" %}"
93
+ data-close>
94
+ </button>
72
95
  </li>
73
96
  </ul>
74
97
  </div>
75
98
  </template>
76
-
77
99
  <umap-alert-conflict></umap-alert-conflict>
78
-
79
100
  <script type="module">
80
101
  import { register } from '{% static 'umap/js/components/base.js' %}'
81
102
  import {
@@ -1,5 +1,7 @@
1
1
  {% extends "base.html" %}
2
+
2
3
  {% load umap_tags i18n %}
4
+
3
5
  {% block body_class %}
4
6
  content
5
7
  {% endblock body_class %}
@@ -1,8 +1,12 @@
1
1
  {% load i18n %}
2
+
2
3
  <footer>
3
4
  <a href="https://wiki.openstreetmap.org/wiki/UMap" class="branding">uMap</a>
4
- an OpenStreetMap project
5
- (version <a href="https://umap-project.readthedocs.io/en/master/changelog/">{{ UMAP_VERSION }}</a>)
5
+ <span>{% trans "An OpenStreetMap project" %}
6
+ ({% trans "version" %} <a href="https://docs.umap-project.org/en/stable/changelog/">{{ UMAP_VERSION }}</a>)</span>
7
+ {% if UMAP_HOST_INFOS.url and UMAP_HOST_INFOS.name %}<span>{% trans "Hosted by" %} <a href="{{ UMAP_HOST_INFOS.url }}">{{ UMAP_HOST_INFOS.name }}</a></span>{% endif %}
8
+ {% if UMAP_HOST_INFOS.email %}<a href="mailto:{{ UMAP_HOST_INFOS.email }}">{% trans "Contact" %}</a>{% endif %}
9
+ {% if UMAP_HELP_URL %}<a href="{{ UMAP_HELP_URL }}">{% trans "Help" %}</a>{% endif %}
6
10
  {% get_language_info_list for LANGUAGES as languages %}
7
11
  <form action="{% url "set_language" %}" method="post" class="i18n_switch">
8
12
  {% csrf_token %}
@@ -10,7 +14,7 @@
10
14
  {% for language in languages %}
11
15
  <option value="{{ language.code }}"
12
16
  {% if language.code == LANGUAGE_CODE %}selected="selected"{% endif %}>
13
- {{ language.name_local }}
17
+ {{ language.name_local }} ({{ language.code }})
14
18
  </option>
15
19
  {% endfor %}
16
20
  </select>
@@ -1,4 +1,5 @@
1
1
  {% load static %}
2
+
2
3
  <link rel="stylesheet"
3
4
  href="{% static 'umap/vendors/leaflet/leaflet.css' %}" />
4
5
  <link rel="stylesheet"
@@ -0,0 +1,15 @@
1
+ {% load i18n %}
2
+
3
+ <div class="row">
4
+ <h2 class="section tabs">
5
+ {% if selected == "maps" %}
6
+ <a class="selected" href="{% url 'user_dashboard' %}">{% blocktranslate with count=maps.paginator.count %}My Maps ({{ count }}){% endblocktranslate %}</a>
7
+ {% else %}
8
+ <a href="{% url 'user_dashboard' %}">{% trans "My Maps" %}</a>
9
+ {% endif %}
10
+ <a {% if selected == "profile" %}class="selected"{% endif %}
11
+ href="{% url 'user_profile' %}">{% trans "My profile" %}</a>
12
+ <a {% if selected == "teams" %}class="selected"{% endif %}
13
+ href="{% url 'user_teams' %}">{% trans "My teams" %}</a>
14
+ </h2>
15
+ </div>
@@ -1,5 +1,7 @@
1
1
  {% extends "umap/content.html" %}
2
+
2
3
  {% load umap_tags i18n %}
4
+
3
5
  {% block messages %}
4
6
  {# We don't want maps in the list to display errors. #}
5
7
  {% endblock messages %}
@@ -8,14 +10,22 @@
8
10
  {% include "umap/about_summary.html" %}
9
11
  {% if showcase_map %}
10
12
  <div class="wrapper showcase-map">
11
- <h2 class="section">{% blocktrans %}Map of the uMaps{% endblocktrans %}</h2>
12
- <div class="row">{% map_fragment showcase_map zoomControl=1 %}</div>
13
+ <h2 class="section">
14
+ {% blocktrans %}Map of the uMaps{% endblocktrans %}
15
+ </h2>
16
+ <div class="row">
17
+ {% map_fragment showcase_map zoomControl=1 %}
18
+ </div>
13
19
  </div>
14
20
  {% endif %}
15
21
  <div class="wrapper">
16
22
  {% if maps %}
17
- <h2 class="section">{% blocktrans %}Get inspired, browse maps{% endblocktrans %}</h2>
18
- <div class="map_list row">{% include "umap/map_list.html" %}</div>
23
+ <h2 class="section">
24
+ {% blocktrans %}Get inspired, browse maps{% endblocktrans %}
25
+ </h2>
26
+ <div class="map_list row">
27
+ {% include "umap/map_list.html" %}
28
+ </div>
19
29
  {% endif %}
20
30
  </div>
21
31
  {% endblock maincontent %}
@@ -1,10 +1,14 @@
1
1
  {% load static %}
2
+
2
3
  <script type="module"
3
4
  src="{% static 'umap/vendors/leaflet/leaflet-src.esm.js' %}"
4
5
  defer></script>
5
6
  <script type="module"
6
7
  src="{% static 'umap/js/modules/leaflet-configure.js' %}"
7
8
  defer></script>
9
+ <script src="{% static 'umap/vendors/markercluster/leaflet.markercluster.js' %}"
10
+ defer></script>
11
+ <script src="{% static 'umap/vendors/heat/leaflet-heat.js' %}" defer></script>
8
12
  {% if locale %}
9
13
  {% with "umap/locale/"|add:locale|add:".js" as path %}
10
14
  <script src="{% static path %}" defer></script>
@@ -21,14 +25,11 @@
21
25
  <script src="{% static 'umap/vendors/csv2geojson/csv2geojson.js' %}" defer></script>
22
26
  <script src="{% static 'umap/vendors/osmtogeojson/osmtogeojson.js' %}" defer></script>
23
27
  <script src="{% static 'umap/vendors/loading/Control.Loading.js' %}" defer></script>
24
- <script src="{% static 'umap/vendors/markercluster/leaflet.markercluster.js' %}"
25
- defer></script>
26
28
  <script src="{% static 'umap/vendors/contextmenu/leaflet.contextmenu.min.js' %}"
27
29
  defer></script>
28
30
  <script src="{% static 'umap/vendors/photon/leaflet.photon.js' %}" defer></script>
29
31
  <script src="{% static 'umap/vendors/georsstogeojson/GeoRSSToGeoJSON.js' %}"
30
32
  defer></script>
31
- <script src="{% static 'umap/vendors/heat/leaflet-heat.js' %}" defer></script>
32
33
  <script src="{% static 'umap/vendors/fullscreen/Leaflet.fullscreen.min.js' %}"
33
34
  defer></script>
34
35
  <script src="{% static 'umap/vendors/toolbar/leaflet.toolbar.js' %}" defer></script>
@@ -43,13 +44,7 @@
43
44
  <script src="{% static 'umap/vendors/simple-statistics/simple-statistics.min.js' %}"
44
45
  defer></script>
45
46
  <script src="{% static 'umap/js/umap.core.js' %}" defer></script>
46
- <script src="{% static 'umap/js/umap.popup.js' %}" defer></script>
47
47
  <script src="{% static 'umap/js/umap.forms.js' %}" defer></script>
48
- <script src="{% static 'umap/js/umap.icon.js' %}" defer></script>
49
- <script src="{% static 'umap/js/umap.features.js' %}" defer></script>
50
- <script src="{% static 'umap/js/umap.permissions.js' %}" defer></script>
51
- <script src="{% static 'umap/js/umap.datalayer.permissions.js' %}" defer></script>
52
- <script src="{% static 'umap/js/umap.layer.js' %}" defer></script>
53
48
  <script src="{% static 'umap/js/umap.controls.js' %}" defer></script>
54
49
  <script src="{% static 'umap/js/umap.js' %}" defer></script>
55
50
  <script src="{% static 'umap/js/components/fragment.js' %}" defer></script>
@@ -1,11 +1,17 @@
1
1
  {% load i18n %}
2
- <h3>{% trans "You are logged in. Continuing..." %}</h3>
2
+
3
+ <h3>
4
+ {% trans "You are logged in. Continuing..." %}
5
+ </h3>
3
6
  <script type="text/javascript">
4
7
  function proceed() {
5
- if (window.opener && window.opener.umap_proceed) {
6
- window.opener.umap_proceed()
8
+ if (window.opener?.onLogin) {
9
+ // We are in the normal process login
10
+ window.opener.onLogin()
11
+ window.close()
7
12
  } else {
8
- // Trade off as Twitter does not allow us to access window.opener
13
+ // we may be in login process that includes a magic link, so user
14
+ // has opened a new window from this link, and we cannot close it then.
9
15
  window.location.href = '{% url "user_dashboard" %}'
10
16
  }
11
17
  }
@@ -1,5 +1,7 @@
1
1
  {% extends "base.html" %}
2
+
2
3
  {% load umap_tags i18n %}
4
+
3
5
  {% block head_title %}
4
6
  {{ map.name }} - {{ SITE_NAME }}
5
7
  {% endblock head_title %}
@@ -8,12 +10,16 @@
8
10
  {% endblock body_class %}
9
11
  {% block extra_head %}
10
12
  {% if preconnect_domains %}
11
- {% for domain in preconnect_domains %}<link rel="preconnect" href="{{ domain }}" />{% endfor %}
13
+ {% for domain in preconnect_domains %}
14
+ <link rel="preconnect" href="{{ domain }}" />
15
+ {% endfor %}
12
16
  {% endif %}
13
17
  {% umap_css %}
14
18
  {{ block.super }}
15
19
  {% umap_js locale=locale %}
16
- {% if object.share_status != object.PUBLIC %}<meta name="robots" content="noindex">{% endif %}
20
+ {% if object.share_status != object.PUBLIC %}
21
+ <meta name="robots" content="noindex">
22
+ {% endif %}
17
23
  <link rel="alternate"
18
24
  type="application/json+oembed"
19
25
  href="{{ oembed_absolute_uri }}?url={{ quoted_absolute_uri }}&format=json"
@@ -1,4 +1,6 @@
1
1
  {% load umap_tags %}
2
+
2
3
  <umap-fragment data-settings='{{ map_settings|escape }}'>
3
- <div id="{{ unique_id }}" class="map_fragment"></div>
4
+ <div id="{{ unique_id }}" class="map_fragment">
5
+ </div>
4
6
  </umap-fragment>
@@ -1,7 +1,8 @@
1
1
  {% load umap_tags %}
2
2
 
3
3
  {% include "umap/messages.html" %}
4
- <div id="map"></div>
4
+ <div id="map">
5
+ </div>
5
6
  <!-- djlint:off -->
6
7
  <script defer type="text/javascript">
7
8
  window.addEventListener('DOMContentLoaded', (event) => {
@@ -1,13 +1,16 @@
1
1
  {% load umap_tags i18n %}
2
+
2
3
  {% for map_inst in maps %}
3
4
  <hr />
4
5
  <div class="col wide">
5
6
  {% map_fragment map_inst prefix=prefix page=request.GET.p %}
6
7
  <div class="legend">
7
8
  <a href="{{ map_inst.get_absolute_url }}">{{ map_inst.name }}</a>
8
- {% if map_inst.owner %}
9
- <em>{% trans "by" %} <a href="{{ map_inst.owner.get_url }}">{{ map_inst.owner }}</a></em>
10
- {% endif %}
9
+ {% with author=map_inst.get_author %}
10
+ {% if author %}
11
+ <em>{% trans "by" %} <a href="{{ author.get_url }}">{{ author }}</a></em>
12
+ {% endif %}
13
+ {% endwith %}
11
14
  </div>
12
15
  </div>
13
16
  {% endfor %}