udata 14.4.1.dev7__py3-none-any.whl → 14.5.1.dev6__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/__init__.py +2 -0
- udata/auth/views.py +7 -3
- udata/commands/dcat.py +1 -1
- udata/core/dataservices/api.py +8 -1
- udata/core/dataservices/apiv2.py +2 -5
- udata/core/dataservices/models.py +4 -1
- udata/core/dataservices/rdf.py +2 -1
- udata/core/dataservices/tasks.py +6 -2
- udata/core/dataset/api.py +8 -0
- udata/core/dataset/models.py +4 -4
- udata/core/dataset/rdf.py +8 -2
- udata/core/dataset/tasks.py +6 -2
- udata/core/discussions/api.py +15 -1
- udata/core/discussions/models.py +5 -0
- udata/core/legal/__init__.py +0 -0
- udata/core/legal/mails.py +128 -0
- udata/core/organization/api.py +8 -0
- udata/core/organization/apiv2.py +2 -3
- udata/core/organization/models.py +6 -1
- udata/core/reuse/api.py +8 -0
- udata/core/reuse/apiv2.py +2 -5
- udata/core/topic/models.py +8 -2
- udata/core/user/api.py +10 -3
- udata/core/user/models.py +7 -1
- udata/flask_mongoengine/pagination.py +1 -1
- udata/harvest/backends/dcat.py +4 -1
- udata/harvest/tests/test_dcat_backend.py +24 -0
- udata/mail.py +14 -0
- udata/rdf.py +13 -4
- udata/settings.py +4 -0
- udata/tests/api/test_datasets_api.py +6 -0
- udata/tests/apiv2/test_search.py +30 -0
- udata/tests/dataservice/test_dataservice_tasks.py +29 -0
- udata/tests/dataset/test_dataset_tasks.py +25 -0
- udata/tests/frontend/test_auth.py +34 -0
- udata/tests/helpers.py +6 -0
- udata/tests/search/test_search_integration.py +33 -0
- udata/tests/test_api_fields.py +10 -0
- udata/tests/test_legal_mails.py +359 -0
- {udata-14.4.1.dev7.dist-info → udata-14.5.1.dev6.dist-info}/METADATA +2 -2
- {udata-14.4.1.dev7.dist-info → udata-14.5.1.dev6.dist-info}/RECORD +45 -40
- {udata-14.4.1.dev7.dist-info → udata-14.5.1.dev6.dist-info}/WHEEL +0 -0
- {udata-14.4.1.dev7.dist-info → udata-14.5.1.dev6.dist-info}/entry_points.txt +0 -0
- {udata-14.4.1.dev7.dist-info → udata-14.5.1.dev6.dist-info}/licenses/LICENSE +0 -0
- {udata-14.4.1.dev7.dist-info → udata-14.5.1.dev6.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from flask import url_for
|
|
3
|
+
|
|
4
|
+
from udata.core.dataservices.factories import DataserviceFactory
|
|
5
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
6
|
+
from udata.core.discussions.factories import DiscussionFactory, MessageDiscussionFactory
|
|
7
|
+
from udata.core.organization.factories import OrganizationFactory
|
|
8
|
+
from udata.core.reuse.factories import ReuseFactory
|
|
9
|
+
from udata.core.user.factories import AdminFactory, UserFactory
|
|
10
|
+
from udata.tests.api import APITestCase
|
|
11
|
+
from udata.tests.helpers import capture_mails
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class AdminMailsOnDeleteTest(APITestCase):
|
|
15
|
+
"""Test admin mails are sent on delete when send_legal_notice=True and user is sysadmin"""
|
|
16
|
+
|
|
17
|
+
modules = []
|
|
18
|
+
|
|
19
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
20
|
+
def test_dataset_delete_with_mail_as_admin(self):
|
|
21
|
+
"""Admin deleting dataset with send_legal_notice=True should send email to owner"""
|
|
22
|
+
self.login(AdminFactory())
|
|
23
|
+
owner = UserFactory()
|
|
24
|
+
dataset = DatasetFactory(owner=owner)
|
|
25
|
+
|
|
26
|
+
with capture_mails() as mails:
|
|
27
|
+
response = self.delete(
|
|
28
|
+
url_for("api.dataset", dataset=dataset) + "?send_legal_notice=true"
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
self.assertStatus(response, 204)
|
|
32
|
+
assert len(mails) == 1
|
|
33
|
+
assert mails[0].recipients[0] == owner.email
|
|
34
|
+
assert "deletion" in mails[0].subject.lower()
|
|
35
|
+
|
|
36
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
37
|
+
def test_dataset_delete_without_mail_as_admin(self):
|
|
38
|
+
"""Admin deleting dataset without send_mail should not send email"""
|
|
39
|
+
self.login(AdminFactory())
|
|
40
|
+
owner = UserFactory()
|
|
41
|
+
dataset = DatasetFactory(owner=owner)
|
|
42
|
+
|
|
43
|
+
with capture_mails() as mails:
|
|
44
|
+
response = self.delete(url_for("api.dataset", dataset=dataset))
|
|
45
|
+
|
|
46
|
+
self.assertStatus(response, 204)
|
|
47
|
+
assert len(mails) == 0
|
|
48
|
+
|
|
49
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
50
|
+
def test_dataset_delete_with_mail_as_non_admin(self):
|
|
51
|
+
"""Non-admin deleting their dataset with send_legal_notice=True should not send email"""
|
|
52
|
+
owner = self.login()
|
|
53
|
+
dataset = DatasetFactory(owner=owner)
|
|
54
|
+
|
|
55
|
+
with capture_mails() as mails:
|
|
56
|
+
response = self.delete(
|
|
57
|
+
url_for("api.dataset", dataset=dataset) + "?send_legal_notice=true"
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
self.assertStatus(response, 204)
|
|
61
|
+
assert len(mails) == 0
|
|
62
|
+
|
|
63
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
64
|
+
def test_dataset_delete_with_org_owner_sends_to_admins(self):
|
|
65
|
+
"""Deleting org-owned dataset should send email to org admins"""
|
|
66
|
+
self.login(AdminFactory())
|
|
67
|
+
org_admin = UserFactory()
|
|
68
|
+
org = OrganizationFactory(members=[{"user": org_admin, "role": "admin"}])
|
|
69
|
+
dataset = DatasetFactory(organization=org)
|
|
70
|
+
|
|
71
|
+
with capture_mails() as mails:
|
|
72
|
+
response = self.delete(
|
|
73
|
+
url_for("api.dataset", dataset=dataset) + "?send_legal_notice=true"
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
self.assertStatus(response, 204)
|
|
77
|
+
assert len(mails) == 1
|
|
78
|
+
assert mails[0].recipients[0] == org_admin.email
|
|
79
|
+
|
|
80
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
81
|
+
def test_reuse_delete_with_mail_as_admin(self):
|
|
82
|
+
"""Admin deleting reuse with send_legal_notice=True should send email to owner"""
|
|
83
|
+
self.login(AdminFactory())
|
|
84
|
+
owner = UserFactory()
|
|
85
|
+
reuse = ReuseFactory(owner=owner)
|
|
86
|
+
|
|
87
|
+
with capture_mails() as mails:
|
|
88
|
+
response = self.delete(url_for("api.reuse", reuse=reuse) + "?send_legal_notice=true")
|
|
89
|
+
|
|
90
|
+
self.assertStatus(response, 204)
|
|
91
|
+
assert len(mails) == 1
|
|
92
|
+
assert mails[0].recipients[0] == owner.email
|
|
93
|
+
|
|
94
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
95
|
+
def test_reuse_delete_without_mail_as_admin(self):
|
|
96
|
+
"""Admin deleting reuse without send_mail should not send email"""
|
|
97
|
+
self.login(AdminFactory())
|
|
98
|
+
owner = UserFactory()
|
|
99
|
+
reuse = ReuseFactory(owner=owner)
|
|
100
|
+
|
|
101
|
+
with capture_mails() as mails:
|
|
102
|
+
response = self.delete(url_for("api.reuse", reuse=reuse))
|
|
103
|
+
|
|
104
|
+
self.assertStatus(response, 204)
|
|
105
|
+
assert len(mails) == 0
|
|
106
|
+
|
|
107
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
108
|
+
def test_dataservice_delete_with_mail_as_admin(self):
|
|
109
|
+
"""Admin deleting dataservice with send_legal_notice=True should send email to owner"""
|
|
110
|
+
self.login(AdminFactory())
|
|
111
|
+
owner = UserFactory()
|
|
112
|
+
dataservice = DataserviceFactory(owner=owner)
|
|
113
|
+
|
|
114
|
+
with capture_mails() as mails:
|
|
115
|
+
response = self.delete(
|
|
116
|
+
url_for("api.dataservice", dataservice=dataservice) + "?send_legal_notice=true"
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
self.assertStatus(response, 204)
|
|
120
|
+
assert len(mails) == 1
|
|
121
|
+
assert mails[0].recipients[0] == owner.email
|
|
122
|
+
|
|
123
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
124
|
+
def test_organization_delete_with_mail_as_admin(self):
|
|
125
|
+
"""Admin deleting organization with send_legal_notice=True should send email to org admins"""
|
|
126
|
+
self.login(AdminFactory())
|
|
127
|
+
org_admin = UserFactory()
|
|
128
|
+
org = OrganizationFactory(members=[{"user": org_admin, "role": "admin"}])
|
|
129
|
+
|
|
130
|
+
with capture_mails() as mails:
|
|
131
|
+
response = self.delete(url_for("api.organization", org=org) + "?send_legal_notice=true")
|
|
132
|
+
|
|
133
|
+
self.assertStatus(response, 204)
|
|
134
|
+
assert len(mails) == 1
|
|
135
|
+
assert mails[0].recipients[0] == org_admin.email
|
|
136
|
+
|
|
137
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
138
|
+
def test_user_delete_with_legal_notice_skips_simple_notification(self):
|
|
139
|
+
"""Admin deleting user with send_legal_notice=True automatically skips simple notification"""
|
|
140
|
+
self.login(AdminFactory())
|
|
141
|
+
user_to_delete = UserFactory()
|
|
142
|
+
|
|
143
|
+
with capture_mails() as mails:
|
|
144
|
+
response = self.delete(
|
|
145
|
+
url_for("api.user", user=user_to_delete) + "?send_legal_notice=true"
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
self.assertStatus(response, 204)
|
|
149
|
+
# Only legal notice mail, simple notification is automatically skipped
|
|
150
|
+
assert len(mails) == 1
|
|
151
|
+
assert mails[0].recipients[0] == user_to_delete.email
|
|
152
|
+
# Verify it's the legal notice (with appeal info), not the simple notification
|
|
153
|
+
assert "Deletion of your" in mails[0].subject # Legal notice subject
|
|
154
|
+
assert "contest this decision" in mails[0].body # Legal notice contains appeal info
|
|
155
|
+
|
|
156
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
157
|
+
def test_discussion_delete_with_mail_as_admin(self):
|
|
158
|
+
"""Admin deleting discussion with send_legal_notice=True should send email to author"""
|
|
159
|
+
self.login(AdminFactory())
|
|
160
|
+
author = UserFactory()
|
|
161
|
+
dataset = DatasetFactory()
|
|
162
|
+
discussion = DiscussionFactory(subject=dataset, user=author)
|
|
163
|
+
|
|
164
|
+
with capture_mails() as mails:
|
|
165
|
+
response = self.delete(
|
|
166
|
+
url_for("api.discussion", id=discussion.id) + "?send_legal_notice=true"
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
self.assertStatus(response, 204)
|
|
170
|
+
assert len(mails) == 1
|
|
171
|
+
assert mails[0].recipients[0] == author.email
|
|
172
|
+
|
|
173
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
174
|
+
def test_message_delete_with_mail_as_admin(self):
|
|
175
|
+
"""Admin deleting message with send_legal_notice=True should send email to author"""
|
|
176
|
+
self.login(AdminFactory())
|
|
177
|
+
author = UserFactory()
|
|
178
|
+
message_author = UserFactory()
|
|
179
|
+
dataset = DatasetFactory()
|
|
180
|
+
discussion = DiscussionFactory(
|
|
181
|
+
subject=dataset,
|
|
182
|
+
user=author,
|
|
183
|
+
discussion=[
|
|
184
|
+
MessageDiscussionFactory(posted_by=author),
|
|
185
|
+
MessageDiscussionFactory(posted_by=message_author),
|
|
186
|
+
],
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
with capture_mails() as mails:
|
|
190
|
+
response = self.delete(
|
|
191
|
+
url_for("api.discussion_comment", id=discussion.id, cidx=1)
|
|
192
|
+
+ "?send_legal_notice=true"
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
self.assertStatus(response, 204)
|
|
196
|
+
assert len(mails) == 1
|
|
197
|
+
assert mails[0].recipients[0] == message_author.email
|
|
198
|
+
|
|
199
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
200
|
+
def test_dataset_delete_without_owner_no_mail_sent(self):
|
|
201
|
+
"""Deleting dataset without owner or organization should not send email"""
|
|
202
|
+
self.login(AdminFactory())
|
|
203
|
+
dataset = DatasetFactory(owner=None, organization=None)
|
|
204
|
+
|
|
205
|
+
with capture_mails() as mails:
|
|
206
|
+
response = self.delete(
|
|
207
|
+
url_for("api.dataset", dataset=dataset) + "?send_legal_notice=true"
|
|
208
|
+
)
|
|
209
|
+
|
|
210
|
+
self.assertStatus(response, 204)
|
|
211
|
+
assert len(mails) == 0
|
|
212
|
+
|
|
213
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
214
|
+
def test_reuse_delete_without_owner_no_mail_sent(self):
|
|
215
|
+
"""Deleting reuse without owner or organization should not send email"""
|
|
216
|
+
self.login(AdminFactory())
|
|
217
|
+
reuse = ReuseFactory(owner=None, organization=None)
|
|
218
|
+
|
|
219
|
+
with capture_mails() as mails:
|
|
220
|
+
response = self.delete(url_for("api.reuse", reuse=reuse) + "?send_legal_notice=true")
|
|
221
|
+
|
|
222
|
+
self.assertStatus(response, 204)
|
|
223
|
+
assert len(mails) == 0
|
|
224
|
+
|
|
225
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
226
|
+
def test_dataservice_delete_without_owner_no_mail_sent(self):
|
|
227
|
+
"""Deleting dataservice without owner or organization should not send email"""
|
|
228
|
+
self.login(AdminFactory())
|
|
229
|
+
dataservice = DataserviceFactory(owner=None, organization=None)
|
|
230
|
+
|
|
231
|
+
with capture_mails() as mails:
|
|
232
|
+
response = self.delete(
|
|
233
|
+
url_for("api.dataservice", dataservice=dataservice) + "?send_legal_notice=true"
|
|
234
|
+
)
|
|
235
|
+
|
|
236
|
+
self.assertStatus(response, 204)
|
|
237
|
+
assert len(mails) == 0
|
|
238
|
+
|
|
239
|
+
@pytest.mark.options(DEFAULT_LANGUAGE="en")
|
|
240
|
+
def test_organization_delete_without_admins_no_mail_sent(self):
|
|
241
|
+
"""Deleting organization without admin members should not send email"""
|
|
242
|
+
self.login(AdminFactory())
|
|
243
|
+
editor = UserFactory()
|
|
244
|
+
org = OrganizationFactory(members=[{"user": editor, "role": "editor"}])
|
|
245
|
+
|
|
246
|
+
with capture_mails() as mails:
|
|
247
|
+
response = self.delete(url_for("api.organization", org=org) + "?send_legal_notice=true")
|
|
248
|
+
|
|
249
|
+
self.assertStatus(response, 204)
|
|
250
|
+
assert len(mails) == 0
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
class MailContentVariantsTest(APITestCase):
|
|
254
|
+
"""Test mail content varies based on settings"""
|
|
255
|
+
|
|
256
|
+
modules = []
|
|
257
|
+
|
|
258
|
+
@pytest.mark.options(
|
|
259
|
+
DEFAULT_LANGUAGE="en",
|
|
260
|
+
TERMS_OF_USE_URL="https://example.com/terms",
|
|
261
|
+
TERMS_OF_USE_DELETION_ARTICLE="5.1.2",
|
|
262
|
+
TELERECOURS_URL="https://telerecours.fr",
|
|
263
|
+
)
|
|
264
|
+
def test_mail_with_all_settings(self):
|
|
265
|
+
"""Mail should contain terms of use reference and telerecours when all settings defined"""
|
|
266
|
+
self.login(AdminFactory())
|
|
267
|
+
owner = UserFactory()
|
|
268
|
+
dataset = DatasetFactory(owner=owner)
|
|
269
|
+
|
|
270
|
+
with capture_mails() as mails:
|
|
271
|
+
self.delete(url_for("api.dataset", dataset=dataset) + "?send_legal_notice=true")
|
|
272
|
+
|
|
273
|
+
assert len(mails) == 1
|
|
274
|
+
body = mails[0].body
|
|
275
|
+
assert "Our terms of use specify" in body
|
|
276
|
+
assert "5.1.2" in body
|
|
277
|
+
assert "Télérecours" in body
|
|
278
|
+
|
|
279
|
+
@pytest.mark.options(
|
|
280
|
+
DEFAULT_LANGUAGE="en",
|
|
281
|
+
TERMS_OF_USE_DELETION_ARTICLE=None,
|
|
282
|
+
TELERECOURS_URL=None,
|
|
283
|
+
)
|
|
284
|
+
def test_mail_without_settings(self):
|
|
285
|
+
"""Mail should use generic text when settings are not defined"""
|
|
286
|
+
self.login(AdminFactory())
|
|
287
|
+
owner = UserFactory()
|
|
288
|
+
dataset = DatasetFactory(owner=owner)
|
|
289
|
+
|
|
290
|
+
with capture_mails() as mails:
|
|
291
|
+
self.delete(url_for("api.dataset", dataset=dataset) + "?send_legal_notice=true")
|
|
292
|
+
|
|
293
|
+
assert len(mails) == 1
|
|
294
|
+
body = mails[0].body
|
|
295
|
+
assert "Our terms of use specify" not in body
|
|
296
|
+
assert "Télérecours" not in body
|
|
297
|
+
assert "contacting us" in body
|
|
298
|
+
|
|
299
|
+
@pytest.mark.options(
|
|
300
|
+
DEFAULT_LANGUAGE="en",
|
|
301
|
+
TERMS_OF_USE_URL="https://example.com/terms",
|
|
302
|
+
TERMS_OF_USE_DELETION_ARTICLE="3.2",
|
|
303
|
+
TELERECOURS_URL=None,
|
|
304
|
+
)
|
|
305
|
+
def test_mail_with_terms_only(self):
|
|
306
|
+
"""Mail should contain terms of use but generic appeal when only terms defined"""
|
|
307
|
+
self.login(AdminFactory())
|
|
308
|
+
owner = UserFactory()
|
|
309
|
+
dataset = DatasetFactory(owner=owner)
|
|
310
|
+
|
|
311
|
+
with capture_mails() as mails:
|
|
312
|
+
self.delete(url_for("api.dataset", dataset=dataset) + "?send_legal_notice=true")
|
|
313
|
+
|
|
314
|
+
assert len(mails) == 1
|
|
315
|
+
body = mails[0].body
|
|
316
|
+
assert "Our terms of use specify" in body
|
|
317
|
+
assert "3.2" in body
|
|
318
|
+
assert "Télérecours" not in body
|
|
319
|
+
assert "contacting us" in body
|
|
320
|
+
|
|
321
|
+
@pytest.mark.options(
|
|
322
|
+
DEFAULT_LANGUAGE="en",
|
|
323
|
+
TERMS_OF_USE_DELETION_ARTICLE=None,
|
|
324
|
+
TELERECOURS_URL="https://telerecours.fr",
|
|
325
|
+
)
|
|
326
|
+
def test_mail_with_telerecours_only(self):
|
|
327
|
+
"""Mail should contain telerecours but generic terms when only telerecours defined"""
|
|
328
|
+
self.login(AdminFactory())
|
|
329
|
+
owner = UserFactory()
|
|
330
|
+
dataset = DatasetFactory(owner=owner)
|
|
331
|
+
|
|
332
|
+
with capture_mails() as mails:
|
|
333
|
+
self.delete(url_for("api.dataset", dataset=dataset) + "?send_legal_notice=true")
|
|
334
|
+
|
|
335
|
+
assert len(mails) == 1
|
|
336
|
+
body = mails[0].body
|
|
337
|
+
assert "Our terms of use specify" not in body
|
|
338
|
+
assert "Télérecours" in body
|
|
339
|
+
assert "contacting us" not in body
|
|
340
|
+
|
|
341
|
+
@pytest.mark.options(
|
|
342
|
+
DEFAULT_LANGUAGE="en",
|
|
343
|
+
TERMS_OF_USE_URL=None,
|
|
344
|
+
TERMS_OF_USE_DELETION_ARTICLE="5.1.2",
|
|
345
|
+
TELERECOURS_URL=None,
|
|
346
|
+
)
|
|
347
|
+
def test_mail_with_article_but_no_url(self):
|
|
348
|
+
"""Mail should use generic terms when article is defined but URL is missing"""
|
|
349
|
+
self.login(AdminFactory())
|
|
350
|
+
owner = UserFactory()
|
|
351
|
+
dataset = DatasetFactory(owner=owner)
|
|
352
|
+
|
|
353
|
+
with capture_mails() as mails:
|
|
354
|
+
self.delete(url_for("api.dataset", dataset=dataset) + "?send_legal_notice=true")
|
|
355
|
+
|
|
356
|
+
assert len(mails) == 1
|
|
357
|
+
body = mails[0].body
|
|
358
|
+
assert "Our terms of use specify" not in body
|
|
359
|
+
assert "5.1.2" not in body
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: udata
|
|
3
|
-
Version: 14.
|
|
3
|
+
Version: 14.5.1.dev6
|
|
4
4
|
Summary: Open data portal
|
|
5
5
|
Author-email: Opendata Team <opendatateam@data.gouv.fr>
|
|
6
6
|
Maintainer-email: Opendata Team <opendatateam@data.gouv.fr>
|
|
@@ -85,7 +85,7 @@ Requires-Dist: tzdata
|
|
|
85
85
|
Requires-Dist: urlextract<2.0.0,>=1.9.0
|
|
86
86
|
Requires-Dist: urllib3<3.0.0,>=2.0.0
|
|
87
87
|
Requires-Dist: voluptuous<1.0.0,>=0.15.2
|
|
88
|
-
Requires-Dist: werkzeug<
|
|
88
|
+
Requires-Dist: werkzeug<3.1.4,>=3.0.0
|
|
89
89
|
Requires-Dist: wtforms[email]<4.0.0,>=3.2.1
|
|
90
90
|
Requires-Dist: wtforms-json<1.0.0,>=0.3.5
|
|
91
91
|
Dynamic: license-file
|
|
@@ -5,11 +5,11 @@ udata/cors.py,sha256=7An9bsiNZk0PbNqDy8--ZJ0vmq1ubrtcfGB3DWAHBlA,3681
|
|
|
5
5
|
udata/errors.py,sha256=E8W7b4PH7c5B85g_nsUMt8fHqMVpDFOZFkO6wMPl6bA,117
|
|
6
6
|
udata/factories.py,sha256=MoklZnU8iwNL25dm3JsoXhoQs1PQWSVYL1WvcUBtJqM,492
|
|
7
7
|
udata/i18n.py,sha256=R7WdU0EZslj5xEHdqbyQ4iOORGjiqcVvQFCnmQEkpHA,2602
|
|
8
|
-
udata/mail.py,sha256
|
|
9
|
-
udata/rdf.py,sha256=
|
|
8
|
+
udata/mail.py,sha256=-5OjGWqW7X5EuLLsJfhdqIrjlBGJ3T0V_wVLKc9OyPQ,3722
|
|
9
|
+
udata/rdf.py,sha256=pUD7VbmhHo9cgmBbaYUd142nmB0R7VKsMXTkZWJ62jY,23825
|
|
10
10
|
udata/routing.py,sha256=3YQu9L81QYe4NxPSR_qyXe5WQLOgtm3sYKrkRxoxY-4,7741
|
|
11
11
|
udata/sentry.py,sha256=j_6PSHV1id21KFX1XvpQR-Ur4d24310HgIq7MynEZ2Q,2887
|
|
12
|
-
udata/settings.py,sha256=
|
|
12
|
+
udata/settings.py,sha256=tk9VyAxg-umX3QW8hfFRsdA683IHxrEOBV-lJOWScGg,22490
|
|
13
13
|
udata/sitemap.py,sha256=oRRWoPI7ZsFFnUAOqGT1YuXFFKHBe8EcRnUCNHD7xjM,979
|
|
14
14
|
udata/tags.py,sha256=8R2gJieQtHgj7ZWIckMCkQu39fqzEUehxlYRfSD6bYQ,631
|
|
15
15
|
udata/tasks.py,sha256=1cK9HCtbFFbsOztW_3sr-9LDM3h7vKvSW1GaUnOTUnI,5208
|
|
@@ -18,7 +18,7 @@ udata/uris.py,sha256=YMIZv6ypIYfYGAeLUJuBt58fbkpJ6fSzdWDKCbAylKA,4391
|
|
|
18
18
|
udata/utils.py,sha256=S8ViJSbQgzT3RYbcCW5JTkTjkI1hhifLinPXVuASvl4,13820
|
|
19
19
|
udata/worker.py,sha256=K-Wafye5-uXP4kQlffRKws2J9YbJ6m6n2QjcVsY8Nsg,118
|
|
20
20
|
udata/wsgi.py,sha256=MY8en9K9eDluvJYUxTdzqSDoYaDgCVZ69ZcUvxAvgqA,77
|
|
21
|
-
udata/api/__init__.py,sha256
|
|
21
|
+
udata/api/__init__.py,sha256=y-ULl38jINI7RfdZezCZ544nIGiZo9_pgo3Zj4NKA8w,11854
|
|
22
22
|
udata/api/commands.py,sha256=LJ4u-yhGij7QuH7OR92u3n7BEptqWMjDwMnG8pqdBxo,3523
|
|
23
23
|
udata/api/errors.py,sha256=P_UigBf6HAL73LbXKULagmp5Cuw-H1Ms6LmXxOmFIeg,211
|
|
24
24
|
udata/api/fields.py,sha256=w3qpMGntcOQa5bwFenZNJrnIoEZGZkEhRq0OwWFHsgc,3801
|
|
@@ -31,11 +31,11 @@ udata/auth/helpers.py,sha256=7Yr5k7ImdgqxVap4Bjq_ylTXmzq4NR0KgEOOhqSbaf4,267
|
|
|
31
31
|
udata/auth/mails.py,sha256=-HbXbxSeertEfcpEo3FBG2JwZw-De3-annl-DiuS9PY,5101
|
|
32
32
|
udata/auth/password_validation.py,sha256=ODVdEsiXbtq_8ws4Yf3hs5Sq7jz-IDa1RxAm_WPIJnA,1806
|
|
33
33
|
udata/auth/proconnect.py,sha256=hsvQ71Hqy42NvwgYtcMniRXWax3Q7LX1INcmaS7gaIQ,5073
|
|
34
|
-
udata/auth/views.py,sha256=
|
|
34
|
+
udata/auth/views.py,sha256=jM0HHWmAfZr6wAULNQbdrRxAX7HCMyLCCh6_uFxrLIQ,7912
|
|
35
35
|
udata/commands/__init__.py,sha256=-jwfKRGqbJMG-NcVG6AMRhVx2yPnwhAt8dzHAeVvy0k,7231
|
|
36
36
|
udata/commands/cache.py,sha256=bLdrf_fCWFYX9ULlL2ADsZRwijkI4pArsJxfx24OivM,341
|
|
37
37
|
udata/commands/db.py,sha256=8Fe4f4qZwdq2hYaOx8pwIROqJo2FK2t4LFa5OjaPCRY,19823
|
|
38
|
-
udata/commands/dcat.py,sha256=
|
|
38
|
+
udata/commands/dcat.py,sha256=h4FYUO1O_Dvx33SFkUnJTYHsTv0KDiNyuerXq6KuZHM,3923
|
|
39
39
|
udata/commands/fixtures.py,sha256=Mo_Q0tARawiUK3ZidWlJLrO8uvqnSYcg_OeWMzCwkvk,11376
|
|
40
40
|
udata/commands/images.py,sha256=0rVojLik5DYgJ6W4uNEfMP2g2QUU2V761tj3z6lo8no,2050
|
|
41
41
|
udata/commands/info.py,sha256=U8s5CnSG9NTA0UeeVJrBuWdfYEh3AwHSyx4NZjs1zas,832
|
|
@@ -84,20 +84,20 @@ udata/core/contact_point/forms.py,sha256=oBe1agSJFyx2QRgYzPRg2A7qVscaBTaKG4V-AyI
|
|
|
84
84
|
udata/core/contact_point/models.py,sha256=4GKbf0C1r1id35t4eQ3RcZIEfS_9kb6WW4QaXqejwQc,1161
|
|
85
85
|
udata/core/dataservices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
86
|
udata/core/dataservices/activities.py,sha256=wcYQCyYpKciCz99VqQqKti72a5Fyhc-AvDZBWdF0KUc,1763
|
|
87
|
-
udata/core/dataservices/api.py,sha256=
|
|
88
|
-
udata/core/dataservices/apiv2.py,sha256
|
|
87
|
+
udata/core/dataservices/api.py,sha256=u1aiwIwz9ypw8I6XT8gAbpN6M3qJGcVSK2UaFRJT5tg,10263
|
|
88
|
+
udata/core/dataservices/apiv2.py,sha256=FWkEfreOuyX7Krr604rQzSGLtBoVZrOR4nBEkYlhVIc,1231
|
|
89
89
|
udata/core/dataservices/constants.py,sha256=PlfoLJv1rqRSUHbCe80vGkfTl9B0hUYgCxrop_e5JUY,45
|
|
90
90
|
udata/core/dataservices/csv.py,sha256=HWI2JrN_Vuw0te9FHlJ6eyqcRcKHOKXuzg45D4Ti6F0,1106
|
|
91
91
|
udata/core/dataservices/factories.py,sha256=pKVoArNSCIbvGA-cWUc7vr8TmjYsUvOXzzcuUB5JyF4,964
|
|
92
|
-
udata/core/dataservices/models.py,sha256=
|
|
92
|
+
udata/core/dataservices/models.py,sha256=iRrAo3rO6fU_kE8K4-e69Y1YJWXC9I-Gfye_3yYW5gQ,12306
|
|
93
93
|
udata/core/dataservices/permissions.py,sha256=98zM_R4v2ZtRubflB7ajaVQz-DVc-pZBMgtKUYy34oI,169
|
|
94
|
-
udata/core/dataservices/rdf.py,sha256=
|
|
94
|
+
udata/core/dataservices/rdf.py,sha256=Xs5TAJ2sah0DFOk3pMGs-xoxLjKf53-5CWUyAp50sTE,8122
|
|
95
95
|
udata/core/dataservices/search.py,sha256=9Ylg-veM6x1sv-xAugx-lHIHJSqiGAN60Ww8ZYikjzY,4708
|
|
96
|
-
udata/core/dataservices/tasks.py,sha256=
|
|
96
|
+
udata/core/dataservices/tasks.py,sha256=DgOsTjQMx3poI0DdLPlTysRVNhf9dYNg-Zc_ut2S2ec,3045
|
|
97
97
|
udata/core/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
98
|
udata/core/dataset/actions.py,sha256=mX6xox0PiMrbcAPZ3VZsI26rfM-ciYfEXxN6sqqImKA,1222
|
|
99
99
|
udata/core/dataset/activities.py,sha256=eGxMUnC47YHxTgcls6igQ3qP7cYgwFtPfj0asCylGsI,3315
|
|
100
|
-
udata/core/dataset/api.py,sha256=
|
|
100
|
+
udata/core/dataset/api.py,sha256=07uiI9sF3ebGjMyNMFmbu0r-_NPt0B1zk7g9rTePBwc,35987
|
|
101
101
|
udata/core/dataset/api_fields.py,sha256=tmC9zpsMUc3ZNsrYYRBbioGNo12YmTZ0lT3i14n7B0w,18591
|
|
102
102
|
udata/core/dataset/apiv2.py,sha256=6nI_R2Uv-PUl3fyI3EPsW8Ppk5GiXvKSdA3HYondiW0,21576
|
|
103
103
|
udata/core/dataset/commands.py,sha256=3mKSdJ-M7ggdG29AVn77C4ouZanbYoqkTaGQoBKOp3s,3471
|
|
@@ -108,25 +108,25 @@ udata/core/dataset/exceptions.py,sha256=uKiayLSpSzsnLvClObS6hOO0qXEqvURKN7_w8eim
|
|
|
108
108
|
udata/core/dataset/factories.py,sha256=tb18axsk8Tx5iUIqWM9IELdt-2Ryp2UN0-iY4fdea4U,9059
|
|
109
109
|
udata/core/dataset/forms.py,sha256=q345go8G6qN1_YTX1Uhpl7M2kqF_44KA91OnFMcOGYk,8207
|
|
110
110
|
udata/core/dataset/metrics.py,sha256=s8Xs_rqRXfNWsErkiJTuRMG5o_cU5iSK8mUJFKVSc7w,1204
|
|
111
|
-
udata/core/dataset/models.py,sha256=
|
|
111
|
+
udata/core/dataset/models.py,sha256=NY1h3aY-OQzp80ZR9LuEzg2aXWTHk0srpsAJd_Np5jI,42089
|
|
112
112
|
udata/core/dataset/permissions.py,sha256=qZCo_wKRwm_hONKdAPhYcb4PqJj7qW4PBqH5WJ0FWB4,2199
|
|
113
113
|
udata/core/dataset/preview.py,sha256=uFEpK-p5nIAlY8hVOMhd7mtkwFt6C_PQRMNxPvAyoo4,839
|
|
114
|
-
udata/core/dataset/rdf.py,sha256=
|
|
114
|
+
udata/core/dataset/rdf.py,sha256=jEpp0wrCvpfpkzlNEr6yroLCChcPo9TCHIfbjoRnYPM,33088
|
|
115
115
|
udata/core/dataset/recommendations.py,sha256=DlGSLU8D0nW6Ds1rjBav1WxC-0VW5yOCjkO5w-ltFcI,7171
|
|
116
116
|
udata/core/dataset/search.py,sha256=UEYMPwj4kDkGlGaUmsYECh1c3_BjCt1RDcMLDGrV_dA,6019
|
|
117
117
|
udata/core/dataset/signals.py,sha256=WN4sV-lJlNsRkhcnhoy0SYJvCoYmK_5QFYZd1u-h4gs,161
|
|
118
|
-
udata/core/dataset/tasks.py,sha256=
|
|
118
|
+
udata/core/dataset/tasks.py,sha256=RWVWbSdJevyJqzNCB0xKYdXMnCcU3XLlLN4bjw_VI1o,11688
|
|
119
119
|
udata/core/dataset/transport.py,sha256=ihCXirY1dZjOfXKbf9HRCJTfIOc75rM1McwbeGjsW6A,1296
|
|
120
120
|
udata/core/discussions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
121
121
|
udata/core/discussions/actions.py,sha256=kjdBLDIeu0yWTSxQGgOpN1WoxUqbMygn4SiBk_S9T5I,1051
|
|
122
|
-
udata/core/discussions/api.py,sha256
|
|
122
|
+
udata/core/discussions/api.py,sha256=-fMnPzyqdcAeBM3JoLPaZLF7WRT8SNneUk1mfGuVLas,13822
|
|
123
123
|
udata/core/discussions/constants.py,sha256=8crl2Lmkv9dmJe4KACM0JJcpoHePmGtmvI6ixfvukhc,277
|
|
124
124
|
udata/core/discussions/csv.py,sha256=vIuMPJBrAOQmQ4P9SSY1wun0Av1qOE7i0TlQi-Vy7iU,772
|
|
125
125
|
udata/core/discussions/factories.py,sha256=CgQaUmmyDu90XtyBsqXVa-TmZMrN7Dwuu1Cnr5wNrVc,350
|
|
126
126
|
udata/core/discussions/forms.py,sha256=sR8tFBIBh-Rbx9VPzFzG1N54QY1y7UrdeboQ_60gXXQ,1265
|
|
127
127
|
udata/core/discussions/mails.py,sha256=FOov-8LIpFyv3WbNi5ivEUUowudMVGsfPgEijON_R_U,2608
|
|
128
128
|
udata/core/discussions/metrics.py,sha256=WMalLO9GEHXlqE2WbZX-HQUpvte6cRwuHuoL96QwWSg,354
|
|
129
|
-
udata/core/discussions/models.py,sha256=
|
|
129
|
+
udata/core/discussions/models.py,sha256=o36lTljOOr7C0walpl0V9xYQZh2O4q_hxC1gIRN8hB8,6340
|
|
130
130
|
udata/core/discussions/notifications.py,sha256=5MuoZDPmmvkloZ3i8I6TELgE1KXZ_cB9QiDerFBD9dM,1052
|
|
131
131
|
udata/core/discussions/permissions.py,sha256=VY2_PEsazz1fBgCX9-K-_spRgxUoNY4HuNDShqZjw6E,1583
|
|
132
132
|
udata/core/discussions/signals.py,sha256=tJ83RJIsBAny08Q6IDwehE6lDDRf6ynIFCl0WqnayoU,543
|
|
@@ -142,6 +142,8 @@ udata/core/jobs/api.py,sha256=Cml8mTEXFPw9SBd-1sYBH50YrVv4nvxo7R1o5VpPXE0,5959
|
|
|
142
142
|
udata/core/jobs/commands.py,sha256=85P5hDPdKMJzV_xbobNT8nqEW71HchPjTUJ-1u5wddE,4402
|
|
143
143
|
udata/core/jobs/forms.py,sha256=B-B6jXHZsYV-PWAkD8DLoOlh6trv4l1hGZ4HOPm-PD4,1495
|
|
144
144
|
udata/core/jobs/models.py,sha256=xK8T3FCmhtERNbZmh1Tq_ZTO6vojM172tTc0oplNoQ0,1358
|
|
145
|
+
udata/core/legal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
146
|
+
udata/core/legal/mails.py,sha256=1Xlz9eXaiTN2cI0_Q8DBNDASVirKbjUrz2XC18m_n9w,5611
|
|
145
147
|
udata/core/metrics/__init__.py,sha256=lNvQZS4j-PTfN7kYOwaIW3qgxH2eSMdFc2zSYVqxHP0,329
|
|
146
148
|
udata/core/metrics/commands.py,sha256=JmEBsjmvQl0W32g4m_n7OdtB3zcAvcMCvlzJa0DzZJ4,6191
|
|
147
149
|
udata/core/metrics/helpers.py,sha256=DRefxJfpePuDcWmV7b-gaNE6tjEcttQaWmKpYNBSECM,4370
|
|
@@ -150,9 +152,9 @@ udata/core/metrics/signals.py,sha256=9mdJW__gR2GJT3huBr6HN2SDhKYJRgNbW9dnh48cAnU
|
|
|
150
152
|
udata/core/metrics/tasks.py,sha256=5hVSvBFF2-k_MZGn1XrzEWLgRp3TlrZJtPjX1Y_niS4,4963
|
|
151
153
|
udata/core/organization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
152
154
|
udata/core/organization/activities.py,sha256=Mw4-R8Q6G745IZnCDgrj7h2ax2crGYRhZtcewSK6_Ok,1213
|
|
153
|
-
udata/core/organization/api.py,sha256=
|
|
155
|
+
udata/core/organization/api.py,sha256=RGyxe5LRqkyk5HzsXRB9r6z_YhGVqNeKkiaEgMaOvU8,22908
|
|
154
156
|
udata/core/organization/api_fields.py,sha256=UlDYS62Wt1capSO0rYf6-m_rza3lCmpTuA93R-sV9w8,7776
|
|
155
|
-
udata/core/organization/apiv2.py,sha256=
|
|
157
|
+
udata/core/organization/apiv2.py,sha256=HVZmfO-Cw9hlMPcHKAC1HnSmPXeWpBz-hqWUDl2Bhs8,2983
|
|
156
158
|
udata/core/organization/commands.py,sha256=DsRAtFDZvTciYNsUWumQWdn0jnNmKW-PwfIHUUZoBb8,1591
|
|
157
159
|
udata/core/organization/constants.py,sha256=fncNtA-vFrRM22K1Wo6iYu9DQZjzknYxH6TIYfxM9kA,563
|
|
158
160
|
udata/core/organization/csv.py,sha256=zdLeB4La-TeOEELg0WI3FryoQWnoAYit_DssInVSHRI,979
|
|
@@ -160,7 +162,7 @@ udata/core/organization/factories.py,sha256=g8ubBcz79xbjvpunZ02IDOakFg1KE6cXjNkE
|
|
|
160
162
|
udata/core/organization/forms.py,sha256=tscDb1_yOpbTx3ahl8ttA7oDkX9jIyzLc4gOf6WbN3s,3552
|
|
161
163
|
udata/core/organization/mails.py,sha256=JxVzsJe4hoFbohB5hmWY33BmqMg8Bz-nwYDvnvUzXW8,4944
|
|
162
164
|
udata/core/organization/metrics.py,sha256=CEhkZLUufDyWi2XyizMoXkuddz7xDJvmdkPTweqfWyI,1144
|
|
163
|
-
udata/core/organization/models.py,sha256=
|
|
165
|
+
udata/core/organization/models.py,sha256=6_HT7O5Fa1viiC2rv_bY3B8H3v5F-NoMcmCm1hi37Ag,11338
|
|
164
166
|
udata/core/organization/notifications.py,sha256=bAtb-Of3KCAu30KBg0Y55qHJk9kx82HlMWSCYOfYyHM,3710
|
|
165
167
|
udata/core/organization/permissions.py,sha256=hcnFuc8RkDesFSnq-ei4LV0ZUpRUf8zXyxRoXT_aLQc,1274
|
|
166
168
|
udata/core/organization/rdf.py,sha256=KYJXTE5Yxhp3Cb7GZsRT1BY3Bd7rcRfwFSK9dWG2xQ4,1807
|
|
@@ -186,9 +188,9 @@ udata/core/reports/constants.py,sha256=LRZSX3unyqZeB4yQjK3ws_hGbJcXYk4bu1Rhnhi5D
|
|
|
186
188
|
udata/core/reports/models.py,sha256=_Niab0hL4tzM4V1A1WdcPoVxRPvJ6TZFLQXV-cka-uE,3629
|
|
187
189
|
udata/core/reuse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
188
190
|
udata/core/reuse/activities.py,sha256=5D7cV-hGZnzHsp8hohZqqgK3RSGQpfAqJ_Wfq_AYfM8,1420
|
|
189
|
-
udata/core/reuse/api.py,sha256=
|
|
191
|
+
udata/core/reuse/api.py,sha256=zRHYVkpceWwXyIKM7eMBz0VZAL0TMSdo7m-CicxbN5w,13779
|
|
190
192
|
udata/core/reuse/api_fields.py,sha256=ccym6v9Ap68PlHZmIMMtHQFnEyV7Gbxrfdw0b6rj51A,1232
|
|
191
|
-
udata/core/reuse/apiv2.py,sha256=
|
|
193
|
+
udata/core/reuse/apiv2.py,sha256=ixayPlYkCl67GxqFBHijSigjkzmkXuY-HX7X-_SH-3U,863
|
|
192
194
|
udata/core/reuse/constants.py,sha256=JgDBrjOKSt9q0auv9rjzbGsch83H-Oi8YXAKeI5hO4o,1215
|
|
193
195
|
udata/core/reuse/csv.py,sha256=c9t9nyAqjx-QNyeku6RpcC8kSdlQ12wxzXCJHUj6GBY,899
|
|
194
196
|
udata/core/reuse/factories.py,sha256=GrQqYTIvwQrwkvJrbTr38-2faFW_PC99gn3yOVpgFec,850
|
|
@@ -245,13 +247,13 @@ udata/core/topic/api_fields.py,sha256=zMjoTSoe7-Q8F-i7Ry5EAUv-ds4Lzao3jfETZq-Vg0
|
|
|
245
247
|
udata/core/topic/apiv2.py,sha256=WVyZDNew8m0qVFn9RLKW0SeLQHuUwWIcGAfomzua7sw,6449
|
|
246
248
|
udata/core/topic/factories.py,sha256=Rhx12aTrYFZScu53IhYNP0zJKfiVZPba34ybZ7gGSwo,3010
|
|
247
249
|
udata/core/topic/forms.py,sha256=OkWFo0FkSnjZ2LURoq2i2cpingFz1TrOEI3TJ7qQ8pk,3465
|
|
248
|
-
udata/core/topic/models.py,sha256=
|
|
250
|
+
udata/core/topic/models.py,sha256=CBcMk_3A9NE1lahHJCk_r9_yQIK9L9Fd0D2KAA0NU0s,4732
|
|
249
251
|
udata/core/topic/parsers.py,sha256=oteskLLFje-zufAYzSl1zsy-MLac2hpXhGI0S3igA1g,4560
|
|
250
252
|
udata/core/topic/permissions.py,sha256=RtFPPlxuU_Bv7ip6LDO4AoPrKFnIOEs9cCMXaSSmEdk,118
|
|
251
253
|
udata/core/topic/tasks.py,sha256=_OrPfuZ9rKENp4p4IkoyV-Yqp9bxI3nNxhpfKrbgl-w,357
|
|
252
254
|
udata/core/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
253
255
|
udata/core/user/activities.py,sha256=d91G45XEgoxYUJetkSjVolSM-nqmNSuM5b-6geayGE4,3338
|
|
254
|
-
udata/core/user/api.py,sha256=
|
|
256
|
+
udata/core/user/api.py,sha256=xO6Bsc_5IHH8DV7y2gmT-sTWhBVvIeRJOvXXv4hAoQE,13903
|
|
255
257
|
udata/core/user/api_fields.py,sha256=fx3rv8YmovIKJpZ8ldtcUOAWuJHEELDYa4HwdaQOAnA,5986
|
|
256
258
|
udata/core/user/apiv2.py,sha256=4eNsvJjb4ChJQFrXtVbkOtAvXEcQcQpZf8vkEbriXRA,1125
|
|
257
259
|
udata/core/user/commands.py,sha256=8dyowvylgYqdScgzVGgr61MWLshlS6-UopZGAMvp4zA,3539
|
|
@@ -260,7 +262,7 @@ udata/core/user/factories.py,sha256=kkwaojciLzfuAOeRnL1E7XCcGPo8waAal_G2eeuVc0k,
|
|
|
260
262
|
udata/core/user/forms.py,sha256=yotqZozH9ViKuNI8SwdKocDEi7NXVs_XUMpdr_bIe5s,966
|
|
261
263
|
udata/core/user/mails.py,sha256=JPoPdjt38T3QECR7g7dqc5MbWxm1wwCNUYIO1I4VSaI,1945
|
|
262
264
|
udata/core/user/metrics.py,sha256=J4zgjcAudQAi6NUIb47o2Pfe0xZ_Eu17ta9HjhE-HvE,1274
|
|
263
|
-
udata/core/user/models.py,sha256=
|
|
265
|
+
udata/core/user/models.py,sha256=R0imfkTiNTryiccOZIdNgWIhKRwqDgbUMv9EWFgVe4E,11787
|
|
264
266
|
udata/core/user/permissions.py,sha256=Wbd8bLqSjqp9RHJ6ffLBj74L-LECcAhWazuw4Hq-2Gk,435
|
|
265
267
|
udata/core/user/rdf.py,sha256=_tN8KlJHt8mYwJhLKoULhmZ3sapUGmX1Sl5W8uawxeU,718
|
|
266
268
|
udata/core/user/tasks.py,sha256=iaL997_aYTvHSXekHWWHuYb6a1WNQkc48dtfOdE_4SI,2924
|
|
@@ -289,7 +291,7 @@ udata/flask_mongoengine/document.py,sha256=KY_PtwbLuqtnlV105YX6ot5GVHq9k61EGv-V6
|
|
|
289
291
|
udata/flask_mongoengine/engine.py,sha256=mBY1qQVQtBl5bzuc6F_j5Vcy6kYbJnGDPev4r3Um3Os,6650
|
|
290
292
|
udata/flask_mongoengine/fields.py,sha256=moNEAt6_QYu3-Tv9uwI7Okak61iLQSn5_J-0IiP1pB0,3290
|
|
291
293
|
udata/flask_mongoengine/model_form.py,sha256=LI6eqd2zykhron29U280mjt0uZlBpM8GP9NDKrB46Tw,718
|
|
292
|
-
udata/flask_mongoengine/pagination.py,sha256=
|
|
294
|
+
udata/flask_mongoengine/pagination.py,sha256=dVWk8Pdg5WCMMorREQ4Kd5J31udWmPvyZLuY9NapDF0,5608
|
|
293
295
|
udata/flask_mongoengine/wtf.py,sha256=BU2ahk6xkUmM18oaUf539RXFTP04O8S2CvEniYGJ1co,1226
|
|
294
296
|
udata/forms/__init__.py,sha256=WdBOu40HijJi0A6kjUkuT-WEP2YNW3k_ftSzQS_Zl9Y,789
|
|
295
297
|
udata/forms/fields.py,sha256=7zPxvgvUG4X3Yt1nm1NvksY9RcgUtNsgPTHiZ8J_rVY,30042
|
|
@@ -312,7 +314,7 @@ udata/harvest/signals.py,sha256=3AhFHMPIFH5vz01NX5ycR_RWH14MXFWnCT6__LSa-QI,1338
|
|
|
312
314
|
udata/harvest/tasks.py,sha256=OMc4Jw_M_UgOokxj9IfRKqEqjwi9t9Eih79X_uzr5FA,1676
|
|
313
315
|
udata/harvest/backends/__init__.py,sha256=HIr7kSdmMUMnfCYnkJ4MydC_GcqbYoBozSbee7l6Qs8,1031
|
|
314
316
|
udata/harvest/backends/base.py,sha256=ww_PzXrJZP91QaujJ-psOd8ilzr_5NuLOe0SNogE7M4,19183
|
|
315
|
-
udata/harvest/backends/dcat.py,sha256=
|
|
317
|
+
udata/harvest/backends/dcat.py,sha256=FwFJ0SHhKkyrUUfILYn3iZ79dQJqGUF3BhW7Qrxb5f0,19573
|
|
316
318
|
udata/harvest/backends/maaf.py,sha256=SN_831VeWphR63EC9v0n94bRH-9B5htTE70HSsVfzyc,8373
|
|
317
319
|
udata/harvest/backends/maaf.xsd,sha256=vEyG8Vqw7Yn_acjRdXjqUJgxOj4pv8bibep-FX-f3BQ,18322
|
|
318
320
|
udata/harvest/backends/ckan/__init__.py,sha256=JE7Qa7kX7Yd8OvmJnAO_NupZe0tqYyhhkgJ-iGNxX64,35
|
|
@@ -326,7 +328,7 @@ udata/harvest/tests/person.jsonld,sha256=I7Ynh-PQlNeD51I1LrCgYOEjhL-WBeb65xzIE_s
|
|
|
326
328
|
udata/harvest/tests/test_actions.py,sha256=nB53_Hi4U38R4gjce9ZnwRXHJfbxbQ1n4mIKkKgfdcA,27899
|
|
327
329
|
udata/harvest/tests/test_api.py,sha256=aWWkYpDhUdcSVz2C9jooLWLWKhu28D3Rs2xydmvQUT8,27657
|
|
328
330
|
udata/harvest/tests/test_base_backend.py,sha256=iu_GFkadVnc82pg4auhUhpfIFcrfSVbZ_c8ZVDaYObc,22279
|
|
329
|
-
udata/harvest/tests/test_dcat_backend.py,sha256=
|
|
331
|
+
udata/harvest/tests/test_dcat_backend.py,sha256=A_OJ9LcDfC7tCLRu8-_nNA8x2PWjTHbnec6QAgvYL8o,56381
|
|
330
332
|
udata/harvest/tests/test_filters.py,sha256=uXcoUGBgEL8EPShFtrZikVOTqKMrfc6ljtXgc_ES5O8,2621
|
|
331
333
|
udata/harvest/tests/test_models.py,sha256=TIpNRx3gjwI5wznr_y2Ad5fdESfhqhPoOOOSBfvyfQI,850
|
|
332
334
|
udata/harvest/tests/test_notifications.py,sha256=i4TZo-hFN6aIi1c9MouqS-ElihccBnqKb_Ed0QQWgyo,835
|
|
@@ -443,15 +445,16 @@ udata/templates/security/reset_password.html,sha256=R0AMqkmPulFZpCoqP6NzP-dSTcdx
|
|
|
443
445
|
udata/templates/security/send_confirmation.html,sha256=llnEawIMXWP8Wu9EUL2czY38Z7URk-hRCEK9A4cxVJQ,784
|
|
444
446
|
udata/tests/__init__.py,sha256=yaEd8auFOkEg2DX0m0mutomNTHSiugyVEO9QPMyvjeE,2650
|
|
445
447
|
udata/tests/es-fake-result.json,sha256=z0CX9Gs-NRj49dmtdFvw8ZKsAbMhDt97Na6JX3ucX34,3155
|
|
446
|
-
udata/tests/helpers.py,sha256=
|
|
448
|
+
udata/tests/helpers.py,sha256=67i83_ClNyYu3MH30hgkkHo-wjyeQ3eBuLkYHBuZiVM,6705
|
|
447
449
|
udata/tests/models.py,sha256=5oTC-cgKSL0sUdlqjUiJ6U8-YZBQanObb-MhZhQIV3M,238
|
|
448
450
|
udata/tests/plugin.py,sha256=K2oQMYnWnElg0C0zPUQJqelPp0VuNj09hfGkLNd3KmY,708
|
|
449
451
|
udata/tests/schemas.json,sha256=szM1jDpkogfOG4xWbjIGjLgG8l9-ZyE3JKQtecJyD1E,4990
|
|
450
452
|
udata/tests/test_activity.py,sha256=YAPQZAVDqfC91_lgzJxfaMZH_U5PmFAkRQXPh_n3Ljs,9797
|
|
451
|
-
udata/tests/test_api_fields.py,sha256=
|
|
453
|
+
udata/tests/test_api_fields.py,sha256=iS75yPnvQMAAwSU5WYhyuWj0rfQk18ctu_tJwryQL30,13296
|
|
452
454
|
udata/tests/test_cors.py,sha256=6_YNrn_zwve2eiRjBskBu7fO3NTpxewFlAhl06po5mg,2911
|
|
453
455
|
udata/tests/test_dcat_commands.py,sha256=lNro98quTA_PnVATnum2mokSKBRfSVd_MxSzA32nbjY,939
|
|
454
456
|
udata/tests/test_discussions.py,sha256=y_nVPWDTx3t-_dVGXYtFaTWDudf-QnJS-f3TQpZaAKA,47615
|
|
457
|
+
udata/tests/test_legal_mails.py,sha256=WyHYkzWRiikZUqTYG-trXJKimSgNqenCorYC2txwh34,13901
|
|
455
458
|
udata/tests/test_mail.py,sha256=IvWCtRJ1qikJp4rSu-q8bqYbQTSkW8GOawuwsgSR7io,5906
|
|
456
459
|
udata/tests/test_migrations.py,sha256=PC9hWaWBqQR1E_tEqAbJF-xC1fBlBA7U9oN8ROczPaY,7739
|
|
457
460
|
udata/tests/test_model.py,sha256=j9_9xiLLPAFibL5Rz6uMD7Npjz0bS1Nu88A3fQF_3UI,22194
|
|
@@ -472,7 +475,7 @@ udata/tests/api/test_auth_api.py,sha256=vLyDU1hdF2QEwpNTNUgP2QPUjL0y61lzj5Viaaj9
|
|
|
472
475
|
udata/tests/api/test_base_api.py,sha256=jbT9s_YYuh-37xR98VMS5mAHHIL0g-6F_kkhFBb4E3A,2272
|
|
473
476
|
udata/tests/api/test_contact_points.py,sha256=QmnTmJZ5oIohsUH_E_wfFalRx-Fx91jO7gs7PErpLqQ,8690
|
|
474
477
|
udata/tests/api/test_dataservices_api.py,sha256=UPMH6OEEczYvebyV7thf7LjrEYFctgIm1TuJV1VC-OI,29914
|
|
475
|
-
udata/tests/api/test_datasets_api.py,sha256=
|
|
478
|
+
udata/tests/api/test_datasets_api.py,sha256=ue8ncXBfOf3XR1ZK3YwtoWqONSk2dsAzrRIWFXIj9kM,111967
|
|
476
479
|
udata/tests/api/test_fields.py,sha256=OW85Z5MES5HeWOpapeem8OvR1cIcrqW-xMWpdZO4LZ8,1033
|
|
477
480
|
udata/tests/api/test_follow_api.py,sha256=4nFXG5pZ_Hf2PJ4KEdHJX_uggjc9RpB8v0fidkAcw9I,5792
|
|
478
481
|
udata/tests/api/test_me_api.py,sha256=MiKN9P75h2HyMxepuxt2SiLs3Yhgl22iQXKbvTR42sg,13796
|
|
@@ -488,6 +491,7 @@ udata/tests/apiv2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
|
|
|
488
491
|
udata/tests/apiv2/test_datasets.py,sha256=lugL_CE2MlP4R--GEersBIwJOn66xVmLz5lU8L4YpcA,23216
|
|
489
492
|
udata/tests/apiv2/test_me_api.py,sha256=YxSCtZBlSXgzQPgwMJoZHMcpSoKjL6IKz2jhJi8xL5I,1399
|
|
490
493
|
udata/tests/apiv2/test_organizations.py,sha256=JqQHnOzRLR4l19P-EC9k2VToLbebU7jYESY4T-Y9LS8,6370
|
|
494
|
+
udata/tests/apiv2/test_search.py,sha256=PW6vzchc-OUVH80kPIHdShqyD0lvbDmupa-DLjyT1QQ,1233
|
|
491
495
|
udata/tests/apiv2/test_swagger.py,sha256=fIwblhKFnbXnLJb_Qs33P0c44LRm0c1JODblKEcf_4M,832
|
|
492
496
|
udata/tests/apiv2/test_topics.py,sha256=pHHsPo7Qs8DoDqLBBcB0GtoptkHHXT25Jo96B2Vg_4k,37970
|
|
493
497
|
udata/tests/cli/test_cli_base.py,sha256=opaL3La-ig47wpak7A-zdRUzj2hIXIYXD_0t842YrBQ,465
|
|
@@ -496,7 +500,7 @@ udata/tests/data/image.jpg,sha256=hdmpaCjOhmAAfNGuTqWKEjv7IC4GXJx-nP_rT274hc8,33
|
|
|
496
500
|
udata/tests/data/image.png,sha256=GAqXz7w_u7CapODIUF45UpVddmqelnGQkcrwKZq3448,266488
|
|
497
501
|
udata/tests/dataservice/test_csv_adapter.py,sha256=trGzWENGpkDFI84XZhwwNR61_nmukphKvS6aOKf7uBo,1981
|
|
498
502
|
udata/tests/dataservice/test_dataservice_rdf.py,sha256=dsBLkpn1kYVVcOVx6O5fn-UacQXFHpTFoNaZ_ciRWo0,6405
|
|
499
|
-
udata/tests/dataservice/test_dataservice_tasks.py,sha256=
|
|
503
|
+
udata/tests/dataservice/test_dataservice_tasks.py,sha256=ANbPcKhWzAGZABXVYKDLhGUItr5qFc9Trdq3eMWSlT8,3003
|
|
500
504
|
udata/tests/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
501
505
|
udata/tests/dataset/test_csv_adapter.py,sha256=d5Wx2yqXpXh93IY5JtnGVTDo9O_3j0F_XnfmXnA__UI,3902
|
|
502
506
|
udata/tests/dataset/test_dataset_actions.py,sha256=8d-6AUKCt3Nnb_uEaztV0BzNYFDyqAYLrThRD-ubLNA,741
|
|
@@ -505,7 +509,7 @@ udata/tests/dataset/test_dataset_events.py,sha256=tKCQ55y_pc0wOKv2B2iej5dDxWalgu
|
|
|
505
509
|
udata/tests/dataset/test_dataset_model.py,sha256=YWhQ6RxVdgUrQbtvwATzypyl8XyNpdDjHDetyK37chU,35795
|
|
506
510
|
udata/tests/dataset/test_dataset_rdf.py,sha256=_7QDypmPQvL4DzrOgsVfkbL-hW5RrIftctIz3O0wMEw,58199
|
|
507
511
|
udata/tests/dataset/test_dataset_recommendations.py,sha256=UMwAsLHs6_XA1vp7-lnTjaPOc9E6zQYqw9VIuSCNUtk,7102
|
|
508
|
-
udata/tests/dataset/test_dataset_tasks.py,sha256=
|
|
512
|
+
udata/tests/dataset/test_dataset_tasks.py,sha256=6YmDBJUv3pIPNFj6DvY7FLsa4k7XxGeQ7BgOLrJOeTY,4564
|
|
509
513
|
udata/tests/dataset/test_resource_preview.py,sha256=387FEdNHWZyEeOlmSETMIFlnhVuKQ-U4o2RkWgxXwik,2208
|
|
510
514
|
udata/tests/dataset/test_transport_tasks.py,sha256=GgXu_MXGKmVzugi-7SUVNJ_PkTo36kJsASapYaxlcQw,2998
|
|
511
515
|
udata/tests/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -524,7 +528,7 @@ udata/tests/forms/test_publish_as_field.py,sha256=o-agTC4Lq-wJXxACWTPBIlPUovQnjv
|
|
|
524
528
|
udata/tests/forms/test_reference_field.py,sha256=oa57TatMG9Ul5Z_ehCsLK0Zau31n3xaRU0gLAmZlg9w,6290
|
|
525
529
|
udata/tests/forms/test_user_forms.py,sha256=Uo0l-4jd7pyp6d7_4GVBp9InLwlWYEh984utQHat7Ng,1142
|
|
526
530
|
udata/tests/forms/test_uuid_field.py,sha256=256hFDZSWBeoRQuKIAF5RBt4hAKssSHFVAqMMHz8rcc,1788
|
|
527
|
-
udata/tests/frontend/test_auth.py,sha256=
|
|
531
|
+
udata/tests/frontend/test_auth.py,sha256=nO9OvTc9SX2QRShyseV6WoEPlqSbrE8wmQ-pRdaWhWU,2921
|
|
528
532
|
udata/tests/frontend/test_csv.py,sha256=v7hpTtWgPrMRJxED-6Ql-RNYI62thuy36eO4tAkHe9I,11583
|
|
529
533
|
udata/tests/frontend/test_error_handlers.py,sha256=oUk-x5uUwDDDv1b7_wMBWVu26Dolh5tH_ScrnOIFRxA,3106
|
|
530
534
|
udata/tests/frontend/test_markdown.py,sha256=khpmtc9cvBAFSuSZhy8P1hg-8ILRW171_Jue00Aps_0,13875
|
|
@@ -545,6 +549,7 @@ udata/tests/search/__init__.py,sha256=ub8kS6vG9EjzkJ-9sAR7j1eLSYpud1Gzry4MQ8fpgx
|
|
|
545
549
|
udata/tests/search/test_adapter.py,sha256=4Sh8T-a8TYRMWUNe93WkVOy2b5q7i5hvjFUjXbX3UZw,8648
|
|
546
550
|
udata/tests/search/test_query.py,sha256=aFZKFTJjlih5csy3eNp4MxL5hg13NqiIsrS5bCTOLrI,2182
|
|
547
551
|
udata/tests/search/test_results.py,sha256=vHMkywoW6SQKGy5OtCriYpSo-KbVEdjVzOf8un2mjZE,2043
|
|
552
|
+
udata/tests/search/test_search_integration.py,sha256=BZhoCNmvwDJV_jSYE9ILC3pmp_SeBYOiDfHfJMrwn4I,1190
|
|
548
553
|
udata/tests/site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
549
554
|
udata/tests/site/test_site_api.py,sha256=j9pu91KfkL8-O0lyTA546cJJGZyENEauebF_uuxKVTE,1363
|
|
550
555
|
udata/tests/site/test_site_csv_exports.py,sha256=XNNCUsX3Q17ov2nBOEfBLklKpwF3wxIG_1ZeayFfKls,17758
|
|
@@ -575,9 +580,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=n7ZHvruSL9hIPoSl4aCkGeC52LZYeg
|
|
|
575
580
|
udata/translations/pt/LC_MESSAGES/udata.po,sha256=24CsHDZ84nqTMr-cOvOZ-LNYsokLQNyQchI41o3Cq9M,49765
|
|
576
581
|
udata/translations/sr/LC_MESSAGES/udata.mo,sha256=pw3gsvr8lPQJZvX9Jo8ymu59I3L6-rrpX2Fqy0Nu5r4,20441
|
|
577
582
|
udata/translations/sr/LC_MESSAGES/udata.po,sha256=1h8akWRpcQ1uD5zezqjp-Q-gAld5_93MkJL4BRlqKjQ,54738
|
|
578
|
-
udata-14.
|
|
579
|
-
udata-14.
|
|
580
|
-
udata-14.
|
|
581
|
-
udata-14.
|
|
582
|
-
udata-14.
|
|
583
|
-
udata-14.
|
|
583
|
+
udata-14.5.1.dev6.dist-info/licenses/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
|
|
584
|
+
udata-14.5.1.dev6.dist-info/METADATA,sha256=qbQHMoJGGldXV--7F7oWanV4xdfGPPbMr49r5vGsnLs,4358
|
|
585
|
+
udata-14.5.1.dev6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
586
|
+
udata-14.5.1.dev6.dist-info/entry_points.txt,sha256=XwrEzP-n_6CKnwTsrNHzyCTWbMwg2FkvxVVB686f_C0,476
|
|
587
|
+
udata-14.5.1.dev6.dist-info/top_level.txt,sha256=EF6CE6YSHd_og-8LCEA4q25ALUpWVe8D0okOLdMAE3A,6
|
|
588
|
+
udata-14.5.1.dev6.dist-info/RECORD,,
|