udata 10.1.2.dev34172__py2.py3-none-any.whl → 10.1.3__py2.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.

Files changed (59) hide show
  1. udata/__init__.py +1 -1
  2. udata/commands/fixtures.py +1 -1
  3. udata/core/dataservices/constants.py +11 -0
  4. udata/core/dataservices/csv.py +3 -3
  5. udata/core/dataservices/models.py +27 -12
  6. udata/core/dataservices/rdf.py +5 -3
  7. udata/core/dataservices/search.py +13 -5
  8. udata/core/dataset/api.py +18 -3
  9. udata/core/dataset/forms.py +8 -4
  10. udata/core/dataset/models.py +6 -0
  11. udata/core/metrics/commands.py +20 -1
  12. udata/core/organization/api_fields.py +3 -1
  13. udata/core/user/api.py +8 -1
  14. udata/core/user/api_fields.py +5 -0
  15. udata/core/user/models.py +16 -11
  16. udata/core/user/tasks.py +81 -2
  17. udata/core/user/tests/test_user_model.py +29 -12
  18. udata/features/transfer/api.py +7 -4
  19. udata/harvest/actions.py +5 -0
  20. udata/harvest/backends/base.py +22 -2
  21. udata/harvest/models.py +19 -0
  22. udata/harvest/tests/test_actions.py +12 -0
  23. udata/harvest/tests/test_base_backend.py +74 -8
  24. udata/harvest/tests/test_dcat_backend.py +1 -1
  25. udata/migrations/2025-01-05-dataservices-fields-changes.py +136 -0
  26. udata/settings.py +5 -0
  27. udata/templates/mail/account_inactivity.html +29 -0
  28. udata/templates/mail/account_inactivity.txt +22 -0
  29. udata/templates/mail/inactive_account_deleted.html +5 -0
  30. udata/templates/mail/inactive_account_deleted.txt +6 -0
  31. udata/tests/api/test_dataservices_api.py +41 -2
  32. udata/tests/api/test_datasets_api.py +58 -0
  33. udata/tests/api/test_me_api.py +1 -1
  34. udata/tests/api/test_transfer_api.py +38 -0
  35. udata/tests/api/test_user_api.py +47 -8
  36. udata/tests/dataservice/test_csv_adapter.py +2 -0
  37. udata/tests/dataset/test_dataset_model.py +14 -0
  38. udata/tests/user/test_user_tasks.py +144 -0
  39. udata/translations/ar/LC_MESSAGES/udata.mo +0 -0
  40. udata/translations/ar/LC_MESSAGES/udata.po +88 -60
  41. udata/translations/de/LC_MESSAGES/udata.mo +0 -0
  42. udata/translations/de/LC_MESSAGES/udata.po +88 -60
  43. udata/translations/es/LC_MESSAGES/udata.mo +0 -0
  44. udata/translations/es/LC_MESSAGES/udata.po +88 -60
  45. udata/translations/fr/LC_MESSAGES/udata.mo +0 -0
  46. udata/translations/fr/LC_MESSAGES/udata.po +88 -60
  47. udata/translations/it/LC_MESSAGES/udata.mo +0 -0
  48. udata/translations/it/LC_MESSAGES/udata.po +88 -60
  49. udata/translations/pt/LC_MESSAGES/udata.mo +0 -0
  50. udata/translations/pt/LC_MESSAGES/udata.po +88 -60
  51. udata/translations/sr/LC_MESSAGES/udata.mo +0 -0
  52. udata/translations/sr/LC_MESSAGES/udata.po +88 -60
  53. udata/translations/udata.pot +83 -54
  54. {udata-10.1.2.dev34172.dist-info → udata-10.1.3.dist-info}/METADATA +15 -2
  55. {udata-10.1.2.dev34172.dist-info → udata-10.1.3.dist-info}/RECORD +59 -52
  56. {udata-10.1.2.dev34172.dist-info → udata-10.1.3.dist-info}/LICENSE +0 -0
  57. {udata-10.1.2.dev34172.dist-info → udata-10.1.3.dist-info}/WHEEL +0 -0
  58. {udata-10.1.2.dev34172.dist-info → udata-10.1.3.dist-info}/entry_points.txt +0 -0
  59. {udata-10.1.2.dev34172.dist-info → udata-10.1.3.dist-info}/top_level.txt +0 -0
@@ -6,10 +6,10 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: udata 10.1.1.dev0\n"
9
+ "Project-Id-Version: udata 10.1.3.dev0\n"
10
10
  "Report-Msgid-Bugs-To: i18n@opendata.team\n"
11
- "POT-Creation-Date: 2025-02-21 13:37+0100\n"
12
- "PO-Revision-Date: 2025-02-21 13:37+0100\n"
11
+ "POT-Creation-Date: 2025-03-13 12:46+0100\n"
12
+ "PO-Revision-Date: 2025-03-13 12:46+0100\n"
13
13
  "Last-Translator: Open Data Team <i18n@opendata.team>\n"
14
14
  "Language: en\n"
15
15
  "Language-Team: Open Data Team <i18n@opendata.team>\n"
@@ -43,7 +43,7 @@ msgstr ""
43
43
  msgid "Password reset instructions"
44
44
  msgstr ""
45
45
 
46
- #: udata/settings.py:504
46
+ #: udata/settings.py:509
47
47
  msgid "This dataset has been archived"
48
48
  msgstr ""
49
49
 
@@ -51,7 +51,7 @@ msgstr ""
51
51
  msgid "Invalid URL \"{url}\": {reason}"
52
52
  msgstr ""
53
53
 
54
- #: udata/tests/api/test_datasets_api.py:923 udata/tests/test_model.py:367
54
+ #: udata/tests/api/test_datasets_api.py:935 udata/tests/test_model.py:403
55
55
  #: udata/uris.py:55
56
56
  msgid "Invalid URL \"{url}\""
57
57
  msgstr ""
@@ -80,7 +80,7 @@ msgstr ""
80
80
  msgid "is a local URL"
81
81
  msgstr ""
82
82
 
83
- #: udata/tests/test_model.py:385 udata/uris.py:129
83
+ #: udata/tests/test_model.py:421 udata/uris.py:129
84
84
  msgid "is a private URL"
85
85
  msgstr ""
86
86
 
@@ -206,7 +206,7 @@ msgid "Your udata instance is ready!"
206
206
  msgstr ""
207
207
 
208
208
  #: udata/core/owned.py:64 udata/forms/fields.py:752
209
- #: udata/tests/api/test_dataservices_api.py:437
209
+ #: udata/tests/api/test_dataservices_api.py:476
210
210
  msgid "You can only set yourself as owner"
211
211
  msgstr ""
212
212
 
@@ -215,7 +215,7 @@ msgid "Unknown organization"
215
215
  msgstr ""
216
216
 
217
217
  #: udata/core/owned.py:77 udata/forms/fields.py:784
218
- #: udata/tests/api/test_dataservices_api.py:451
218
+ #: udata/tests/api/test_dataservices_api.py:490
219
219
  msgid "Permission denied for this organization"
220
220
  msgstr ""
221
221
 
@@ -246,8 +246,8 @@ msgstr ""
246
246
  msgid "The organization web contact form"
247
247
  msgstr ""
248
248
 
249
- #: udata/core/contact_point/forms.py:20 udata/core/dataset/forms.py:112
250
- #: udata/core/dataset/forms.py:175 udata/core/topic/forms.py:14
249
+ #: udata/core/contact_point/forms.py:20 udata/core/dataset/forms.py:116
250
+ #: udata/core/dataset/forms.py:179 udata/core/topic/forms.py:14
251
251
  #: udata/harvest/forms.py:87
252
252
  msgid "Publish as"
253
253
  msgstr ""
@@ -272,16 +272,16 @@ msgstr ""
272
272
  msgid "At least an email or a contact form is required for a contact point"
273
273
  msgstr ""
274
274
 
275
- #: udata/core/dataservices/models.py:114
275
+ #: udata/core/dataservices/models.py:120
276
276
  msgid "dataservice"
277
277
  msgstr ""
278
278
 
279
- #: udata/core/dataservices/models.py:179 udata/core/dataset/models.py:569
279
+ #: udata/core/dataservices/models.py:194 udata/core/dataset/models.py:569
280
280
  #: udata/mongo/datetime_fields.py:60
281
281
  msgid "Creation date"
282
282
  msgstr ""
283
283
 
284
- #: udata/core/dataservices/models.py:185 udata/core/dataset/models.py:572
284
+ #: udata/core/dataservices/models.py:200 udata/core/dataset/models.py:572
285
285
  #: udata/mongo/datetime_fields.py:66
286
286
  msgid "Last modification date"
287
287
  msgstr ""
@@ -326,7 +326,7 @@ msgstr ""
326
326
  msgid "Semidaily"
327
327
  msgstr ""
328
328
 
329
- #: udata/core/dataset/constants.py:17 udata/harvest/models.py:21
329
+ #: udata/core/dataset/constants.py:17 udata/harvest/models.py:22
330
330
  msgid "Daily"
331
331
  msgstr ""
332
332
 
@@ -342,7 +342,7 @@ msgstr ""
342
342
  msgid "Semiweekly"
343
343
  msgstr ""
344
344
 
345
- #: udata/core/dataset/constants.py:21 udata/harvest/models.py:20
345
+ #: udata/core/dataset/constants.py:21 udata/harvest/models.py:21
346
346
  msgid "Weekly"
347
347
  msgstr ""
348
348
 
@@ -358,7 +358,7 @@ msgstr ""
358
358
  msgid "Semimonthly"
359
359
  msgstr ""
360
360
 
361
- #: udata/core/dataset/constants.py:25 udata/harvest/models.py:19
361
+ #: udata/core/dataset/constants.py:25 udata/harvest/models.py:20
362
362
  msgid "Monthly"
363
363
  msgstr ""
364
364
 
@@ -446,7 +446,7 @@ msgstr ""
446
446
  msgid "Version of the schema"
447
447
  msgstr ""
448
448
 
449
- #: udata/core/dataset/forms.py:65 udata/core/dataset/forms.py:142
449
+ #: udata/core/dataset/forms.py:65 udata/core/dataset/forms.py:146
450
450
  #: udata/core/discussions/forms.py:13 udata/core/site/forms.py:12
451
451
  #: udata/templates/mail/discussion_closed.html:26
452
452
  #: udata/templates/mail/new_discussion.html:25
@@ -454,7 +454,7 @@ msgstr ""
454
454
  msgid "Title"
455
455
  msgstr ""
456
456
 
457
- #: udata/core/dataset/forms.py:68 udata/core/dataset/forms.py:146
457
+ #: udata/core/dataset/forms.py:68 udata/core/dataset/forms.py:150
458
458
  #: udata/core/jobs/forms.py:28 udata/core/organization/forms.py:50
459
459
  #: udata/core/topic/forms.py:17 udata/harvest/forms.py:80
460
460
  msgid "Description"
@@ -500,73 +500,73 @@ msgstr ""
500
500
  msgid "The file size in bytes"
501
501
  msgstr ""
502
502
 
503
- #: udata/core/dataset/forms.py:110
503
+ #: udata/core/dataset/forms.py:114
504
504
  msgid "Related dataset"
505
505
  msgstr ""
506
506
 
507
- #: udata/core/dataset/forms.py:134 udata/tests/api/test_datasets_api.py:835
507
+ #: udata/core/dataset/forms.py:138 udata/tests/api/test_datasets_api.py:847
508
508
  msgid "Wrong contact point id or contact point ownership mismatch"
509
509
  msgstr ""
510
510
 
511
- #: udata/core/dataset/forms.py:144 udata/core/organization/forms.py:48
511
+ #: udata/core/dataset/forms.py:148 udata/core/organization/forms.py:48
512
512
  msgid "Acronym"
513
513
  msgstr ""
514
514
 
515
- #: udata/core/dataset/forms.py:144
515
+ #: udata/core/dataset/forms.py:148
516
516
  msgid "An optional acronym"
517
517
  msgstr ""
518
518
 
519
- #: udata/core/dataset/forms.py:148
519
+ #: udata/core/dataset/forms.py:152
520
520
  msgid "The details about the dataset (collection process, specifics...)."
521
521
  msgstr ""
522
522
 
523
- #: udata/core/dataset/forms.py:150
523
+ #: udata/core/dataset/forms.py:154
524
524
  msgid "License"
525
525
  msgstr ""
526
526
 
527
- #: udata/core/dataset/forms.py:152
527
+ #: udata/core/dataset/forms.py:156
528
528
  msgid "Update frequency"
529
529
  msgstr ""
530
530
 
531
- #: udata/core/dataset/forms.py:157
531
+ #: udata/core/dataset/forms.py:161
532
532
  msgid "The frequency at which data are updated."
533
533
  msgstr ""
534
534
 
535
- #: udata/core/dataset/forms.py:159
535
+ #: udata/core/dataset/forms.py:163
536
536
  msgid "Expected frequency date"
537
537
  msgstr ""
538
538
 
539
- #: udata/core/dataset/forms.py:163
539
+ #: udata/core/dataset/forms.py:167
540
540
  msgid "Temporal coverage"
541
541
  msgstr ""
542
542
 
543
- #: udata/core/dataset/forms.py:163
543
+ #: udata/core/dataset/forms.py:167
544
544
  msgid "The period covered by the data"
545
545
  msgstr ""
546
546
 
547
- #: udata/core/dataset/forms.py:166 udata/core/spatial/forms.py:85
547
+ #: udata/core/dataset/forms.py:170 udata/core/spatial/forms.py:85
548
548
  #: udata/core/topic/forms.py:23
549
549
  msgid "Spatial coverage"
550
550
  msgstr ""
551
551
 
552
- #: udata/core/dataset/forms.py:166 udata/core/topic/forms.py:23
552
+ #: udata/core/dataset/forms.py:170 udata/core/topic/forms.py:23
553
553
  msgid "The geographical area covered by the data."
554
554
  msgstr ""
555
555
 
556
- #: udata/core/dataset/forms.py:168 udata/core/post/forms.py:26
556
+ #: udata/core/dataset/forms.py:172 udata/core/post/forms.py:26
557
557
  #: udata/core/site/forms.py:13 udata/core/topic/forms.py:26
558
558
  msgid "Tags"
559
559
  msgstr ""
560
560
 
561
- #: udata/core/dataset/forms.py:168
561
+ #: udata/core/dataset/forms.py:172
562
562
  msgid "Some taxonomy keywords"
563
563
  msgstr ""
564
564
 
565
- #: udata/core/dataset/forms.py:170 udata/core/topic/forms.py:27
565
+ #: udata/core/dataset/forms.py:174 udata/core/topic/forms.py:27
566
566
  msgid "Private"
567
567
  msgstr ""
568
568
 
569
- #: udata/core/dataset/forms.py:171
569
+ #: udata/core/dataset/forms.py:175
570
570
  msgid "Restrict the dataset visibility to you or your organization only."
571
571
  msgstr ""
572
572
 
@@ -578,12 +578,12 @@ msgstr ""
578
578
  msgid "A schema must contains a name or an URL when a version is provided."
579
579
  msgstr ""
580
580
 
581
- #: udata/core/dataset/models.py:167 udata/tests/api/test_datasets_api.py:931
582
- #: udata/tests/api/test_datasets_api.py:942
581
+ #: udata/core/dataset/models.py:167 udata/tests/api/test_datasets_api.py:943
582
+ #: udata/tests/api/test_datasets_api.py:954
583
583
  msgid "Schema name \"{schema}\" is not an allowed value. Allowed values: {values}"
584
584
  msgstr ""
585
585
 
586
- #: udata/core/dataset/models.py:186 udata/tests/api/test_datasets_api.py:953
586
+ #: udata/core/dataset/models.py:186 udata/tests/api/test_datasets_api.py:965
587
587
  msgid ""
588
588
  "Version \"{version}\" is not an allowed value for the schema \"{name}\". "
589
589
  "Allowed versions: {values}"
@@ -668,17 +668,17 @@ msgid "Editor"
668
668
  msgstr ""
669
669
 
670
670
  #: udata/core/organization/constants.py:11 udata/features/transfer/models.py:13
671
- #: udata/harvest/models.py:27 udata/harvest/models.py:39 udata/harvest/models.py:87
671
+ #: udata/harvest/models.py:28 udata/harvest/models.py:40 udata/harvest/models.py:88
672
672
  msgid "Pending"
673
673
  msgstr ""
674
674
 
675
675
  #: udata/core/organization/constants.py:12 udata/features/transfer/models.py:14
676
- #: udata/harvest/models.py:88
676
+ #: udata/harvest/models.py:89
677
677
  msgid "Accepted"
678
678
  msgstr ""
679
679
 
680
680
  #: udata/core/organization/constants.py:13 udata/features/transfer/models.py:15
681
- #: udata/harvest/models.py:89
681
+ #: udata/harvest/models.py:90
682
682
  msgid "Refused"
683
683
  msgstr ""
684
684
 
@@ -1103,7 +1103,7 @@ msgstr ""
1103
1103
  msgid "Roles"
1104
1104
  msgstr ""
1105
1105
 
1106
- #: udata/core/user/models.py:286 udata/tests/api/test_me_api.py:297
1106
+ #: udata/core/user/models.py:291 udata/tests/api/test_me_api.py:297
1107
1107
  msgid "Account deletion"
1108
1108
  msgstr ""
1109
1109
 
@@ -1119,10 +1119,18 @@ msgstr ""
1119
1119
  msgid "Site moderator"
1120
1120
  msgstr ""
1121
1121
 
1122
- #: udata/core/user/tasks.py:15
1122
+ #: udata/core/user/tasks.py:19
1123
1123
  msgid "Test mail"
1124
1124
  msgstr ""
1125
1125
 
1126
+ #: udata/core/user/tasks.py:45 udata/tests/user/test_user_tasks.py:36
1127
+ msgid "Inactivity of your {site} account"
1128
+ msgstr ""
1129
+
1130
+ #: udata/core/user/tasks.py:88 udata/tests/user/test_user_tasks.py:109
1131
+ msgid "Deletion of your inactive {site} account"
1132
+ msgstr ""
1133
+
1126
1134
  #: udata/forms/fields.py:127
1127
1135
  msgid "Please input a date/time value"
1128
1136
  msgstr ""
@@ -1200,43 +1208,43 @@ msgstr ""
1200
1208
  msgid "Backend"
1201
1209
  msgstr ""
1202
1210
 
1203
- #: udata/harvest/models.py:18
1211
+ #: udata/harvest/models.py:19
1204
1212
  msgid "Manual"
1205
1213
  msgstr ""
1206
1214
 
1207
- #: udata/harvest/models.py:28
1215
+ #: udata/harvest/models.py:29
1208
1216
  msgid "Initializing"
1209
1217
  msgstr ""
1210
1218
 
1211
- #: udata/harvest/models.py:29
1219
+ #: udata/harvest/models.py:30
1212
1220
  msgid "Initialized"
1213
1221
  msgstr ""
1214
1222
 
1215
- #: udata/harvest/models.py:30
1223
+ #: udata/harvest/models.py:31
1216
1224
  msgid "Processing"
1217
1225
  msgstr ""
1218
1226
 
1219
- #: udata/harvest/models.py:31 udata/harvest/models.py:41
1227
+ #: udata/harvest/models.py:32 udata/harvest/models.py:42
1220
1228
  msgid "Done"
1221
1229
  msgstr ""
1222
1230
 
1223
- #: udata/harvest/models.py:32
1231
+ #: udata/harvest/models.py:33
1224
1232
  msgid "Done with errors"
1225
1233
  msgstr ""
1226
1234
 
1227
- #: udata/harvest/models.py:33 udata/harvest/models.py:42
1235
+ #: udata/harvest/models.py:34 udata/harvest/models.py:43
1228
1236
  msgid "Failed"
1229
1237
  msgstr ""
1230
1238
 
1231
- #: udata/harvest/models.py:40
1239
+ #: udata/harvest/models.py:41
1232
1240
  msgid "Started"
1233
1241
  msgstr ""
1234
1242
 
1235
- #: udata/harvest/models.py:43
1243
+ #: udata/harvest/models.py:44
1236
1244
  msgid "Skipped"
1237
1245
  msgstr ""
1238
1246
 
1239
- #: udata/harvest/models.py:44
1247
+ #: udata/harvest/models.py:45
1240
1248
  msgid "Archived"
1241
1249
  msgstr ""
1242
1250
 
@@ -1336,6 +1344,23 @@ msgstr ""
1336
1344
  msgid "Your account has now been deleted"
1337
1345
  msgstr ""
1338
1346
 
1347
+ #: udata/templates/mail/account_inactivity.html:6
1348
+ #, python-format
1349
+ msgid ""
1350
+ "Your account (%(user_email)s) has been inactive for %(inactivity_years)d "
1351
+ "years or more."
1352
+ msgstr ""
1353
+
1354
+ #: udata/templates/mail/account_inactivity.html:15
1355
+ #, python-format
1356
+ msgid "If you want to keep your account, please log in with your account on %(site)s."
1357
+ msgstr ""
1358
+
1359
+ #: udata/templates/mail/account_inactivity.html:23
1360
+ #, python-format
1361
+ msgid "Without logging in, your account will be deleted within %(notify_delay)d days."
1362
+ msgstr ""
1363
+
1339
1364
  #: udata/templates/mail/badge_added_association.html:6
1340
1365
  #, python-format
1341
1366
  msgid "%(user)s has identified your organization \"%(name)s\" as an association"
@@ -1429,6 +1454,11 @@ msgstr ""
1429
1454
  msgid "Update the dataset and associated resources"
1430
1455
  msgstr ""
1431
1456
 
1457
+ #: udata/templates/mail/inactive_account_deleted.html:4
1458
+ #, python-format
1459
+ msgid "Your account on %(site)s has been deleted due to inactivity"
1460
+ msgstr ""
1461
+
1432
1462
  #: udata/templates/mail/membership_refused.html:7
1433
1463
  #, python-format
1434
1464
  msgid "Your membership for the organization \"%(org)s\" has been refused"
@@ -1660,4 +1690,3 @@ msgstr ""
1660
1690
  #: udata/tests/search/test_adapter.py:33
1661
1691
  msgid "Heavily reused"
1662
1692
  msgstr ""
1663
-
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: udata
3
- Version: 10.1.2.dev34172
3
+ Version: 10.1.3
4
4
  Summary: Open data portal
5
5
  Home-page: https://github.com/opendatateam/udata
6
6
  Author: Opendata Team
@@ -138,7 +138,20 @@ It is collectively taken care of by members of the
138
138
 
139
139
  # Changelog
140
140
 
141
- ## Current (in progress)
141
+ ## 10.1.3 (2025-03-14)
142
+
143
+ - Add inactive users notification and deletion jobs [#3274](https://github.com/opendatateam/udata/pull/3274)
144
+ - these jobs can be scheduled daily for example
145
+ - `YEARS_OF_INACTIVITY_BEFORE_DELETION` setting must be configured at least to activate it
146
+ - **breaking change** Migrate dataservices fields, migration needed [#3262](https://github.com/opendatateam/udata/pull/3262)
147
+ - Add views as Dataservice metrics and sort [#3280](https://github.com/opendatateam/udata/pull/3280)
148
+ - Fix creating/updating ID for resources [#3239](https://github.com/opendatateam/udata/pull/3239)
149
+ - Cannot respond to a transfer after first response [#3255](https://github.com/opendatateam/udata/pull/3255)
150
+ - Cannot update resource filetype after creation [#3254](https://github.com/opendatateam/udata/pull/3254)
151
+ - Add `last_login_at` in user endpoints for super-admins [#3284](https://github.com/opendatateam/udata/pull/3284)
152
+ - Add autoarchive to dataservices [#3283](https://github.com/opendatateam/udata/pull/3283)
153
+
154
+ ## 10.1.2 (2025-03-10)
142
155
 
143
156
  - Fix end date not defined in admin [#3281](https://github.com/opendatateam/udata/pull/3281)
144
157