udata 11.1.2.dev8__py3-none-any.whl → 11.1.2.dev11__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 udata might be problematic. Click here for more details.
- udata/api/oauth2.py +22 -3
- udata/app.py +3 -0
- udata/auth/__init__.py +11 -0
- udata/auth/forms.py +70 -3
- udata/auth/mails.py +6 -0
- udata/auth/proconnect.py +127 -0
- udata/auth/views.py +57 -2
- udata/core/__init__.py +2 -0
- udata/core/captchetat.py +80 -0
- udata/core/dataset/api.py +2 -2
- udata/core/dataset/api_fields.py +3 -4
- udata/core/dataset/apiv2.py +6 -6
- udata/core/dataset/commands.py +0 -10
- udata/core/dataset/constants.py +124 -38
- udata/core/dataset/factories.py +2 -1
- udata/core/dataset/forms.py +14 -10
- udata/core/dataset/models.py +8 -36
- udata/core/dataset/rdf.py +76 -54
- udata/core/dataset/tasks.py +2 -50
- udata/cors.py +19 -2
- udata/harvest/backends/ckan/harvesters.py +10 -14
- udata/harvest/backends/maaf.py +15 -14
- udata/harvest/tests/ckan/test_ckan_backend.py +4 -3
- udata/harvest/tests/test_dcat_backend.py +3 -2
- udata/i18n.py +7 -32
- udata/migrations/2025-09-04-update-legacy-frequencies.py +36 -0
- udata/settings.py +27 -0
- udata/templates/security/email/reset_instructions.html +1 -1
- udata/templates/security/email/reset_instructions.txt +1 -1
- udata/tests/api/test_datasets_api.py +41 -12
- udata/tests/dataset/test_dataset_model.py +17 -53
- udata/tests/dataset/test_dataset_rdf.py +27 -28
- udata/translations/udata.pot +226 -150
- udata/utils.py +8 -1
- {udata-11.1.2.dev8.dist-info → udata-11.1.2.dev11.dist-info}/METADATA +1 -1
- {udata-11.1.2.dev8.dist-info → udata-11.1.2.dev11.dist-info}/RECORD +40 -40
- udata/templates/mail/frequency_reminder.html +0 -34
- udata/templates/mail/frequency_reminder.txt +0 -18
- udata/tests/test_i18n.py +0 -93
- {udata-11.1.2.dev8.dist-info → udata-11.1.2.dev11.dist-info}/WHEEL +0 -0
- {udata-11.1.2.dev8.dist-info → udata-11.1.2.dev11.dist-info}/entry_points.txt +0 -0
- {udata-11.1.2.dev8.dist-info → udata-11.1.2.dev11.dist-info}/licenses/LICENSE +0 -0
- {udata-11.1.2.dev8.dist-info → udata-11.1.2.dev11.dist-info}/top_level.txt +0 -0
udata/utils.py
CHANGED
|
@@ -18,7 +18,7 @@ from faker import Faker
|
|
|
18
18
|
from faker.config import PROVIDERS
|
|
19
19
|
from faker.providers import BaseProvider
|
|
20
20
|
from faker.providers.lorem.la import Provider as LoremProvider
|
|
21
|
-
from flask import abort
|
|
21
|
+
from flask import abort, request
|
|
22
22
|
|
|
23
23
|
from udata import tags
|
|
24
24
|
|
|
@@ -380,3 +380,10 @@ def id_or_404(object_id):
|
|
|
380
380
|
return object_id
|
|
381
381
|
except InvalidId:
|
|
382
382
|
abort(404)
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
def wants_json() -> bool:
|
|
386
|
+
if request.is_json:
|
|
387
|
+
return True
|
|
388
|
+
|
|
389
|
+
return request.accept_mimetypes.best == "application/json"
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
udata/__init__.py,sha256=U0HEYqKCLOY43O1UCVeuAb3b3SSX1pPhsJGpHJmK67k,75
|
|
2
2
|
udata/api_fields.py,sha256=XI0XoM1fxO4DEzxGptOAB5SL_fJr-u58-bfQVAvzgBg,36549
|
|
3
|
-
udata/app.py,sha256=
|
|
3
|
+
udata/app.py,sha256=By-eZvSVSCNtWeKm_lA8TF81qaHdzScvggvbgHCDHYI,8992
|
|
4
4
|
udata/assets.py,sha256=H5Hrc2vnKM0IFLyWfLXmJ2Kj35w1i8W1D8Cgy8_cUj4,657
|
|
5
|
-
udata/cors.py,sha256=
|
|
5
|
+
udata/cors.py,sha256=JttAogsNVSFWEV9-1L2kdbwwsNewn3KjgBErXReNwfc,3801
|
|
6
6
|
udata/entrypoints.py,sha256=mbAAUVT8ZenzSYdang2PbAwZcK1pENtA3axBmPRiWCw,2717
|
|
7
7
|
udata/errors.py,sha256=E8W7b4PH7c5B85g_nsUMt8fHqMVpDFOZFkO6wMPl6bA,117
|
|
8
8
|
udata/factories.py,sha256=MoklZnU8iwNL25dm3JsoXhoQs1PQWSVYL1WvcUBtJqM,492
|
|
9
|
-
udata/i18n.py,sha256=
|
|
9
|
+
udata/i18n.py,sha256=bC9ajf66YgcYoJffvresLZLa32rb6NsY-JGMtFiVsG4,8163
|
|
10
10
|
udata/mail.py,sha256=Huhx_1QthJkLvuRUuP6jqb5Qq5R4iSmqeEpLVO9ZkQ4,2671
|
|
11
11
|
udata/rdf.py,sha256=aJKmnE1r6YyMKXLo-VRlUvOXoZSJuvNeNbMCqEl0kdY,19370
|
|
12
12
|
udata/routing.py,sha256=Hnc1ktmKVS-RUHNKw2zYTft2HJ903FhjtlcenQ9igwI,8044
|
|
13
13
|
udata/sentry.py,sha256=ekcxqUSqxfM98TtvCsPaOoX5i2l6PEcYt7kb4l3od-Q,3223
|
|
14
|
-
udata/settings.py,sha256=
|
|
14
|
+
udata/settings.py,sha256=xDsib8oPUEHrOFRlfFRAZAn0V2EV9AOrMHX1IkzJdmc,22104
|
|
15
15
|
udata/sitemap.py,sha256=oRRWoPI7ZsFFnUAOqGT1YuXFFKHBe8EcRnUCNHD7xjM,979
|
|
16
16
|
udata/tags.py,sha256=ydq4uokd6bzdeGVSpEXASVtGvDfO2LfQs9mptvvKJCM,631
|
|
17
17
|
udata/tasks.py,sha256=Sv01dhvATtq_oHOBp3J1j1VT1HQe0Pab7zxwIeIdKoo,5122
|
|
18
18
|
udata/terms.md,sha256=nFx978tUQ3vTEv6POykXaZvcQ5e_gcvmO4ZgcfbSWXo,187
|
|
19
19
|
udata/tracking.py,sha256=WOcqA1RlHN8EPFuEc2kNau54mec4-pvi-wUFrMXevzg,345
|
|
20
20
|
udata/uris.py,sha256=u05ltyLv4ZolaNMbq58kcLizMXWC10mRpJFYzChUHJU,4440
|
|
21
|
-
udata/utils.py,sha256=
|
|
21
|
+
udata/utils.py,sha256=vtfn_FEMkB0AL_sF3EGpMSigvWp5uDX4l0QgYpwfj5U,11273
|
|
22
22
|
udata/worker.py,sha256=K-Wafye5-uXP4kQlffRKws2J9YbJ6m6n2QjcVsY8Nsg,118
|
|
23
23
|
udata/wsgi.py,sha256=MY8en9K9eDluvJYUxTdzqSDoYaDgCVZ69ZcUvxAvgqA,77
|
|
24
24
|
udata/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -27,15 +27,16 @@ udata/api/__init__.py,sha256=Rs1V6KqWUcZliZnoIrVKtq15Bfb8ZaOVOFuGhcv0SK8,11948
|
|
|
27
27
|
udata/api/commands.py,sha256=LJ4u-yhGij7QuH7OR92u3n7BEptqWMjDwMnG8pqdBxo,3523
|
|
28
28
|
udata/api/errors.py,sha256=P_UigBf6HAL73LbXKULagmp5Cuw-H1Ms6LmXxOmFIeg,211
|
|
29
29
|
udata/api/fields.py,sha256=w3qpMGntcOQa5bwFenZNJrnIoEZGZkEhRq0OwWFHsgc,3801
|
|
30
|
-
udata/api/oauth2.py,sha256=
|
|
30
|
+
udata/api/oauth2.py,sha256=1cSdZjCYT6W0XNKkvKA7LN38WaanLRu2NPUCYZt-AEM,12583
|
|
31
31
|
udata/api/parsers.py,sha256=iQEwgMwdVz_gXlVZYaRCGrUFWvcf7_8uCIxw7Iw-hpw,1405
|
|
32
32
|
udata/api/signals.py,sha256=t8s7tF1KYeAygqbR4GdA76_UYvthAsyRbJaqsMmFsK4,162
|
|
33
|
-
udata/auth/__init__.py,sha256=
|
|
34
|
-
udata/auth/forms.py,sha256=
|
|
33
|
+
udata/auth/__init__.py,sha256=u4-Vpfzw3ovRTqW6OPL_wWzRfAeMasD48aiCggZ60g0,2497
|
|
34
|
+
udata/auth/forms.py,sha256=80PtpAu8JwHuZUps7n9ga04Bxy6sslbhPbRnwdhURGI,4166
|
|
35
35
|
udata/auth/helpers.py,sha256=7Yr5k7ImdgqxVap4Bjq_ylTXmzq4NR0KgEOOhqSbaf4,267
|
|
36
|
-
udata/auth/mails.py,sha256=
|
|
36
|
+
udata/auth/mails.py,sha256=ggGfgYEgNLtF-p5HocrmuQAk0b6fteWtN4UzK3ZvMlA,1759
|
|
37
37
|
udata/auth/password_validation.py,sha256=ODVdEsiXbtq_8ws4Yf3hs5Sq7jz-IDa1RxAm_WPIJnA,1806
|
|
38
|
-
udata/auth/
|
|
38
|
+
udata/auth/proconnect.py,sha256=hsvQ71Hqy42NvwgYtcMniRXWax3Q7LX1INcmaS7gaIQ,5073
|
|
39
|
+
udata/auth/views.py,sha256=83nlLQiRlqLPILPOkKilNnrTJTs6c7XKqe-nt2I5l8s,7861
|
|
39
40
|
udata/commands/__init__.py,sha256=Won_rW_hIU9TA3o4oNe6kI46l1fnDBM_oW0Hc1XS9F8,7711
|
|
40
41
|
udata/commands/cache.py,sha256=bLdrf_fCWFYX9ULlL2ADsZRwijkI4pArsJxfx24OivM,341
|
|
41
42
|
udata/commands/db.py,sha256=OyVBcuSIqYqNywlZAi19F2yRJCAIdFKKyQ9H9alqbfI,20426
|
|
@@ -51,7 +52,8 @@ udata/commands/test.py,sha256=0snHTDolowQK-DmAKnhF_mBuDOBMApAbEc35GEiwH0M,893
|
|
|
51
52
|
udata/commands/worker.py,sha256=bjXQGCwkbZxkcxLMPA2Lr0nkNjXLpGNDMkkQXjwBLPI,3976
|
|
52
53
|
udata/commands/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
54
|
udata/commands/tests/test_fixtures.py,sha256=acFmE08S4B0GHJP4nN1dfRNcKjcsE88XusyW_HT12SE,5554
|
|
54
|
-
udata/core/__init__.py,sha256=
|
|
55
|
+
udata/core/__init__.py,sha256=rPkzAmhURfV4x9v2iY_vOakNd75xseYW2jWNIoh-aRg,423
|
|
56
|
+
udata/core/captchetat.py,sha256=PNobWeJiYSgpSZQ9vJpuEvk5xSkAD5sgrWhKcVPbncg,2953
|
|
55
57
|
udata/core/csv.py,sha256=qeRtSQXPT5n5EoWZ3_XfnOTW7ITnEzzHctODPeX63Uk,8543
|
|
56
58
|
udata/core/linkable.py,sha256=8YuTzZo5Y36CVIYxESC-EPJ-zKsQTRbi4OIZTp-wWig,587
|
|
57
59
|
udata/core/owned.py,sha256=OQT7wdk7dAqGvWDiJRVkKJxerDc9_Io910nvLmfBAVI,5561
|
|
@@ -94,25 +96,25 @@ udata/core/dataservices/tasks.py,sha256=fHG1r5ymfJRXJ_Lug6je3VKZoK30XKXE2rQ8x0R-
|
|
|
94
96
|
udata/core/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
95
97
|
udata/core/dataset/actions.py,sha256=mX6xox0PiMrbcAPZ3VZsI26rfM-ciYfEXxN6sqqImKA,1222
|
|
96
98
|
udata/core/dataset/activities.py,sha256=eGxMUnC47YHxTgcls6igQ3qP7cYgwFtPfj0asCylGsI,3315
|
|
97
|
-
udata/core/dataset/api.py,sha256=
|
|
98
|
-
udata/core/dataset/api_fields.py,sha256=
|
|
99
|
-
udata/core/dataset/apiv2.py,sha256=
|
|
100
|
-
udata/core/dataset/commands.py,sha256=
|
|
101
|
-
udata/core/dataset/constants.py,sha256=
|
|
99
|
+
udata/core/dataset/api.py,sha256=_Y-WCB4CI1VLARfK33YDYbHielouDbSPn1bP_G2IHNQ,35838
|
|
100
|
+
udata/core/dataset/api_fields.py,sha256=p7ZnmGNImZ4sgZTpoyHpI0CgOukpEIx8QdGnxlmgl2I,18032
|
|
101
|
+
udata/core/dataset/apiv2.py,sha256=1H4557ZMi6rwEyrwB1Ha20m0bf3Avhg_vDLiDQt5Fi0,21030
|
|
102
|
+
udata/core/dataset/commands.py,sha256=3mKSdJ-M7ggdG29AVn77C4ouZanbYoqkTaGQoBKOp3s,3471
|
|
103
|
+
udata/core/dataset/constants.py,sha256=y9ASiuCJlUpOpnwrPkJyQ04tsGvE0w0zPQ-PL_3lZGg,6996
|
|
102
104
|
udata/core/dataset/csv.py,sha256=mNU5cuuNzrMgFF7Z0AKN8clsv458tpJHX1_pzAjpd-4,3653
|
|
103
105
|
udata/core/dataset/events.py,sha256=bSM0nFEX14r4JHc-bAM-7OOuD3JAxUIpw9GgXbOsUyw,4078
|
|
104
106
|
udata/core/dataset/exceptions.py,sha256=uKiayLSpSzsnLvClObS6hOO0qXEqvURKN7_w8eimQNU,498
|
|
105
|
-
udata/core/dataset/factories.py,sha256=
|
|
106
|
-
udata/core/dataset/forms.py,sha256=
|
|
107
|
+
udata/core/dataset/factories.py,sha256=tb18axsk8Tx5iUIqWM9IELdt-2Ryp2UN0-iY4fdea4U,9059
|
|
108
|
+
udata/core/dataset/forms.py,sha256=gGXOqy3WXFNvWMXngDq3TEqMM18-9DBpy2V7msrOsTw,7084
|
|
107
109
|
udata/core/dataset/metrics.py,sha256=s8Xs_rqRXfNWsErkiJTuRMG5o_cU5iSK8mUJFKVSc7w,1204
|
|
108
|
-
udata/core/dataset/models.py,sha256=
|
|
110
|
+
udata/core/dataset/models.py,sha256=Ny79cFiD7vOJt0JIfOZ7AJQOBx-_EEWPxdnhBpUr_-E,42980
|
|
109
111
|
udata/core/dataset/permissions.py,sha256=zXQ6kU-Ni3Pl5tDtat-ZPupug9InsNeCN7xRLc2Vcrc,1097
|
|
110
112
|
udata/core/dataset/preview.py,sha256=uFEpK-p5nIAlY8hVOMhd7mtkwFt6C_PQRMNxPvAyoo4,839
|
|
111
|
-
udata/core/dataset/rdf.py,sha256=
|
|
113
|
+
udata/core/dataset/rdf.py,sha256=jHyHgay3g3Z04Ju5kLyMk3Vyb-kWJYtqqg8Smamv7WI,32970
|
|
112
114
|
udata/core/dataset/recommendations.py,sha256=DlGSLU8D0nW6Ds1rjBav1WxC-0VW5yOCjkO5w-ltFcI,7171
|
|
113
115
|
udata/core/dataset/search.py,sha256=0reOKadjjqeL9ujOAGfiVBFBX5lx7vHotDbvaWPaUN0,6068
|
|
114
116
|
udata/core/dataset/signals.py,sha256=WN4sV-lJlNsRkhcnhoy0SYJvCoYmK_5QFYZd1u-h4gs,161
|
|
115
|
-
udata/core/dataset/tasks.py,sha256=
|
|
117
|
+
udata/core/dataset/tasks.py,sha256=FgdPNQYOSYdt8kMCDA8F9GWuJ-yOvCnq0BO3jiL_9hQ,7582
|
|
116
118
|
udata/core/dataset/transport.py,sha256=ihCXirY1dZjOfXKbf9HRCJTfIOc75rM1McwbeGjsW6A,1296
|
|
117
119
|
udata/core/discussions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
118
120
|
udata/core/discussions/actions.py,sha256=kjdBLDIeu0yWTSxQGgOpN1WoxUqbMygn4SiBk_S9T5I,1051
|
|
@@ -304,10 +306,10 @@ udata/harvest/tasks.py,sha256=id5YmHIhnkgez0LVC1fNg_6Yz1Sp0jrvQ1caslVOWdY,1722
|
|
|
304
306
|
udata/harvest/backends/__init__.py,sha256=QjoFfBJfpw_xgk5YYWI1SgKJOMEmTMlxSfW79GNkSTI,459
|
|
305
307
|
udata/harvest/backends/base.py,sha256=nFr8Bep5hqC4LR4sYg3CSMgn-RGkpiCeUJ7arFbl_mQ,18190
|
|
306
308
|
udata/harvest/backends/dcat.py,sha256=Qa4lRoLaTMRS9OFlCyKfQXGQ2rEQf0VomqzsL14L03g,19432
|
|
307
|
-
udata/harvest/backends/maaf.py,sha256=
|
|
309
|
+
udata/harvest/backends/maaf.py,sha256=zplwjs9_Vafut6jXH-WPJNCJY0VjzDDc1ouQ0_zG3sI,8355
|
|
308
310
|
udata/harvest/backends/maaf.xsd,sha256=vEyG8Vqw7Yn_acjRdXjqUJgxOj4pv8bibep-FX-f3BQ,18322
|
|
309
311
|
udata/harvest/backends/ckan/__init__.py,sha256=JE7Qa7kX7Yd8OvmJnAO_NupZe0tqYyhhkgJ-iGNxX64,35
|
|
310
|
-
udata/harvest/backends/ckan/harvesters.py,sha256=
|
|
312
|
+
udata/harvest/backends/ckan/harvesters.py,sha256=zWEU0P4d6jqqLvNu7aYaLrc5nUPpG82kFnmiO1EXAuU,10660
|
|
311
313
|
udata/harvest/backends/ckan/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
312
314
|
udata/harvest/backends/ckan/schemas/ckan.py,sha256=59VQoIxPBb5vOHFzzMtdnPcxHL4qNOTkPYa4cqn-7xQ,2353
|
|
313
315
|
udata/harvest/backends/ckan/schemas/dkan.py,sha256=RyQGPEaKqnunIrr9yApcz7WEfgye0IT1bV85wa2E8Lc,2774
|
|
@@ -317,13 +319,13 @@ udata/harvest/tests/person.jsonld,sha256=I7Ynh-PQlNeD51I1LrCgYOEjhL-WBeb65xzIE_s
|
|
|
317
319
|
udata/harvest/tests/test_actions.py,sha256=d5TTFTbs4PdBydWICqDtfoeo3zLyzcNDzv4aMH9spxo,25881
|
|
318
320
|
udata/harvest/tests/test_api.py,sha256=gSuICkPy3KVRUhHAyudXVf_gLwiB7SoriUp3DLXWDdA,21611
|
|
319
321
|
udata/harvest/tests/test_base_backend.py,sha256=ow8ecGtD836mUqyPWYjkS5nx0STyT5RMLgBdDyOhts4,19233
|
|
320
|
-
udata/harvest/tests/test_dcat_backend.py,sha256=
|
|
322
|
+
udata/harvest/tests/test_dcat_backend.py,sha256=ekr-cgD1HxteYsZe2_iugKxNnKEZF8V-CRe05Frlt_w,50636
|
|
321
323
|
udata/harvest/tests/test_filters.py,sha256=PT2qopEIoXsqi8MsNDRuhNH7jGXiQo8r0uJrCOUd4aM,2465
|
|
322
324
|
udata/harvest/tests/test_models.py,sha256=f9NRR2_S4oZFgF8qOumg0vv-lpnEBJbI5vNtcwFdSqM,831
|
|
323
325
|
udata/harvest/tests/test_notifications.py,sha256=MMzTzkv-GXMNFeOwAi31rdTsAXyLCLOSna41zOtaJG0,816
|
|
324
326
|
udata/harvest/tests/test_tasks.py,sha256=7wQGhaX7xJEPKGAF7dprIDj2_7Z2tTInzvAd5GiqaN8,681
|
|
325
327
|
udata/harvest/tests/ckan/conftest.py,sha256=SNIRJ7uh6ssIB56mwIdDgteHKUY040yX4gzaGMREjJw,1893
|
|
326
|
-
udata/harvest/tests/ckan/test_ckan_backend.py,sha256=
|
|
328
|
+
udata/harvest/tests/ckan/test_ckan_backend.py,sha256=w4kyV-kI3jhqGgfj26Cdbnp-uBNNjX7HV645nEpqhBA,21524
|
|
327
329
|
udata/harvest/tests/ckan/test_ckan_backend_errors.py,sha256=LbT-jFz9Fs_WECcQxpuOEEBm2FZ9PdqSbGYxMb1X32c,3847
|
|
328
330
|
udata/harvest/tests/ckan/test_ckan_backend_filters.py,sha256=_cBXkHihCTvL1jsrH6ppfU6KmyfErXVqGplHVgIHMnU,3698
|
|
329
331
|
udata/harvest/tests/ckan/test_dkan_backend.py,sha256=9Ym7bFLMj6bqbtdGCpDYm7nSwswbYQM3ksljfpi8z_g,2178
|
|
@@ -394,6 +396,7 @@ udata/migrations/2025-07-18-compute-last-update.py,sha256=K3wSSl9oC8TRbHlvgKeekg
|
|
|
394
396
|
udata/migrations/2025-07-18-redo-count-discussion.py,sha256=BOFTjf0zq_ahnVlYQC-d8fuoLixxyk2vP6JYJXhmvbs,941
|
|
395
397
|
udata/migrations/2025-07-22-fix-duplicate-contact-points.py,sha256=ZEw2PX1E3jJiDNWLj6Y52zBAIHS-kZSLjBP6gUmA_ho,1789
|
|
396
398
|
udata/migrations/2025-07-30-purge-old-harvest-dynamic-fields.py,sha256=ijeu6WvX6etOJrv0cEMCRJzj1pSetBguF-aUB1-2y_0,1017
|
|
399
|
+
udata/migrations/2025-09-04-update-legacy-frequencies.py,sha256=8YAROAHhytf6Kses_54aFscmPNes2aHRYqTwNpawdVk,1693
|
|
397
400
|
udata/migrations/2025-10-01-delete-orphaned-topic-elements.py,sha256=Mhx5ANOihZL4botxtjvfsll-xKBtkVQBkPcSq0BJ-Ec,788
|
|
398
401
|
udata/migrations/__init__.py,sha256=RBCBDaTlLjuMs_Qzwji6Z6T4r7FCGXhESKoxQbT5qAA,11221
|
|
399
402
|
udata/models/__init__.py,sha256=77OriDFm4dJzQDIb-7ADKSkf9GAxkXbMHeWXoYYnTsk,1459
|
|
@@ -580,8 +583,6 @@ udata/templates/mail/base.txt,sha256=epaSraWLlrXYEovdVROhxgOAsJmZI6RXxpNwtOX_UI4
|
|
|
580
583
|
udata/templates/mail/button.html,sha256=FdCKFJYclhjDUh7CddHx8qcQjJF_7mF0s7mG_tb9cL8,417
|
|
581
584
|
udata/templates/mail/discussion_closed.html,sha256=HUhntk-aaUQsBs7ekz9J5j4UrKBeliUygewiBHjNq2s,1211
|
|
582
585
|
udata/templates/mail/discussion_closed.txt,sha256=gFAwCwGNFKG-12WtvoALQDPuukC0StxEe0T3x3rz0m8,394
|
|
583
|
-
udata/templates/mail/frequency_reminder.html,sha256=2z6HJwwa6hiGBb0LohQZ79RjQ27AuxIrls40PKyIQbI,1148
|
|
584
|
-
udata/templates/mail/frequency_reminder.txt,sha256=ep64-kn4pD_wrsiLszyfsAygYRf2QIpF_p204Xv69Yg,690
|
|
585
586
|
udata/templates/mail/inactive_account_deleted.html,sha256=W27Os2tZioe7Ip4ZxHswNq8TAls1U0emZEHK4Qo2Kpc,196
|
|
586
587
|
udata/templates/mail/inactive_account_deleted.txt,sha256=7-7QU2v4CgoT2Vt8YkEbRsywiM-mAvGvdeB4_OIM2G8,160
|
|
587
588
|
udata/templates/mail/membership_refused.html,sha256=BI6jwR3NMemxgt4CwKJqeEwNnlVcHmLGp-PD3oUi9Jc,612
|
|
@@ -618,8 +619,8 @@ udata/templates/security/email/confirmation_instructions.html,sha256=cF14Rd0SWDK
|
|
|
618
619
|
udata/templates/security/email/confirmation_instructions.txt,sha256=dh8NrLwkJw0Vouzc0bAY5AkFyog25lq9A9W9ygQl8AU,159
|
|
619
620
|
udata/templates/security/email/login_instructions.html,sha256=-R_Xhpwknrtpp0K6PaD52FbE1ioCoe8ZBPW9_WbWA_U,451
|
|
620
621
|
udata/templates/security/email/login_instructions.txt,sha256=hsl25PKohV0N3h9MZFk1MSlymdxBDbtpFOYOwRbcr2s,156
|
|
621
|
-
udata/templates/security/email/reset_instructions.html,sha256=
|
|
622
|
-
udata/templates/security/email/reset_instructions.txt,sha256=
|
|
622
|
+
udata/templates/security/email/reset_instructions.html,sha256=ijP0LddLEvUIaZfzdgMFJOk3kCIRG2qunwF_1Pi1zIw,681
|
|
623
|
+
udata/templates/security/email/reset_instructions.txt,sha256=e0D8RbnaEW8fzG8jsnjZp3NnSSv6AS-_mHYByvzDeTI,360
|
|
623
624
|
udata/templates/security/email/reset_notice.html,sha256=fmvC-k94Y_74O_Nx02Z_d2dyArkNQmbX9LIYVumaUSM,232
|
|
624
625
|
udata/templates/security/email/reset_notice.txt,sha256=nhpffZNtcBCwPUCW54GcBORHZI26C1Tcht6ryW9U9Xs,154
|
|
625
626
|
udata/templates/security/email/welcome.html,sha256=r94FL_luwfgesWYtK87vjTAFjuB-njse6MtaBDAg-dU,565
|
|
@@ -637,7 +638,6 @@ udata/tests/test_api_fields.py,sha256=NCUTtOMEaTM5-tK-YUxhjEud2IPIDOHR3vbZWAQdEC
|
|
|
637
638
|
udata/tests/test_cors.py,sha256=b_pyxKeIyqhnsXxXryPf4d0V0QxaLQ1P_VjY89Q_j3g,3233
|
|
638
639
|
udata/tests/test_dcat_commands.py,sha256=fDAnAjkja8AXw_qzaAWnVTgglkBAvK2mjPMHUCtqrrU,919
|
|
639
640
|
udata/tests/test_discussions.py,sha256=a2yBGfOSm93w8zP2s2gXy51LGniiZ0lbrej0uuXNd2E,47685
|
|
640
|
-
udata/tests/test_i18n.py,sha256=u60344JNRG_8s0t89ghXtQ1FbF4TayEHBzuBFxqnQ_Y,3152
|
|
641
641
|
udata/tests/test_linkchecker.py,sha256=W8jrwKYXM8wWXZFjiaBwpWGRBhZ8bsSHGHzL9voDN7U,10218
|
|
642
642
|
udata/tests/test_mail.py,sha256=f-8meP9r1Xrz0eOTsvmdynoV9OFHLwwMr7XM5WWv_gk,4182
|
|
643
643
|
udata/tests/test_migrations.py,sha256=Iq0gt3hjK6ohliIvEpqyt0tYJz0MKIzBg_yfw7dOcHo,15698
|
|
@@ -658,7 +658,7 @@ udata/tests/api/test_auth_api.py,sha256=OMRlY0OQt60j5N4A-N3HdWTuffOjRlFHkz5a3jJF
|
|
|
658
658
|
udata/tests/api/test_base_api.py,sha256=2w_vz0eEuq3P3aN-ByvxGc3VZAo7XtgatFfcrzf2uEU,2244
|
|
659
659
|
udata/tests/api/test_contact_points.py,sha256=Sbb486RTN7HVycna_XB60OnURPSNc7xUity26XsYA4k,8766
|
|
660
660
|
udata/tests/api/test_dataservices_api.py,sha256=vQZc8gey1zTckaWuqodXHJ95jp0O5ksVLllE1n3iqoE,31496
|
|
661
|
-
udata/tests/api/test_datasets_api.py,sha256=
|
|
661
|
+
udata/tests/api/test_datasets_api.py,sha256=P_5e6Y2p5q5K4ILJ44uYNDD3FmSL0qYAMg_xZwoiCzc,104159
|
|
662
662
|
udata/tests/api/test_fields.py,sha256=OW85Z5MES5HeWOpapeem8OvR1cIcrqW-xMWpdZO4LZ8,1033
|
|
663
663
|
udata/tests/api/test_follow_api.py,sha256=4nFXG5pZ_Hf2PJ4KEdHJX_uggjc9RpB8v0fidkAcw9I,5792
|
|
664
664
|
udata/tests/api/test_me_api.py,sha256=YPd8zmR3zwJKtpSqz8nY1nOOMyXs66INeBwyhg5D0Us,13846
|
|
@@ -688,8 +688,8 @@ udata/tests/dataset/test_csv_adapter.py,sha256=Qy3dKg7OVz7paEOrRzHe-plBGsZgkalfW
|
|
|
688
688
|
udata/tests/dataset/test_dataset_actions.py,sha256=bgDjVYjOvu3sX_FCTCzf2snZYSprsqor2nAhIVuokSs,722
|
|
689
689
|
udata/tests/dataset/test_dataset_commands.py,sha256=zMPJG2wYwKBee2zI65kmboxf59Zqa84DDjT8V5wj9uo,801
|
|
690
690
|
udata/tests/dataset/test_dataset_events.py,sha256=hlrpoOiBbnX_COUI9Pzdqlp45GZZDqu5piwupbnPiTI,3601
|
|
691
|
-
udata/tests/dataset/test_dataset_model.py,sha256=
|
|
692
|
-
udata/tests/dataset/test_dataset_rdf.py,sha256=
|
|
691
|
+
udata/tests/dataset/test_dataset_model.py,sha256=plzvIaEqvxQpcYS8YlDBltjuTgtT7xgNVEzkmlPZBC0,33766
|
|
692
|
+
udata/tests/dataset/test_dataset_rdf.py,sha256=8Gv_v1nRIvopfKJ2R7KAwv63GnzGXr_yFR-qQ1_Kwx8,45945
|
|
693
693
|
udata/tests/dataset/test_dataset_recommendations.py,sha256=K52HXGXi9DuUSiSRQWpqTrsFCkYbv7K3upNp0fFp5v8,7068
|
|
694
694
|
udata/tests/dataset/test_dataset_tasks.py,sha256=SwSv-hDSXgs1xXtvtaePQ6fa6_d4ZpHo-oahDRinvPg,3271
|
|
695
695
|
udata/tests/dataset/test_resource_preview.py,sha256=AxSF8cnG6bhy2pz9Fi3PfEzdLlNhZ0xrp9dr6yrt31A,2051
|
|
@@ -751,7 +751,7 @@ udata/tests/workers/test_jobs_commands.py,sha256=tGJp9zRxKaGszNhKAVe-xY86v6NhLmF
|
|
|
751
751
|
udata/tests/workers/test_tasks_routing.py,sha256=m7Zu9X7GW3oKkSDcHM-dC20Vba3Fruui44bMBVU1dcc,2228
|
|
752
752
|
udata/tests/workers/test_workers_api.py,sha256=x8EkULR9G5TKl5WwjdVwfFEttbudpiWIYN2umETrCzY,8805
|
|
753
753
|
udata/tests/workers/test_workers_helpers.py,sha256=_983ChRxas3gsjykaEpXWQUbk2qTMJgeFZpIAHTuhLk,647
|
|
754
|
-
udata/translations/udata.pot,sha256=
|
|
754
|
+
udata/translations/udata.pot,sha256=zrIXqLMqI1bOfu8LI-7isMPdWJylcpq459pYmjgZOrY,43336
|
|
755
755
|
udata/translations/ar/LC_MESSAGES/udata.mo,sha256=FVeIEIB96zq7LinTAM6pic31XgYQxYystYohOEz3Wk0,12512
|
|
756
756
|
udata/translations/ar/LC_MESSAGES/udata.po,sha256=KP-dbL_etPy22mRF3NPBZ86NJxERiL0a6IbHvy3a2cE,46091
|
|
757
757
|
udata/translations/de/LC_MESSAGES/udata.mo,sha256=JR1CmYE46yXQcp3EoETqSZe4ut59-u_KgkBr24PBhAw,15180
|
|
@@ -766,9 +766,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=U0abG-nBwCIoYxRZNsc4KOLeIRSqTV
|
|
|
766
766
|
udata/translations/pt/LC_MESSAGES/udata.po,sha256=eCG35rMzYLHXyLbsnLSexS1g0N_K-WpNHqrt_8y6I4E,48590
|
|
767
767
|
udata/translations/sr/LC_MESSAGES/udata.mo,sha256=IBcCAdmcvkeK7ZeRBNRI-wJ0jzWNM0eXM5VXAc1frWI,28692
|
|
768
768
|
udata/translations/sr/LC_MESSAGES/udata.po,sha256=yFxHEEB4behNwQ7JnyoYheiCKLNnMS_NV4guzgyzWcE,55332
|
|
769
|
-
udata-11.1.2.
|
|
770
|
-
udata-11.1.2.
|
|
771
|
-
udata-11.1.2.
|
|
772
|
-
udata-11.1.2.
|
|
773
|
-
udata-11.1.2.
|
|
774
|
-
udata-11.1.2.
|
|
769
|
+
udata-11.1.2.dev11.dist-info/licenses/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
|
|
770
|
+
udata-11.1.2.dev11.dist-info/METADATA,sha256=EmwWt1Tei8nbpl6BAIXwl-RORx29XEvd8kJfpKy7qAY,6675
|
|
771
|
+
udata-11.1.2.dev11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
772
|
+
udata-11.1.2.dev11.dist-info/entry_points.txt,sha256=v2u12qO11i2lyLNIp136WmLJ-NHT-Kew3Duu8J-AXPM,614
|
|
773
|
+
udata-11.1.2.dev11.dist-info/top_level.txt,sha256=EF6CE6YSHd_og-8LCEA4q25ALUpWVe8D0okOLdMAE3A,6
|
|
774
|
+
udata-11.1.2.dev11.dist-info/RECORD,,
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
{% extends 'mail/base.html' %}
|
|
2
|
-
{% from 'mail/button.html' import mail_button %}
|
|
3
|
-
|
|
4
|
-
{% block body %}
|
|
5
|
-
<p style="margin: 0;padding: 0;">
|
|
6
|
-
{{ _('Some of your datasets need to be updated according to the frequency you set:') }}
|
|
7
|
-
</p>
|
|
8
|
-
<br/>
|
|
9
|
-
|
|
10
|
-
{% for dataset in datasets %}
|
|
11
|
-
<p style="margin: 0;padding: 0;"><b>
|
|
12
|
-
{{ _('Dataset "%(dataset_title)s" last update is on %(published_date)s.',
|
|
13
|
-
dataset_title=dataset.title,
|
|
14
|
-
published_date=dataset.last_update.strftime('%d/%m/%Y')) }}
|
|
15
|
-
</b></p>
|
|
16
|
-
<p style="margin: 0;padding: 0;">
|
|
17
|
-
{{ _('Given the set frequency (%(dataset_frequency)s) update was due %(due_update_days)s days ago.',
|
|
18
|
-
dataset_frequency=dataset.frequency_str,
|
|
19
|
-
due_update_days=dataset.outdated.days) }}
|
|
20
|
-
</p>
|
|
21
|
-
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
22
|
-
<tr>
|
|
23
|
-
<td align="center">
|
|
24
|
-
{{ mail_button(
|
|
25
|
-
_('Update the dataset and associated resources'),
|
|
26
|
-
cdata_url('/admin/datasets/' ~ dataset.id ~ '/')
|
|
27
|
-
) }}
|
|
28
|
-
</td>
|
|
29
|
-
</tr>
|
|
30
|
-
</table>
|
|
31
|
-
<br/>
|
|
32
|
-
<br/>
|
|
33
|
-
{% endfor %}
|
|
34
|
-
{% endblock %}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{% extends 'mail/base.txt' %}
|
|
2
|
-
|
|
3
|
-
{% block body %}
|
|
4
|
-
{{ _('Some of your datasets need to be updated according to the frequency you set:') }}
|
|
5
|
-
|
|
6
|
-
{% for dataset in datasets %}
|
|
7
|
-
* {{ _('Dataset "%(dataset_title)s" last update is on %(published_date)s.',
|
|
8
|
-
dataset_title=dataset.title,
|
|
9
|
-
published_date=dataset.last_update.strftime('%d/%m/%Y')) }}
|
|
10
|
-
{{ _('Given the set frequency (%(dataset_frequency)s) update was due %(due_update_days)s days ago.',
|
|
11
|
-
dataset_frequency=dataset.frequency_str,
|
|
12
|
-
due_update_days=dataset.outdated.days) }}
|
|
13
|
-
{{ _('You can update the dataset and associated resources at:') }}
|
|
14
|
-
{{ cdata_url('/admin/datasets/' ~ dataset.id ~ '/') }}
|
|
15
|
-
|
|
16
|
-
{% endfor %}
|
|
17
|
-
|
|
18
|
-
{% endblock %}
|
udata/tests/test_i18n.py
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
from flask import g, render_template_string, url_for
|
|
2
|
-
from werkzeug.routing import BuildError
|
|
3
|
-
|
|
4
|
-
from udata.core.user.factories import UserFactory
|
|
5
|
-
from udata.i18n import I18nBlueprint, language
|
|
6
|
-
|
|
7
|
-
from . import DBTestMixin, TestCase, WebTestMixin
|
|
8
|
-
|
|
9
|
-
bp = I18nBlueprint("i18nbp", __name__, static_folder="static")
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
@bp.route("/lang/<msg>/")
|
|
13
|
-
def lang(msg):
|
|
14
|
-
return g.lang_code
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
@bp.route("/hardcoded/")
|
|
18
|
-
def hardcoded():
|
|
19
|
-
out = g.lang_code + "-"
|
|
20
|
-
with language("fr"):
|
|
21
|
-
out += g.lang_code
|
|
22
|
-
return out
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
@bp.route("/not-localized/", localize=False)
|
|
26
|
-
def not_localized():
|
|
27
|
-
out = g.lang_code + "-"
|
|
28
|
-
with language("fr"):
|
|
29
|
-
out += g.lang_code
|
|
30
|
-
return out
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class I18nBlueprintTest(WebTestMixin, DBTestMixin, TestCase):
|
|
34
|
-
def create_app(self):
|
|
35
|
-
app = super(I18nBlueprintTest, self).create_app()
|
|
36
|
-
app.config["DEFAULT_LANGUAGE"] = "en"
|
|
37
|
-
app.config["LANGUAGES"] = {
|
|
38
|
-
"en": "English",
|
|
39
|
-
"fr": "Français",
|
|
40
|
-
}
|
|
41
|
-
app.register_blueprint(bp)
|
|
42
|
-
return app
|
|
43
|
-
|
|
44
|
-
def test_lang_inserted_url_for(self):
|
|
45
|
-
self.assertEqual(url_for("i18nbp.lang", msg="test"), "/en/lang/test/")
|
|
46
|
-
|
|
47
|
-
def test_redirect_url_for(self):
|
|
48
|
-
self.assertEqual(url_for("i18nbp.lang_redirect", msg="test"), "/lang/test/")
|
|
49
|
-
|
|
50
|
-
def test_lang_ignored_for_static(self):
|
|
51
|
-
self.assertEqual(url_for("i18nbp.static", filename="test.jpg"), "/static/test.jpg")
|
|
52
|
-
with self.assertRaises(BuildError):
|
|
53
|
-
url_for("i18nbp.static_redirect", filename="test.jpg")
|
|
54
|
-
|
|
55
|
-
def test_redirect_on_missing_lang(self):
|
|
56
|
-
response = self.get("/lang/test/?q=test")
|
|
57
|
-
self.assertRedirects(response, "/en/lang/test/?q=test")
|
|
58
|
-
|
|
59
|
-
def test_do_not_redirect_and_set_lang(self):
|
|
60
|
-
self.assertEqual(self.get("/fr/lang/test/").data, b"fr")
|
|
61
|
-
self.assertEqual(self.get("/en/lang/test/").data, b"en")
|
|
62
|
-
|
|
63
|
-
def test_redirect_on_default_lang_for_unknown_lang(self):
|
|
64
|
-
self.assertRedirects(self.get("/sk/lang/test/"), "/en/lang/test/")
|
|
65
|
-
|
|
66
|
-
def test_404_on_default_lang_for_unknown_lang(self):
|
|
67
|
-
self.assert404(self.get("/sk/not-found/"))
|
|
68
|
-
|
|
69
|
-
def test_language_contact_manager(self):
|
|
70
|
-
self.assertEqual(self.get("/fr/hardcoded/").data, b"fr-fr")
|
|
71
|
-
self.assertEqual(self.get("/en/hardcoded/").data, b"en-fr")
|
|
72
|
-
|
|
73
|
-
def test_redirect_user_prefered_lang(self):
|
|
74
|
-
self.login(UserFactory(prefered_language="fr"))
|
|
75
|
-
|
|
76
|
-
response = self.get("/lang/test/?q=test")
|
|
77
|
-
self.assertRedirects(response, "/fr/lang/test/?q=test")
|
|
78
|
-
|
|
79
|
-
def test_lang_ignored_for_localize_false(self):
|
|
80
|
-
url = url_for("i18nbp.not_localized")
|
|
81
|
-
self.assertEqual(url, "/not-localized/")
|
|
82
|
-
|
|
83
|
-
def test_localized_url_redirect_for_localize_false(self):
|
|
84
|
-
url = url_for("i18nbp.not_localized_redirect")
|
|
85
|
-
self.assertEqual(url, "/en/not-localized/")
|
|
86
|
-
|
|
87
|
-
response = self.get(url)
|
|
88
|
-
self.assertRedirects(response, "/not-localized/")
|
|
89
|
-
|
|
90
|
-
def test_render_template_translation(self):
|
|
91
|
-
"""It should render the dataset page"""
|
|
92
|
-
self.app.config["DEFAULT_LANGUAGE"] = "fr"
|
|
93
|
-
self.assertEqual("Bienvenue", render_template_string('{{ _("Welcome") }}'))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|