umap-project 2.3.1__py3-none-any.whl → 2.4.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 (204) hide show
  1. umap/__init__.py +1 -1
  2. umap/locale/en/LC_MESSAGES/django.po +81 -31
  3. umap/locale/fr/LC_MESSAGES/django.mo +0 -0
  4. umap/locale/fr/LC_MESSAGES/django.po +117 -66
  5. umap/management/commands/run_websocket_server.py +23 -0
  6. umap/models.py +6 -1
  7. umap/settings/base.py +11 -3
  8. umap/static/umap/base.css +64 -184
  9. umap/static/umap/content.css +3 -2
  10. umap/static/umap/css/dialog.css +18 -0
  11. umap/static/umap/css/icon.css +8 -0
  12. umap/static/umap/css/importers.css +51 -0
  13. umap/static/umap/css/panel.css +18 -57
  14. umap/static/umap/css/tooltip.css +59 -0
  15. umap/static/umap/css/window.css +35 -0
  16. umap/static/umap/img/16-white.svg +1 -3
  17. umap/static/umap/img/alert-icon-error.svg +8 -0
  18. umap/static/umap/img/alert-icon-info.svg +4 -0
  19. umap/static/umap/img/alert-icon-success.svg +3 -0
  20. umap/static/umap/img/icon-external-link.svg +3 -0
  21. umap/static/umap/img/importers/communesfr.svg +5 -0
  22. umap/static/umap/img/importers/datasets.svg +13 -0
  23. umap/static/umap/img/importers/geodatamine.svg +10 -0
  24. umap/static/umap/img/importers/overpass.svg +7 -0
  25. umap/static/umap/img/importers/random.svg +18 -0
  26. umap/static/umap/img/importers/random1.svg +4 -0
  27. umap/static/umap/img/importers/random2.svg +4 -0
  28. umap/static/umap/img/source/16-white.svg +2 -4
  29. umap/static/umap/js/components/alerts/alert.css +160 -0
  30. umap/static/umap/js/components/alerts/alert.js +169 -0
  31. umap/static/umap/js/components/base.js +54 -0
  32. umap/static/umap/js/modules/autocomplete.js +347 -0
  33. umap/static/umap/js/modules/browser.js +6 -6
  34. umap/static/umap/js/modules/caption.js +5 -4
  35. umap/static/umap/js/modules/global.js +36 -12
  36. umap/static/umap/js/modules/help.js +255 -0
  37. umap/static/umap/js/modules/importer.js +308 -0
  38. umap/static/umap/js/modules/importers/communesfr.js +44 -0
  39. umap/static/umap/js/modules/importers/datasets.js +42 -0
  40. umap/static/umap/js/modules/importers/geodatamine.js +95 -0
  41. umap/static/umap/js/modules/importers/overpass.js +84 -0
  42. umap/static/umap/js/modules/request.js +12 -14
  43. umap/static/umap/js/modules/rules.js +241 -0
  44. umap/static/umap/js/modules/schema.js +63 -14
  45. umap/static/umap/js/modules/sync/engine.js +93 -0
  46. umap/static/umap/js/modules/sync/updaters.js +109 -0
  47. umap/static/umap/js/modules/sync/websocket.js +25 -0
  48. umap/static/umap/js/modules/ui/dialog.js +52 -0
  49. umap/static/umap/js/modules/{panel.js → ui/panel.js} +25 -14
  50. umap/static/umap/js/modules/ui/tooltip.js +116 -0
  51. umap/static/umap/js/modules/utils.js +25 -18
  52. umap/static/umap/js/umap.controls.js +13 -14
  53. umap/static/umap/js/umap.core.js +1 -324
  54. umap/static/umap/js/umap.features.js +77 -29
  55. umap/static/umap/js/umap.forms.js +9 -13
  56. umap/static/umap/js/umap.js +254 -215
  57. umap/static/umap/js/umap.layer.js +152 -74
  58. umap/static/umap/js/umap.permissions.js +5 -9
  59. umap/static/umap/js/umap.popup.js +1 -1
  60. umap/static/umap/js/umap.tableeditor.js +8 -8
  61. umap/static/umap/locale/am_ET.js +51 -16
  62. umap/static/umap/locale/am_ET.json +51 -16
  63. umap/static/umap/locale/ar.js +51 -16
  64. umap/static/umap/locale/ar.json +51 -16
  65. umap/static/umap/locale/ast.js +51 -16
  66. umap/static/umap/locale/ast.json +51 -16
  67. umap/static/umap/locale/bg.js +51 -16
  68. umap/static/umap/locale/bg.json +51 -16
  69. umap/static/umap/locale/br.js +55 -20
  70. umap/static/umap/locale/br.json +55 -20
  71. umap/static/umap/locale/ca.js +51 -16
  72. umap/static/umap/locale/ca.json +51 -16
  73. umap/static/umap/locale/cs_CZ.js +93 -58
  74. umap/static/umap/locale/cs_CZ.json +93 -58
  75. umap/static/umap/locale/da.js +51 -16
  76. umap/static/umap/locale/da.json +51 -16
  77. umap/static/umap/locale/de.js +56 -21
  78. umap/static/umap/locale/de.json +56 -21
  79. umap/static/umap/locale/el.js +51 -16
  80. umap/static/umap/locale/el.json +51 -16
  81. umap/static/umap/locale/en.js +52 -16
  82. umap/static/umap/locale/en.json +52 -16
  83. umap/static/umap/locale/en_US.json +51 -16
  84. umap/static/umap/locale/es.js +51 -16
  85. umap/static/umap/locale/es.json +51 -16
  86. umap/static/umap/locale/et.js +51 -16
  87. umap/static/umap/locale/et.json +51 -16
  88. umap/static/umap/locale/eu.js +51 -16
  89. umap/static/umap/locale/eu.json +51 -16
  90. umap/static/umap/locale/fa_IR.js +51 -16
  91. umap/static/umap/locale/fa_IR.json +51 -16
  92. umap/static/umap/locale/fi.js +51 -16
  93. umap/static/umap/locale/fi.json +51 -16
  94. umap/static/umap/locale/fr.js +61 -25
  95. umap/static/umap/locale/fr.json +61 -25
  96. umap/static/umap/locale/gl.js +51 -16
  97. umap/static/umap/locale/gl.json +51 -16
  98. umap/static/umap/locale/he.js +51 -16
  99. umap/static/umap/locale/he.json +51 -16
  100. umap/static/umap/locale/hr.js +51 -16
  101. umap/static/umap/locale/hr.json +51 -16
  102. umap/static/umap/locale/hu.js +51 -16
  103. umap/static/umap/locale/hu.json +51 -16
  104. umap/static/umap/locale/id.js +51 -16
  105. umap/static/umap/locale/id.json +51 -16
  106. umap/static/umap/locale/is.js +51 -16
  107. umap/static/umap/locale/is.json +51 -16
  108. umap/static/umap/locale/it.js +51 -16
  109. umap/static/umap/locale/it.json +51 -16
  110. umap/static/umap/locale/ja.js +51 -16
  111. umap/static/umap/locale/ja.json +51 -16
  112. umap/static/umap/locale/ko.js +51 -16
  113. umap/static/umap/locale/ko.json +51 -16
  114. umap/static/umap/locale/lt.js +51 -16
  115. umap/static/umap/locale/lt.json +51 -16
  116. umap/static/umap/locale/ms.js +51 -16
  117. umap/static/umap/locale/ms.json +51 -16
  118. umap/static/umap/locale/nl.js +51 -16
  119. umap/static/umap/locale/nl.json +51 -16
  120. umap/static/umap/locale/no.js +51 -16
  121. umap/static/umap/locale/no.json +51 -16
  122. umap/static/umap/locale/pl.js +93 -58
  123. umap/static/umap/locale/pl.json +93 -58
  124. umap/static/umap/locale/pl_PL.json +51 -16
  125. umap/static/umap/locale/pt.js +215 -180
  126. umap/static/umap/locale/pt.json +215 -180
  127. umap/static/umap/locale/pt_BR.js +51 -16
  128. umap/static/umap/locale/pt_BR.json +51 -16
  129. umap/static/umap/locale/pt_PT.js +51 -16
  130. umap/static/umap/locale/pt_PT.json +51 -16
  131. umap/static/umap/locale/ro.js +51 -16
  132. umap/static/umap/locale/ro.json +51 -16
  133. umap/static/umap/locale/ru.js +51 -16
  134. umap/static/umap/locale/ru.json +51 -16
  135. umap/static/umap/locale/si.js +51 -16
  136. umap/static/umap/locale/si.json +51 -16
  137. umap/static/umap/locale/sk_SK.js +51 -16
  138. umap/static/umap/locale/sk_SK.json +51 -16
  139. umap/static/umap/locale/sl.js +51 -16
  140. umap/static/umap/locale/sl.json +51 -16
  141. umap/static/umap/locale/sr.js +51 -16
  142. umap/static/umap/locale/sr.json +51 -16
  143. umap/static/umap/locale/sv.js +51 -16
  144. umap/static/umap/locale/sv.json +51 -16
  145. umap/static/umap/locale/th_TH.js +51 -16
  146. umap/static/umap/locale/th_TH.json +51 -16
  147. umap/static/umap/locale/tr.js +51 -16
  148. umap/static/umap/locale/tr.json +51 -16
  149. umap/static/umap/locale/uk_UA.js +51 -16
  150. umap/static/umap/locale/uk_UA.json +51 -16
  151. umap/static/umap/locale/vi.js +51 -16
  152. umap/static/umap/locale/vi.json +51 -16
  153. umap/static/umap/locale/vi_VN.json +51 -16
  154. umap/static/umap/locale/zh.js +51 -16
  155. umap/static/umap/locale/zh.json +51 -16
  156. umap/static/umap/locale/zh_CN.json +51 -16
  157. umap/static/umap/locale/zh_TW.Big5.json +51 -16
  158. umap/static/umap/locale/zh_TW.js +51 -16
  159. umap/static/umap/locale/zh_TW.json +51 -16
  160. umap/static/umap/map.css +40 -53
  161. umap/static/umap/unittests/sync.js +105 -0
  162. umap/static/umap/unittests/utils.js +78 -36
  163. umap/static/umap/vars.css +19 -1
  164. umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +2 -2
  165. umap/templates/umap/components/alerts/alert.html +89 -0
  166. umap/templates/umap/content.html +4 -3
  167. umap/templates/umap/css.html +4 -0
  168. umap/templates/umap/home.html +3 -0
  169. umap/templates/umap/js.html +0 -3
  170. umap/templates/umap/map_init.html +2 -8
  171. umap/templates/umap/messages.html +9 -11
  172. umap/templates/umap/search.html +3 -0
  173. umap/tests/base.py +2 -0
  174. umap/tests/integration/conftest.py +30 -0
  175. umap/tests/integration/test_anonymous_owned_map.py +8 -13
  176. umap/tests/integration/test_browser.py +77 -4
  177. umap/tests/integration/test_conditional_rules.py +201 -0
  178. umap/tests/integration/test_dashboard.py +1 -1
  179. umap/tests/integration/test_datalayer.py +2 -3
  180. umap/tests/integration/test_edit_datalayer.py +4 -4
  181. umap/tests/integration/test_edit_map.py +1 -1
  182. umap/tests/integration/test_facets_browser.py +3 -3
  183. umap/tests/integration/test_import.py +185 -49
  184. umap/tests/integration/test_map.py +31 -2
  185. umap/tests/integration/{test_collaborative_editing.py → test_optimistic_merge.py} +7 -7
  186. umap/tests/integration/test_owned_map.py +1 -1
  187. umap/tests/integration/test_picto.py +2 -2
  188. umap/tests/integration/test_statics.py +1 -1
  189. umap/tests/integration/test_view_marker.py +2 -2
  190. umap/tests/integration/test_websocket_sync.py +283 -0
  191. umap/tests/settings.py +5 -0
  192. umap/tests/test_datalayer_views.py +0 -1
  193. umap/tests/test_views.py +53 -0
  194. umap/urls.py +5 -0
  195. umap/views.py +40 -11
  196. umap/websocket_server.py +92 -0
  197. {umap_project-2.3.1.dist-info → umap_project-2.4.0.dist-info}/METADATA +10 -8
  198. {umap_project-2.3.1.dist-info → umap_project-2.4.0.dist-info}/RECORD +201 -167
  199. umap/static/umap/js/umap.autocomplete.js +0 -341
  200. umap/static/umap/js/umap.importer.js +0 -187
  201. umap/static/umap/js/umap.ui.js +0 -190
  202. {umap_project-2.3.1.dist-info → umap_project-2.4.0.dist-info}/WHEEL +0 -0
  203. {umap_project-2.3.1.dist-info → umap_project-2.4.0.dist-info}/entry_points.txt +0 -0
  204. {umap_project-2.3.1.dist-info → umap_project-2.4.0.dist-info}/licenses/LICENSE +0 -0
umap/__init__.py CHANGED
@@ -1 +1 @@
1
- VERSION = "2.3.1"
1
+ VERSION = "2.4.0"
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: PACKAGE VERSION\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2024-04-24 19:16+0000\n"
11
+ "POT-Creation-Date: 2024-06-21 19:58+0000\n"
12
12
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -25,7 +25,7 @@ msgstr ""
25
25
  msgid "Everyone can edit"
26
26
  msgstr ""
27
27
 
28
- #: forms.py:69 models.py:384
28
+ #: forms.py:69 models.py:389
29
29
  msgid "Inherit"
30
30
  msgstr ""
31
31
 
@@ -53,15 +53,15 @@ msgstr ""
53
53
  msgid "Order of the tilelayers in the edit box"
54
54
  msgstr ""
55
55
 
56
- #: models.py:147 models.py:385
56
+ #: models.py:147 models.py:390
57
57
  msgid "Everyone"
58
58
  msgstr ""
59
59
 
60
- #: models.py:148 models.py:154 models.py:386
60
+ #: models.py:148 models.py:154 models.py:391
61
61
  msgid "Editors only"
62
62
  msgstr ""
63
63
 
64
- #: models.py:149 models.py:387
64
+ #: models.py:149 models.py:392
65
65
  msgid "Owner only"
66
66
  msgstr ""
67
67
 
@@ -109,7 +109,7 @@ msgstr ""
109
109
  msgid "editors"
110
110
  msgstr ""
111
111
 
112
- #: models.py:186 models.py:408
112
+ #: models.py:186 models.py:413
113
113
  msgid "edit status"
114
114
  msgstr ""
115
115
 
@@ -117,23 +117,23 @@ msgstr ""
117
117
  msgid "share status"
118
118
  msgstr ""
119
119
 
120
- #: models.py:194 models.py:403
120
+ #: models.py:194 models.py:408
121
121
  msgid "settings"
122
122
  msgstr ""
123
123
 
124
- #: models.py:325
124
+ #: models.py:330
125
125
  msgid "Clone of"
126
126
  msgstr ""
127
127
 
128
- #: models.py:394
128
+ #: models.py:399
129
129
  msgid "description"
130
130
  msgstr ""
131
131
 
132
- #: models.py:398
132
+ #: models.py:403
133
133
  msgid "display on load"
134
134
  msgstr ""
135
135
 
136
- #: models.py:399
136
+ #: models.py:404
137
137
  msgid "Display this layer on load."
138
138
  msgstr ""
139
139
 
@@ -262,13 +262,59 @@ msgstr ""
262
262
  msgid "Play with the demo"
263
263
  msgstr ""
264
264
 
265
- #: templates/umap/content.html:22
265
+ #: templates/umap/components/alerts/alert.html:14
266
+ #: templates/umap/components/alerts/alert.html:49
267
+ #: templates/umap/components/alerts/alert.html:71
268
+ msgid "Close"
269
+ msgstr ""
270
+
271
+ #: templates/umap/components/alerts/alert.html:27
272
+ #, python-format
273
+ msgid ""
274
+ "Pro-tip: to easily find back your maps, <a href=\"%(login_url)s\" "
275
+ "target=\"_blank\">create an account</a> or <a href=\"%(login_url)s\" "
276
+ "target=\"_blank\">log in</a>."
277
+ msgstr ""
278
+
279
+ #: templates/umap/components/alerts/alert.html:30
280
+ msgid "Here is your secret link to edit the map, please keep it safe:"
281
+ msgstr ""
282
+
283
+ #: templates/umap/components/alerts/alert.html:33
284
+ msgid "Copy link"
285
+ msgstr ""
286
+
287
+ #: templates/umap/components/alerts/alert.html:39
288
+ msgid "Enter your email address to receive the secret link:"
289
+ msgstr ""
290
+
291
+ #: templates/umap/components/alerts/alert.html:41
292
+ msgid "Email"
293
+ msgstr ""
294
+
295
+ #: templates/umap/components/alerts/alert.html:42
296
+ msgid "Send me the link"
297
+ msgstr ""
298
+
299
+ #: templates/umap/components/alerts/alert.html:63
300
+ msgid "See their edits in another tab"
301
+ msgstr ""
302
+
303
+ #: templates/umap/components/alerts/alert.html:64
304
+ msgid "Keep your changes and loose theirs"
305
+ msgstr ""
306
+
307
+ #: templates/umap/components/alerts/alert.html:65
308
+ msgid "Keep their changes and loose yours"
309
+ msgstr ""
310
+
311
+ #: templates/umap/content.html:24
266
312
  msgid ""
267
313
  "This instance of uMap is currently in read only mode, no creation/edit is "
268
314
  "allowed."
269
315
  msgstr ""
270
316
 
271
- #: templates/umap/content.html:30
317
+ #: templates/umap/content.html:32
272
318
  #, python-format
273
319
  msgid ""
274
320
  "This is a demo instance, used for tests and pre-rolling releases. If you "
@@ -277,11 +323,11 @@ msgid ""
277
323
  "instance, it's <a href=\"%(repo_url)s\">open source</a>!"
278
324
  msgstr ""
279
325
 
280
- #: templates/umap/home.html:8
326
+ #: templates/umap/home.html:11
281
327
  msgid "Map of the uMaps"
282
328
  msgstr ""
283
329
 
284
- #: templates/umap/home.html:14
330
+ #: templates/umap/home.html:17
285
331
  msgid "Get inspired, browse maps"
286
332
  msgstr ""
287
333
 
@@ -289,7 +335,7 @@ msgstr ""
289
335
  msgid "You are logged in. Continuing..."
290
336
  msgstr ""
291
337
 
292
- #: templates/umap/map_list.html:9 views.py:349
338
+ #: templates/umap/map_list.html:9 views.py:348
293
339
  msgid "by"
294
340
  msgstr ""
295
341
 
@@ -446,18 +492,18 @@ msgstr ""
446
492
  msgid "Your password was changed."
447
493
  msgstr ""
448
494
 
449
- #: templates/umap/search.html:10
495
+ #: templates/umap/search.html:13
450
496
  #, python-format
451
497
  msgid "%(count)s map found:"
452
498
  msgid_plural "%(count)s maps found:"
453
499
  msgstr[0] ""
454
500
  msgstr[1] ""
455
501
 
456
- #: templates/umap/search.html:18
502
+ #: templates/umap/search.html:21
457
503
  msgid "No map found."
458
504
  msgstr ""
459
505
 
460
- #: templates/umap/search.html:21
506
+ #: templates/umap/search.html:24
461
507
  msgid "Latest created maps"
462
508
  msgstr ""
463
509
 
@@ -495,57 +541,61 @@ msgstr ""
495
541
  msgid "You have no map yet."
496
542
  msgstr ""
497
543
 
498
- #: views.py:354
544
+ #: views.py:353
499
545
  msgid "View the map"
500
546
  msgstr ""
501
547
 
502
- #: views.py:716
548
+ #: views.py:718
503
549
  msgid "See full screen"
504
550
  msgstr ""
505
551
 
506
- #: views.py:817
552
+ #: views.py:846
507
553
  msgid "Map editors updated with success!"
508
554
  msgstr ""
509
555
 
510
- #: views.py:854
556
+ #: views.py:882
511
557
  #, python-format
512
558
  msgid "The uMap edit link for your map: %(map_name)s"
513
559
  msgstr ""
514
560
 
515
- #: views.py:857
561
+ #: views.py:885
516
562
  #, python-format
517
563
  msgid "Here is your secret edit link: %(link)s"
518
564
  msgstr ""
519
565
 
520
- #: views.py:864
566
+ #: views.py:892
521
567
  #, python-format
522
568
  msgid "Can't send email to %(email)s"
523
569
  msgstr ""
524
570
 
525
- #: views.py:867
571
+ #: views.py:895
526
572
  #, python-format
527
573
  msgid "Email sent to %(email)s"
528
574
  msgstr ""
529
575
 
530
- #: views.py:878
576
+ #: views.py:906
531
577
  msgid "Only its owner can delete the map."
532
578
  msgstr ""
533
579
 
534
- #: views.py:906
580
+ #: views.py:909
581
+ msgid "Map successfully deleted."
582
+ msgstr ""
583
+
584
+ #: views.py:935
535
585
  #, python-format
536
586
  msgid ""
537
587
  "Your map has been cloned! If you want to edit this map from another "
538
588
  "computer, please use this link: %(anonymous_url)s"
539
589
  msgstr ""
540
590
 
541
- #: views.py:911
591
+ #: views.py:940
542
592
  msgid "Congratulations, your map has been cloned!"
543
593
  msgstr ""
544
594
 
545
- #: views.py:1146
595
+ #: views.py:1175
546
596
  msgid "Layer successfully deleted."
547
597
  msgstr ""
548
598
 
549
- #: views.py:1168
599
+ #: views.py:1197
550
600
  msgid "Permissions updated with success!"
551
601
  msgstr ""
Binary file
@@ -8,6 +8,7 @@
8
8
  # Buggi, 2013
9
9
  # Buggi, 2013
10
10
  # Buggi, 2013
11
+ # Larlet David <david@larlet.fr>, 2024
11
12
  # Philippe Verdy, 2017
12
13
  # severin.menard <severin.menard@protonmail.com>, 2014
13
14
  # severin.menard <severin.menard@protonmail.com>, 2014
@@ -23,9 +24,9 @@ msgid ""
23
24
  msgstr ""
24
25
  "Project-Id-Version: uMap\n"
25
26
  "Report-Msgid-Bugs-To: \n"
26
- "POT-Creation-Date: 2024-03-01 16:51+0000\n"
27
+ "POT-Creation-Date: 2024-06-14 17:49+0000\n"
27
28
  "PO-Revision-Date: 2013-11-22 14:00+0000\n"
28
- "Last-Translator: yohanboniface <yohanboniface@free.fr>, 2013-2014,2018-2019,2023-2024\n"
29
+ "Last-Translator: Larlet David <david@larlet.fr>, 2024\n"
29
30
  "Language-Team: French (http://app.transifex.com/openstreetmap/umap/language/fr/)\n"
30
31
  "MIME-Version: 1.0\n"
31
32
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -41,7 +42,7 @@ msgstr "Modifiable seulement avec le lien de modification secret"
41
42
  msgid "Everyone can edit"
42
43
  msgstr "Tout le monde peut modifier"
43
44
 
44
- #: forms.py:69 models.py:371
45
+ #: forms.py:69 models.py:389
45
46
  msgid "Inherit"
46
47
  msgstr "Par défaut"
47
48
 
@@ -49,107 +50,107 @@ msgstr "Par défaut"
49
50
  msgid "Site is readonly for maintenance"
50
51
  msgstr "Le site est en lecture seule pour maintenance."
51
52
 
52
- #: models.py:50
53
+ #: models.py:53
53
54
  msgid "name"
54
55
  msgstr "nom"
55
56
 
56
- #: models.py:81
57
+ #: models.py:84
57
58
  msgid "details"
58
59
  msgstr "détails"
59
60
 
60
- #: models.py:82
61
+ #: models.py:85
61
62
  msgid "Link to a page where the licence is detailed."
62
63
  msgstr "Lien vers une page détaillant la licence."
63
64
 
64
- #: models.py:92
65
+ #: models.py:95
65
66
  msgid "URL template using OSM tile format"
66
67
  msgstr "Modèle d'URL au format des tuiles OSM"
67
68
 
68
- #: models.py:98
69
+ #: models.py:101
69
70
  msgid "Order of the tilelayers in the edit box"
70
71
  msgstr "Ordre des calques de tuiles dans le panneau de modification"
71
72
 
72
- #: models.py:144 models.py:372
73
+ #: models.py:147 models.py:390
73
74
  msgid "Everyone"
74
75
  msgstr "Tout le monde"
75
76
 
76
- #: models.py:145 models.py:151 models.py:373
77
+ #: models.py:148 models.py:154 models.py:391
77
78
  msgid "Editors only"
78
79
  msgstr "Éditeurs uniquement"
79
80
 
80
- #: models.py:146 models.py:374
81
+ #: models.py:149 models.py:392
81
82
  msgid "Owner only"
82
83
  msgstr "Propriétaire uniquement"
83
84
 
84
- #: models.py:149
85
+ #: models.py:152
85
86
  msgid "Everyone (public)"
86
87
  msgstr "Tout le monde (public)"
87
88
 
88
- #: models.py:150
89
+ #: models.py:153
89
90
  msgid "Anyone with link"
90
91
  msgstr "Quiconque a le lien"
91
92
 
92
- #: models.py:152
93
+ #: models.py:155
93
94
  msgid "Blocked"
94
95
  msgstr "Bloquée"
95
96
 
96
- #: models.py:155 models.py:378
97
- msgid "description"
98
- msgstr "description"
99
-
100
- #: models.py:156
97
+ #: models.py:158
101
98
  msgid "center"
102
99
  msgstr "centre"
103
100
 
104
- #: models.py:157
101
+ #: models.py:159
105
102
  msgid "zoom"
106
103
  msgstr "zoom"
107
104
 
108
- #: models.py:159
105
+ #: models.py:161
109
106
  msgid "locate"
110
107
  msgstr "géolocaliser"
111
108
 
112
- #: models.py:159
109
+ #: models.py:161
113
110
  msgid "Locate user on load?"
114
111
  msgstr "Géolocaliser l'utilisateur au chargement ?"
115
112
 
116
- #: models.py:163
113
+ #: models.py:165
117
114
  msgid "Choose the map licence."
118
115
  msgstr "Choisir une licence pour la carte"
119
116
 
120
- #: models.py:164
117
+ #: models.py:166
121
118
  msgid "licence"
122
119
  msgstr "licence"
123
120
 
124
- #: models.py:175
121
+ #: models.py:177
125
122
  msgid "owner"
126
123
  msgstr "créateur"
127
124
 
128
- #: models.py:179
125
+ #: models.py:181
129
126
  msgid "editors"
130
127
  msgstr "éditeurs"
131
128
 
132
- #: models.py:184 models.py:392
129
+ #: models.py:186 models.py:413
133
130
  msgid "edit status"
134
131
  msgstr "statut de modification"
135
132
 
136
- #: models.py:189
133
+ #: models.py:191
137
134
  msgid "share status"
138
135
  msgstr "qui a accès"
139
136
 
140
- #: models.py:192 models.py:387
137
+ #: models.py:194 models.py:408
141
138
  msgid "settings"
142
139
  msgstr "réglages"
143
140
 
144
- #: models.py:320
141
+ #: models.py:330
145
142
  msgid "Clone of"
146
143
  msgstr "Clone de"
147
144
 
148
- #: models.py:382
145
+ #: models.py:399
146
+ msgid "description"
147
+ msgstr "description"
148
+
149
+ #: models.py:403
149
150
  msgid "display on load"
150
151
  msgstr "afficher au chargement."
151
152
 
152
- #: models.py:383
153
+ #: models.py:404
153
154
  msgid "Display this layer on load."
154
155
  msgstr "Afficher ce calque au chargement."
155
156
 
@@ -267,7 +268,7 @@ msgstr "Exporter et partager votre carte"
267
268
  #: templates/umap/about_summary.html:37
268
269
  #, python-format
269
270
  msgid "And it's <a href=\"%(repo_url)s\">open source</a>!"
270
- msgstr "Et c'est <a href=\"%(repo_url)s\">open source</a>!"
271
+ msgstr "Et c'est <a href=\"%(repo_url)s\">open source</a> !"
271
272
 
272
273
  #: templates/umap/about_summary.html:48 templates/umap/navigation.html:38
273
274
  #: templates/umap/user_dashboard.html:42
@@ -278,26 +279,72 @@ msgstr "Créer une carte"
278
279
  msgid "Play with the demo"
279
280
  msgstr "Tester la démo"
280
281
 
281
- #: templates/umap/content.html:22
282
+ #: templates/umap/components/alerts/alert.html:14
283
+ #: templates/umap/components/alerts/alert.html:49
284
+ #: templates/umap/components/alerts/alert.html:71
285
+ msgid "Close"
286
+ msgstr "Fermer"
287
+
288
+ #: templates/umap/components/alerts/alert.html:27
289
+ #, python-format
290
+ msgid ""
291
+ "Pro-tip: to easily find back your maps, <a href=\"%(login_url)s\" "
292
+ "target=\"_blank\">create an account</a> or <a href=\"%(login_url)s\" "
293
+ "target=\"_blank\">log in</a>."
294
+ msgstr "Astuce : pour retrouver facilement vos cartes, <a href=\"%(login_url)s\" target=\"_blank\">créez un compte</a> ou <a href=\"%(login_url)s\" target=\"_blank\">identifiez-vous</a>."
295
+
296
+ #: templates/umap/components/alerts/alert.html:30
297
+ msgid "Here is your secret link to edit the map, please keep it safe:"
298
+ msgstr "Ceci est le lien d'édition secret, gardez-le en lieu sûr :"
299
+
300
+ #: templates/umap/components/alerts/alert.html:33
301
+ msgid "Copy link"
302
+ msgstr "Copier le lien"
303
+
304
+ #: templates/umap/components/alerts/alert.html:39
305
+ msgid "Enter your email address to receive the secret link:"
306
+ msgstr "Entrez votre courriel pour recevoir le lien secret :"
307
+
308
+ #: templates/umap/components/alerts/alert.html:41
309
+ msgid "Email"
310
+ msgstr "Courriel"
311
+
312
+ #: templates/umap/components/alerts/alert.html:42
313
+ msgid "Send me the link"
314
+ msgstr "Envoyer le lien"
315
+
316
+ #: templates/umap/components/alerts/alert.html:63
317
+ msgid "See their edits in another tab"
318
+ msgstr "Voir leurs changements dans un nouvel onglet"
319
+
320
+ #: templates/umap/components/alerts/alert.html:64
321
+ msgid "Keep your changes and loose theirs"
322
+ msgstr "Garder mes changements et écraser les leurs"
323
+
324
+ #: templates/umap/components/alerts/alert.html:65
325
+ msgid "Keep their changes and loose yours"
326
+ msgstr "Garder leurs changements et écraser les miens"
327
+
328
+ #: templates/umap/content.html:24
282
329
  msgid ""
283
330
  "This instance of uMap is currently in read only mode, no creation/edit is "
284
331
  "allowed."
285
332
  msgstr "uMap est actuellement en mode lecture seule, aucune création ou modification n'est possible."
286
333
 
287
- #: templates/umap/content.html:30
334
+ #: templates/umap/content.html:32
288
335
  #, python-format
289
336
  msgid ""
290
337
  "This is a demo instance, used for tests and pre-rolling releases. If you "
291
338
  "need a stable instance, please use <a "
292
339
  "href=\"%(stable_url)s\">%(stable_url)s</a>. You can also host your own "
293
340
  "instance, it's <a href=\"%(repo_url)s\">open source</a>!"
294
- msgstr "Il s'agit d'un site de démonstration, utilisé pour les tests et validation avant diffusion. Si vous avez besoin d'une version stable, utilisez plutôt <a href=\"%(stable_url)s\">%(stable_url)s</a>. Vous pouvez aussi mettre en place votre propre version, c'est <a href=\"%(repo_url)s\">open source</a>!"
341
+ msgstr "Il s'agit d'un site de démonstration, utilisé pour les tests et validation avant diffusion. Si vous avez besoin d'une version stable, utilisez plutôt <a href=\"%(stable_url)s\">%(stable_url)s</a>. Vous pouvez aussi mettre en place votre propre version, c'est <a href=\"%(repo_url)s\">open source</a> !"
295
342
 
296
- #: templates/umap/home.html:8
343
+ #: templates/umap/home.html:11
297
344
  msgid "Map of the uMaps"
298
345
  msgstr "La carte des uMaps"
299
346
 
300
- #: templates/umap/home.html:14
347
+ #: templates/umap/home.html:17
301
348
  msgid "Get inspired, browse maps"
302
349
  msgstr "Naviguer dans les cartes"
303
350
 
@@ -305,7 +352,7 @@ msgstr "Naviguer dans les cartes"
305
352
  msgid "You are logged in. Continuing..."
306
353
  msgstr "Vous êtes maintenant identifié. Merci de patienter..."
307
354
 
308
- #: templates/umap/map_list.html:9 views.py:342
355
+ #: templates/umap/map_list.html:9 views.py:348
309
356
  msgid "by"
310
357
  msgstr "par"
311
358
 
@@ -361,37 +408,37 @@ msgstr "Télécharger"
361
408
  msgid "Clone"
362
409
  msgstr "Cloner"
363
410
 
364
- #: templates/umap/map_table.html:76 templates/umap/map_table.html:78
411
+ #: templates/umap/map_table.html:77 templates/umap/map_table.html:79
365
412
  msgid "Delete"
366
413
  msgstr "Supprimer"
367
414
 
368
- #: templates/umap/map_table.html:91
415
+ #: templates/umap/map_table.html:93
369
416
  msgid "first"
370
417
  msgstr "début"
371
418
 
372
- #: templates/umap/map_table.html:92
419
+ #: templates/umap/map_table.html:94
373
420
  msgid "previous"
374
421
  msgstr "précédente"
375
422
 
376
- #: templates/umap/map_table.html:100
423
+ #: templates/umap/map_table.html:102
377
424
  #, python-format
378
425
  msgid "Page %(maps_number)s of %(num_pages)s"
379
426
  msgstr "Page %(maps_number)s de %(num_pages)s"
380
427
 
381
- #: templates/umap/map_table.html:105
428
+ #: templates/umap/map_table.html:107
382
429
  msgid "next"
383
430
  msgstr "suivante"
384
431
 
385
- #: templates/umap/map_table.html:106
432
+ #: templates/umap/map_table.html:108
386
433
  msgid "last"
387
434
  msgstr "fin"
388
435
 
389
- #: templates/umap/map_table.html:114
436
+ #: templates/umap/map_table.html:116
390
437
  #, python-format
391
438
  msgid "Lines per page: %(per_page)s"
392
- msgstr "Lignes par page: %(per_page)s"
439
+ msgstr "Lignes par page : %(per_page)s"
393
440
 
394
- #: templates/umap/map_table.html:119
441
+ #: templates/umap/map_table.html:121
395
442
  #, python-format
396
443
  msgid "%(count)s maps"
397
444
  msgstr "%(count)s cartes"
@@ -462,19 +509,19 @@ msgstr "Le mot de passe a été modifié"
462
509
  msgid "Your password was changed."
463
510
  msgstr "Votre mot de passe a été modifié"
464
511
 
465
- #: templates/umap/search.html:10
512
+ #: templates/umap/search.html:13
466
513
  #, python-format
467
514
  msgid "%(count)s map found:"
468
515
  msgid_plural "%(count)s maps found:"
469
516
  msgstr[0] "%(count)s carte trouvée:"
470
517
  msgstr[1] "%(count)s cartes trouvées:"
471
- msgstr[2] "%(count)s cartes trouvées:"
518
+ msgstr[2] "%(count)s cartes trouvées :"
472
519
 
473
- #: templates/umap/search.html:18
520
+ #: templates/umap/search.html:21
474
521
  msgid "No map found."
475
522
  msgstr "Aucune carte trouvée."
476
523
 
477
- #: templates/umap/search.html:21
524
+ #: templates/umap/search.html:24
478
525
  msgid "Latest created maps"
479
526
  msgstr "Dernières cartes créées."
480
527
 
@@ -512,57 +559,61 @@ msgstr "Télécharger %(count)s cartes"
512
559
  msgid "You have no map yet."
513
560
  msgstr "Vous n'avez pas encore de carte."
514
561
 
515
- #: views.py:347
562
+ #: views.py:353
516
563
  msgid "View the map"
517
564
  msgstr "Voir la carte"
518
565
 
519
- #: views.py:705
566
+ #: views.py:718
520
567
  msgid "See full screen"
521
568
  msgstr "Plein écran"
522
569
 
523
- #: views.py:804
570
+ #: views.py:846
524
571
  msgid "Map editors updated with success!"
525
572
  msgstr "Éditeurs de la carte mis à jour !"
526
573
 
527
- #: views.py:841
574
+ #: views.py:883
528
575
  #, python-format
529
576
  msgid "The uMap edit link for your map: %(map_name)s"
530
- msgstr "La lien d'édition uMap pour votre carte %(map_name)s"
577
+ msgstr "La lien d'édition uMap pour votre carte : %(map_name)s"
531
578
 
532
- #: views.py:844
579
+ #: views.py:886
533
580
  #, python-format
534
581
  msgid "Here is your secret edit link: %(link)s"
535
- msgstr "Voici votre lien d'édition secret: %(link)s"
582
+ msgstr "Voici votre lien d'édition secret : %(link)s"
536
583
 
537
- #: views.py:851
584
+ #: views.py:893
538
585
  #, python-format
539
586
  msgid "Can't send email to %(email)s"
540
587
  msgstr "Impossible d'envoyer un courriel vers %(email)s"
541
588
 
542
- #: views.py:854
589
+ #: views.py:896
543
590
  #, python-format
544
591
  msgid "Email sent to %(email)s"
545
592
  msgstr "Courriel envoyé à %(email)s"
546
593
 
547
- #: views.py:865
594
+ #: views.py:907
548
595
  msgid "Only its owner can delete the map."
549
596
  msgstr "Seul le créateur de la carte peut la supprimer."
550
597
 
551
- #: views.py:893
598
+ #: views.py:910
599
+ msgid "Map successfully deleted."
600
+ msgstr "La bien été supprimée."
601
+
602
+ #: views.py:936
552
603
  #, python-format
553
604
  msgid ""
554
605
  "Your map has been cloned! If you want to edit this map from another "
555
606
  "computer, please use this link: %(anonymous_url)s"
556
607
  msgstr "Votre carte a été dupliquée ! Si vous souhaitez la modifier depuis un autre ordinateur, veuillez utiliser ce lien : %(anonymous_url)s"
557
608
 
558
- #: views.py:898
609
+ #: views.py:941
559
610
  msgid "Congratulations, your map has been cloned!"
560
611
  msgstr "Votre carte a été dupliquée !"
561
612
 
562
- #: views.py:1136
613
+ #: views.py:1176
563
614
  msgid "Layer successfully deleted."
564
615
  msgstr "Calque supprimé."
565
616
 
566
- #: views.py:1158
617
+ #: views.py:1198
567
618
  msgid "Permissions updated with success!"
568
619
  msgstr "Les permissions ont bien été modifiées !"
@@ -0,0 +1,23 @@
1
+ from django.conf import settings
2
+ from django.core.management.base import BaseCommand
3
+
4
+ from umap import websocket_server
5
+
6
+
7
+ class Command(BaseCommand):
8
+ help = "Run the websocket server"
9
+
10
+ def add_arguments(self, parser):
11
+ parser.add_argument(
12
+ "--host",
13
+ help="The server host to bind to.",
14
+ default=settings.WEBSOCKET_BACK_HOST,
15
+ )
16
+ parser.add_argument(
17
+ "--port",
18
+ help="The server port to bind to.",
19
+ default=settings.WEBSOCKET_BACK_PORT,
20
+ )
21
+
22
+ def handle(self, *args, **options):
23
+ websocket_server.run(options["host"], options["port"])