umap-project 2.3.1__py3-none-any.whl → 2.4.0b0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- umap/.DS_Store +0 -0
- umap/__init__.py +1 -1
- umap/locale/en/LC_MESSAGES/django.po +81 -31
- umap/locale/fr/LC_MESSAGES/django.mo +0 -0
- umap/locale/fr/LC_MESSAGES/django.po +109 -59
- umap/management/commands/run_websocket_server.py +23 -0
- umap/models.py +6 -1
- umap/settings/base.py +11 -3
- umap/static/.DS_Store +0 -0
- umap/static/umap/.DS_Store +0 -0
- umap/static/umap/base.css +53 -162
- umap/static/umap/content.css +3 -2
- umap/static/umap/css/dialog.css +18 -0
- umap/static/umap/css/icon.css +8 -0
- umap/static/umap/css/importers.css +44 -0
- umap/static/umap/css/panel.css +19 -57
- umap/static/umap/css/tooltip.css +59 -0
- umap/static/umap/css/window.css +35 -0
- umap/static/umap/favicons/.DS_Store +0 -0
- umap/static/umap/fonts/.DS_Store +0 -0
- umap/static/umap/img/.DS_Store +0 -0
- umap/static/umap/img/alert-icon-error.svg +8 -0
- umap/static/umap/img/alert-icon-info.svg +4 -0
- umap/static/umap/img/alert-icon-success.svg +3 -0
- umap/static/umap/img/icon-external-link.svg +3 -0
- umap/static/umap/img/importers/communesfr.svg +5 -0
- umap/static/umap/img/importers/datasets.svg +13 -0
- umap/static/umap/img/importers/geodatamine.svg +10 -0
- umap/static/umap/img/importers/overpass.svg +7 -0
- umap/static/umap/img/importers/random.svg +18 -0
- umap/static/umap/img/importers/random1.svg +4 -0
- umap/static/umap/img/importers/random2.svg +4 -0
- umap/static/umap/img/source/.DS_Store +0 -0
- umap/static/umap/js/components/alerts/alert.css +160 -0
- umap/static/umap/js/components/alerts/alert.js +169 -0
- umap/static/umap/js/components/base.js +54 -0
- umap/static/umap/js/modules/autocomplete.js +347 -0
- umap/static/umap/js/modules/browser.js +1 -1
- umap/static/umap/js/modules/caption.js +4 -3
- umap/static/umap/js/modules/global.js +36 -12
- umap/static/umap/js/modules/help.js +255 -0
- umap/static/umap/js/modules/importer.js +280 -0
- umap/static/umap/js/modules/importers/communesfr.js +44 -0
- umap/static/umap/js/modules/importers/datasets.js +41 -0
- umap/static/umap/js/modules/importers/geodatamine.js +95 -0
- umap/static/umap/js/modules/importers/overpass.js +84 -0
- umap/static/umap/js/modules/request.js +12 -14
- umap/static/umap/js/modules/rules.js +241 -0
- umap/static/umap/js/modules/schema.js +63 -14
- umap/static/umap/js/modules/sync/engine.js +93 -0
- umap/static/umap/js/modules/sync/updaters.js +109 -0
- umap/static/umap/js/modules/sync/websocket.js +25 -0
- umap/static/umap/js/modules/ui/dialog.js +52 -0
- umap/static/umap/js/modules/{panel.js → ui/panel.js} +25 -14
- umap/static/umap/js/modules/ui/tooltip.js +116 -0
- umap/static/umap/js/modules/utils.js +25 -18
- umap/static/umap/js/umap.controls.js +13 -14
- umap/static/umap/js/umap.core.js +1 -324
- umap/static/umap/js/umap.features.js +67 -27
- umap/static/umap/js/umap.forms.js +9 -13
- umap/static/umap/js/umap.js +220 -180
- umap/static/umap/js/umap.layer.js +142 -74
- umap/static/umap/js/umap.permissions.js +5 -9
- umap/static/umap/js/umap.tableeditor.js +8 -8
- umap/static/umap/locale/am_ET.js +51 -16
- umap/static/umap/locale/am_ET.json +51 -16
- umap/static/umap/locale/ar.js +51 -16
- umap/static/umap/locale/ar.json +51 -16
- umap/static/umap/locale/ast.js +51 -16
- umap/static/umap/locale/ast.json +51 -16
- umap/static/umap/locale/bg.js +51 -16
- umap/static/umap/locale/bg.json +51 -16
- umap/static/umap/locale/br.js +55 -20
- umap/static/umap/locale/br.json +55 -20
- umap/static/umap/locale/ca.js +51 -16
- umap/static/umap/locale/ca.json +51 -16
- umap/static/umap/locale/cs_CZ.js +93 -58
- umap/static/umap/locale/cs_CZ.json +93 -58
- umap/static/umap/locale/da.js +51 -16
- umap/static/umap/locale/da.json +51 -16
- umap/static/umap/locale/de.js +56 -21
- umap/static/umap/locale/de.json +56 -21
- umap/static/umap/locale/el.js +51 -16
- umap/static/umap/locale/el.json +51 -16
- umap/static/umap/locale/en.js +51 -16
- umap/static/umap/locale/en.json +51 -16
- umap/static/umap/locale/en_US.json +51 -16
- umap/static/umap/locale/es.js +51 -16
- umap/static/umap/locale/es.json +51 -16
- umap/static/umap/locale/et.js +51 -16
- umap/static/umap/locale/et.json +51 -16
- umap/static/umap/locale/eu.js +51 -16
- umap/static/umap/locale/eu.json +51 -16
- umap/static/umap/locale/fa_IR.js +51 -16
- umap/static/umap/locale/fa_IR.json +51 -16
- umap/static/umap/locale/fi.js +51 -16
- umap/static/umap/locale/fi.json +51 -16
- umap/static/umap/locale/fr.js +52 -17
- umap/static/umap/locale/fr.json +52 -17
- umap/static/umap/locale/gl.js +51 -16
- umap/static/umap/locale/gl.json +51 -16
- umap/static/umap/locale/he.js +51 -16
- umap/static/umap/locale/he.json +51 -16
- umap/static/umap/locale/hr.js +51 -16
- umap/static/umap/locale/hr.json +51 -16
- umap/static/umap/locale/hu.js +51 -16
- umap/static/umap/locale/hu.json +51 -16
- umap/static/umap/locale/id.js +51 -16
- umap/static/umap/locale/id.json +51 -16
- umap/static/umap/locale/is.js +51 -16
- umap/static/umap/locale/is.json +51 -16
- umap/static/umap/locale/it.js +51 -16
- umap/static/umap/locale/it.json +51 -16
- umap/static/umap/locale/ja.js +51 -16
- umap/static/umap/locale/ja.json +51 -16
- umap/static/umap/locale/ko.js +51 -16
- umap/static/umap/locale/ko.json +51 -16
- umap/static/umap/locale/lt.js +51 -16
- umap/static/umap/locale/lt.json +51 -16
- umap/static/umap/locale/ms.js +51 -16
- umap/static/umap/locale/ms.json +51 -16
- umap/static/umap/locale/nl.js +51 -16
- umap/static/umap/locale/nl.json +51 -16
- umap/static/umap/locale/no.js +51 -16
- umap/static/umap/locale/no.json +51 -16
- umap/static/umap/locale/pl.js +93 -58
- umap/static/umap/locale/pl.json +93 -58
- umap/static/umap/locale/pl_PL.json +51 -16
- umap/static/umap/locale/pt.js +215 -180
- umap/static/umap/locale/pt.json +215 -180
- umap/static/umap/locale/pt_BR.js +51 -16
- umap/static/umap/locale/pt_BR.json +51 -16
- umap/static/umap/locale/pt_PT.js +51 -16
- umap/static/umap/locale/pt_PT.json +51 -16
- umap/static/umap/locale/ro.js +51 -16
- umap/static/umap/locale/ro.json +51 -16
- umap/static/umap/locale/ru.js +51 -16
- umap/static/umap/locale/ru.json +51 -16
- umap/static/umap/locale/si.js +51 -16
- umap/static/umap/locale/si.json +51 -16
- umap/static/umap/locale/sk_SK.js +51 -16
- umap/static/umap/locale/sk_SK.json +51 -16
- umap/static/umap/locale/sl.js +51 -16
- umap/static/umap/locale/sl.json +51 -16
- umap/static/umap/locale/sr.js +51 -16
- umap/static/umap/locale/sr.json +51 -16
- umap/static/umap/locale/sv.js +51 -16
- umap/static/umap/locale/sv.json +51 -16
- umap/static/umap/locale/th_TH.js +51 -16
- umap/static/umap/locale/th_TH.json +51 -16
- umap/static/umap/locale/tr.js +51 -16
- umap/static/umap/locale/tr.json +51 -16
- umap/static/umap/locale/uk_UA.js +51 -16
- umap/static/umap/locale/uk_UA.json +51 -16
- umap/static/umap/locale/vi.js +51 -16
- umap/static/umap/locale/vi.json +51 -16
- umap/static/umap/locale/vi_VN.json +51 -16
- umap/static/umap/locale/zh.js +51 -16
- umap/static/umap/locale/zh.json +51 -16
- umap/static/umap/locale/zh_CN.json +51 -16
- umap/static/umap/locale/zh_TW.Big5.json +51 -16
- umap/static/umap/locale/zh_TW.js +51 -16
- umap/static/umap/locale/zh_TW.json +51 -16
- umap/static/umap/map.css +27 -41
- umap/static/umap/unittests/sync.js +105 -0
- umap/static/umap/unittests/utils.js +76 -34
- umap/static/umap/vars.css +18 -1
- umap/static/umap/vendors/dompurify/purify.es.js +5 -59
- umap/static/umap/vendors/dompurify/purify.es.mjs.map +1 -1
- umap/templates/umap/components/alerts/alert.html +89 -0
- umap/templates/umap/content.html +4 -3
- umap/templates/umap/css.html +4 -0
- umap/templates/umap/home.html +3 -0
- umap/templates/umap/js.html +0 -3
- umap/templates/umap/map_init.html +2 -8
- umap/templates/umap/messages.html +9 -11
- umap/templates/umap/search.html +3 -0
- umap/tests/.DS_Store +0 -0
- umap/tests/base.py +2 -0
- umap/tests/integration/.DS_Store +0 -0
- umap/tests/integration/conftest.py +30 -0
- umap/tests/integration/test_anonymous_owned_map.py +8 -13
- umap/tests/integration/test_browser.py +1 -1
- umap/tests/integration/test_conditional_rules.py +201 -0
- umap/tests/integration/test_dashboard.py +1 -1
- umap/tests/integration/test_datalayer.py +2 -3
- umap/tests/integration/test_edit_datalayer.py +4 -4
- umap/tests/integration/test_edit_map.py +1 -1
- umap/tests/integration/test_facets_browser.py +3 -3
- umap/tests/integration/test_import.py +138 -49
- umap/tests/integration/test_map.py +2 -2
- umap/tests/integration/{test_collaborative_editing.py → test_optimistic_merge.py} +7 -7
- umap/tests/integration/test_owned_map.py +1 -1
- umap/tests/integration/test_picto.py +2 -2
- umap/tests/integration/test_statics.py +1 -1
- umap/tests/integration/test_websocket_sync.py +283 -0
- umap/tests/settings.py +5 -0
- umap/tests/test_datalayer_views.py +0 -1
- umap/tests/test_views.py +53 -0
- umap/urls.py +5 -0
- umap/views.py +40 -11
- umap/websocket_server.py +92 -0
- {umap_project-2.3.1.dist-info → umap_project-2.4.0b0.dist-info}/METADATA +11 -9
- {umap_project-2.3.1.dist-info → umap_project-2.4.0b0.dist-info}/RECORD +207 -164
- {umap_project-2.3.1.dist-info → umap_project-2.4.0b0.dist-info}/WHEEL +1 -1
- umap/static/umap/js/umap.autocomplete.js +0 -341
- umap/static/umap/js/umap.importer.js +0 -187
- umap/static/umap/js/umap.ui.js +0 -190
- {umap_project-2.3.1.dist-info → umap_project-2.4.0b0.dist-info}/entry_points.txt +0 -0
- {umap_project-2.3.1.dist-info → umap_project-2.4.0b0.dist-info}/licenses/LICENSE +0 -0
umap/.DS_Store
ADDED
|
Binary file
|
umap/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION = "2.
|
|
1
|
+
VERSION = "2.4.0b0"
|
|
@@ -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-
|
|
11
|
+
"POT-Creation-Date: 2024-06-14 17:49+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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
120
|
+
#: models.py:194 models.py:408
|
|
121
121
|
msgid "settings"
|
|
122
122
|
msgstr ""
|
|
123
123
|
|
|
124
|
-
#: models.py:
|
|
124
|
+
#: models.py:330
|
|
125
125
|
msgid "Clone of"
|
|
126
126
|
msgstr ""
|
|
127
127
|
|
|
128
|
-
#: models.py:
|
|
128
|
+
#: models.py:399
|
|
129
129
|
msgid "description"
|
|
130
130
|
msgstr ""
|
|
131
131
|
|
|
132
|
-
#: models.py:
|
|
132
|
+
#: models.py:403
|
|
133
133
|
msgid "display on load"
|
|
134
134
|
msgstr ""
|
|
135
135
|
|
|
136
|
-
#: models.py:
|
|
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/
|
|
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:
|
|
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:
|
|
326
|
+
#: templates/umap/home.html:11
|
|
281
327
|
msgid "Map of the uMaps"
|
|
282
328
|
msgstr ""
|
|
283
329
|
|
|
284
|
-
#: templates/umap/home.html:
|
|
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:
|
|
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:
|
|
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:
|
|
502
|
+
#: templates/umap/search.html:21
|
|
457
503
|
msgid "No map found."
|
|
458
504
|
msgstr ""
|
|
459
505
|
|
|
460
|
-
#: templates/umap/search.html:
|
|
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:
|
|
544
|
+
#: views.py:353
|
|
499
545
|
msgid "View the map"
|
|
500
546
|
msgstr ""
|
|
501
547
|
|
|
502
|
-
#: views.py:
|
|
548
|
+
#: views.py:718
|
|
503
549
|
msgid "See full screen"
|
|
504
550
|
msgstr ""
|
|
505
551
|
|
|
506
|
-
#: views.py:
|
|
552
|
+
#: views.py:846
|
|
507
553
|
msgid "Map editors updated with success!"
|
|
508
554
|
msgstr ""
|
|
509
555
|
|
|
510
|
-
#: views.py:
|
|
556
|
+
#: views.py:883
|
|
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:
|
|
561
|
+
#: views.py:886
|
|
516
562
|
#, python-format
|
|
517
563
|
msgid "Here is your secret edit link: %(link)s"
|
|
518
564
|
msgstr ""
|
|
519
565
|
|
|
520
|
-
#: views.py:
|
|
566
|
+
#: views.py:893
|
|
521
567
|
#, python-format
|
|
522
568
|
msgid "Can't send email to %(email)s"
|
|
523
569
|
msgstr ""
|
|
524
570
|
|
|
525
|
-
#: views.py:
|
|
571
|
+
#: views.py:896
|
|
526
572
|
#, python-format
|
|
527
573
|
msgid "Email sent to %(email)s"
|
|
528
574
|
msgstr ""
|
|
529
575
|
|
|
530
|
-
#: views.py:
|
|
576
|
+
#: views.py:907
|
|
531
577
|
msgid "Only its owner can delete the map."
|
|
532
578
|
msgstr ""
|
|
533
579
|
|
|
534
|
-
#: views.py:
|
|
580
|
+
#: views.py:910
|
|
581
|
+
msgid "Map successfully deleted."
|
|
582
|
+
msgstr ""
|
|
583
|
+
|
|
584
|
+
#: views.py:936
|
|
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:
|
|
591
|
+
#: views.py:941
|
|
542
592
|
msgid "Congratulations, your map has been cloned!"
|
|
543
593
|
msgstr ""
|
|
544
594
|
|
|
545
|
-
#: views.py:
|
|
595
|
+
#: views.py:1176
|
|
546
596
|
msgid "Layer successfully deleted."
|
|
547
597
|
msgstr ""
|
|
548
598
|
|
|
549
|
-
#: views.py:
|
|
599
|
+
#: views.py:1198
|
|
550
600
|
msgid "Permissions updated with success!"
|
|
551
601
|
msgstr ""
|
|
Binary file
|
|
@@ -23,7 +23,7 @@ msgid ""
|
|
|
23
23
|
msgstr ""
|
|
24
24
|
"Project-Id-Version: uMap\n"
|
|
25
25
|
"Report-Msgid-Bugs-To: \n"
|
|
26
|
-
"POT-Creation-Date: 2024-
|
|
26
|
+
"POT-Creation-Date: 2024-06-14 17:49+0000\n"
|
|
27
27
|
"PO-Revision-Date: 2013-11-22 14:00+0000\n"
|
|
28
28
|
"Last-Translator: yohanboniface <yohanboniface@free.fr>, 2013-2014,2018-2019,2023-2024\n"
|
|
29
29
|
"Language-Team: French (http://app.transifex.com/openstreetmap/umap/language/fr/)\n"
|
|
@@ -41,7 +41,7 @@ msgstr "Modifiable seulement avec le lien de modification secret"
|
|
|
41
41
|
msgid "Everyone can edit"
|
|
42
42
|
msgstr "Tout le monde peut modifier"
|
|
43
43
|
|
|
44
|
-
#: forms.py:69 models.py:
|
|
44
|
+
#: forms.py:69 models.py:389
|
|
45
45
|
msgid "Inherit"
|
|
46
46
|
msgstr "Par défaut"
|
|
47
47
|
|
|
@@ -49,107 +49,107 @@ msgstr "Par défaut"
|
|
|
49
49
|
msgid "Site is readonly for maintenance"
|
|
50
50
|
msgstr "Le site est en lecture seule pour maintenance."
|
|
51
51
|
|
|
52
|
-
#: models.py:
|
|
52
|
+
#: models.py:53
|
|
53
53
|
msgid "name"
|
|
54
54
|
msgstr "nom"
|
|
55
55
|
|
|
56
|
-
#: models.py:
|
|
56
|
+
#: models.py:84
|
|
57
57
|
msgid "details"
|
|
58
58
|
msgstr "détails"
|
|
59
59
|
|
|
60
|
-
#: models.py:
|
|
60
|
+
#: models.py:85
|
|
61
61
|
msgid "Link to a page where the licence is detailed."
|
|
62
62
|
msgstr "Lien vers une page détaillant la licence."
|
|
63
63
|
|
|
64
|
-
#: models.py:
|
|
64
|
+
#: models.py:95
|
|
65
65
|
msgid "URL template using OSM tile format"
|
|
66
66
|
msgstr "Modèle d'URL au format des tuiles OSM"
|
|
67
67
|
|
|
68
|
-
#: models.py:
|
|
68
|
+
#: models.py:101
|
|
69
69
|
msgid "Order of the tilelayers in the edit box"
|
|
70
70
|
msgstr "Ordre des calques de tuiles dans le panneau de modification"
|
|
71
71
|
|
|
72
|
-
#: models.py:
|
|
72
|
+
#: models.py:147 models.py:390
|
|
73
73
|
msgid "Everyone"
|
|
74
74
|
msgstr "Tout le monde"
|
|
75
75
|
|
|
76
|
-
#: models.py:
|
|
76
|
+
#: models.py:148 models.py:154 models.py:391
|
|
77
77
|
msgid "Editors only"
|
|
78
78
|
msgstr "Éditeurs uniquement"
|
|
79
79
|
|
|
80
|
-
#: models.py:
|
|
80
|
+
#: models.py:149 models.py:392
|
|
81
81
|
msgid "Owner only"
|
|
82
82
|
msgstr "Propriétaire uniquement"
|
|
83
83
|
|
|
84
|
-
#: models.py:
|
|
84
|
+
#: models.py:152
|
|
85
85
|
msgid "Everyone (public)"
|
|
86
86
|
msgstr "Tout le monde (public)"
|
|
87
87
|
|
|
88
|
-
#: models.py:
|
|
88
|
+
#: models.py:153
|
|
89
89
|
msgid "Anyone with link"
|
|
90
90
|
msgstr "Quiconque a le lien"
|
|
91
91
|
|
|
92
|
-
#: models.py:
|
|
92
|
+
#: models.py:155
|
|
93
93
|
msgid "Blocked"
|
|
94
94
|
msgstr "Bloquée"
|
|
95
95
|
|
|
96
|
-
#: models.py:
|
|
97
|
-
msgid "description"
|
|
98
|
-
msgstr "description"
|
|
99
|
-
|
|
100
|
-
#: models.py:156
|
|
96
|
+
#: models.py:158
|
|
101
97
|
msgid "center"
|
|
102
98
|
msgstr "centre"
|
|
103
99
|
|
|
104
|
-
#: models.py:
|
|
100
|
+
#: models.py:159
|
|
105
101
|
msgid "zoom"
|
|
106
102
|
msgstr "zoom"
|
|
107
103
|
|
|
108
|
-
#: models.py:
|
|
104
|
+
#: models.py:161
|
|
109
105
|
msgid "locate"
|
|
110
106
|
msgstr "géolocaliser"
|
|
111
107
|
|
|
112
|
-
#: models.py:
|
|
108
|
+
#: models.py:161
|
|
113
109
|
msgid "Locate user on load?"
|
|
114
110
|
msgstr "Géolocaliser l'utilisateur au chargement ?"
|
|
115
111
|
|
|
116
|
-
#: models.py:
|
|
112
|
+
#: models.py:165
|
|
117
113
|
msgid "Choose the map licence."
|
|
118
114
|
msgstr "Choisir une licence pour la carte"
|
|
119
115
|
|
|
120
|
-
#: models.py:
|
|
116
|
+
#: models.py:166
|
|
121
117
|
msgid "licence"
|
|
122
118
|
msgstr "licence"
|
|
123
119
|
|
|
124
|
-
#: models.py:
|
|
120
|
+
#: models.py:177
|
|
125
121
|
msgid "owner"
|
|
126
122
|
msgstr "créateur"
|
|
127
123
|
|
|
128
|
-
#: models.py:
|
|
124
|
+
#: models.py:181
|
|
129
125
|
msgid "editors"
|
|
130
126
|
msgstr "éditeurs"
|
|
131
127
|
|
|
132
|
-
#: models.py:
|
|
128
|
+
#: models.py:186 models.py:413
|
|
133
129
|
msgid "edit status"
|
|
134
130
|
msgstr "statut de modification"
|
|
135
131
|
|
|
136
|
-
#: models.py:
|
|
132
|
+
#: models.py:191
|
|
137
133
|
msgid "share status"
|
|
138
134
|
msgstr "qui a accès"
|
|
139
135
|
|
|
140
|
-
#: models.py:
|
|
136
|
+
#: models.py:194 models.py:408
|
|
141
137
|
msgid "settings"
|
|
142
138
|
msgstr "réglages"
|
|
143
139
|
|
|
144
|
-
#: models.py:
|
|
140
|
+
#: models.py:330
|
|
145
141
|
msgid "Clone of"
|
|
146
142
|
msgstr "Clone de"
|
|
147
143
|
|
|
148
|
-
#: models.py:
|
|
144
|
+
#: models.py:399
|
|
145
|
+
msgid "description"
|
|
146
|
+
msgstr "description"
|
|
147
|
+
|
|
148
|
+
#: models.py:403
|
|
149
149
|
msgid "display on load"
|
|
150
150
|
msgstr "afficher au chargement."
|
|
151
151
|
|
|
152
|
-
#: models.py:
|
|
152
|
+
#: models.py:404
|
|
153
153
|
msgid "Display this layer on load."
|
|
154
154
|
msgstr "Afficher ce calque au chargement."
|
|
155
155
|
|
|
@@ -278,13 +278,59 @@ msgstr "Créer une carte"
|
|
|
278
278
|
msgid "Play with the demo"
|
|
279
279
|
msgstr "Tester la démo"
|
|
280
280
|
|
|
281
|
-
#: templates/umap/
|
|
281
|
+
#: templates/umap/components/alerts/alert.html:14
|
|
282
|
+
#: templates/umap/components/alerts/alert.html:49
|
|
283
|
+
#: templates/umap/components/alerts/alert.html:71
|
|
284
|
+
msgid "Close"
|
|
285
|
+
msgstr "Fermer"
|
|
286
|
+
|
|
287
|
+
#: templates/umap/components/alerts/alert.html:27
|
|
288
|
+
#, python-format
|
|
289
|
+
msgid ""
|
|
290
|
+
"Pro-tip: to easily find back your maps, <a href=\"%(login_url)s\" "
|
|
291
|
+
"target=\"_blank\">create an account</a> or <a href=\"%(login_url)s\" "
|
|
292
|
+
"target=\"_blank\">log in</a>."
|
|
293
|
+
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>."
|
|
294
|
+
|
|
295
|
+
#: templates/umap/components/alerts/alert.html:30
|
|
296
|
+
msgid "Here is your secret link to edit the map, please keep it safe:"
|
|
297
|
+
msgstr "Ceci est le lien d'édition secret, gardez-le en lieu sûr:"
|
|
298
|
+
|
|
299
|
+
#: templates/umap/components/alerts/alert.html:33
|
|
300
|
+
msgid "Copy link"
|
|
301
|
+
msgstr "Copier le lien"
|
|
302
|
+
|
|
303
|
+
#: templates/umap/components/alerts/alert.html:39
|
|
304
|
+
msgid "Enter your email address to receive the secret link:"
|
|
305
|
+
msgstr "Entrer une adresse mail pour recevoir le lien secret:"
|
|
306
|
+
|
|
307
|
+
#: templates/umap/components/alerts/alert.html:41
|
|
308
|
+
msgid "Email"
|
|
309
|
+
msgstr "Courriel"
|
|
310
|
+
|
|
311
|
+
#: templates/umap/components/alerts/alert.html:42
|
|
312
|
+
msgid "Send me the link"
|
|
313
|
+
msgstr "Recevoir le lien"
|
|
314
|
+
|
|
315
|
+
#: templates/umap/components/alerts/alert.html:63
|
|
316
|
+
msgid "See their edits in another tab"
|
|
317
|
+
msgstr "Voir leurs changements dans un nouvel onglet"
|
|
318
|
+
|
|
319
|
+
#: templates/umap/components/alerts/alert.html:64
|
|
320
|
+
msgid "Keep your changes and loose theirs"
|
|
321
|
+
msgstr "Garder mes changements et écraser les leurs"
|
|
322
|
+
|
|
323
|
+
#: templates/umap/components/alerts/alert.html:65
|
|
324
|
+
msgid "Keep their changes and loose yours"
|
|
325
|
+
msgstr "Garder leurs changements et écraser les miens"
|
|
326
|
+
|
|
327
|
+
#: templates/umap/content.html:24
|
|
282
328
|
msgid ""
|
|
283
329
|
"This instance of uMap is currently in read only mode, no creation/edit is "
|
|
284
330
|
"allowed."
|
|
285
331
|
msgstr "uMap est actuellement en mode lecture seule, aucune création ou modification n'est possible."
|
|
286
332
|
|
|
287
|
-
#: templates/umap/content.html:
|
|
333
|
+
#: templates/umap/content.html:32
|
|
288
334
|
#, python-format
|
|
289
335
|
msgid ""
|
|
290
336
|
"This is a demo instance, used for tests and pre-rolling releases. If you "
|
|
@@ -293,11 +339,11 @@ msgid ""
|
|
|
293
339
|
"instance, it's <a href=\"%(repo_url)s\">open source</a>!"
|
|
294
340
|
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
341
|
|
|
296
|
-
#: templates/umap/home.html:
|
|
342
|
+
#: templates/umap/home.html:11
|
|
297
343
|
msgid "Map of the uMaps"
|
|
298
344
|
msgstr "La carte des uMaps"
|
|
299
345
|
|
|
300
|
-
#: templates/umap/home.html:
|
|
346
|
+
#: templates/umap/home.html:17
|
|
301
347
|
msgid "Get inspired, browse maps"
|
|
302
348
|
msgstr "Naviguer dans les cartes"
|
|
303
349
|
|
|
@@ -305,7 +351,7 @@ msgstr "Naviguer dans les cartes"
|
|
|
305
351
|
msgid "You are logged in. Continuing..."
|
|
306
352
|
msgstr "Vous êtes maintenant identifié. Merci de patienter..."
|
|
307
353
|
|
|
308
|
-
#: templates/umap/map_list.html:9 views.py:
|
|
354
|
+
#: templates/umap/map_list.html:9 views.py:348
|
|
309
355
|
msgid "by"
|
|
310
356
|
msgstr "par"
|
|
311
357
|
|
|
@@ -361,37 +407,37 @@ msgstr "Télécharger"
|
|
|
361
407
|
msgid "Clone"
|
|
362
408
|
msgstr "Cloner"
|
|
363
409
|
|
|
364
|
-
#: templates/umap/map_table.html:
|
|
410
|
+
#: templates/umap/map_table.html:77 templates/umap/map_table.html:79
|
|
365
411
|
msgid "Delete"
|
|
366
412
|
msgstr "Supprimer"
|
|
367
413
|
|
|
368
|
-
#: templates/umap/map_table.html:
|
|
414
|
+
#: templates/umap/map_table.html:93
|
|
369
415
|
msgid "first"
|
|
370
416
|
msgstr "début"
|
|
371
417
|
|
|
372
|
-
#: templates/umap/map_table.html:
|
|
418
|
+
#: templates/umap/map_table.html:94
|
|
373
419
|
msgid "previous"
|
|
374
420
|
msgstr "précédente"
|
|
375
421
|
|
|
376
|
-
#: templates/umap/map_table.html:
|
|
422
|
+
#: templates/umap/map_table.html:102
|
|
377
423
|
#, python-format
|
|
378
424
|
msgid "Page %(maps_number)s of %(num_pages)s"
|
|
379
425
|
msgstr "Page %(maps_number)s de %(num_pages)s"
|
|
380
426
|
|
|
381
|
-
#: templates/umap/map_table.html:
|
|
427
|
+
#: templates/umap/map_table.html:107
|
|
382
428
|
msgid "next"
|
|
383
429
|
msgstr "suivante"
|
|
384
430
|
|
|
385
|
-
#: templates/umap/map_table.html:
|
|
431
|
+
#: templates/umap/map_table.html:108
|
|
386
432
|
msgid "last"
|
|
387
433
|
msgstr "fin"
|
|
388
434
|
|
|
389
|
-
#: templates/umap/map_table.html:
|
|
435
|
+
#: templates/umap/map_table.html:116
|
|
390
436
|
#, python-format
|
|
391
437
|
msgid "Lines per page: %(per_page)s"
|
|
392
438
|
msgstr "Lignes par page: %(per_page)s"
|
|
393
439
|
|
|
394
|
-
#: templates/umap/map_table.html:
|
|
440
|
+
#: templates/umap/map_table.html:121
|
|
395
441
|
#, python-format
|
|
396
442
|
msgid "%(count)s maps"
|
|
397
443
|
msgstr "%(count)s cartes"
|
|
@@ -462,7 +508,7 @@ msgstr "Le mot de passe a été modifié"
|
|
|
462
508
|
msgid "Your password was changed."
|
|
463
509
|
msgstr "Votre mot de passe a été modifié"
|
|
464
510
|
|
|
465
|
-
#: templates/umap/search.html:
|
|
511
|
+
#: templates/umap/search.html:13
|
|
466
512
|
#, python-format
|
|
467
513
|
msgid "%(count)s map found:"
|
|
468
514
|
msgid_plural "%(count)s maps found:"
|
|
@@ -470,11 +516,11 @@ msgstr[0] "%(count)s carte trouvée:"
|
|
|
470
516
|
msgstr[1] "%(count)s cartes trouvées:"
|
|
471
517
|
msgstr[2] "%(count)s cartes trouvées:"
|
|
472
518
|
|
|
473
|
-
#: templates/umap/search.html:
|
|
519
|
+
#: templates/umap/search.html:21
|
|
474
520
|
msgid "No map found."
|
|
475
521
|
msgstr "Aucune carte trouvée."
|
|
476
522
|
|
|
477
|
-
#: templates/umap/search.html:
|
|
523
|
+
#: templates/umap/search.html:24
|
|
478
524
|
msgid "Latest created maps"
|
|
479
525
|
msgstr "Dernières cartes créées."
|
|
480
526
|
|
|
@@ -512,57 +558,61 @@ msgstr "Télécharger %(count)s cartes"
|
|
|
512
558
|
msgid "You have no map yet."
|
|
513
559
|
msgstr "Vous n'avez pas encore de carte."
|
|
514
560
|
|
|
515
|
-
#: views.py:
|
|
561
|
+
#: views.py:353
|
|
516
562
|
msgid "View the map"
|
|
517
563
|
msgstr "Voir la carte"
|
|
518
564
|
|
|
519
|
-
#: views.py:
|
|
565
|
+
#: views.py:718
|
|
520
566
|
msgid "See full screen"
|
|
521
567
|
msgstr "Plein écran"
|
|
522
568
|
|
|
523
|
-
#: views.py:
|
|
569
|
+
#: views.py:846
|
|
524
570
|
msgid "Map editors updated with success!"
|
|
525
571
|
msgstr "Éditeurs de la carte mis à jour !"
|
|
526
572
|
|
|
527
|
-
#: views.py:
|
|
573
|
+
#: views.py:883
|
|
528
574
|
#, python-format
|
|
529
575
|
msgid "The uMap edit link for your map: %(map_name)s"
|
|
530
576
|
msgstr "La lien d'édition uMap pour votre carte %(map_name)s"
|
|
531
577
|
|
|
532
|
-
#: views.py:
|
|
578
|
+
#: views.py:886
|
|
533
579
|
#, python-format
|
|
534
580
|
msgid "Here is your secret edit link: %(link)s"
|
|
535
581
|
msgstr "Voici votre lien d'édition secret: %(link)s"
|
|
536
582
|
|
|
537
|
-
#: views.py:
|
|
583
|
+
#: views.py:893
|
|
538
584
|
#, python-format
|
|
539
585
|
msgid "Can't send email to %(email)s"
|
|
540
586
|
msgstr "Impossible d'envoyer un courriel vers %(email)s"
|
|
541
587
|
|
|
542
|
-
#: views.py:
|
|
588
|
+
#: views.py:896
|
|
543
589
|
#, python-format
|
|
544
590
|
msgid "Email sent to %(email)s"
|
|
545
591
|
msgstr "Courriel envoyé à %(email)s"
|
|
546
592
|
|
|
547
|
-
#: views.py:
|
|
593
|
+
#: views.py:907
|
|
548
594
|
msgid "Only its owner can delete the map."
|
|
549
595
|
msgstr "Seul le créateur de la carte peut la supprimer."
|
|
550
596
|
|
|
551
|
-
#: views.py:
|
|
597
|
+
#: views.py:910
|
|
598
|
+
msgid "Map successfully deleted."
|
|
599
|
+
msgstr "La bien été supprimée."
|
|
600
|
+
|
|
601
|
+
#: views.py:936
|
|
552
602
|
#, python-format
|
|
553
603
|
msgid ""
|
|
554
604
|
"Your map has been cloned! If you want to edit this map from another "
|
|
555
605
|
"computer, please use this link: %(anonymous_url)s"
|
|
556
606
|
msgstr "Votre carte a été dupliquée ! Si vous souhaitez la modifier depuis un autre ordinateur, veuillez utiliser ce lien : %(anonymous_url)s"
|
|
557
607
|
|
|
558
|
-
#: views.py:
|
|
608
|
+
#: views.py:941
|
|
559
609
|
msgid "Congratulations, your map has been cloned!"
|
|
560
610
|
msgstr "Votre carte a été dupliquée !"
|
|
561
611
|
|
|
562
|
-
#: views.py:
|
|
612
|
+
#: views.py:1176
|
|
563
613
|
msgid "Layer successfully deleted."
|
|
564
614
|
msgstr "Calque supprimé."
|
|
565
615
|
|
|
566
|
-
#: views.py:
|
|
616
|
+
#: views.py:1198
|
|
567
617
|
msgid "Permissions updated with success!"
|
|
568
618
|
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"])
|
umap/models.py
CHANGED
|
@@ -251,9 +251,14 @@ class Map(NamedModel):
|
|
|
251
251
|
path = reverse("map_anonymous_edit_url", kwargs={"signature": signature})
|
|
252
252
|
return settings.SITE_URL + path
|
|
253
253
|
|
|
254
|
+
def is_owner(self, user=None, request=None):
|
|
255
|
+
if user and self.owner == user:
|
|
256
|
+
return True
|
|
257
|
+
return self.is_anonymous_owner(request)
|
|
258
|
+
|
|
254
259
|
def is_anonymous_owner(self, request):
|
|
255
260
|
if not request or self.owner:
|
|
256
|
-
# edit cookies are only valid while map
|
|
261
|
+
# edit cookies are only valid while the map doesn't have owner
|
|
257
262
|
return False
|
|
258
263
|
key, value = self.signed_cookie_elements
|
|
259
264
|
try:
|