udata 7.0.6.dev28233__py2.py3-none-any.whl → 7.0.6.dev28263__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/commands/__init__.py +0 -3
- udata/core/activity/api.py +1 -1
- udata/core/activity/models.py +4 -3
- udata/core/activity/tasks.py +6 -5
- udata/migrations/2024-03-22-migrate-activity-kwargs-to-extras.py +16 -0
- udata/tests/test_activity.py +12 -0
- {udata-7.0.6.dev28233.dist-info → udata-7.0.6.dev28263.dist-info}/METADATA +3 -1
- {udata-7.0.6.dev28233.dist-info → udata-7.0.6.dev28263.dist-info}/RECORD +12 -11
- {udata-7.0.6.dev28233.dist-info → udata-7.0.6.dev28263.dist-info}/LICENSE +0 -0
- {udata-7.0.6.dev28233.dist-info → udata-7.0.6.dev28263.dist-info}/WHEEL +0 -0
- {udata-7.0.6.dev28233.dist-info → udata-7.0.6.dev28263.dist-info}/entry_points.txt +0 -0
- {udata-7.0.6.dev28233.dist-info → udata-7.0.6.dev28263.dist-info}/top_level.txt +0 -0
udata/commands/__init__.py
CHANGED
|
@@ -145,9 +145,6 @@ def init_logging(app):
|
|
|
145
145
|
handler.setFormatter(CliFormatter())
|
|
146
146
|
handler.setLevel(log_level)
|
|
147
147
|
|
|
148
|
-
logger = logging.getLogger()
|
|
149
|
-
logger.addHandler(handler)
|
|
150
|
-
|
|
151
148
|
logger = logging.getLogger('__main__')
|
|
152
149
|
logger.setLevel(log_level)
|
|
153
150
|
logger.handlers = []
|
udata/core/activity/api.py
CHANGED
|
@@ -37,7 +37,7 @@ activity_fields = api.model('Activity', {
|
|
|
37
37
|
description='The key of the activity', required=True),
|
|
38
38
|
'icon': fields.String(
|
|
39
39
|
description='The icon of the activity', required=True),
|
|
40
|
-
'
|
|
40
|
+
'extras': fields.Raw(description='Extras attributes as key-value pairs'),
|
|
41
41
|
})
|
|
42
42
|
|
|
43
43
|
activity_page_fields = api.model('ActivityPage', fields.pager(activity_fields))
|
udata/core/activity/models.py
CHANGED
|
@@ -37,7 +37,7 @@ class Activity(db.Document, metaclass=EmitNewActivityMetaClass):
|
|
|
37
37
|
related_to = db.ReferenceField(db.DomainModel, required=True)
|
|
38
38
|
created_at = db.DateTimeField(default=datetime.utcnow, required=True)
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
extras = db.ExtrasField()
|
|
41
41
|
|
|
42
42
|
on_new = Signal()
|
|
43
43
|
|
|
@@ -65,8 +65,9 @@ class Activity(db.Document, metaclass=EmitNewActivityMetaClass):
|
|
|
65
65
|
return cls.on_new.connect(func, sender=cls)
|
|
66
66
|
|
|
67
67
|
@classmethod
|
|
68
|
-
def emit(cls, related_to, organization=None,
|
|
68
|
+
def emit(cls, related_to, organization=None, extras=None):
|
|
69
69
|
new_activity.send(cls,
|
|
70
70
|
related_to=related_to,
|
|
71
71
|
actor=current_user._get_current_object(),
|
|
72
|
-
organization=organization
|
|
72
|
+
organization=organization,
|
|
73
|
+
extras=extras)
|
udata/core/activity/tasks.py
CHANGED
|
@@ -9,22 +9,23 @@ log = logging.getLogger(__name__)
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
@new_activity.connect
|
|
12
|
-
def delay_activity(cls, related_to, actor, organization=None):
|
|
12
|
+
def delay_activity(cls, related_to, actor, organization=None, extras=None):
|
|
13
13
|
emit_activity.delay(
|
|
14
14
|
cls.__name__,
|
|
15
15
|
str(actor.id),
|
|
16
16
|
related_to_cls=related_to.__class__.__name__,
|
|
17
17
|
related_to_id=str(related_to.id),
|
|
18
18
|
organization_id=str(organization.id) if organization else None,
|
|
19
|
+
extras=extras
|
|
19
20
|
)
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
@task
|
|
23
24
|
def emit_activity(classname, actor_id, related_to_cls, related_to_id,
|
|
24
|
-
organization_id=None):
|
|
25
|
-
log.debug('Emit new activity: %s %s %s %s %s',
|
|
25
|
+
organization_id=None, extras=None):
|
|
26
|
+
log.debug('Emit new activity: %s %s %s %s %s %s',
|
|
26
27
|
classname, actor_id, related_to_cls,
|
|
27
|
-
related_to_id, organization_id)
|
|
28
|
+
related_to_id, organization_id, extras)
|
|
28
29
|
cls = db.resolve_model(classname)
|
|
29
30
|
actor = User.objects.get(pk=actor_id)
|
|
30
31
|
related_to = db.resolve_model(related_to_cls).objects.get(pk=related_to_id)
|
|
@@ -33,4 +34,4 @@ def emit_activity(classname, actor_id, related_to_cls, related_to_id,
|
|
|
33
34
|
else:
|
|
34
35
|
organization = None
|
|
35
36
|
cls.objects.create(actor=actor, related_to=related_to,
|
|
36
|
-
organization=organization)
|
|
37
|
+
organization=organization, extras=extras)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Migrates `Activity.kwargs` to `Activity.extras`.
|
|
3
|
+
"""
|
|
4
|
+
import logging
|
|
5
|
+
|
|
6
|
+
from mongoengine.connection import get_db
|
|
7
|
+
|
|
8
|
+
log = logging.getLogger(__name__)
|
|
9
|
+
|
|
10
|
+
def migrate(db):
|
|
11
|
+
log.info('Processing activity objects')
|
|
12
|
+
|
|
13
|
+
result = get_db().activity.update_many(filter={}, update={'$rename': {'kwargs': 'extras'}})
|
|
14
|
+
|
|
15
|
+
log.info(f'{result.modified_count} activity object(s) migrated')
|
|
16
|
+
log.info('Done')
|
udata/tests/test_activity.py
CHANGED
|
@@ -27,6 +27,18 @@ class ActivityTest(WebTestMixin, DBTestMixin, TestCase):
|
|
|
27
27
|
self.assertEqual(len(activities), 1)
|
|
28
28
|
self.assertIsInstance(activities[0], FakeActivity)
|
|
29
29
|
|
|
30
|
+
def test_create_and_retrieve_with_extras(self):
|
|
31
|
+
FakeActivity.objects.create(actor=self.user, related_to=self.fake, extras={'some_key': 'some_value',
|
|
32
|
+
'other_key': 'other_value'})
|
|
33
|
+
|
|
34
|
+
activities = Activity.objects(actor=self.user)
|
|
35
|
+
|
|
36
|
+
self.assertEqual(len(activities), 1)
|
|
37
|
+
self.assertEqual(activities[0].extras['some_key'], 'some_value')
|
|
38
|
+
self.assertEqual(activities[0].extras['other_key'], 'other_value')
|
|
39
|
+
self.assertIsInstance(activities[0], FakeActivity)
|
|
40
|
+
|
|
41
|
+
|
|
30
42
|
def test_create_and_retrieve_for_org(self):
|
|
31
43
|
org = OrganizationFactory()
|
|
32
44
|
FakeActivity.objects.create(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: udata
|
|
3
|
-
Version: 7.0.6.
|
|
3
|
+
Version: 7.0.6.dev28263
|
|
4
4
|
Summary: Open data portal
|
|
5
5
|
Home-page: https://github.com/opendatateam/udata
|
|
6
6
|
Author: Opendata Team
|
|
@@ -140,6 +140,8 @@ It is collectively taken care of by members of the
|
|
|
140
140
|
|
|
141
141
|
- Fix, do not fail on spatial coverage harvesting exception and allow literal spatial BBOX from Arcgis [2998](https://github.com/opendatateam/udata/pull/2998)
|
|
142
142
|
- Mock calls to example.com [#3000](https://github.com/opendatateam/udata/pull/3000)
|
|
143
|
+
- Fix duplicate logs in console commands [#2996](https://github.com/opendatateam/udata/pull/2996)
|
|
144
|
+
- Refactor `Activity.kwargs` into `Activity.extras` to facilitate its usage [#2999](https://github.com/opendatateam/udata/pull/2999)
|
|
143
145
|
|
|
144
146
|
## 7.0.5 (2024-03-20)
|
|
145
147
|
|
|
@@ -36,7 +36,7 @@ udata/auth/helpers.py,sha256=y_BTPYPVy40GPN-Mqmj1OSAzqxSlttSHGhJIAdnSBn8,267
|
|
|
36
36
|
udata/auth/mails.py,sha256=72LmU1-uV7hQAmkqlXMYYc5nCVEUI-Je4jPkcV9MdHA,1673
|
|
37
37
|
udata/auth/password_validation.py,sha256=KMr5T5HLeo-tYF-oVxJ-PAMPgkE0h2z0xcXZX2ymHXk,1770
|
|
38
38
|
udata/auth/views.py,sha256=wxk2GEBHHqgyUk81RdeZMBWPjDn69crmtb_blkhXsNs,6164
|
|
39
|
-
udata/commands/__init__.py,sha256=
|
|
39
|
+
udata/commands/__init__.py,sha256=mTRAsySo7lH4BlLs_IP0obyhU_hUMxLNB7N8Vh1HkMY,7756
|
|
40
40
|
udata/commands/cache.py,sha256=uVpb3WQdqg8NZRSiWEa7cYdcx3QyFF53UAI_f2pXtV8,341
|
|
41
41
|
udata/commands/db.py,sha256=1gQwffdopW2l6BMfj0MiJ7cKLN8zfi3WLFRaIrPxQn8,11131
|
|
42
42
|
udata/commands/dcat.py,sha256=lbID57nogPsQ1EHbZ_sysRNokNE2D8H8B33BhgIGSHw,3136
|
|
@@ -53,10 +53,10 @@ udata/commands/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
|
53
53
|
udata/commands/tests/fixtures.py,sha256=h78grSpZDgOwvmezyD3qBpiSnpxaQ9tDeQOr3sB8EiY,1581
|
|
54
54
|
udata/core/__init__.py,sha256=n7TBP0lkYJl-BLoc67V5fyaawrWmsrWG_mLIF49UFOY,385
|
|
55
55
|
udata/core/activity/__init__.py,sha256=4vB92owvzwn2VVxbFWGNcfESb6izDzvbj6lmLH4ssrU,299
|
|
56
|
-
udata/core/activity/api.py,sha256=
|
|
57
|
-
udata/core/activity/models.py,sha256=
|
|
56
|
+
udata/core/activity/api.py,sha256=ohDEbzhbsmJ6YHQh3Aa8wYctaDQGuwKdg0kjh3lC028,3276
|
|
57
|
+
udata/core/activity/models.py,sha256=oxv8U45WNbzyZy8hgm8OGSn1zcRobOkhvOYTKpBwmrs,2119
|
|
58
58
|
udata/core/activity/signals.py,sha256=nplrZFDDuGVXwLWpI_Lhe64mBRMRtwooJG1KcCH6Ses,191
|
|
59
|
-
udata/core/activity/tasks.py,sha256=
|
|
59
|
+
udata/core/activity/tasks.py,sha256=yKkDgBXYmVX-DS4P9hBgZcweEOU8mlihSj7pqQYOmkg,1242
|
|
60
60
|
udata/core/badges/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
61
|
udata/core/badges/api.py,sha256=BVHULesVK3godViXVOFSjGPCLYmHqLXXywsf0EaJpr8,993
|
|
62
62
|
udata/core/badges/commands.py,sha256=NMihQH6ABUlkYpR2lNFW4dkeaWOjpijW7voudww8zW4,1129
|
|
@@ -315,6 +315,7 @@ udata/migrations/2022-10-10-add-fs_uniquifier-to-user-model.py,sha256=ZKfrhPIeIr
|
|
|
315
315
|
udata/migrations/2022-10-10-migrate-harvest-extras.py,sha256=HyBy7f1epYuBry68lUYTe7fMWoiyuIQ6xVwzwljtGqI,2254
|
|
316
316
|
udata/migrations/2023-02-08-rename-internal-dates.py,sha256=AYewRwdVCfHsJ5APbhQWfihH-nerT3jOzQsSrXW9RQ0,1651
|
|
317
317
|
udata/migrations/2024-01-29-fix-reuse-and-dataset-with-private-None.py,sha256=173Zf67G-oJgLwXeQUpzoCzcpAOu1ifcLb4eUMJ9nfU,590
|
|
318
|
+
udata/migrations/2024-03-22-migrate-activity-kwargs-to-extras.py,sha256=n5-udd1IdaD-e3q5cZx9nC4uMUSyJyT1TkI6I4gFgh0,400
|
|
318
319
|
udata/migrations/__init__.py,sha256=3YP8ppVG5Jx_u6fWJ099X6m3JDYsbd_wetpu4arl6_U,10882
|
|
319
320
|
udata/models/__init__.py,sha256=1jVsYyZqtPKOuGgbhHmJd3rWJjAv5t7k51_j5C43m8c,5528
|
|
320
321
|
udata/models/badges_field.py,sha256=NnHA6OT40UysQzO3qnxiDNLR-SCj19KlqD1c-p1DP2Q,984
|
|
@@ -545,7 +546,7 @@ udata/tests/helpers.py,sha256=aaifyevJ1Z8CZ8htRrl8OCG5hGcaHfj0lL8iMEKds9w,6022
|
|
|
545
546
|
udata/tests/models.py,sha256=_V0smMb1Z6p3aZv6PorzNN-HiNt_B46Ox1fqXrTJEqk,238
|
|
546
547
|
udata/tests/plugin.py,sha256=hI9Z5SIxUT8UhqZMLcNPzBqdM8-nUgtCW6Pbw2bnNsQ,11045
|
|
547
548
|
udata/tests/schemas.json,sha256=ZRHijbvYaQBrKuTJzCY5ZeQXdIdaZkv3fo7VMbDjsNg,3483
|
|
548
|
-
udata/tests/test_activity.py,sha256=
|
|
549
|
+
udata/tests/test_activity.py,sha256=spWfhueuLze0kD-pAnegiL3_Kv5io155jQuFI4sjN7I,3258
|
|
549
550
|
udata/tests/test_discussions.py,sha256=zPvKOdcTNGXrvHFp9zqjhKE2fqgUkhb_1F98egXYCL0,31036
|
|
550
551
|
udata/tests/test_i18n.py,sha256=BU9E7OoIkJw5tv5JYGLjDGBDsti2HuQ_3OWDKnBxnaM,3191
|
|
551
552
|
udata/tests/test_linkchecker.py,sha256=KxV1-PuuuqogkHf3jP6JhRsc2QG2dFmFB-vSHOiHkuU,10374
|
|
@@ -659,9 +660,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=zCVMB-a4-mLM1jNyYMk58rgVRaVIwQ
|
|
|
659
660
|
udata/translations/pt/LC_MESSAGES/udata.po,sha256=avfWczvlLBKSohyB55-4TLmUGMU_Rze4XmAo4OTk2v0,43513
|
|
660
661
|
udata/translations/sr/LC_MESSAGES/udata.mo,sha256=ScuqdpaV4y1ZIpBAEfxeaKdzkyGZL0mJmKMoG6w0iRQ,28553
|
|
661
662
|
udata/translations/sr/LC_MESSAGES/udata.po,sha256=QpgEXh1eHjztPa7oNLXd_sds1DC95A-STTtZyTE4m-E,50093
|
|
662
|
-
udata-7.0.6.
|
|
663
|
-
udata-7.0.6.
|
|
664
|
-
udata-7.0.6.
|
|
665
|
-
udata-7.0.6.
|
|
666
|
-
udata-7.0.6.
|
|
667
|
-
udata-7.0.6.
|
|
663
|
+
udata-7.0.6.dev28263.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
|
|
664
|
+
udata-7.0.6.dev28263.dist-info/METADATA,sha256=2zJTXq_j2szvACqYhZsB6GFJNzIZf1KQXM-EuVgcvvQ,119888
|
|
665
|
+
udata-7.0.6.dev28263.dist-info/WHEEL,sha256=-G_t0oGuE7UD0DrSpVZnq1hHMBV9DD2XkS5v7XpmTnk,110
|
|
666
|
+
udata-7.0.6.dev28263.dist-info/entry_points.txt,sha256=ZqIUHhOth0MMQvMIeuhODbUCDwjR-Hvo7PaKrMwTKuQ,384
|
|
667
|
+
udata-7.0.6.dev28263.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
|
|
668
|
+
udata-7.0.6.dev28263.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|