umap-project 2.1.1__tar.gz → 2.1.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (492) hide show
  1. {umap_project-2.1.1 → umap_project-2.1.3}/PKG-INFO +4 -4
  2. {umap_project-2.1.1 → umap_project-2.1.3}/pyproject.toml +3 -3
  3. umap_project-2.1.3/umap/__init__.py +1 -0
  4. {umap_project-2.1.1 → umap_project-2.1.3}/umap/models.py +20 -11
  5. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/modules/request.js +1 -1
  6. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.controls.js +29 -0
  7. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.features.js +3 -1
  8. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.importer.js +4 -5
  9. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.js +27 -36
  10. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.layer.js +7 -6
  11. umap_project-2.1.3/umap/static/umap/test/Map.js +37 -0
  12. umap_project-2.1.3/umap/static/umap/test/Polygon.js +111 -0
  13. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/test/Polyline.js +0 -116
  14. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/test/index.html +1 -4
  15. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/conftest.py +9 -0
  16. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_data.csv +2 -1
  17. umap_project-2.1.3/umap/tests/fixtures/test_upload_data.umap +171 -0
  18. umap_project-2.1.3/umap/tests/fixtures/test_upload_data_osm.json +33 -0
  19. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/conftest.py +5 -0
  20. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_anonymous_owned_map.py +3 -0
  21. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_browser.py +4 -11
  22. umap_project-2.1.3/umap/tests/integration/test_choropleth.py +89 -0
  23. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_collaborative_editing.py +30 -1
  24. umap_project-2.1.3/umap/tests/integration/test_datalayer.py +130 -0
  25. umap_project-2.1.3/umap/tests/integration/test_edit_datalayer.py +180 -0
  26. umap_project-2.1.3/umap/tests/integration/test_edit_map.py +15 -0
  27. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_facets_browser.py +31 -0
  28. umap_project-2.1.3/umap/tests/integration/test_import.py +399 -0
  29. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_map.py +17 -37
  30. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_owned_map.py +18 -0
  31. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_picto.py +20 -33
  32. umap_project-2.1.3/umap/tests/integration/test_polygon.py +363 -0
  33. umap_project-2.1.3/umap/tests/integration/test_polyline.py +325 -0
  34. umap_project-2.1.3/umap/tests/integration/test_tableeditor.py +27 -0
  35. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/test_datalayer.py +31 -17
  36. {umap_project-2.1.1 → umap_project-2.1.3}/umap/views.py +2 -1
  37. umap_project-2.1.1/umap/__init__.py +0 -1
  38. umap_project-2.1.1/umap/static/umap/test/Choropleth.js +0 -245
  39. umap_project-2.1.1/umap/static/umap/test/DataLayer.js +0 -463
  40. umap_project-2.1.1/umap/static/umap/test/Map.js +0 -341
  41. umap_project-2.1.1/umap/static/umap/test/Permissions.js +0 -74
  42. umap_project-2.1.1/umap/static/umap/test/Polygon.js +0 -367
  43. umap_project-2.1.1/umap/static/umap/test/TableEditor.js +0 -104
  44. umap_project-2.1.1/umap/tests/integration/test_drawing.py +0 -243
  45. umap_project-2.1.1/umap/tests/integration/test_edit_datalayer.py +0 -46
  46. umap_project-2.1.1/umap/tests/integration/test_import.py +0 -54
  47. {umap_project-2.1.1 → umap_project-2.1.3}/.gitignore +0 -0
  48. {umap_project-2.1.1 → umap_project-2.1.3}/LICENSE +0 -0
  49. {umap_project-2.1.1 → umap_project-2.1.3}/README.md +0 -0
  50. {umap_project-2.1.1 → umap_project-2.1.3}/umap/admin.py +0 -0
  51. {umap_project-2.1.1 → umap_project-2.1.3}/umap/apps.py +0 -0
  52. {umap_project-2.1.1 → umap_project-2.1.3}/umap/autocomplete.py +0 -0
  53. {umap_project-2.1.1 → umap_project-2.1.3}/umap/bin/__init__.py +0 -0
  54. {umap_project-2.1.1 → umap_project-2.1.3}/umap/context_processors.py +0 -0
  55. {umap_project-2.1.1 → umap_project-2.1.3}/umap/decorators.py +0 -0
  56. {umap_project-2.1.1 → umap_project-2.1.3}/umap/fields.py +0 -0
  57. {umap_project-2.1.1 → umap_project-2.1.3}/umap/forms.py +0 -0
  58. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/am_ET/LC_MESSAGES/django.mo +0 -0
  59. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/am_ET/LC_MESSAGES/django.po +0 -0
  60. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ar/LC_MESSAGES/django.mo +0 -0
  61. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ar/LC_MESSAGES/django.po +0 -0
  62. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ast/LC_MESSAGES/django.mo +0 -0
  63. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ast/LC_MESSAGES/django.po +0 -0
  64. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/bg/LC_MESSAGES/django.mo +0 -0
  65. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/bg/LC_MESSAGES/django.po +0 -0
  66. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/br/LC_MESSAGES/django.mo +0 -0
  67. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/br/LC_MESSAGES/django.po +0 -0
  68. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ca/LC_MESSAGES/django.mo +0 -0
  69. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ca/LC_MESSAGES/django.po +0 -0
  70. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  71. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/cs_CZ/LC_MESSAGES/django.po +0 -0
  72. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/da/LC_MESSAGES/django.mo +0 -0
  73. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/da/LC_MESSAGES/django.po +0 -0
  74. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/de/LC_MESSAGES/django.mo +0 -0
  75. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/de/LC_MESSAGES/django.po +0 -0
  76. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/el/LC_MESSAGES/django.mo +0 -0
  77. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/el/LC_MESSAGES/django.po +0 -0
  78. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/en/LC_MESSAGES/django.mo +0 -0
  79. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/en/LC_MESSAGES/django.po +0 -0
  80. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/es/LC_MESSAGES/django.mo +0 -0
  81. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/es/LC_MESSAGES/django.po +0 -0
  82. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/et/LC_MESSAGES/django.mo +0 -0
  83. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/et/LC_MESSAGES/django.po +0 -0
  84. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/eu/LC_MESSAGES/django.mo +0 -0
  85. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/eu/LC_MESSAGES/django.po +0 -0
  86. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/fa_IR/LC_MESSAGES/django.mo +0 -0
  87. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/fa_IR/LC_MESSAGES/django.po +0 -0
  88. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/fi/LC_MESSAGES/django.mo +0 -0
  89. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/fi/LC_MESSAGES/django.po +0 -0
  90. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/fr/LC_MESSAGES/django.mo +0 -0
  91. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/fr/LC_MESSAGES/django.po +0 -0
  92. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/gl/LC_MESSAGES/django.mo +0 -0
  93. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/gl/LC_MESSAGES/django.po +0 -0
  94. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/he/LC_MESSAGES/django.mo +0 -0
  95. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/he/LC_MESSAGES/django.po +0 -0
  96. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/hr/LC_MESSAGES/django.mo +0 -0
  97. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/hr/LC_MESSAGES/django.po +0 -0
  98. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/hu/LC_MESSAGES/django.mo +0 -0
  99. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/hu/LC_MESSAGES/django.po +0 -0
  100. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/id/LC_MESSAGES/django.mo +0 -0
  101. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/id/LC_MESSAGES/django.po +0 -0
  102. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/is/LC_MESSAGES/django.mo +0 -0
  103. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/is/LC_MESSAGES/django.po +0 -0
  104. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/it/LC_MESSAGES/django.mo +0 -0
  105. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/it/LC_MESSAGES/django.po +0 -0
  106. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ja/LC_MESSAGES/django.mo +0 -0
  107. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ja/LC_MESSAGES/django.po +0 -0
  108. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ko/LC_MESSAGES/django.mo +0 -0
  109. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ko/LC_MESSAGES/django.po +0 -0
  110. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/lt/LC_MESSAGES/django.mo +0 -0
  111. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/lt/LC_MESSAGES/django.po +0 -0
  112. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ms/LC_MESSAGES/django.mo +0 -0
  113. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ms/LC_MESSAGES/django.po +0 -0
  114. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/nl/LC_MESSAGES/django.mo +0 -0
  115. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/nl/LC_MESSAGES/django.po +0 -0
  116. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/no/LC_MESSAGES/django.mo +0 -0
  117. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/no/LC_MESSAGES/django.po +0 -0
  118. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/pl/LC_MESSAGES/django.mo +0 -0
  119. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/pl/LC_MESSAGES/django.po +0 -0
  120. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/pt/LC_MESSAGES/django.mo +0 -0
  121. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/pt/LC_MESSAGES/django.po +0 -0
  122. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  123. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/pt_BR/LC_MESSAGES/django.po +0 -0
  124. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  125. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/pt_PT/LC_MESSAGES/django.po +0 -0
  126. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ro/LC_MESSAGES/django.mo +0 -0
  127. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ro/LC_MESSAGES/django.po +0 -0
  128. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ru/LC_MESSAGES/django.mo +0 -0
  129. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/ru/LC_MESSAGES/django.po +0 -0
  130. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/si/LC_MESSAGES/django.mo +0 -0
  131. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/si/LC_MESSAGES/django.po +0 -0
  132. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  133. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/sk_SK/LC_MESSAGES/django.po +0 -0
  134. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/sl/LC_MESSAGES/django.mo +0 -0
  135. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/sl/LC_MESSAGES/django.po +0 -0
  136. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/sr/LC_MESSAGES/django.mo +0 -0
  137. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/sr/LC_MESSAGES/django.po +0 -0
  138. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/sv/LC_MESSAGES/django.mo +0 -0
  139. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/sv/LC_MESSAGES/django.po +0 -0
  140. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/th_TH/LC_MESSAGES/django.mo +0 -0
  141. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/th_TH/LC_MESSAGES/django.po +0 -0
  142. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/tr/LC_MESSAGES/django.mo +0 -0
  143. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/tr/LC_MESSAGES/django.po +0 -0
  144. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/uk_UA/LC_MESSAGES/django.mo +0 -0
  145. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/uk_UA/LC_MESSAGES/django.po +0 -0
  146. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/vi/LC_MESSAGES/django.mo +0 -0
  147. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/vi/LC_MESSAGES/django.po +0 -0
  148. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/zh/LC_MESSAGES/django.mo +0 -0
  149. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/zh/LC_MESSAGES/django.po +0 -0
  150. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  151. {umap_project-2.1.1 → umap_project-2.1.3}/umap/locale/zh_TW/LC_MESSAGES/django.po +0 -0
  152. {umap_project-2.1.1 → umap_project-2.1.3}/umap/management/__init__.py +0 -0
  153. {umap_project-2.1.1 → umap_project-2.1.3}/umap/management/commands/__init__.py +0 -0
  154. {umap_project-2.1.1 → umap_project-2.1.3}/umap/management/commands/anonymous_edit_url.py +0 -0
  155. {umap_project-2.1.1 → umap_project-2.1.3}/umap/management/commands/generate_js_locale.py +0 -0
  156. {umap_project-2.1.1 → umap_project-2.1.3}/umap/management/commands/import_pictograms.py +0 -0
  157. {umap_project-2.1.1 → umap_project-2.1.3}/umap/managers.py +0 -0
  158. {umap_project-2.1.1 → umap_project-2.1.3}/umap/middleware.py +0 -0
  159. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0001_initial.py +0 -0
  160. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0002_tilelayer_tms.py +0 -0
  161. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0003_add_tilelayer.py +0 -0
  162. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0004_add_licence.py +0 -0
  163. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0005_remove_map_tilelayer.py +0 -0
  164. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0006_auto_20190407_0719.py +0 -0
  165. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0007_auto_20190416_1757.py +0 -0
  166. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0008_alter_map_settings.py +0 -0
  167. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0009_star.py +0 -0
  168. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0010_alter_map_edit_status_alter_map_share_status.py +0 -0
  169. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0011_alter_map_edit_status_alter_map_share_status.py +0 -0
  170. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0012_datalayer_settings.py +0 -0
  171. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0013_datalayer_edit_status.py +0 -0
  172. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0014_map_created_at.py +0 -0
  173. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0015_alter_pictogram_pictogram.py +0 -0
  174. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0016_pictogram_category.py +0 -0
  175. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0017_migrate_to_openstreetmap_oauth2.py +0 -0
  176. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0018_datalayer_uuid.py +0 -0
  177. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/0019_migrate_internal_remote_datalayers.py +0 -0
  178. {umap_project-2.1.1 → umap_project-2.1.3}/umap/migrations/__init__.py +0 -0
  179. {umap_project-2.1.1 → umap_project-2.1.3}/umap/settings/__init__.py +0 -0
  180. {umap_project-2.1.1 → umap_project-2.1.3}/umap/settings/base.py +0 -0
  181. {umap_project-2.1.1 → umap_project-2.1.3}/umap/settings/dev.py +0 -0
  182. {umap_project-2.1.1 → umap_project-2.1.3}/umap/settings/local.py.sample +0 -0
  183. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/.gitignore +0 -0
  184. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/base.css +0 -0
  185. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/bitbucket.png +0 -0
  186. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/content.css +0 -0
  187. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/favicons/apple-touch-icon.png +0 -0
  188. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/favicons/favicon.ico +0 -0
  189. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/favicons/icon-192.png +0 -0
  190. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/favicons/icon-512.png +0 -0
  191. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/favicons/icon.svg +0 -0
  192. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-Light.woff +0 -0
  193. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-Light.woff2 +0 -0
  194. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-LightItalic.woff +0 -0
  195. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-LightItalic.woff2 +0 -0
  196. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-SemiBold.woff +0 -0
  197. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/font/FiraSans-SemiBold.woff2 +0 -0
  198. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/font.css +0 -0
  199. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/github.png +0 -0
  200. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/16-white.svg +0 -0
  201. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/16.svg +0 -0
  202. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/24-white.svg +0 -0
  203. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/24.svg +0 -0
  204. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/edit.svg +0 -0
  205. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/icon-bg.png +0 -0
  206. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/icon-delete.svg +0 -0
  207. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/icon-download.svg +0 -0
  208. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/icon-duplicate.svg +0 -0
  209. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/icon-edit.svg +0 -0
  210. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/icon-share.svg +0 -0
  211. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/icon-view.svg +0 -0
  212. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/logo.svg +0 -0
  213. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/logo_filigree.png +0 -0
  214. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/logo_small.svg +0 -0
  215. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/marker.png +0 -0
  216. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/marker.svg +0 -0
  217. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/opensource.svg +0 -0
  218. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/osm.svg +0 -0
  219. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/search.gif +0 -0
  220. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/source/16-white.svg +0 -0
  221. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/source/16.svg +0 -0
  222. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/source/24-white.svg +0 -0
  223. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/img/source/24.svg +0 -0
  224. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/components/fragment.js +0 -0
  225. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/modules/browser.js +0 -0
  226. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/modules/global.js +0 -0
  227. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/modules/i18n.js +0 -0
  228. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/modules/leaflet-configure.js +0 -0
  229. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/modules/schema.js +0 -0
  230. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/modules/urls.js +0 -0
  231. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/modules/utils.js +0 -0
  232. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.autocomplete.js +0 -0
  233. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.core.js +0 -0
  234. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.datalayer.permissions.js +0 -0
  235. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.forms.js +0 -0
  236. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.icon.js +0 -0
  237. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.permissions.js +0 -0
  238. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.popup.js +0 -0
  239. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.share.js +0 -0
  240. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.slideshow.js +0 -0
  241. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.tableeditor.js +0 -0
  242. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/js/umap.ui.js +0 -0
  243. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/am_ET.js +0 -0
  244. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/am_ET.json +0 -0
  245. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ar.js +0 -0
  246. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ar.json +0 -0
  247. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ast.js +0 -0
  248. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ast.json +0 -0
  249. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/bg.js +0 -0
  250. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/bg.json +0 -0
  251. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/br.js +0 -0
  252. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/br.json +0 -0
  253. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ca.js +0 -0
  254. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ca.json +0 -0
  255. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/cs_CZ.js +0 -0
  256. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/cs_CZ.json +0 -0
  257. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/da.js +0 -0
  258. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/da.json +0 -0
  259. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/de.js +0 -0
  260. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/de.json +0 -0
  261. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/el.js +0 -0
  262. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/el.json +0 -0
  263. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/en.js +0 -0
  264. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/en.json +0 -0
  265. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/en_US.json +0 -0
  266. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/es.js +0 -0
  267. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/es.json +0 -0
  268. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/et.js +0 -0
  269. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/et.json +0 -0
  270. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/eu.js +0 -0
  271. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/eu.json +0 -0
  272. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/fa_IR.js +0 -0
  273. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/fa_IR.json +0 -0
  274. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/fi.js +0 -0
  275. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/fi.json +0 -0
  276. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/fr.js +0 -0
  277. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/fr.json +0 -0
  278. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/gl.js +0 -0
  279. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/gl.json +0 -0
  280. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/he.js +0 -0
  281. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/he.json +0 -0
  282. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/hr.js +0 -0
  283. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/hr.json +0 -0
  284. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/hu.js +0 -0
  285. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/hu.json +0 -0
  286. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/id.js +0 -0
  287. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/id.json +0 -0
  288. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/is.js +0 -0
  289. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/is.json +0 -0
  290. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/it.js +0 -0
  291. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/it.json +0 -0
  292. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ja.js +0 -0
  293. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ja.json +0 -0
  294. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ko.js +0 -0
  295. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ko.json +0 -0
  296. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/lt.js +0 -0
  297. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/lt.json +0 -0
  298. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ms.js +0 -0
  299. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ms.json +0 -0
  300. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/nl.js +0 -0
  301. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/nl.json +0 -0
  302. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/no.js +0 -0
  303. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/no.json +0 -0
  304. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/pl.js +0 -0
  305. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/pl.json +0 -0
  306. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/pl_PL.json +0 -0
  307. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/pt.js +0 -0
  308. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/pt.json +0 -0
  309. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/pt_BR.js +0 -0
  310. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/pt_BR.json +0 -0
  311. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/pt_PT.js +0 -0
  312. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/pt_PT.json +0 -0
  313. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ro.js +0 -0
  314. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ro.json +0 -0
  315. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ru.js +0 -0
  316. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/ru.json +0 -0
  317. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/si.js +0 -0
  318. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/si.json +0 -0
  319. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/sk_SK.js +0 -0
  320. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/sk_SK.json +0 -0
  321. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/sl.js +0 -0
  322. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/sl.json +0 -0
  323. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/sr.js +0 -0
  324. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/sr.json +0 -0
  325. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/sv.js +0 -0
  326. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/sv.json +0 -0
  327. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/th_TH.js +0 -0
  328. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/th_TH.json +0 -0
  329. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/tr.js +0 -0
  330. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/tr.json +0 -0
  331. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/uk_UA.js +0 -0
  332. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/uk_UA.json +0 -0
  333. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/vi.js +0 -0
  334. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/vi.json +0 -0
  335. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/vi_VN.json +0 -0
  336. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/zh.js +0 -0
  337. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/zh.json +0 -0
  338. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/zh_CN.json +0 -0
  339. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/zh_TW.Big5.json +0 -0
  340. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/zh_TW.js +0 -0
  341. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/locale/zh_TW.json +0 -0
  342. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/map.css +0 -0
  343. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/nav.css +0 -0
  344. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/openstreetmap.png +0 -0
  345. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/test/.eslintrc +0 -0
  346. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/test/Feature.js +0 -0
  347. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/test/Marker.js +0 -0
  348. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/test/Util.js +0 -0
  349. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/test/_pre.js +0 -0
  350. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/theme.css +0 -0
  351. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/twitter.png +0 -0
  352. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/unittests/URLs.js +0 -0
  353. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vars.css +0 -0
  354. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/colorbrewer/colorbrewer.js +0 -0
  355. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/contextmenu/leaflet.contextmenu.min.css +0 -0
  356. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/contextmenu/leaflet.contextmenu.min.js +0 -0
  357. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/csv2geojson/csv2geojson.js +0 -0
  358. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/dompurify/purify.min.js +0 -0
  359. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/dompurify/purify.min.js.map +0 -0
  360. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/editable/Leaflet.Editable.js +0 -0
  361. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/editable/Path.Drag.js +0 -0
  362. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/editinosm/Leaflet.EditInOSM.css +0 -0
  363. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/editinosm/Leaflet.EditInOSM.js +0 -0
  364. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/editinosm/edit-in-osm.png +0 -0
  365. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +0 -0
  366. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/fullscreen/Leaflet.fullscreen.js +0 -0
  367. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/fullscreen/Leaflet.fullscreen.min.js +0 -0
  368. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/fullscreen/fullscreen.png +0 -0
  369. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/fullscreen/fullscreen@2x.png +0 -0
  370. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/fullscreen/leaflet.fullscreen.css +0 -0
  371. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/georsstogeojson/GeoRSSToGeoJSON.js +0 -0
  372. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/hash/leaflet-hash.js +0 -0
  373. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/heat/leaflet-heat.js +0 -0
  374. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/i18n/Leaflet.i18n.js +0 -0
  375. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/iconlayers/check.png +0 -0
  376. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/iconlayers/iconLayers.css +0 -0
  377. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/iconlayers/iconLayers.js +0 -0
  378. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/iconlayers/transparent-pixel.png +0 -0
  379. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/images/layers-2x.png +0 -0
  380. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/images/layers.png +0 -0
  381. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/images/marker-icon-2x.png +0 -0
  382. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/images/marker-icon.png +0 -0
  383. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/images/marker-shadow.png +0 -0
  384. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet-src.esm.js +0 -0
  385. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet-src.esm.js.map +0 -0
  386. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet-src.js +0 -0
  387. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet-src.js.map +0 -0
  388. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet.css +0 -0
  389. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet.js +0 -0
  390. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/leaflet/leaflet.js.map +0 -0
  391. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/loading/Control.Loading.css +0 -0
  392. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/loading/Control.Loading.js +0 -0
  393. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.css +0 -0
  394. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.css.map +0 -0
  395. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.js +0 -0
  396. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.js.map +0 -0
  397. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/MarkerCluster.Default.css +0 -0
  398. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/MarkerCluster.css +0 -0
  399. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/WhereAreTheJavascriptFiles.txt +0 -0
  400. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/leaflet.markercluster-src.js +0 -0
  401. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/leaflet.markercluster-src.js.map +0 -0
  402. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/leaflet.markercluster.js +0 -0
  403. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/markercluster/leaflet.markercluster.js.map +0 -0
  404. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/measurable/Leaflet.Measurable.css +0 -0
  405. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/measurable/Leaflet.Measurable.js +0 -0
  406. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/minimap/Control.MiniMap.min.css +0 -0
  407. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/minimap/Control.MiniMap.min.js +0 -0
  408. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/minimap/images/toggle.png +0 -0
  409. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/minimap/images/toggle.svg +0 -0
  410. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/osmtogeojson/osmtogeojson.js +0 -0
  411. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/photon/leaflet.photon.js +0 -0
  412. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/simple-statistics/simple-statistics.min.js +0 -0
  413. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/simple-statistics/simple-statistics.min.js.map +0 -0
  414. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/togeojson/togeojson.umd.js +0 -0
  415. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/togeojson/togeojson.umd.js.map +0 -0
  416. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/togpx/togpx.js +0 -0
  417. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/tokml/tokml.js +0 -0
  418. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/toolbar/leaflet.toolbar-src.css +0 -0
  419. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/toolbar/leaflet.toolbar-src.js +0 -0
  420. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/toolbar/leaflet.toolbar.css +0 -0
  421. {umap_project-2.1.1 → umap_project-2.1.3}/umap/static/umap/vendors/toolbar/leaflet.toolbar.js +0 -0
  422. {umap_project-2.1.1 → umap_project-2.1.3}/umap/storage.py +0 -0
  423. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/404.html +0 -0
  424. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/500.html +0 -0
  425. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/auth/user_detail.html +0 -0
  426. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/auth/user_form.html +0 -0
  427. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/auth/user_stars.html +0 -0
  428. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/base.html +0 -0
  429. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/registration/login.html +0 -0
  430. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/about.html +0 -0
  431. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/about_summary.html +0 -0
  432. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/branding.html +0 -0
  433. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/content.html +0 -0
  434. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/content_footer.html +0 -0
  435. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/css.html +0 -0
  436. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/footer.html +0 -0
  437. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/header.html +0 -0
  438. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/home.html +0 -0
  439. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/js.html +0 -0
  440. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/locale.js +0 -0
  441. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/login_popup_end.html +0 -0
  442. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/map_detail.html +0 -0
  443. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/map_fragment.html +0 -0
  444. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/map_init.html +0 -0
  445. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/map_list.html +0 -0
  446. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/map_table.html +0 -0
  447. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/messages.html +0 -0
  448. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/navigation.html +0 -0
  449. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/password_change.html +0 -0
  450. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/password_change_done.html +0 -0
  451. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/search.html +0 -0
  452. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/search_bar.html +0 -0
  453. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/success.html +0 -0
  454. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templates/umap/user_dashboard.html +0 -0
  455. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templatetags/__init__.py +0 -0
  456. {umap_project-2.1.1 → umap_project-2.1.3}/umap/templatetags/umap_tags.py +0 -0
  457. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/__init__.py +0 -0
  458. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/base.py +0 -0
  459. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/fixtures/choropleth_region_chomage.geojson +0 -0
  460. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/fixtures/circle.svg +0 -0
  461. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/fixtures/display_on_load.umap +0 -0
  462. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/fixtures/star.svg +0 -0
  463. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_data.gpx +0 -0
  464. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_data.json +0 -0
  465. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_data.kml +0 -0
  466. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_empty_coordinates.json +0 -0
  467. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_missing_name.json +0 -0
  468. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/fixtures/test_upload_non_linear_ring.json +0 -0
  469. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/__init__.py +0 -0
  470. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_basics.py +0 -0
  471. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_dashboard.py +0 -0
  472. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_export_map.py +0 -0
  473. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_features_id_generation.py +0 -0
  474. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_map_preview.py +0 -0
  475. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_querystring.py +0 -0
  476. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_share.py +0 -0
  477. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_slideshow.py +0 -0
  478. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_star.py +0 -0
  479. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_statics.py +0 -0
  480. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/integration/test_tilelayer.py +0 -0
  481. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/settings.py +0 -0
  482. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/test_datalayer_views.py +0 -0
  483. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/test_licence.py +0 -0
  484. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/test_map.py +0 -0
  485. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/test_map_views.py +0 -0
  486. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/test_merge_features.py +0 -0
  487. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/test_tilelayer.py +0 -0
  488. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/test_utils.py +0 -0
  489. {umap_project-2.1.1 → umap_project-2.1.3}/umap/tests/test_views.py +0 -0
  490. {umap_project-2.1.1 → umap_project-2.1.3}/umap/urls.py +0 -0
  491. {umap_project-2.1.1 → umap_project-2.1.3}/umap/utils.py +0 -0
  492. {umap_project-2.1.1 → umap_project-2.1.3}/umap/wsgi.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: umap-project
3
- Version: 2.1.1
3
+ Version: 2.1.3
4
4
  Summary: Create maps with OpenStreetMap layers in a minute and embed them in your site.
5
5
  Author-email: Yohan Boniface <yb@enix.org>
6
6
  Maintainer-email: David Larlet <david@larlet.fr>
@@ -31,10 +31,10 @@ Provides-Extra: dev
31
31
  Requires-Dist: djlint==1.34.1; extra == 'dev'
32
32
  Requires-Dist: hatch==1.9.4; extra == 'dev'
33
33
  Requires-Dist: isort==5.13.2; extra == 'dev'
34
- Requires-Dist: mkdocs-material==9.5.14; extra == 'dev'
34
+ Requires-Dist: mkdocs-material==9.5.15; extra == 'dev'
35
35
  Requires-Dist: mkdocs==1.5.3; extra == 'dev'
36
36
  Requires-Dist: pymdown-extensions==10.7.1; extra == 'dev'
37
- Requires-Dist: ruff==0.3.3; extra == 'dev'
37
+ Requires-Dist: ruff==0.3.4; extra == 'dev'
38
38
  Requires-Dist: vermin==1.6.0; extra == 'dev'
39
39
  Provides-Extra: docker
40
40
  Requires-Dist: uwsgi==2.0.24; extra == 'docker'
@@ -44,7 +44,7 @@ Requires-Dist: playwright>=1.39; extra == 'test'
44
44
  Requires-Dist: pytest-django==4.8.0; extra == 'test'
45
45
  Requires-Dist: pytest-playwright==0.4.4; extra == 'test'
46
46
  Requires-Dist: pytest-xdist<4,>=3.5.0; extra == 'test'
47
- Requires-Dist: pytest==8.0.2; extra == 'test'
47
+ Requires-Dist: pytest==8.1.1; extra == 'test'
48
48
  Description-Content-Type: text/markdown
49
49
 
50
50
  # uMap project
@@ -44,10 +44,10 @@ dependencies = [
44
44
  [project.optional-dependencies]
45
45
  dev = [
46
46
  "hatch==1.9.4",
47
- "ruff==0.3.3",
47
+ "ruff==0.3.4",
48
48
  "djlint==1.34.1",
49
49
  "mkdocs==1.5.3",
50
- "mkdocs-material==9.5.14",
50
+ "mkdocs-material==9.5.15",
51
51
  "vermin==1.6.0",
52
52
  "pymdown-extensions==10.7.1",
53
53
  "isort==5.13.2",
@@ -55,7 +55,7 @@ dev = [
55
55
  test = [
56
56
  "factory-boy==3.2.1",
57
57
  "playwright>=1.39",
58
- "pytest==8.0.2",
58
+ "pytest==8.1.1",
59
59
  "pytest-django==4.8.0",
60
60
  "pytest-playwright==0.4.4",
61
61
  "pytest-xdist>=3.5.0,<4",
@@ -0,0 +1 @@
1
+ VERSION = "2.1.3"
@@ -1,4 +1,5 @@
1
1
  import json
2
+ import operator
2
3
  import os
3
4
  import time
4
5
  import uuid
@@ -442,6 +443,8 @@ class DataLayer(NamedModel):
442
443
  "name": self.name,
443
444
  "displayOnLoad": self.display_on_load,
444
445
  }
446
+ if self.old_id:
447
+ obj["old_id"] = self.old_id
445
448
  obj["id"] = self.pk
446
449
  obj["permissions"] = {"edit_status": self.edit_status}
447
450
  obj["editMode"] = "advanced" if self.can_edit(user, request) else "disabled"
@@ -471,17 +474,14 @@ class DataLayer(NamedModel):
471
474
  "size": self.geojson.storage.size(self.get_version_path(name)),
472
475
  }
473
476
 
474
- def get_versions(self):
477
+ @property
478
+ def versions(self):
475
479
  root = self.storage_root()
476
480
  names = self.geojson.storage.listdir(root)[1]
477
481
  names = [name for name in names if self.is_valid_version(name)]
478
- names.sort(reverse=True) # Recent first.
479
- return names
480
-
481
- @property
482
- def versions(self):
483
- names = self.get_versions()
484
- return [self.version_metadata(name) for name in names]
482
+ versions = [self.version_metadata(name) for name in names]
483
+ versions.sort(reverse=True, key=operator.itemgetter("at"))
484
+ return versions
485
485
 
486
486
  def get_version(self, name):
487
487
  path = self.get_version_path(name)
@@ -493,8 +493,13 @@ class DataLayer(NamedModel):
493
493
 
494
494
  def purge_old_versions(self):
495
495
  root = self.storage_root()
496
- names = self.get_versions()[settings.UMAP_KEEP_VERSIONS :]
497
- for name in names:
496
+ versions = self.versions[settings.UMAP_KEEP_VERSIONS :]
497
+ for version in versions:
498
+ name = version["name"]
499
+ # Should not be in the list, but ensure to not delete the file
500
+ # currently used in database
501
+ if self.geojson.name.endswith(name):
502
+ continue
498
503
  try:
499
504
  self.geojson.storage.delete(os.path.join(root, name))
500
505
  except FileNotFoundError:
@@ -503,8 +508,12 @@ class DataLayer(NamedModel):
503
508
  def purge_gzip(self):
504
509
  root = self.storage_root()
505
510
  names = self.geojson.storage.listdir(root)[1]
511
+ prefixes = [f"{self.pk}_"]
512
+ if self.old_id:
513
+ prefixes.append(f"{self.old_id}_")
514
+ prefixes = tuple(prefixes)
506
515
  for name in names:
507
- if name.startswith(f"{self.pk}_") and name.endswith(".gz"):
516
+ if name.startswith(prefixes) and name.endswith(".gz"):
508
517
  self.geojson.storage.delete(os.path.join(root, name))
509
518
 
510
519
  def can_edit(self, user=None, request=None):
@@ -146,7 +146,7 @@ export class ServerRequest extends Request {
146
146
  _onNOK(error) {
147
147
  if (error.status === 403) {
148
148
  this.ui.alert({
149
- content: message || L._('Action not allowed :('),
149
+ content: error.message || L._('Action not allowed :('),
150
150
  level: 'error',
151
151
  })
152
152
  }
@@ -1234,6 +1234,35 @@ U.StarControl = L.Control.extend({
1234
1234
  },
1235
1235
  })
1236
1236
 
1237
+ /*
1238
+ * Take control over L.Control.Locate to be able to
1239
+ * call start() before adding the control (and thus the button) to the map.
1240
+ */
1241
+ U.Locate = L.Control.Locate.extend({
1242
+ initialize: function (map, options) {
1243
+ // When calling start(), it will try to add a location marker
1244
+ // on the layer, which is normally added in the addTo/onAdd method
1245
+ this._layer = this.options.layer = new L.LayerGroup()
1246
+ // When calling start(), it will call _activate(), which then adds
1247
+ // location related event listeners on the map
1248
+ this.map = map
1249
+ L.Control.Locate.prototype.initialize.call(this, options)
1250
+ },
1251
+
1252
+ onAdd: function (map) {
1253
+ const active = this._active
1254
+ const container = L.Control.Locate.prototype.onAdd.call(this, map)
1255
+ this._active = active
1256
+ return container
1257
+ },
1258
+
1259
+ _activate: function () {
1260
+ this._map = this.map
1261
+ L.Control.Locate.prototype._activate.call(this)
1262
+ this._map = null
1263
+ }
1264
+ })
1265
+
1237
1266
  U.Search = L.PhotonSearch.extend({
1238
1267
  initialize: function (map, input, options) {
1239
1268
  this.options.placeholder = L._('Type a place name or coordinates')
@@ -888,7 +888,9 @@ U.PathMixin = {
888
888
  const other = new (this instanceof U.Polyline ? U.Polyline : U.Polygon)(
889
889
  this.map,
890
890
  shape,
891
- { geojson: { properties: properties } }
891
+ {
892
+ geojson: { properties },
893
+ }
892
894
  )
893
895
  this.datalayer.addLayer(other)
894
896
  other.edit()
@@ -39,11 +39,10 @@ U.Importer = L.Class.extend({
39
39
  this.container,
40
40
  L._('Choose the layer to import in')
41
41
  )
42
- this.clearLabel = L.DomUtil.add(
42
+ this.clearLabel = L.DomUtil.element(
43
43
  'label',
44
- '',
45
- this.container,
46
- L._('Replace layer content')
44
+ { textContent: L._('Replace layer content'), for: 'datalayer-clear-check' },
45
+ this.container
47
46
  )
48
47
  this.submitInput = L.DomUtil.element(
49
48
  'input',
@@ -59,7 +58,7 @@ U.Importer = L.Class.extend({
59
58
  )
60
59
  this.clearFlag = L.DomUtil.element(
61
60
  'input',
62
- { type: 'checkbox', name: 'clear' },
61
+ { type: 'checkbox', name: 'clear', id: 'datalayer-clear-check' },
63
62
  this.clearLabel
64
63
  )
65
64
  let option
@@ -67,14 +67,15 @@ U.Map = L.Map.extend({
67
67
  this.description = this.options.description
68
68
  this.demoTileInfos = this.options.demoTileInfos
69
69
  this.options.zoomControl = zoomControl !== undefined ? zoomControl : true
70
- this.options.fullscreenControl = fullscreenControl !== undefined ? fullscreenControl : true
71
- this.datalayersOnLoad = L.Util.queryString('datalayers')
72
- if (this.datalayersOnLoad) {
73
- this.datalayersOnLoad = this.datalayersOnLoad.toString().split(',')
70
+ this.options.fullscreenControl =
71
+ fullscreenControl !== undefined ? fullscreenControl : true
72
+ this.datalayersFromQueryString = L.Util.queryString('datalayers')
73
+ if (this.datalayersFromQueryString) {
74
+ this.datalayersFromQueryString = this.datalayersFromQueryString
75
+ .toString()
76
+ .split(',')
74
77
  }
75
78
 
76
- if (L.Browser.ielt9) this.options.editMode = 'disabled' // TODO include ie9
77
-
78
79
  let editedFeature = null
79
80
  const self = this
80
81
  try {
@@ -114,12 +115,12 @@ U.Map = L.Map.extend({
114
115
  // Needed for actions labels
115
116
  this.help = new U.Help(this)
116
117
 
117
- if (this.options.hash) this.addHash()
118
- this.initTileLayers()
119
- // Needs tilelayer to exist for minimap
120
118
  this.initControls()
121
119
  // Needs locate control and hash to exist
122
120
  this.initCenter()
121
+ this.initTileLayers()
122
+ // Needs tilelayer to exist for minimap
123
+ this.renderControls()
123
124
  this.handleLimitBounds()
124
125
  this.initDataLayers()
125
126
 
@@ -268,9 +269,9 @@ U.Map = L.Map.extend({
268
269
  },
269
270
 
270
271
  overrideSchema: function (schema) {
271
- for (const [key, extra] of Object.entries(schema)) {
272
- U.SCHEMA[key] = L.extend({}, U.SCHEMA[key], extra)
273
- }
272
+ for (const [key, extra] of Object.entries(schema)) {
273
+ U.SCHEMA[key] = L.extend({}, U.SCHEMA[key], extra)
274
+ }
274
275
  },
275
276
 
276
277
  initControls: function () {
@@ -297,7 +298,7 @@ U.Map = L.Map.extend({
297
298
  zoomOutTitle: L._('Zoom out'),
298
299
  })
299
300
  this._controls.datalayers = new U.DataLayersControl(this)
300
- this._controls.locate = L.control.locate({
301
+ this._controls.locate = new U.Locate(this, {
301
302
  strings: {
302
303
  title: L._('Center map on your location'),
303
304
  },
@@ -336,9 +337,6 @@ U.Map = L.Map.extend({
336
337
  this.drop = new U.DropControl(this)
337
338
  this.share = new U.Share(this)
338
339
  this._controls.tilelayers = new U.TileLayerControl(this)
339
- this._controls.tilelayers.setLayers()
340
-
341
- this.renderControls()
342
340
  },
343
341
 
344
342
  renderControls: function () {
@@ -353,13 +351,13 @@ U.Map = L.Map.extend({
353
351
  'umap-slideshow-enabled',
354
352
  this.options.slideshow && this.options.slideshow.active
355
353
  )
356
- for (const i in this._controls) {
357
- this.removeControl(this._controls[i])
354
+ for (const control of Object.values(this._controls)) {
355
+ this.removeControl(control)
358
356
  }
359
357
  if (this.options.noControl) return
360
358
 
361
359
  this._controls.attribution = new U.AttributionControl().addTo(this)
362
- if (this.options.miniMap && !this.options.noControl) {
360
+ if (this.options.miniMap) {
363
361
  this.whenReady(function () {
364
362
  if (this.selected_tilelayer) {
365
363
  this._controls.miniMap = new L.Control.MiniMap(this.selected_tilelayer, {
@@ -392,6 +390,7 @@ U.Map = L.Map.extend({
392
390
  if (this.getOption('permanentCredit')) this._controls.permanentCredit.addTo(this)
393
391
  if (this.getOption('moreControl')) this._controls.more.addTo(this)
394
392
  if (this.getOption('scaleControl')) this._controls.scale.addTo(this)
393
+ this._controls.tilelayers.setLayers()
395
394
  },
396
395
 
397
396
  initDataLayers: async function (datalayers) {
@@ -652,26 +651,18 @@ U.Map = L.Map.extend({
652
651
  },
653
652
 
654
653
  initCenter: function () {
654
+ this._setDefaultCenter()
655
+ if (this.options.hash) this.addHash()
655
656
  if (this.options.hash && this._hash.parseHash(location.hash)) {
656
657
  // FIXME An invalid hash will cause the load to fail
657
658
  this._hash.update()
658
659
  } else if (this.options.defaultView === 'locate' && !this.options.noControl) {
659
- // When using locate as default map view AND activating easing
660
- // Leaflet.locate will ask the map view to compute transition to user
661
- // position, so in this case we do need a default center, so let's
662
- // set it anyway
663
- this._setDefaultCenter()
664
660
  this._controls.locate.start()
665
661
  } else if (this.options.defaultView === 'data') {
666
- this.onceDataLoaded(() => {
667
- if (!this.fitDataBounds()) return this._setDefaultCenter()
668
- })
662
+ this.onceDataLoaded(this.fitDataBounds)
669
663
  } else if (this.options.defaultView === 'latest') {
670
664
  this.onceDataLoaded(() => {
671
- if (!this.hasData()) {
672
- this._setDefaultCenter()
673
- return
674
- }
665
+ if (!this.hasData()) return
675
666
  const datalayer = this.firstVisibleDatalayer()
676
667
  let feature
677
668
  if (datalayer) {
@@ -681,11 +672,7 @@ U.Map = L.Map.extend({
681
672
  return
682
673
  }
683
674
  }
684
- // Fallback, no datalayer or no feature found
685
- this._setDefaultCenter()
686
675
  })
687
- } else {
688
- this._setDefaultCenter()
689
676
  }
690
677
  },
691
678
 
@@ -974,6 +961,8 @@ U.Map = L.Map.extend({
974
961
  formData.append('settings', JSON.stringify(geojson))
975
962
  const uri = this.urls.get('map_save', { map_id: this.options.umap_id })
976
963
  const [data, response, error] = await this.server.post(uri, {}, formData)
964
+ // FIXME: login_required response will not be an error, so it will not
965
+ // stop code while it should
977
966
  if (!error) {
978
967
  let duration = 3000,
979
968
  alert = { content: L._('Map has been saved!'), level: 'info' }
@@ -1538,7 +1527,9 @@ U.Map = L.Map.extend({
1538
1527
  metadataFields = ['options.name', 'options.description'],
1539
1528
  title = L.DomUtil.create('h3', '', container)
1540
1529
  title.textContent = L._('Edit map properties')
1541
- const builder = new U.FormBuilder(this, metadataFields)
1530
+ const builder = new U.FormBuilder(this, metadataFields, {
1531
+ className: 'map-metadata',
1532
+ })
1542
1533
  const form = builder.build()
1543
1534
  container.appendChild(form)
1544
1535
  this._editControls(container)
@@ -609,12 +609,13 @@ U.DataLayer = L.Evented.extend({
609
609
  },
610
610
 
611
611
  autoLoaded: function () {
612
- return (
613
- (this.map.datalayersOnLoad &&
614
- this.umap_id &&
615
- this.map.datalayersOnLoad.indexOf(this.umap_id.toString()) !== -1) ||
616
- (!this.map.datalayersOnLoad && this.options.displayOnLoad)
617
- )
612
+ if (!this.map.datalayersFromQueryString) return this.options.displayOnLoad
613
+ const datalayerIds = this.map.datalayersFromQueryString
614
+ let loadMe = datalayerIds.includes(this.umap_id.toString())
615
+ if (this.options.old_id) {
616
+ loadMe = loadMe || datalayerIds.includes(this.options.old_id.toString())
617
+ }
618
+ return loadMe
618
619
  },
619
620
 
620
621
  insertBefore: function (other) {
@@ -0,0 +1,37 @@
1
+ describe('U.Map', () => {
2
+ let map, datalayer
3
+ before(async () => {
4
+ await fetchMock.mock(
5
+ /\/datalayer\/62\/\?.*/,
6
+ JSON.stringify(RESPONSES.datalayer62_GET)
7
+ )
8
+ this.options = {
9
+ umap_id: 99,
10
+ }
11
+ map = initMap({ umap_id: 99 })
12
+ const datalayer_options = defaultDatalayerData()
13
+ await map.initDataLayers([datalayer_options])
14
+ datalayer = map.getDataLayerByUmapId(62)
15
+ })
16
+ after(() => {
17
+ fetchMock.restore()
18
+ clickCancel()
19
+ resetMap()
20
+ })
21
+
22
+ describe('#localizeUrl()', function () {
23
+ it('should replace known variables', function () {
24
+ assert.equal(
25
+ map.localizeUrl('http://example.org/{zoom}'),
26
+ 'http://example.org/' + map.getZoom()
27
+ )
28
+ })
29
+
30
+ it('should keep unknown variables', function () {
31
+ assert.equal(
32
+ map.localizeUrl('http://example.org/{unkown}'),
33
+ 'http://example.org/{unkown}'
34
+ )
35
+ })
36
+ })
37
+ })
@@ -0,0 +1,111 @@
1
+ describe('U.Polygon', function () {
2
+ var p2ll, map, datalayer
3
+
4
+ before(function () {
5
+ map = initMap({ umap_id: 99 })
6
+ enableEdit()
7
+ p2ll = function (x, y) {
8
+ return map.containerPointToLatLng([x, y])
9
+ }
10
+ datalayer = map.createDataLayer()
11
+ datalayer.connectToMap()
12
+ })
13
+
14
+ after(function () {
15
+ clickCancel()
16
+ resetMap()
17
+ })
18
+
19
+ afterEach(function () {
20
+ datalayer.empty()
21
+ })
22
+
23
+ describe('#isMulti()', function () {
24
+ it('should return false for basic Polygon', function () {
25
+ var layer = new U.Polygon(
26
+ map,
27
+ [
28
+ [1, 2],
29
+ [3, 4],
30
+ [5, 6],
31
+ ],
32
+ { datalayer: datalayer }
33
+ )
34
+ assert.notOk(layer.isMulti())
35
+ })
36
+
37
+ it('should return false for nested basic Polygon', function () {
38
+ var latlngs = [[[p2ll(100, 150), p2ll(150, 200), p2ll(200, 100)]]],
39
+ layer = new U.Polygon(map, latlngs, { datalayer: datalayer })
40
+ assert.notOk(layer.isMulti())
41
+ })
42
+
43
+ it('should return false for simple Polygon with hole', function () {
44
+ var layer = new U.Polygon(
45
+ map,
46
+ [
47
+ [
48
+ [1, 2],
49
+ [3, 4],
50
+ [5, 6],
51
+ ],
52
+ [
53
+ [7, 8],
54
+ [9, 10],
55
+ [11, 12],
56
+ ],
57
+ ],
58
+ { datalayer: datalayer }
59
+ )
60
+ assert.notOk(layer.isMulti())
61
+ })
62
+
63
+ it('should return true for multi Polygon', function () {
64
+ var latLngs = [
65
+ [
66
+ [
67
+ [1, 2],
68
+ [3, 4],
69
+ [5, 6],
70
+ ],
71
+ ],
72
+ [
73
+ [
74
+ [7, 8],
75
+ [9, 10],
76
+ [11, 12],
77
+ ],
78
+ ],
79
+ ]
80
+ var layer = new U.Polygon(map, latLngs, { datalayer: datalayer })
81
+ assert.ok(layer.isMulti())
82
+ })
83
+
84
+ it('should return true for multi Polygon with hole', function () {
85
+ var latLngs = [
86
+ [
87
+ [
88
+ [10, 20],
89
+ [30, 40],
90
+ [50, 60],
91
+ ],
92
+ ],
93
+ [
94
+ [
95
+ [0, 10],
96
+ [10, 10],
97
+ [10, 0],
98
+ ],
99
+ [
100
+ [2, 3],
101
+ [2, 4],
102
+ [3, 4],
103
+ ],
104
+ ],
105
+ ]
106
+ var layer = new U.Polygon(map, latLngs, { datalayer: datalayer })
107
+ assert.ok(layer.isMulti())
108
+ })
109
+ })
110
+
111
+ })
@@ -234,72 +234,6 @@ describe('U.Polyline', function () {
234
234
  })
235
235
  })
236
236
 
237
- describe('#addShape', function () {
238
- it('"add shape" control should not be visible by default', function () {
239
- assert.notOk(qs('.umap-draw-polyline-multi'))
240
- })
241
-
242
- it('"add shape" control should be visible when editing a Polyline', function () {
243
- var layer = new U.Polyline(this.map, [p2ll(100, 100), p2ll(100, 200)], {
244
- datalayer: this.datalayer,
245
- }).addTo(this.datalayer)
246
- layer.edit()
247
- assert.ok(qs('.umap-draw-polyline-multi'))
248
- })
249
-
250
- it('"add shape" control should extend the same multi', function () {
251
- var layer = new U.Polyline(this.map, [p2ll(100, 100), p2ll(100, 200)], {
252
- datalayer: this.datalayer,
253
- }).addTo(this.datalayer)
254
- layer.edit()
255
- assert.notOk(layer.isMulti())
256
- happen.click(qs('.umap-draw-polyline-multi'))
257
- happen.at('mousemove', 300, 300)
258
- happen.at('click', 300, 300)
259
- happen.at('mousemove', 350, 300)
260
- happen.at('click', 350, 300)
261
- happen.at('click', 350, 300)
262
- assert.ok(layer.isMulti())
263
- assert.equal(this.datalayer._index.length, 1)
264
- })
265
- })
266
-
267
- describe('#transferShape', function () {
268
- it('should transfer simple line shape to another line', function () {
269
- var latlngs = [p2ll(100, 150), p2ll(100, 200), p2ll(200, 100)],
270
- layer = new U.Polyline(this.map, latlngs, {
271
- datalayer: this.datalayer,
272
- }).addTo(this.datalayer),
273
- other = new U.Polyline(this.map, [p2ll(200, 300), p2ll(300, 200)], {
274
- datalayer: this.datalayer,
275
- }).addTo(this.datalayer)
276
- assert.ok(this.map.hasLayer(layer))
277
- layer.transferShape(p2ll(150, 150), other)
278
- assert.equal(other._latlngs.length, 2)
279
- assert.deepEqual(other._latlngs[1], latlngs)
280
- assert.notOk(this.map.hasLayer(layer))
281
- })
282
-
283
- it('should transfer multi line shape to another line', function () {
284
- var latlngs = [
285
- [p2ll(100, 150), p2ll(100, 200), p2ll(200, 100)],
286
- [p2ll(200, 300), p2ll(300, 200)],
287
- ],
288
- layer = new U.Polyline(this.map, latlngs, {
289
- datalayer: this.datalayer,
290
- }).addTo(this.datalayer),
291
- other = new U.Polyline(this.map, [p2ll(250, 300), p2ll(350, 200)], {
292
- datalayer: this.datalayer,
293
- }).addTo(this.datalayer)
294
- assert.ok(this.map.hasLayer(layer))
295
- layer.transferShape(p2ll(150, 150), other)
296
- assert.equal(other._latlngs.length, 2)
297
- assert.deepEqual(other._latlngs[1], latlngs[0])
298
- assert.ok(this.map.hasLayer(layer))
299
- assert.equal(layer._latlngs.length, 1)
300
- })
301
- })
302
-
303
237
  describe('#mergeShapes', function () {
304
238
  it('should remove duplicated join point when merging', function () {
305
239
  var latlngs = [
@@ -349,54 +283,4 @@ describe('U.Polyline', function () {
349
283
  })
350
284
  })
351
285
 
352
- describe('#isolateShape', function () {
353
- it('should not allow to isolate simple line', function () {
354
- var latlngs = [p2ll(100, 150), p2ll(100, 200), p2ll(200, 100)],
355
- layer = new U.Polyline(this.map, latlngs, {
356
- datalayer: this.datalayer,
357
- }).addTo(this.datalayer)
358
- assert.equal(this.datalayer._index.length, 1)
359
- assert.ok(this.map.hasLayer(layer))
360
- layer.isolateShape(p2ll(150, 150))
361
- assert.equal(layer._latlngs.length, 3)
362
- assert.equal(this.datalayer._index.length, 1)
363
- })
364
-
365
- it('should isolate multipolyline shape', function () {
366
- var latlngs = [
367
- [p2ll(100, 150), p2ll(100, 200), p2ll(200, 100)],
368
- [[p2ll(200, 300), p2ll(300, 200)]],
369
- ],
370
- layer = new U.Polyline(this.map, latlngs, {
371
- datalayer: this.datalayer,
372
- }).addTo(this.datalayer)
373
- assert.equal(this.datalayer._index.length, 1)
374
- assert.ok(this.map.hasLayer(layer))
375
- var other = layer.isolateShape(p2ll(150, 150))
376
- assert.equal(this.datalayer._index.length, 2)
377
- assert.equal(other._latlngs.length, 3)
378
- assert.deepEqual(other._latlngs, latlngs[0])
379
- assert.ok(this.map.hasLayer(layer))
380
- assert.ok(this.map.hasLayer(other))
381
- assert.equal(layer._latlngs.length, 1)
382
- other.remove()
383
- })
384
- })
385
-
386
- describe('#clone', function () {
387
- it('should clone polyline', function () {
388
- var latlngs = [p2ll(100, 150), p2ll(100, 200), p2ll(200, 100)],
389
- layer = new U.Polyline(this.map, latlngs, {
390
- datalayer: this.datalayer,
391
- }).addTo(this.datalayer)
392
- assert.equal(this.datalayer._index.length, 1)
393
- other = layer.clone()
394
- assert.ok(this.map.hasLayer(other))
395
- assert.equal(this.datalayer._index.length, 2)
396
- // Must not be the same reference
397
- assert.notEqual(layer._latlngs, other._latlngs)
398
- assert.equal(L.Util.formatNum(layer._latlngs[0].lat), other._latlngs[0].lat)
399
- assert.equal(L.Util.formatNum(layer._latlngs[0].lng), other._latlngs[0].lng)
400
- })
401
- })
402
286
  })
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <title>Umap front Tests</title>
5
5
  <meta charset="utf-8" />
6
+ <script type="module" src="../js/modules/leaflet-configure.js" defer></script>
6
7
  <script type="module" src="../js/modules/global.js" defer></script>
7
8
 
8
9
  <script src="../vendors/editable/Path.Drag.js" defer></script>
@@ -88,15 +89,11 @@
88
89
  </script>
89
90
  <script src="./_pre.js" defer></script>
90
91
  <script src="./Map.js" defer></script>
91
- <script src="./DataLayer.js" defer></script>
92
- <script src="./TableEditor.js" defer></script>
93
92
  <script src="./Feature.js" defer></script>
94
93
  <script src="./Marker.js" defer></script>
95
94
  <script src="./Polyline.js" defer></script>
96
95
  <script src="./Polygon.js" defer></script>
97
96
  <script src="./Util.js" defer></script>
98
- <script src="./Permissions.js" defer></script>
99
- <script src="./Choropleth.js" defer></script>
100
97
  <script type="module" src="./URLs.js" defer></script>
101
98
  <style type="text/css">
102
99
  #mocha {