udata 10.3.2.dev34895__py2.py3-none-any.whl → 10.3.2.dev34939__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.
- udata/core/topic/models.py +1 -1
- udata/core/topic/parsers.py +4 -0
- udata/migrations/2025-04-24-topic-featured-default-false.py +15 -0
- udata/routing.py +3 -0
- udata/templates/mail/account_inactivity.html +15 -4
- udata/templates/mail/account_inactivity.txt +13 -4
- udata/tests/api/test_topics_api.py +13 -2
- udata/tests/apiv2/test_topics.py +13 -2
- udata/translations/udata.pot +43 -34
- {udata-10.3.2.dev34895.dist-info → udata-10.3.2.dev34939.dist-info}/METADATA +3 -2
- {udata-10.3.2.dev34895.dist-info → udata-10.3.2.dev34939.dist-info}/RECORD +15 -14
- {udata-10.3.2.dev34895.dist-info → udata-10.3.2.dev34939.dist-info}/LICENSE +0 -0
- {udata-10.3.2.dev34895.dist-info → udata-10.3.2.dev34939.dist-info}/WHEEL +0 -0
- {udata-10.3.2.dev34895.dist-info → udata-10.3.2.dev34939.dist-info}/entry_points.txt +0 -0
- {udata-10.3.2.dev34895.dist-info → udata-10.3.2.dev34939.dist-info}/top_level.txt +0 -0
udata/core/topic/models.py
CHANGED
|
@@ -21,7 +21,7 @@ class Topic(db.Document, Owned, db.Datetimed):
|
|
|
21
21
|
datasets = db.ListField(db.LazyReferenceField("Dataset", reverse_delete_rule=db.PULL))
|
|
22
22
|
reuses = db.ListField(db.LazyReferenceField("Reuse", reverse_delete_rule=db.PULL))
|
|
23
23
|
|
|
24
|
-
featured = db.BooleanField()
|
|
24
|
+
featured = db.BooleanField(default=False)
|
|
25
25
|
private = db.BooleanField()
|
|
26
26
|
extras = db.ExtrasField()
|
|
27
27
|
|
udata/core/topic/parsers.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from bson.objectid import ObjectId
|
|
2
|
+
from flask_restx.inputs import boolean
|
|
2
3
|
|
|
3
4
|
from udata.api import api
|
|
4
5
|
from udata.api.parsers import ModelApiParser
|
|
@@ -20,6 +21,7 @@ class TopicApiParser(ModelApiParser):
|
|
|
20
21
|
self.parser.add_argument("granularity", type=str, location="args")
|
|
21
22
|
self.parser.add_argument("organization", type=str, location="args")
|
|
22
23
|
self.parser.add_argument("owner", type=str, location="args")
|
|
24
|
+
self.parser.add_argument("featured", type=boolean, location="args")
|
|
23
25
|
|
|
24
26
|
@staticmethod
|
|
25
27
|
def parse_filters(topics, args):
|
|
@@ -38,6 +40,8 @@ class TopicApiParser(ModelApiParser):
|
|
|
38
40
|
topics = topics.filter(spatial__zones=args["geozone"])
|
|
39
41
|
if args.get("granularity"):
|
|
40
42
|
topics = topics.filter(spatial__granularity=args["granularity"])
|
|
43
|
+
if args.get("featured") is not None:
|
|
44
|
+
topics = topics.filter(featured=args["featured"])
|
|
41
45
|
if args.get("organization"):
|
|
42
46
|
if not ObjectId.is_valid(args["organization"]):
|
|
43
47
|
api.abort(400, "Organization arg must be an identifier")
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"""
|
|
2
|
+
This migration updates Topic.featured to False when it is None.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
import logging
|
|
6
|
+
|
|
7
|
+
from udata.models import Topic
|
|
8
|
+
|
|
9
|
+
log = logging.getLogger(__name__)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def migrate(db):
|
|
13
|
+
log.info("Processing topics...")
|
|
14
|
+
count = Topic.objects(featured__exists=False).update(featured=False)
|
|
15
|
+
log.info(f"\tConverted {count} topics from `featured=None` to `featured=False`")
|
udata/routing.py
CHANGED
|
@@ -12,6 +12,7 @@ from udata.core.dataservices.models import Dataservice
|
|
|
12
12
|
from udata.core.spatial.models import GeoZone
|
|
13
13
|
from udata.i18n import ISO_639_1_CODES
|
|
14
14
|
from udata.mongo import db
|
|
15
|
+
from udata.uris import endpoint_for
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
class LazyRedirect(object):
|
|
@@ -247,3 +248,5 @@ def init_app(app):
|
|
|
247
248
|
app.url_map.converters["territory"] = TerritoryConverter
|
|
248
249
|
app.url_map.converters["contact_point"] = ContactPointConverter
|
|
249
250
|
app.url_map.converters["report"] = ReportConverter
|
|
251
|
+
|
|
252
|
+
app.jinja_env.globals["endpoint_for"] = endpoint_for
|
|
@@ -4,17 +4,19 @@
|
|
|
4
4
|
{% block body %}
|
|
5
5
|
<p style="margin: 0;padding: 0;">
|
|
6
6
|
{{ _(
|
|
7
|
-
'
|
|
7
|
+
'We have noticed that your account associated to (%(user_email)s) has been inactive for %(inactivity_years)d years or more'
|
|
8
|
+
' on %(site)s, the open platform for public data.',
|
|
8
9
|
user_email=user.email,
|
|
9
|
-
inactivity_years=config.YEARS_OF_INACTIVITY_BEFORE_DELETION
|
|
10
|
+
inactivity_years=config.YEARS_OF_INACTIVITY_BEFORE_DELETION,
|
|
11
|
+
site=config.SITE_TITLE
|
|
10
12
|
)
|
|
11
13
|
}}
|
|
12
14
|
</p>
|
|
13
15
|
<br/>
|
|
14
16
|
<p style="margin: 0;padding: 0;"><b>
|
|
15
17
|
{{ _(
|
|
16
|
-
'If you want to keep your account, please log in with your account on %(
|
|
17
|
-
site=
|
|
18
|
+
'If you want to keep your account, please log in with your account on %(home)s.',
|
|
19
|
+
home=endpoint_for("site.home_redirect", "api.site", _external=True)
|
|
18
20
|
)
|
|
19
21
|
}}
|
|
20
22
|
</b></p>
|
|
@@ -26,4 +28,13 @@
|
|
|
26
28
|
)
|
|
27
29
|
}}
|
|
28
30
|
</p>
|
|
31
|
+
<br/>
|
|
32
|
+
<p style="margin: 0;padding: 0;">
|
|
33
|
+
{{ _(
|
|
34
|
+
'This account is not tied to your other administration accounts and '
|
|
35
|
+
'you can always re-create an account on the %(site)s platform if necessary.',
|
|
36
|
+
site=config.SITE_TITLE
|
|
37
|
+
)
|
|
38
|
+
}}
|
|
39
|
+
</p>
|
|
29
40
|
{% endblock %}
|
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
{% block body %}
|
|
4
4
|
{{ _(
|
|
5
|
-
'
|
|
5
|
+
'We have noticed that your account associated to (%(user_email)s) has been inactive for %(inactivity_years)d years or more'
|
|
6
|
+
' on %(site)s, the open platform for public data.',
|
|
6
7
|
user_email=user.email,
|
|
7
|
-
inactivity_years=config.YEARS_OF_INACTIVITY_BEFORE_DELETION
|
|
8
|
+
inactivity_years=config.YEARS_OF_INACTIVITY_BEFORE_DELETION,
|
|
9
|
+
site=config.SITE_TITLE
|
|
8
10
|
)
|
|
9
11
|
}}
|
|
10
12
|
|
|
11
13
|
{{ _(
|
|
12
|
-
'If you want to keep your account, please log in with your account on %(
|
|
13
|
-
site=
|
|
14
|
+
'If you want to keep your account, please log in with your account on %(home)s.',
|
|
15
|
+
home=endpoint_for("site.home_redirect", "api.site", _external=True)
|
|
14
16
|
)
|
|
15
17
|
}}
|
|
16
18
|
|
|
@@ -19,4 +21,11 @@
|
|
|
19
21
|
notify_delay=config.DAYS_BEFORE_ACCOUNT_INACTIVITY_NOTIFY_DELAY
|
|
20
22
|
)
|
|
21
23
|
}}
|
|
24
|
+
{{
|
|
25
|
+
_(
|
|
26
|
+
'This account is not tied to your other administration accounts and '
|
|
27
|
+
'you can always re-create an account on the %(site)s platform if necessary',
|
|
28
|
+
site=config.SITE_TITLE
|
|
29
|
+
)
|
|
30
|
+
}}
|
|
22
31
|
{% endblock %}
|
|
@@ -28,12 +28,13 @@ class TopicsAPITest(APITestCase):
|
|
|
28
28
|
private_topic = TopicFactory(private=True)
|
|
29
29
|
geozone_topic = TopicFactory(spatial=SpatialCoverageFactory(zones=[paca.id]))
|
|
30
30
|
granularity_topic = TopicFactory(spatial=SpatialCoverageFactory(granularity="country"))
|
|
31
|
+
featured_topic = TopicFactory(featured=True)
|
|
31
32
|
owner_topic = TopicFactory(owner=owner)
|
|
32
33
|
org_topic = TopicFactory(organization=org)
|
|
33
34
|
|
|
34
35
|
response = self.get(url_for("api.topics"))
|
|
35
36
|
self.assert200(response)
|
|
36
|
-
self.assertEqual(len(response.json["data"]),
|
|
37
|
+
self.assertEqual(len(response.json["data"]), 8)
|
|
37
38
|
|
|
38
39
|
response = self.get(url_for("api.topics", q="topic-for"))
|
|
39
40
|
self.assert200(response)
|
|
@@ -69,7 +70,7 @@ class TopicsAPITest(APITestCase):
|
|
|
69
70
|
|
|
70
71
|
response = self.get(url_for("api.topics", include_private="true"))
|
|
71
72
|
self.assert200(response)
|
|
72
|
-
self.assertEqual(len(response.json["data"]),
|
|
73
|
+
self.assertEqual(len(response.json["data"]), 8)
|
|
73
74
|
# we're not logged in, so the private topic does not appear
|
|
74
75
|
self.assertNotIn(str(private_topic.id), [t["id"] for t in response.json["data"]])
|
|
75
76
|
|
|
@@ -83,6 +84,16 @@ class TopicsAPITest(APITestCase):
|
|
|
83
84
|
self.assertEqual(len(response.json["data"]), 1)
|
|
84
85
|
self.assertIn(str(granularity_topic.id), [t["id"] for t in response.json["data"]])
|
|
85
86
|
|
|
87
|
+
response = self.get(url_for("api.topics", featured="true"))
|
|
88
|
+
self.assert200(response)
|
|
89
|
+
self.assertEqual(len(response.json["data"]), 1)
|
|
90
|
+
self.assertIn(str(featured_topic.id), [t["id"] for t in response.json["data"]])
|
|
91
|
+
|
|
92
|
+
response = self.get(url_for("api.topics", featured="false"))
|
|
93
|
+
self.assert200(response)
|
|
94
|
+
self.assertEqual(len(response.json["data"]), 7)
|
|
95
|
+
self.assertNotIn(str(featured_topic.id), [t["id"] for t in response.json["data"]])
|
|
96
|
+
|
|
86
97
|
response = self.get(url_for("api.topics", owner=owner.id))
|
|
87
98
|
self.assert200(response)
|
|
88
99
|
self.assertEqual(len(response.json["data"]), 1)
|
udata/tests/apiv2/test_topics.py
CHANGED
|
@@ -25,13 +25,14 @@ class TopicsAPITest(APITestCase):
|
|
|
25
25
|
private_topic = TopicFactory(private=True)
|
|
26
26
|
geozone_topic = TopicFactory(spatial=SpatialCoverageFactory(zones=[paca.id]))
|
|
27
27
|
granularity_topic = TopicFactory(spatial=SpatialCoverageFactory(granularity="country"))
|
|
28
|
+
featured_topic = TopicFactory(featured=True)
|
|
28
29
|
owner_topic = TopicFactory(owner=owner)
|
|
29
30
|
org_topic = TopicFactory(organization=org)
|
|
30
31
|
|
|
31
32
|
response = self.get(url_for("apiv2.topics_list"))
|
|
32
33
|
assert response.status_code == 200
|
|
33
34
|
data = response.json["data"]
|
|
34
|
-
assert len(data) ==
|
|
35
|
+
assert len(data) == 8
|
|
35
36
|
|
|
36
37
|
hateoas_fields = ["rel", "href", "type", "total"]
|
|
37
38
|
assert all(k in data[0]["datasets"] for k in hateoas_fields)
|
|
@@ -57,7 +58,7 @@ class TopicsAPITest(APITestCase):
|
|
|
57
58
|
|
|
58
59
|
response = self.get(url_for("api.topics", include_private="true"))
|
|
59
60
|
assert response.status_code == 200
|
|
60
|
-
assert len(response.json["data"]) ==
|
|
61
|
+
assert len(response.json["data"]) == 8
|
|
61
62
|
# we're not logged in, so the private topic does not appear
|
|
62
63
|
assert str(private_topic.id) not in [t["id"] for t in response.json["data"]]
|
|
63
64
|
|
|
@@ -71,6 +72,16 @@ class TopicsAPITest(APITestCase):
|
|
|
71
72
|
assert len(response.json["data"]) == 1
|
|
72
73
|
assert str(granularity_topic.id) in [t["id"] for t in response.json["data"]]
|
|
73
74
|
|
|
75
|
+
response = self.get(url_for("api.topics", featured="true"))
|
|
76
|
+
assert response.status_code == 200
|
|
77
|
+
assert len(response.json["data"]) == 1
|
|
78
|
+
assert str(featured_topic.id) in [t["id"] for t in response.json["data"]]
|
|
79
|
+
|
|
80
|
+
response = self.get(url_for("api.topics", featured="false"))
|
|
81
|
+
assert response.status_code == 200
|
|
82
|
+
assert len(response.json["data"]) == 7
|
|
83
|
+
assert str(featured_topic.id) not in [t["id"] for t in response.json["data"]]
|
|
84
|
+
|
|
74
85
|
response = self.get(url_for("api.topics", owner=owner.id))
|
|
75
86
|
assert response.status_code == 200
|
|
76
87
|
assert len(response.json["data"]) == 1
|
udata/translations/udata.pot
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
#, fuzzy
|
|
7
7
|
msgid ""
|
|
8
8
|
msgstr ""
|
|
9
|
-
"Project-Id-Version: udata 10.
|
|
9
|
+
"Project-Id-Version: udata 10.3.2.dev0\n"
|
|
10
10
|
"Report-Msgid-Bugs-To: i18n@opendata.team\n"
|
|
11
|
-
"POT-Creation-Date: 2025-04-
|
|
12
|
-
"PO-Revision-Date: 2025-04-
|
|
11
|
+
"POT-Creation-Date: 2025-04-30 14:18+0200\n"
|
|
12
|
+
"PO-Revision-Date: 2025-04-30 14:18+0200\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"
|
|
@@ -52,7 +52,7 @@ msgstr ""
|
|
|
52
52
|
msgid "Invalid URL \"{url}\": {reason}"
|
|
53
53
|
msgstr ""
|
|
54
54
|
|
|
55
|
-
#: udata/tests/api/test_datasets_api.py:
|
|
55
|
+
#: udata/tests/api/test_datasets_api.py:1029 udata/tests/test_model.py:403
|
|
56
56
|
#: udata/uris.py:55
|
|
57
57
|
#, python-brace-format
|
|
58
58
|
msgid "Invalid URL \"{url}\""
|
|
@@ -215,7 +215,7 @@ msgid "Your udata instance is ready!"
|
|
|
215
215
|
msgstr ""
|
|
216
216
|
|
|
217
217
|
#: udata/core/owned.py:64 udata/forms/fields.py:752
|
|
218
|
-
#: udata/tests/api/test_dataservices_api.py:
|
|
218
|
+
#: udata/tests/api/test_dataservices_api.py:474
|
|
219
219
|
msgid "You can only set yourself as owner"
|
|
220
220
|
msgstr ""
|
|
221
221
|
|
|
@@ -224,7 +224,7 @@ msgid "Unknown organization"
|
|
|
224
224
|
msgstr ""
|
|
225
225
|
|
|
226
226
|
#: udata/core/owned.py:77 udata/forms/fields.py:784
|
|
227
|
-
#: udata/tests/api/test_dataservices_api.py:
|
|
227
|
+
#: udata/tests/api/test_dataservices_api.py:487
|
|
228
228
|
msgid "Permission denied for this organization"
|
|
229
229
|
msgstr ""
|
|
230
230
|
|
|
@@ -256,7 +256,8 @@ msgid "The organization web contact form"
|
|
|
256
256
|
msgstr ""
|
|
257
257
|
|
|
258
258
|
#: udata/core/contact_point/forms.py:20 udata/core/dataset/forms.py:116
|
|
259
|
-
#: udata/core/dataset/forms.py:179 udata/core/
|
|
259
|
+
#: udata/core/dataset/forms.py:179 udata/core/discussions/forms.py:13
|
|
260
|
+
#: udata/core/discussions/forms.py:29 udata/core/topic/forms.py:14
|
|
260
261
|
#: udata/harvest/forms.py:87
|
|
261
262
|
msgid "Publish as"
|
|
262
263
|
msgstr ""
|
|
@@ -285,12 +286,12 @@ msgstr ""
|
|
|
285
286
|
msgid "dataservice"
|
|
286
287
|
msgstr ""
|
|
287
288
|
|
|
288
|
-
#: udata/core/dataservices/models.py:194 udata/core/dataset/models.py:
|
|
289
|
+
#: udata/core/dataservices/models.py:194 udata/core/dataset/models.py:575
|
|
289
290
|
#: udata/mongo/datetime_fields.py:60
|
|
290
291
|
msgid "Creation date"
|
|
291
292
|
msgstr ""
|
|
292
293
|
|
|
293
|
-
#: udata/core/dataservices/models.py:200 udata/core/dataset/models.py:
|
|
294
|
+
#: udata/core/dataservices/models.py:200 udata/core/dataset/models.py:578
|
|
294
295
|
#: udata/mongo/datetime_fields.py:66
|
|
295
296
|
msgid "Last modification date"
|
|
296
297
|
msgstr ""
|
|
@@ -456,8 +457,8 @@ msgid "Version of the schema"
|
|
|
456
457
|
msgstr ""
|
|
457
458
|
|
|
458
459
|
#: udata/core/dataset/forms.py:65 udata/core/dataset/forms.py:146
|
|
459
|
-
#: udata/core/discussions/forms.py:
|
|
460
|
-
#: udata/templates/mail/discussion_closed.html:26
|
|
460
|
+
#: udata/core/discussions/forms.py:14 udata/core/discussions/forms.py:25
|
|
461
|
+
#: udata/core/site/forms.py:12 udata/templates/mail/discussion_closed.html:26
|
|
461
462
|
#: udata/templates/mail/new_discussion.html:25
|
|
462
463
|
#: udata/templates/mail/new_discussion_comment.html:26
|
|
463
464
|
msgid "Title"
|
|
@@ -513,7 +514,7 @@ msgstr ""
|
|
|
513
514
|
msgid "Related dataset"
|
|
514
515
|
msgstr ""
|
|
515
516
|
|
|
516
|
-
#: udata/core/dataset/forms.py:138 udata/tests/api/test_datasets_api.py:
|
|
517
|
+
#: udata/core/dataset/forms.py:138 udata/tests/api/test_datasets_api.py:941
|
|
517
518
|
msgid "Wrong contact point id or contact point ownership mismatch"
|
|
518
519
|
msgstr ""
|
|
519
520
|
|
|
@@ -587,13 +588,13 @@ msgstr ""
|
|
|
587
588
|
msgid "A schema must contains a name or an URL when a version is provided."
|
|
588
589
|
msgstr ""
|
|
589
590
|
|
|
590
|
-
#: udata/core/dataset/models.py:169 udata/tests/api/test_datasets_api.py:
|
|
591
|
-
#: udata/tests/api/test_datasets_api.py:
|
|
591
|
+
#: udata/core/dataset/models.py:169 udata/tests/api/test_datasets_api.py:1037
|
|
592
|
+
#: udata/tests/api/test_datasets_api.py:1048
|
|
592
593
|
#, python-brace-format
|
|
593
594
|
msgid "Schema name \"{schema}\" is not an allowed value. Allowed values: {values}"
|
|
594
595
|
msgstr ""
|
|
595
596
|
|
|
596
|
-
#: udata/core/dataset/models.py:188 udata/tests/api/test_datasets_api.py:
|
|
597
|
+
#: udata/core/dataset/models.py:188 udata/tests/api/test_datasets_api.py:1060
|
|
597
598
|
#, python-brace-format
|
|
598
599
|
msgid ""
|
|
599
600
|
"Version \"{version}\" is not an allowed value for the schema \"{name}\". "
|
|
@@ -601,8 +602,8 @@ msgid ""
|
|
|
601
602
|
msgstr ""
|
|
602
603
|
|
|
603
604
|
#: udata/core/dataset/models.py:467 udata/core/dataset/rdf.py:603
|
|
604
|
-
#: udata/tests/dataset/test_dataset_rdf.py:
|
|
605
|
-
#: udata/tests/dataset/test_dataset_rdf.py:
|
|
605
|
+
#: udata/tests/dataset/test_dataset_rdf.py:687
|
|
606
|
+
#: udata/tests/dataset/test_dataset_rdf.py:700
|
|
606
607
|
msgid "Nameless resource"
|
|
607
608
|
msgstr ""
|
|
608
609
|
|
|
@@ -610,11 +611,11 @@ msgstr ""
|
|
|
610
611
|
msgid "Future date of update"
|
|
611
612
|
msgstr ""
|
|
612
613
|
|
|
613
|
-
#: udata/core/dataset/models.py:
|
|
614
|
+
#: udata/core/dataset/models.py:624
|
|
614
615
|
msgid "dataset"
|
|
615
616
|
msgstr ""
|
|
616
617
|
|
|
617
|
-
#: udata/core/dataset/rdf.py:601 udata/tests/dataset/test_dataset_rdf.py:
|
|
618
|
+
#: udata/core/dataset/rdf.py:601 udata/tests/dataset/test_dataset_rdf.py:674
|
|
618
619
|
#, python-brace-format
|
|
619
620
|
msgid "{format} resource"
|
|
620
621
|
msgstr ""
|
|
@@ -623,13 +624,13 @@ msgstr ""
|
|
|
623
624
|
msgid "You need to update some frequency-based datasets"
|
|
624
625
|
msgstr ""
|
|
625
626
|
|
|
626
|
-
#: udata/core/discussions/forms.py:
|
|
627
|
-
#: udata/core/
|
|
628
|
-
#: udata/harvest/forms.py:97
|
|
627
|
+
#: udata/core/discussions/forms.py:16 udata/core/discussions/forms.py:31
|
|
628
|
+
#: udata/core/discussions/forms.py:37 udata/core/organization/forms.py:83
|
|
629
|
+
#: udata/core/organization/forms.py:87 udata/harvest/forms.py:97
|
|
629
630
|
msgid "Comment"
|
|
630
631
|
msgstr ""
|
|
631
632
|
|
|
632
|
-
#: udata/core/discussions/forms.py:
|
|
633
|
+
#: udata/core/discussions/forms.py:18
|
|
633
634
|
msgid "Subject"
|
|
634
635
|
msgstr ""
|
|
635
636
|
|
|
@@ -965,11 +966,11 @@ msgstr ""
|
|
|
965
966
|
msgid "Open data tools"
|
|
966
967
|
msgstr ""
|
|
967
968
|
|
|
968
|
-
#: udata/core/reuse/models.py:
|
|
969
|
+
#: udata/core/reuse/models.py:37
|
|
969
970
|
msgid "This URL is already registered"
|
|
970
971
|
msgstr ""
|
|
971
972
|
|
|
972
|
-
#: udata/core/reuse/models.py:
|
|
973
|
+
#: udata/core/reuse/models.py:178
|
|
973
974
|
msgid "reuse"
|
|
974
975
|
msgstr ""
|
|
975
976
|
|
|
@@ -1270,11 +1271,11 @@ msgstr ""
|
|
|
1270
1271
|
msgid "Archived"
|
|
1271
1272
|
msgstr ""
|
|
1272
1273
|
|
|
1273
|
-
#: udata/harvest/backends/dcat.py:
|
|
1274
|
+
#: udata/harvest/backends/dcat.py:338
|
|
1274
1275
|
msgid "Remote URL prefix"
|
|
1275
1276
|
msgstr ""
|
|
1276
1277
|
|
|
1277
|
-
#: udata/harvest/backends/dcat.py:
|
|
1278
|
+
#: udata/harvest/backends/dcat.py:341
|
|
1278
1279
|
msgid "A prefix used to build the remote URL of the harvested items."
|
|
1279
1280
|
msgstr ""
|
|
1280
1281
|
|
|
@@ -1369,20 +1370,28 @@ msgstr ""
|
|
|
1369
1370
|
#: udata/templates/mail/account_inactivity.html:6
|
|
1370
1371
|
#, python-format
|
|
1371
1372
|
msgid ""
|
|
1372
|
-
"
|
|
1373
|
-
"years or more
|
|
1373
|
+
"We have noticed that your account associated to (%(user_email)s) has been "
|
|
1374
|
+
"inactive for %(inactivity_years)d years or more on %(site)s, the open "
|
|
1375
|
+
"platform for public data."
|
|
1374
1376
|
msgstr ""
|
|
1375
1377
|
|
|
1376
|
-
#: udata/templates/mail/account_inactivity.html:
|
|
1378
|
+
#: udata/templates/mail/account_inactivity.html:17
|
|
1377
1379
|
#, python-format
|
|
1378
|
-
msgid "If you want to keep your account, please log in with your account on %(
|
|
1380
|
+
msgid "If you want to keep your account, please log in with your account on %(home)s."
|
|
1379
1381
|
msgstr ""
|
|
1380
1382
|
|
|
1381
|
-
#: udata/templates/mail/account_inactivity.html:
|
|
1383
|
+
#: udata/templates/mail/account_inactivity.html:25
|
|
1382
1384
|
#, python-format
|
|
1383
1385
|
msgid "Without logging in, your account will be deleted within %(notify_delay)d days."
|
|
1384
1386
|
msgstr ""
|
|
1385
1387
|
|
|
1388
|
+
#: udata/templates/mail/account_inactivity.html:33
|
|
1389
|
+
#, python-format
|
|
1390
|
+
msgid ""
|
|
1391
|
+
"This account is not tied to your other administration accounts and you can "
|
|
1392
|
+
"always re-create an account on the %(site)s platform if necessary."
|
|
1393
|
+
msgstr ""
|
|
1394
|
+
|
|
1386
1395
|
#: udata/templates/mail/badge_added_association.html:6
|
|
1387
1396
|
#, python-format
|
|
1388
1397
|
msgid "%(user)s has identified your organization \"%(name)s\" as an association"
|
|
@@ -1444,13 +1453,13 @@ msgstr ""
|
|
|
1444
1453
|
msgid "%(user)s closed an discussion on your %(type)s %(subject)s"
|
|
1445
1454
|
msgstr ""
|
|
1446
1455
|
|
|
1447
|
-
#: udata/templates/mail/discussion_closed.html:
|
|
1456
|
+
#: udata/templates/mail/discussion_closed.html:32
|
|
1448
1457
|
#: udata/templates/mail/new_discussion.html:30
|
|
1449
1458
|
#: udata/templates/mail/new_discussion_comment.html:31
|
|
1450
1459
|
msgid "Message"
|
|
1451
1460
|
msgstr ""
|
|
1452
1461
|
|
|
1453
|
-
#: udata/templates/mail/discussion_closed.html:
|
|
1462
|
+
#: udata/templates/mail/discussion_closed.html:41
|
|
1454
1463
|
#: udata/templates/mail/new_discussion.html:38
|
|
1455
1464
|
#: udata/templates/mail/new_discussion_comment.html:39
|
|
1456
1465
|
msgid "See the discussion"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: udata
|
|
3
|
-
Version: 10.3.2.
|
|
3
|
+
Version: 10.3.2.dev34939
|
|
4
4
|
Summary: Open data portal
|
|
5
5
|
Home-page: https://github.com/opendatateam/udata
|
|
6
6
|
Author: Opendata Team
|
|
@@ -141,7 +141,8 @@ It is collectively taken care of by members of the
|
|
|
141
141
|
|
|
142
142
|
## Current (in progress)
|
|
143
143
|
|
|
144
|
-
-
|
|
144
|
+
- feat(topics): add featured filter in API [#3301](https://github.com/opendatateam/udata/pull/3301)
|
|
145
|
+
- Improve wording on account inactivity emails [#3304](https://github.com/opendatateam/udata/pull/3304)
|
|
145
146
|
|
|
146
147
|
## 10.3.1 (2025-04-29)
|
|
147
148
|
|
|
@@ -11,7 +11,7 @@ udata/factories.py,sha256=MoklZnU8iwNL25dm3JsoXhoQs1PQWSVYL1WvcUBtJqM,492
|
|
|
11
11
|
udata/i18n.py,sha256=64hqiocxRC5eRhCxYWeNAxMT5E7sFlv1Esie-MfaW3c,8989
|
|
12
12
|
udata/mail.py,sha256=FMGHcDAjHvk86iDUwBmVXpx3vbAb2c-j5C3BRnh9IYQ,2670
|
|
13
13
|
udata/rdf.py,sha256=JmMxwq4fFBrBZQhJ6O9_nEeYUXspPzoZGTyGUD4Nyxs,18348
|
|
14
|
-
udata/routing.py,sha256=
|
|
14
|
+
udata/routing.py,sha256=E6sE1F74QyOoz5vcgEi-rNEhCegwLfOtBz5I9fWk-pM,7677
|
|
15
15
|
udata/sentry.py,sha256=ekcxqUSqxfM98TtvCsPaOoX5i2l6PEcYt7kb4l3od-Q,3223
|
|
16
16
|
udata/settings.py,sha256=Bp0eeWRD1g4CAJyytHG7T8pTtdFYeb2GgoRxFLdI1W4,19124
|
|
17
17
|
udata/sitemap.py,sha256=oRRWoPI7ZsFFnUAOqGT1YuXFFKHBe8EcRnUCNHD7xjM,979
|
|
@@ -231,8 +231,8 @@ udata/core/topic/api.py,sha256=xVBp3EFOAEWQlt2CQvII9gq21qeIK048pSkh1uTmdBo,5472
|
|
|
231
231
|
udata/core/topic/apiv2.py,sha256=9-CdR-xcVp7yS7664PgRCsAthxg1VgpKgoAaVlEhF6k,10461
|
|
232
232
|
udata/core/topic/factories.py,sha256=RpUpwLd2gYwwS0vc7FcbQ-4tC0FSsAg7O8bPgozYKgE,684
|
|
233
233
|
udata/core/topic/forms.py,sha256=NGC_k6PRw8uswEHaXW1Q3ih_2sx2-dNUY--LD-me80Y,973
|
|
234
|
-
udata/core/topic/models.py,sha256=
|
|
235
|
-
udata/core/topic/parsers.py,sha256=
|
|
234
|
+
udata/core/topic/models.py,sha256=X-jScC_mMNdZp0hQ_SD-NBHsIPS8aYqpq99x6l4dKz4,2052
|
|
235
|
+
udata/core/topic/parsers.py,sha256=ugkBd-w8TewInqowNF2w36UPwKYMYluK4U-grkAu-wg,2411
|
|
236
236
|
udata/core/topic/permissions.py,sha256=RtFPPlxuU_Bv7ip6LDO4AoPrKFnIOEs9cCMXaSSmEdk,118
|
|
237
237
|
udata/core/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
238
238
|
udata/core/user/activities.py,sha256=x-mSiwx7TzM2ci6KMkMiNx0sFs8J3LTJNbigtE8cA0s,2807
|
|
@@ -363,6 +363,7 @@ udata/migrations/2024-11-19-keep-only-local_authority-if-also-public_service-org
|
|
|
363
363
|
udata/migrations/2024-12-05-contact-point-is-now-a-list.py,sha256=il2qSFhOTq-YhqhFaq_5OwysUlKXaK_En-qGP6v9rf0,1065
|
|
364
364
|
udata/migrations/2025-01-05-dataservices-fields-changes.py,sha256=HlqHg3sG3rk3sYVrOwAlXMNhTmTKd1YT82P-gXOqmZM,4647
|
|
365
365
|
udata/migrations/2025-03-20-save-quality-for-datasets.py,sha256=FPTfGVByXSHr18V4RFlktC7t-H-5rgEcZQMTRpMrGqo,607
|
|
366
|
+
udata/migrations/2025-04-24-topic-featured-default-false.py,sha256=t4OyhehtPQiosKtAo9SWRWm3ObGUHvqD_roXQ34vIH4,369
|
|
366
367
|
udata/migrations/__init__.py,sha256=RBCBDaTlLjuMs_Qzwji6Z6T4r7FCGXhESKoxQbT5qAA,11221
|
|
367
368
|
udata/models/__init__.py,sha256=txbZwa-lRG3mq99eQ9E5YcFWiNUdjDVSyJJvlqUMFfs,1413
|
|
368
369
|
udata/mongo/__init__.py,sha256=y4Rv-kq3o_kcEulcNpePLzocXPBNpx3Jd82G-VZPaMc,1421
|
|
@@ -530,8 +531,8 @@ udata/templates/macros/forms.html,sha256=LEhdB8WUHXJR3E1Gs41QEFzDauhvmhEWCnW4Jln
|
|
|
530
531
|
udata/templates/macros/metadata.html,sha256=KAKOYUvf50GpM1hm1O-HoV-1bhjW7aLqJdflDlNyf0U,3575
|
|
531
532
|
udata/templates/mail/account_deleted.html,sha256=7INK4GqaOyqe36pXiT4xU_cAZLuNxOeY3zoy4Yjz1R4,146
|
|
532
533
|
udata/templates/mail/account_deleted.txt,sha256=4EmPnt4QWMWSUkfTaMUga4BCFjGlZGKTgh9JDUzKjDk,110
|
|
533
|
-
udata/templates/mail/account_inactivity.html,sha256=
|
|
534
|
-
udata/templates/mail/account_inactivity.txt,sha256=
|
|
534
|
+
udata/templates/mail/account_inactivity.html,sha256=5jcH1w1AY8oSEsTCAHHhlpVAUIwVOiHif6Qf2oKVKsQ,1268
|
|
535
|
+
udata/templates/mail/account_inactivity.txt,sha256=5Jaqx0YrDhq2VgUmfRO5h21X9Jw_TQpsGP0Z2KxLdsA,946
|
|
535
536
|
udata/templates/mail/badge_added_association.html,sha256=xaF9tY20MbcVY_97tLK1l0OQe33bYVMdjXFPBZ7uhnc,860
|
|
536
537
|
udata/templates/mail/badge_added_association.txt,sha256=o9ZIP6OB8Sf4sHjUY615ezU5WU6SVJqNkivdSgWViw4,301
|
|
537
538
|
udata/templates/mail/badge_added_certified.html,sha256=6THD3JB7Qq-mFrb4pHTzLw7o1GiWQdpsyEr3QRtcu0g,841
|
|
@@ -634,7 +635,7 @@ udata/tests/api/test_reports_api.py,sha256=fCSz9NwMXBs6cxdXBVVI6y564AtovmZYw3xkg
|
|
|
634
635
|
udata/tests/api/test_reuses_api.py,sha256=d8mtUrDURIfnUK-sLogvAP-rOID2FDJ0UVTM0ravQ-Q,24642
|
|
635
636
|
udata/tests/api/test_swagger.py,sha256=eE6La9qdTYTIUFevRVPJgtj17Jq_8uOlsDwzCNR0LL8,760
|
|
636
637
|
udata/tests/api/test_tags_api.py,sha256=36zEBgthVEn6pctJ0kDgPmEaUr-iqRAHeZRcRG2LEXQ,2425
|
|
637
|
-
udata/tests/api/test_topics_api.py,sha256=
|
|
638
|
+
udata/tests/api/test_topics_api.py,sha256=beIPbDA8PHo4FZogeio-j1MO6Eatt9oFSlp-aHpgEtQ,12200
|
|
638
639
|
udata/tests/api/test_transfer_api.py,sha256=-OLv-KjyLZL14J8UHl-ak_sYUj6wFiZWyoXC2SMXmEQ,7503
|
|
639
640
|
udata/tests/api/test_user_api.py,sha256=hfDHOv5F81tehbc5u3dYH5rAyYgzgHGCWVcGR3kLIZw,16591
|
|
640
641
|
udata/tests/apiv2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -642,7 +643,7 @@ udata/tests/apiv2/test_datasets.py,sha256=zjTtjY7lJKOOjiV698RqGvRMuuMxY2dMhEcnhO
|
|
|
642
643
|
udata/tests/apiv2/test_me_api.py,sha256=RAgu5iKGB3Pp8cDN-427ovly-VOz5MTL4GpPZ1NcVXI,1418
|
|
643
644
|
udata/tests/apiv2/test_organizations.py,sha256=os_43s-coSRqjgY-5fAjSiRlB3g2685u7d-Es0aOhks,6390
|
|
644
645
|
udata/tests/apiv2/test_swagger.py,sha256=RKedaq-2UeyEuxlmUaAN7pmEe-lQYYmpDUVc8HF3CH4,785
|
|
645
|
-
udata/tests/apiv2/test_topics.py,sha256=
|
|
646
|
+
udata/tests/apiv2/test_topics.py,sha256=KwWAMta-C_MgwxBOwfUuPqxkO--SHvvth_c9VFGt2zA,11644
|
|
646
647
|
udata/tests/cli/test_cli_base.py,sha256=0a3U_5ROp1lCTG8d6TpCjF4nbKVNerAeLO0VxU-NTUk,321
|
|
647
648
|
udata/tests/cli/test_db_cli.py,sha256=_AZM_sZjePJw9ZaymuQoEAKXyX_EYz-S1PekxrMhMpU,1764
|
|
648
649
|
udata/tests/contact_point/test_contact_point_models.py,sha256=b8vraZPPrs9LeQMWLnOCrpI02sXMEM_BcMJXKTeAuAw,923
|
|
@@ -709,7 +710,7 @@ udata/tests/workers/test_jobs_commands.py,sha256=tGJp9zRxKaGszNhKAVe-xY86v6NhLmF
|
|
|
709
710
|
udata/tests/workers/test_tasks_routing.py,sha256=m7Zu9X7GW3oKkSDcHM-dC20Vba3Fruui44bMBVU1dcc,2228
|
|
710
711
|
udata/tests/workers/test_workers_api.py,sha256=x8EkULR9G5TKl5WwjdVwfFEttbudpiWIYN2umETrCzY,8805
|
|
711
712
|
udata/tests/workers/test_workers_helpers.py,sha256=_983ChRxas3gsjykaEpXWQUbk2qTMJgeFZpIAHTuhLk,647
|
|
712
|
-
udata/translations/udata.pot,sha256=
|
|
713
|
+
udata/translations/udata.pot,sha256=5uLNHNRsi9a3iyINEEs7cwnam4p0o71Dn6ZCG1p-SDs,39416
|
|
713
714
|
udata/translations/ar/LC_MESSAGES/udata.mo,sha256=KhVPQwZ_dlH6yHrI0pnQas-zDSCMMhgzo7UQIo0crik,12512
|
|
714
715
|
udata/translations/ar/LC_MESSAGES/udata.po,sha256=gkREvPjNOlVdvdgcfv6eGgzkaY92UKKNOiIaN_u-qtA,44269
|
|
715
716
|
udata/translations/de/LC_MESSAGES/udata.mo,sha256=oRoV-0vqLUwZn3KHEr9nqg40rvfm0JjGrpspzTvVg0E,15936
|
|
@@ -724,9 +725,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=xmSQ7RTl9XV24Vq3A7f_NIRDrOJwbs
|
|
|
724
725
|
udata/translations/pt/LC_MESSAGES/udata.po,sha256=PXrrhfIjZxheUotQan9VVh1fvNHSzeMAitaouIHaR7U,46793
|
|
725
726
|
udata/translations/sr/LC_MESSAGES/udata.mo,sha256=1pAf_rXvbOoO_jjZmH77GbzvdT_YtPTJKFumMnMto2g,29169
|
|
726
727
|
udata/translations/sr/LC_MESSAGES/udata.po,sha256=AalMHaFLZobKmuAnZ4X1rQtk46NdW2rktMFQHD5DTcM,53768
|
|
727
|
-
udata-10.3.2.
|
|
728
|
-
udata-10.3.2.
|
|
729
|
-
udata-10.3.2.
|
|
730
|
-
udata-10.3.2.
|
|
731
|
-
udata-10.3.2.
|
|
732
|
-
udata-10.3.2.
|
|
728
|
+
udata-10.3.2.dev34939.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
|
|
729
|
+
udata-10.3.2.dev34939.dist-info/METADATA,sha256=KSnQr_KI-pCBIVr3irhrFz2kvKytmTAyMQ7zOJytABQ,145112
|
|
730
|
+
udata-10.3.2.dev34939.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
|
|
731
|
+
udata-10.3.2.dev34939.dist-info/entry_points.txt,sha256=ETvkR4r6G1duBsh_V_fGWENQy17GTFuobi95MYBAl1A,498
|
|
732
|
+
udata-10.3.2.dev34939.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
|
|
733
|
+
udata-10.3.2.dev34939.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|