udata 7.0.7.dev28426__py2.py3-none-any.whl → 7.0.7.dev28443__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/api/oauth2.py +1 -1
- udata/app.py +2 -1
- udata/commands/db.py +1 -1
- udata/core/activity/models.py +1 -1
- udata/core/badges/models.py +1 -1
- udata/core/badges/tests/test_model.py +1 -1
- udata/core/contact_point/models.py +1 -1
- udata/core/discussions/models.py +1 -1
- udata/core/followers/models.py +1 -1
- udata/core/jobs/models.py +1 -1
- udata/core/metrics/models.py +1 -1
- udata/core/post/models.py +1 -1
- udata/core/spam/models.py +1 -1
- udata/core/spam/tests/test_spam.py +1 -1
- udata/core/spatial/models.py +1 -1
- udata/core/spatial/tests/test_fields.py +1 -1
- udata/core/tags/models.py +1 -1
- udata/factories.py +2 -2
- udata/features/transfer/models.py +1 -1
- udata/frontend/csv.py +1 -1
- udata/linkchecker/models.py +1 -1
- udata/models/__init__.py +1 -118
- udata/mongo/__init__.py +42 -0
- udata/mongo/engine.py +73 -0
- udata/routing.py +1 -1
- udata/search/__init__.py +1 -1
- udata/tests/dataset/test_dataset_rdf.py +1 -1
- udata/tests/forms/test_basic_fields.py +1 -1
- udata/tests/forms/test_daterange_field.py +1 -1
- udata/tests/forms/test_dict_field.py +1 -1
- udata/tests/forms/test_extras_fields.py +1 -1
- udata/tests/forms/test_form_field.py +1 -1
- udata/tests/forms/test_image_field.py +1 -1
- udata/tests/forms/test_model_field.py +1 -1
- udata/tests/forms/test_model_list_field.py +1 -1
- udata/tests/forms/test_nested_model_list_field.py +1 -1
- udata/tests/forms/test_reference_field.py +1 -1
- udata/tests/forms/test_uuid_field.py +1 -1
- udata/tests/frontend/test_csv.py +1 -1
- udata/tests/plugin.py +1 -1
- udata/tests/search/__init__.py +1 -1
- udata/tests/test_model.py +2 -1
- udata/tests/test_owned.py +1 -1
- udata/tests/test_routing.py +2 -2
- {udata-7.0.7.dev28426.dist-info → udata-7.0.7.dev28443.dist-info}/METADATA +3 -2
- {udata-7.0.7.dev28426.dist-info → udata-7.0.7.dev28443.dist-info}/RECORD +60 -58
- /udata/{models → mongo}/badges_field.py +0 -0
- /udata/{models → mongo}/datetime_fields.py +0 -0
- /udata/{models → mongo}/document.py +0 -0
- /udata/{models → mongo}/extras_fields.py +0 -0
- /udata/{models → mongo}/owned.py +0 -0
- /udata/{models → mongo}/queryset.py +0 -0
- /udata/{models → mongo}/slug_fields.py +0 -0
- /udata/{models → mongo}/taglist_field.py +0 -0
- /udata/{models → mongo}/url_field.py +0 -0
- /udata/{models → mongo}/uuid_fields.py +0 -0
- {udata-7.0.7.dev28426.dist-info → udata-7.0.7.dev28443.dist-info}/LICENSE +0 -0
- {udata-7.0.7.dev28426.dist-info → udata-7.0.7.dev28443.dist-info}/WHEEL +0 -0
- {udata-7.0.7.dev28426.dist-info → udata-7.0.7.dev28443.dist-info}/entry_points.txt +0 -0
- {udata-7.0.7.dev28426.dist-info → udata-7.0.7.dev28443.dist-info}/top_level.txt +0 -0
udata/api/oauth2.py
CHANGED
|
@@ -35,7 +35,7 @@ from werkzeug.security import gen_salt
|
|
|
35
35
|
from udata.app import csrf
|
|
36
36
|
from udata.auth import current_user, login_required, login_user
|
|
37
37
|
from udata.i18n import I18nBlueprint, lazy_gettext as _
|
|
38
|
-
from udata.
|
|
38
|
+
from udata.mongo import db
|
|
39
39
|
from udata.core.user.models import User
|
|
40
40
|
from udata.core.storages import images, default_image_basename
|
|
41
41
|
|
udata/app.py
CHANGED
|
@@ -206,11 +206,12 @@ def standalone(app):
|
|
|
206
206
|
|
|
207
207
|
def register_extensions(app):
|
|
208
208
|
from udata import (
|
|
209
|
-
models, routing, tasks, mail, i18n, auth, search, sitemap,
|
|
209
|
+
models, mongo, routing, tasks, mail, i18n, auth, search, sitemap,
|
|
210
210
|
sentry, notifications
|
|
211
211
|
)
|
|
212
212
|
tasks.init_app(app)
|
|
213
213
|
i18n.init_app(app)
|
|
214
|
+
mongo.init_app(app)
|
|
214
215
|
models.init_app(app)
|
|
215
216
|
routing.init_app(app)
|
|
216
217
|
auth.init_app(app)
|
udata/commands/db.py
CHANGED
|
@@ -9,7 +9,7 @@ from udata import migrations, models as core_models
|
|
|
9
9
|
from udata.api import oauth2 as oauth2_models
|
|
10
10
|
from udata.commands import cli, green, yellow, cyan, red, magenta, white, echo
|
|
11
11
|
from udata.harvest import models as harvest_models
|
|
12
|
-
from udata.
|
|
12
|
+
from udata.mongo import db
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
# Date format used to for display
|
udata/core/activity/models.py
CHANGED
udata/core/badges/models.py
CHANGED
udata/core/discussions/models.py
CHANGED
udata/core/followers/models.py
CHANGED
udata/core/jobs/models.py
CHANGED
udata/core/metrics/models.py
CHANGED
udata/core/post/models.py
CHANGED
|
@@ -2,7 +2,7 @@ from flask import url_for
|
|
|
2
2
|
|
|
3
3
|
from udata.core.storages import images, default_image_basename
|
|
4
4
|
from udata.i18n import lazy_gettext as _
|
|
5
|
-
from udata.
|
|
5
|
+
from udata.mongo import db
|
|
6
6
|
from .constants import BODY_TYPES, IMAGE_SIZES
|
|
7
7
|
|
|
8
8
|
__all__ = ('Post', )
|
udata/core/spam/models.py
CHANGED
udata/core/spatial/models.py
CHANGED
|
@@ -5,7 +5,7 @@ from werkzeug.utils import cached_property
|
|
|
5
5
|
from udata.app import cache
|
|
6
6
|
from udata.uris import endpoint_for
|
|
7
7
|
from udata.i18n import _, get_locale, language
|
|
8
|
-
from udata.
|
|
8
|
+
from udata.mongo import db
|
|
9
9
|
|
|
10
10
|
from . import geoids
|
|
11
11
|
from .constants import ADMIN_LEVEL_MIN, ADMIN_LEVEL_MAX, BASE_GRANULARITIES
|
|
@@ -5,7 +5,7 @@ from datetime import timedelta
|
|
|
5
5
|
from werkzeug.datastructures import MultiDict
|
|
6
6
|
|
|
7
7
|
from udata.forms import Form
|
|
8
|
-
from udata.
|
|
8
|
+
from udata.mongo import db
|
|
9
9
|
from udata.tests import TestCase
|
|
10
10
|
from udata.tests.helpers import assert_json_equal
|
|
11
11
|
from udata.utils import faker
|
udata/core/tags/models.py
CHANGED
udata/factories.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import factory
|
|
2
2
|
|
|
3
|
-
from .models import
|
|
3
|
+
from .models import db
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class ModelFactory(factory.mongoengine.MongoEngineFactory):
|
|
@@ -14,7 +14,7 @@ class ModelFactory(factory.mongoengine.MongoEngineFactory):
|
|
|
14
14
|
|
|
15
15
|
class DateRangeFactory(ModelFactory):
|
|
16
16
|
class Meta:
|
|
17
|
-
model = DateRange
|
|
17
|
+
model = db.DateRange
|
|
18
18
|
|
|
19
19
|
start = factory.Faker('date_between', start_date='-10y', end_date='-5y')
|
|
20
20
|
end = factory.Faker('date_between', start_date='-5y', end_date='-2y')
|
udata/frontend/csv.py
CHANGED
udata/linkchecker/models.py
CHANGED
udata/models/__init__.py
CHANGED
|
@@ -1,81 +1,7 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
import warnings
|
|
3
|
-
|
|
4
|
-
from urllib.parse import urlparse
|
|
5
|
-
|
|
6
|
-
from bson import ObjectId, DBRef
|
|
7
|
-
from flask_mongoengine import MongoEngine, MongoEngineSessionInterface
|
|
8
|
-
from mongoengine.base import TopLevelDocumentMetaclass, get_document
|
|
9
1
|
from mongoengine.errors import ValidationError
|
|
10
|
-
from mongoengine.signals import pre_save, post_save
|
|
11
|
-
|
|
12
|
-
from flask_storage.mongo import FileField, ImageField
|
|
13
2
|
|
|
14
3
|
from udata import entrypoints
|
|
15
|
-
from udata.
|
|
16
|
-
|
|
17
|
-
from .badges_field import BadgesField
|
|
18
|
-
from .taglist_field import TagListField
|
|
19
|
-
from .datetime_fields import DateField, DateRange, Datetimed
|
|
20
|
-
from .extras_fields import ExtrasField, OrganizationExtrasField
|
|
21
|
-
from .slug_fields import SlugField
|
|
22
|
-
from .url_field import URLField
|
|
23
|
-
from .uuid_fields import AutoUUIDField
|
|
24
|
-
from .owned import Owned, OwnedQuerySet
|
|
25
|
-
from .queryset import UDataQuerySet
|
|
26
|
-
from .document import UDataDocument, DomainModel
|
|
27
|
-
|
|
28
|
-
log = logging.getLogger(__name__)
|
|
29
|
-
|
|
30
|
-
class UDataMongoEngine(MongoEngine):
|
|
31
|
-
'''Customized mongoengine with extra fields types and helpers'''
|
|
32
|
-
def __init__(self, app=None):
|
|
33
|
-
super(UDataMongoEngine, self).__init__(app)
|
|
34
|
-
self.BadgesField = BadgesField
|
|
35
|
-
self.TagListField = TagListField
|
|
36
|
-
self.DateField = DateField
|
|
37
|
-
self.Datetimed = Datetimed
|
|
38
|
-
self.ExtrasField = ExtrasField
|
|
39
|
-
self.OrganizationExtrasField = OrganizationExtrasField
|
|
40
|
-
self.SlugField = SlugField
|
|
41
|
-
self.AutoUUIDField = AutoUUIDField
|
|
42
|
-
self.Document = UDataDocument
|
|
43
|
-
self.DomainModel = DomainModel
|
|
44
|
-
self.DateRange = DateRange
|
|
45
|
-
self.BaseQuerySet = UDataQuerySet
|
|
46
|
-
self.BaseDocumentMetaclass = TopLevelDocumentMetaclass
|
|
47
|
-
self.FileField = FileField
|
|
48
|
-
self.ImageField = ImageField
|
|
49
|
-
self.URLField = URLField
|
|
50
|
-
self.ValidationError = ValidationError
|
|
51
|
-
self.ObjectId = ObjectId
|
|
52
|
-
self.DBRef = DBRef
|
|
53
|
-
self.Owned = Owned
|
|
54
|
-
self.OwnedQuerySet = OwnedQuerySet
|
|
55
|
-
self.post_save = post_save
|
|
56
|
-
self.pre_save = pre_save
|
|
57
|
-
|
|
58
|
-
def resolve_model(self, model):
|
|
59
|
-
'''
|
|
60
|
-
Resolve a model given a name or dict with `class` entry.
|
|
61
|
-
|
|
62
|
-
:raises ValueError: model specification is wrong or does not exists
|
|
63
|
-
'''
|
|
64
|
-
if not model:
|
|
65
|
-
raise ValueError('Unsupported model specifications')
|
|
66
|
-
if isinstance(model, str):
|
|
67
|
-
classname = model
|
|
68
|
-
elif isinstance(model, dict) and 'class' in model:
|
|
69
|
-
classname = model['class']
|
|
70
|
-
else:
|
|
71
|
-
raise ValueError('Unsupported model specifications')
|
|
72
|
-
|
|
73
|
-
try:
|
|
74
|
-
return get_document(classname)
|
|
75
|
-
except self.NotRegistered:
|
|
76
|
-
message = 'Model "{0}" does not exist'.format(classname)
|
|
77
|
-
raise ValueError(message)
|
|
78
|
-
|
|
4
|
+
from udata.mongo import *
|
|
79
5
|
|
|
80
6
|
class FieldValidationError(ValidationError):
|
|
81
7
|
field: str
|
|
@@ -84,11 +10,6 @@ class FieldValidationError(ValidationError):
|
|
|
84
10
|
self.field = field
|
|
85
11
|
super().__init__(*args, **kwargs)
|
|
86
12
|
|
|
87
|
-
|
|
88
|
-
db = UDataMongoEngine()
|
|
89
|
-
session_interface = MongoEngineSessionInterface(db)
|
|
90
|
-
|
|
91
|
-
|
|
92
13
|
# Load all core models and mixins
|
|
93
14
|
from udata.core.spatial.models import * # noqa
|
|
94
15
|
from udata.core.metrics.models import * # noqa
|
|
@@ -117,43 +38,5 @@ from udata.harvest.models import HarvestSource as Harvest # noqa
|
|
|
117
38
|
import udata.linkchecker.models # noqa
|
|
118
39
|
|
|
119
40
|
|
|
120
|
-
MONGODB_DEPRECATED_SETTINGS = 'MONGODB_PORT', 'MONGODB_DB'
|
|
121
|
-
MONGODB_DEPRECATED_MSG = '{0} is deprecated, use the MONGODB_HOST url syntax'
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
def validate_config(config):
|
|
126
|
-
for setting in MONGODB_DEPRECATED_SETTINGS:
|
|
127
|
-
if setting in config:
|
|
128
|
-
msg = MONGODB_DEPRECATED_MSG.format(setting)
|
|
129
|
-
log.warning(msg)
|
|
130
|
-
warnings.warn(msg, category=DeprecationWarning, stacklevel=2)
|
|
131
|
-
url = config['MONGODB_HOST']
|
|
132
|
-
parsed_url = urlparse(url)
|
|
133
|
-
if not all((parsed_url.scheme, parsed_url.netloc)):
|
|
134
|
-
raise ConfigError('{0} is not a valid MongoDB URL'.format(url))
|
|
135
|
-
if len(parsed_url.path) <= 1:
|
|
136
|
-
raise ConfigError('{0} is missing the database path'.format(url))
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
def build_test_config(config):
|
|
140
|
-
if 'MONGODB_HOST_TEST' in config:
|
|
141
|
-
config['MONGODB_HOST'] = config['MONGODB_HOST_TEST']
|
|
142
|
-
else:
|
|
143
|
-
# use `{database_name}-test` database for testing
|
|
144
|
-
parsed_url = urlparse(config['MONGODB_HOST'])
|
|
145
|
-
parsed_url = parsed_url._replace(path='%s-test' % parsed_url.path)
|
|
146
|
-
config['MONGODB_HOST'] = parsed_url.geturl()
|
|
147
|
-
validate_config(config)
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
# Avoid nose misdetecting this function as a test
|
|
151
|
-
build_test_config.__test__ = False
|
|
152
|
-
|
|
153
|
-
|
|
154
41
|
def init_app(app):
|
|
155
|
-
validate_config(app.config)
|
|
156
|
-
if app.config['TESTING']:
|
|
157
|
-
build_test_config(app.config)
|
|
158
|
-
db.init_app(app)
|
|
159
42
|
entrypoints.get_enabled('udata.models', app)
|
udata/mongo/__init__.py
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
import warnings
|
|
3
|
+
from urllib.parse import urlparse
|
|
4
|
+
|
|
5
|
+
from udata.errors import ConfigError
|
|
6
|
+
|
|
7
|
+
from .engine import db
|
|
8
|
+
|
|
9
|
+
log = logging.getLogger(__name__)
|
|
10
|
+
|
|
11
|
+
MONGODB_DEPRECATED_SETTINGS = 'MONGODB_PORT', 'MONGODB_DB'
|
|
12
|
+
MONGODB_DEPRECATED_MSG = '{0} is deprecated, use the MONGODB_HOST url syntax'
|
|
13
|
+
|
|
14
|
+
def validate_config(config):
|
|
15
|
+
for setting in MONGODB_DEPRECATED_SETTINGS:
|
|
16
|
+
if setting in config:
|
|
17
|
+
msg = MONGODB_DEPRECATED_MSG.format(setting)
|
|
18
|
+
log.warning(msg)
|
|
19
|
+
warnings.warn(msg, category=DeprecationWarning, stacklevel=2)
|
|
20
|
+
url = config['MONGODB_HOST']
|
|
21
|
+
parsed_url = urlparse(url)
|
|
22
|
+
if not all((parsed_url.scheme, parsed_url.netloc)):
|
|
23
|
+
raise ConfigError('{0} is not a valid MongoDB URL'.format(url))
|
|
24
|
+
if len(parsed_url.path) <= 1:
|
|
25
|
+
raise ConfigError('{0} is missing the database path'.format(url))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def build_test_config(config):
|
|
29
|
+
if 'MONGODB_HOST_TEST' in config:
|
|
30
|
+
config['MONGODB_HOST'] = config['MONGODB_HOST_TEST']
|
|
31
|
+
else:
|
|
32
|
+
# use `{database_name}-test` database for testing
|
|
33
|
+
parsed_url = urlparse(config['MONGODB_HOST'])
|
|
34
|
+
parsed_url = parsed_url._replace(path='%s-test' % parsed_url.path)
|
|
35
|
+
config['MONGODB_HOST'] = parsed_url.geturl()
|
|
36
|
+
validate_config(config)
|
|
37
|
+
|
|
38
|
+
def init_app(app):
|
|
39
|
+
validate_config(app.config)
|
|
40
|
+
if app.config['TESTING']:
|
|
41
|
+
build_test_config(app.config)
|
|
42
|
+
db.init_app(app)
|
udata/mongo/engine.py
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
from bson import ObjectId, DBRef
|
|
2
|
+
from flask_mongoengine import MongoEngine, MongoEngineSessionInterface
|
|
3
|
+
from mongoengine.base import TopLevelDocumentMetaclass, get_document
|
|
4
|
+
from mongoengine.errors import ValidationError
|
|
5
|
+
from mongoengine.signals import pre_save, post_save
|
|
6
|
+
|
|
7
|
+
from flask_storage.mongo import FileField, ImageField
|
|
8
|
+
|
|
9
|
+
from .badges_field import BadgesField
|
|
10
|
+
from .taglist_field import TagListField
|
|
11
|
+
from .datetime_fields import DateField, DateRange, Datetimed
|
|
12
|
+
from .extras_fields import ExtrasField, OrganizationExtrasField
|
|
13
|
+
from .slug_fields import SlugField
|
|
14
|
+
from .url_field import URLField
|
|
15
|
+
from .uuid_fields import AutoUUIDField
|
|
16
|
+
from .owned import Owned, OwnedQuerySet
|
|
17
|
+
from .queryset import UDataQuerySet
|
|
18
|
+
from .document import UDataDocument, DomainModel
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class UDataMongoEngine(MongoEngine):
|
|
22
|
+
'''Customized mongoengine with extra fields types and helpers'''
|
|
23
|
+
def __init__(self, app=None):
|
|
24
|
+
super(UDataMongoEngine, self).__init__(app)
|
|
25
|
+
self.BadgesField = BadgesField
|
|
26
|
+
self.TagListField = TagListField
|
|
27
|
+
self.DateField = DateField
|
|
28
|
+
self.Datetimed = Datetimed
|
|
29
|
+
self.ExtrasField = ExtrasField
|
|
30
|
+
self.OrganizationExtrasField = OrganizationExtrasField
|
|
31
|
+
self.SlugField = SlugField
|
|
32
|
+
self.AutoUUIDField = AutoUUIDField
|
|
33
|
+
self.Document = UDataDocument
|
|
34
|
+
self.DomainModel = DomainModel
|
|
35
|
+
self.DateRange = DateRange
|
|
36
|
+
self.BaseQuerySet = UDataQuerySet
|
|
37
|
+
self.BaseDocumentMetaclass = TopLevelDocumentMetaclass
|
|
38
|
+
self.FileField = FileField
|
|
39
|
+
self.ImageField = ImageField
|
|
40
|
+
self.URLField = URLField
|
|
41
|
+
self.ValidationError = ValidationError
|
|
42
|
+
self.ObjectId = ObjectId
|
|
43
|
+
self.DBRef = DBRef
|
|
44
|
+
self.Owned = Owned
|
|
45
|
+
self.OwnedQuerySet = OwnedQuerySet
|
|
46
|
+
self.post_save = post_save
|
|
47
|
+
self.pre_save = pre_save
|
|
48
|
+
|
|
49
|
+
def resolve_model(self, model):
|
|
50
|
+
'''
|
|
51
|
+
Resolve a model given a name or dict with `class` entry.
|
|
52
|
+
|
|
53
|
+
:raises ValueError: model specification is wrong or does not exists
|
|
54
|
+
'''
|
|
55
|
+
if not model:
|
|
56
|
+
raise ValueError('Unsupported model specifications')
|
|
57
|
+
if isinstance(model, str):
|
|
58
|
+
classname = model
|
|
59
|
+
elif isinstance(model, dict) and 'class' in model:
|
|
60
|
+
classname = model['class']
|
|
61
|
+
else:
|
|
62
|
+
raise ValueError('Unsupported model specifications')
|
|
63
|
+
|
|
64
|
+
try:
|
|
65
|
+
return get_document(classname)
|
|
66
|
+
except self.NotRegistered:
|
|
67
|
+
message = 'Model "{0}" does not exist'.format(classname)
|
|
68
|
+
raise ValueError(message)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
db = UDataMongoEngine()
|
|
73
|
+
session_interface = MongoEngineSessionInterface(db)
|
udata/routing.py
CHANGED
|
@@ -8,7 +8,7 @@ from werkzeug.routing import BaseConverter, PathConverter
|
|
|
8
8
|
from werkzeug.urls import url_quote
|
|
9
9
|
|
|
10
10
|
from udata import models
|
|
11
|
-
from udata.
|
|
11
|
+
from udata.mongo import db
|
|
12
12
|
from udata.core.spatial.models import GeoZone
|
|
13
13
|
from udata.i18n import ISO_639_1_CODES
|
|
14
14
|
|
udata/search/__init__.py
CHANGED
|
@@ -10,7 +10,7 @@ from rdflib import Graph, URIRef, Literal, BNode
|
|
|
10
10
|
from rdflib.namespace import FOAF, RDF
|
|
11
11
|
from rdflib.resource import Resource as RdfResource
|
|
12
12
|
|
|
13
|
-
from udata.
|
|
13
|
+
from udata.mongo import db
|
|
14
14
|
from udata.core.dataset.models import Dataset, Resource, License, Checksum, HarvestDatasetMetadata
|
|
15
15
|
from udata.core.dataset.factories import (
|
|
16
16
|
DatasetFactory, ResourceFactory, LicenseFactory
|
udata/tests/frontend/test_csv.py
CHANGED
udata/tests/plugin.py
CHANGED
|
@@ -12,7 +12,7 @@ from werkzeug.urls import url_encode
|
|
|
12
12
|
from udata import settings
|
|
13
13
|
from udata.app import create_app
|
|
14
14
|
from udata.core.user.factories import UserFactory
|
|
15
|
-
from udata.
|
|
15
|
+
from udata.mongo import db
|
|
16
16
|
|
|
17
17
|
from .helpers import assert200, assert_command_ok
|
|
18
18
|
|
udata/tests/search/__init__.py
CHANGED
udata/tests/test_model.py
CHANGED
|
@@ -7,7 +7,8 @@ from mongoengine.errors import ValidationError
|
|
|
7
7
|
from mongoengine.fields import BaseField
|
|
8
8
|
|
|
9
9
|
from udata.settings import Defaults
|
|
10
|
-
from udata.models import
|
|
10
|
+
from udata.models import Dataset
|
|
11
|
+
from udata.mongo import db, validate_config, build_test_config
|
|
11
12
|
from udata.errors import ConfigError
|
|
12
13
|
from udata.tests.helpers import assert_json_equal, assert_equal_dates
|
|
13
14
|
|
udata/tests/test_owned.py
CHANGED
udata/tests/test_routing.py
CHANGED
|
@@ -8,8 +8,8 @@ from flask import url_for
|
|
|
8
8
|
from udata import routing
|
|
9
9
|
from udata.core.spatial.models import GeoZone
|
|
10
10
|
from udata.core.spatial.factories import GeoZoneFactory
|
|
11
|
-
from udata.
|
|
12
|
-
from udata.
|
|
11
|
+
from udata.mongo import db
|
|
12
|
+
from udata.mongo.slug_fields import SlugFollow
|
|
13
13
|
from udata.tests.helpers import assert200, assert404, assert_redirects
|
|
14
14
|
|
|
15
15
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: udata
|
|
3
|
-
Version: 7.0.7.
|
|
3
|
+
Version: 7.0.7.dev28443
|
|
4
4
|
Summary: Open data portal
|
|
5
5
|
Home-page: https://github.com/opendatateam/udata
|
|
6
6
|
Author: Opendata Team
|
|
@@ -140,6 +140,7 @@ It is collectively taken care of by members of the
|
|
|
140
140
|
|
|
141
141
|
- Topic: add filters in API [#3007](https://github.com/opendatateam/udata/pull/3007)
|
|
142
142
|
- Move constants outside `models.py` files to `constants.py` [#3001](https://github.com/opendatateam/udata/pull/3001)
|
|
143
|
+
- Move `db` and Mongo fields classes outside `udata.models` [#3005](https://github.com/opendatateam/udata/pull/3005)
|
|
143
144
|
|
|
144
145
|
## 7.0.6 (2024-03-29)
|
|
145
146
|
|
|
@@ -998,7 +999,6 @@ Search refactor [#2680](https://github.com/opendatateam/udata/pull/2680)
|
|
|
998
999
|
|
|
999
1000
|
- Harvest sources are now filterable through the harvest source create/edit admin form [#1812](https://github.com/opendatateam/udata/pull/1812)
|
|
1000
1001
|
- Harvest sources can now enable or disable some optional backend features [#1875](https://github.com/opendatateam/udata/pull/1875)
|
|
1001
|
-
- Static assets are now compatible with long-term caching (ie. their hash is present in the filename) [#1826](https://github.com/opendatateam/udata/pull/1826)
|
|
1002
1002
|
- Post UIs have been reworked: publication date, publish/unpublish action, save and continue editing, dynamic sidebar, alignments fixes... [#1857](https://github.com/opendatateam/udata/pull/1857)
|
|
1003
1003
|
|
|
1004
1004
|
### Minor changes
|
|
@@ -1014,6 +1014,7 @@ Search refactor [#2680](https://github.com/opendatateam/udata/pull/2680)
|
|
|
1014
1014
|
|
|
1015
1015
|
### Breaking changes
|
|
1016
1016
|
|
|
1017
|
+
- Static assets are now compatible with long-term caching (ie. their hash is present in the filename). :warning: On your development environment you need to run `inv assets-build` to generate an initial `manifest.json`, both in `udata` and in your theme extension if it uses manifest. See [#1826](https://github.com/opendatateam/udata/pull/1826) for full details.
|
|
1017
1018
|
- Theme are now responsible for adding their CSS markup on template (no more assumptions on `theme.css` and `admin.css`). Most of the time, overriding `raw.html` and `admin.html` should be sufficient
|
|
1018
1019
|
- The discussions API `posted_by` attribute is now an embedded user instead of an user ID to avoid extra API calls [#1839](https://github.com/opendatateam/udata/pull/1839)
|
|
1019
1020
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
tasks/__init__.py,sha256=CnVhb_TV-6nMhxVR6itnBmvuU2OSCs02AfNB4irVBTE,8132
|
|
2
2
|
tasks/helpers.py,sha256=k_HiuiEJNgQLvWdeHqczPOAcrYpFjEepBeKo7EQzY8M,994
|
|
3
3
|
udata/__init__.py,sha256=V_wOfdL3uuCrM0YJcmiJ4f5IVvQWBmB_GxJ5P8RHyBI,101
|
|
4
|
-
udata/app.py,sha256
|
|
4
|
+
udata/app.py,sha256=-S_MfxoGU8j7uzjQeqpeUte57VvEJ4NZNxsM2QfN1JE,7173
|
|
5
5
|
udata/assets.py,sha256=aMa-MnAEXVSTavptSn2V8sUE6jL_N0MrYCQ6_QpsuHs,645
|
|
6
6
|
udata/entrypoints.py,sha256=8bZUvZ8ICO3kZxa8xDUaen6YS_OAGNKHFvaD7d8BOk0,2687
|
|
7
7
|
udata/errors.py,sha256=chc1880TPGteIL-Rfb9hdeAyZI4vdWZQU3JQ_5VF5t0,116
|
|
8
|
-
udata/factories.py,sha256=
|
|
8
|
+
udata/factories.py,sha256=6en2qdHHoR6rEvNEUeH_0-T-vR7x7GUBGgNEm9vuylE,492
|
|
9
9
|
udata/i18n.py,sha256=E-JoY57Cv4vgPvChkWjpwZAbuYVI8e6BO6raeu_3_Pw,8352
|
|
10
10
|
udata/mail.py,sha256=dAMcbEtk5e54alpQezvF5adDrRPgdaT36QEdHD_5v50,2145
|
|
11
11
|
udata/rdf.py,sha256=eu_tKOGQ9Bs8yyf5QGQNE9yyXGiUxevDYAIIun_KqqI,9919
|
|
12
|
-
udata/routing.py,sha256=
|
|
12
|
+
udata/routing.py,sha256=lU1XNL-YQgx1GN3pjKue1tIjHzjO3QdTiF9aaLNLitg,7044
|
|
13
13
|
udata/sentry.py,sha256=KiZz0PpmYpZMvykH9UAbHpF4xBY0Q-8DeiEbXEHDUdw,2683
|
|
14
14
|
udata/settings.py,sha256=nnFcD1DBt3IbO2a10kE5ux9Q2KyeyOvXYLSOLWlF7nw,17142
|
|
15
15
|
udata/sitemap.py,sha256=pjtR2lU3gRHvK8l1Lw8B9wrqMMTYC5adUfFh0pUp_Q4,977
|
|
@@ -27,7 +27,7 @@ udata/api/__init__.py,sha256=Vj3a3gZZt4ySjV7k6iau64pFvLkxZfcmJWkLyH-iH78,10851
|
|
|
27
27
|
udata/api/commands.py,sha256=oK2p1VdUvULDdYuvYYpYvY_bdkPJy-KfROfoX71oOuA,3277
|
|
28
28
|
udata/api/errors.py,sha256=Sy_f3WVrNTUPZjCOogIVgocDdUjnKz149KDi4mMA_Lg,240
|
|
29
29
|
udata/api/fields.py,sha256=l-Fa27-easR86qgof2bk130jq1N1pNUgGmQzok1UI3Q,3094
|
|
30
|
-
udata/api/oauth2.py,sha256=
|
|
30
|
+
udata/api/oauth2.py,sha256=mRX5BpPp5dVBKoigrybmulvqsB4E9AzYYMCR_ukAZtE,11717
|
|
31
31
|
udata/api/parsers.py,sha256=Fo4krCaFao0D1QNqKpjWiFVvKVLd9b_2mon6RbbOXls,1485
|
|
32
32
|
udata/api/signals.py,sha256=9zcw4NDdpJwhgsS5UyLtnls1w_RfqghYFULza6d4-cw,162
|
|
33
33
|
udata/auth/__init__.py,sha256=ziR6gzkE1V4__3ynjE-_IPWHzmapOsZIrnaDAjDijsM,1958
|
|
@@ -38,7 +38,7 @@ udata/auth/password_validation.py,sha256=KMr5T5HLeo-tYF-oVxJ-PAMPgkE0h2z0xcXZX2y
|
|
|
38
38
|
udata/auth/views.py,sha256=wxk2GEBHHqgyUk81RdeZMBWPjDn69crmtb_blkhXsNs,6164
|
|
39
39
|
udata/commands/__init__.py,sha256=mTRAsySo7lH4BlLs_IP0obyhU_hUMxLNB7N8Vh1HkMY,7756
|
|
40
40
|
udata/commands/cache.py,sha256=uVpb3WQdqg8NZRSiWEa7cYdcx3QyFF53UAI_f2pXtV8,341
|
|
41
|
-
udata/commands/db.py,sha256=
|
|
41
|
+
udata/commands/db.py,sha256=0gYBzmTOWbQaGVU3Rv4EWsd2GavvN1LIe3_HbfR79Uc,11130
|
|
42
42
|
udata/commands/dcat.py,sha256=F8GVCT_arz5R_xwIygxbiis6cUSPM89C79Wlu46fR6g,3354
|
|
43
43
|
udata/commands/fixtures.py,sha256=RrzRdUBJ2FbS-iDsEMPu5Nfp0WJXzU2rk3GB9t6JlRc,5852
|
|
44
44
|
udata/commands/images.py,sha256=bzVvLj9LZ_nkyTdPlPe4g5U26k53VTH5ADCWmOfM8e4,2037
|
|
@@ -54,7 +54,7 @@ udata/commands/tests/fixtures.py,sha256=h78grSpZDgOwvmezyD3qBpiSnpxaQ9tDeQOr3sB8
|
|
|
54
54
|
udata/core/__init__.py,sha256=n7TBP0lkYJl-BLoc67V5fyaawrWmsrWG_mLIF49UFOY,385
|
|
55
55
|
udata/core/activity/__init__.py,sha256=4vB92owvzwn2VVxbFWGNcfESb6izDzvbj6lmLH4ssrU,299
|
|
56
56
|
udata/core/activity/api.py,sha256=ohDEbzhbsmJ6YHQh3Aa8wYctaDQGuwKdg0kjh3lC028,3276
|
|
57
|
-
udata/core/activity/models.py,sha256=
|
|
57
|
+
udata/core/activity/models.py,sha256=kzy9kcixX3DUo-2YpVjGXVHR4cOZMl7AsPiDBZ52EDs,2118
|
|
58
58
|
udata/core/activity/signals.py,sha256=nplrZFDDuGVXwLWpI_Lhe64mBRMRtwooJG1KcCH6Ses,191
|
|
59
59
|
udata/core/activity/tasks.py,sha256=yKkDgBXYmVX-DS4P9hBgZcweEOU8mlihSj7pqQYOmkg,1242
|
|
60
60
|
udata/core/badges/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -62,19 +62,19 @@ udata/core/badges/api.py,sha256=BVHULesVK3godViXVOFSjGPCLYmHqLXXywsf0EaJpr8,993
|
|
|
62
62
|
udata/core/badges/commands.py,sha256=NMihQH6ABUlkYpR2lNFW4dkeaWOjpijW7voudww8zW4,1129
|
|
63
63
|
udata/core/badges/factories.py,sha256=rDQC28fKLtYA6l69EqiyOQyN4C2jVj87EdKBEo4sYsw,297
|
|
64
64
|
udata/core/badges/forms.py,sha256=8z28_rln9duvJ7IvKx9IFO9DAMe3cU2bv0FQRdiMFEw,511
|
|
65
|
-
udata/core/badges/models.py,sha256=
|
|
65
|
+
udata/core/badges/models.py,sha256=cQBpLudR-cRxlbN68z_05UbX0BXRu97n1vMMdat4Ry4,3176
|
|
66
66
|
udata/core/badges/permissions.py,sha256=5jFKFG4OlVp0pL0xSa7AGO0Ttn0QMsy9xEY2jTfKVmE,552
|
|
67
67
|
udata/core/badges/signals.py,sha256=T12kgKO1lmIbdXlKnRmedYRnJzC2PZIMkrtcA1U2mNo,237
|
|
68
68
|
udata/core/badges/tasks.py,sha256=LA1Sd0B0uUa6OANqmx0t-kDNK99uGePwwtilsdj9Evw,431
|
|
69
69
|
udata/core/badges/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
70
|
udata/core/badges/tests/test_commands.py,sha256=BcfB0eo8ICCF5E0Z2ryu0pmp6istFZEt56mZkJMQTPo,1364
|
|
71
|
-
udata/core/badges/tests/test_model.py,sha256=
|
|
71
|
+
udata/core/badges/tests/test_model.py,sha256=Qkx2ymq_AqEp7l6JrOnoTHsc9CWbfEPBVhyLuKt3whI,4928
|
|
72
72
|
udata/core/contact_point/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
73
|
udata/core/contact_point/api.py,sha256=PyurW-Je4iRJlagyvDOkIhp_xINHqghNIiHjtqQTL0I,1918
|
|
74
74
|
udata/core/contact_point/api_fields.py,sha256=KQADF7Drnd1uT9ZWjLRKQPJh6GdGUXJkYf1LV_9ZFIE,939
|
|
75
75
|
udata/core/contact_point/factories.py,sha256=ATuV1seBCGKY3CzvPDG5nxfBBqHu-3YtER0_fiQJx6c,248
|
|
76
76
|
udata/core/contact_point/forms.py,sha256=ggLhSJ1IRn5MclrhydckjAxwr4fFZxgAD4huSSucSsA,598
|
|
77
|
-
udata/core/contact_point/models.py,sha256=
|
|
77
|
+
udata/core/contact_point/models.py,sha256=iwXsJgmsRiLWOaUbSqZe7Oyjcr6W6zhGwrmVzoY2PR0,281
|
|
78
78
|
udata/core/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
79
|
udata/core/dataset/actions.py,sha256=3pzBg_qOR-w7fwPpTOKUHXWC9lkjALbOn1UQFmmT-s0,1199
|
|
80
80
|
udata/core/dataset/activities.py,sha256=qQnHNL0hOB1IGtQl7JsnVOiUsWT0gm-pts9uDyR3bvU,1536
|
|
@@ -102,7 +102,7 @@ udata/core/discussions/constants.py,sha256=nbZgXESpg0TykIGPxW8xUtHtk7TwQoyOL0Ky4
|
|
|
102
102
|
udata/core/discussions/factories.py,sha256=NQd_tD0Izrm67uO5HuuClmluteACrRd9PHrb2IkQ0P0,350
|
|
103
103
|
udata/core/discussions/forms.py,sha256=daDc8vPDhaXjiEyniugiRC6pyv6OsflgIyO-KoAn6i8,828
|
|
104
104
|
udata/core/discussions/metrics.py,sha256=qtgyDhM1aPgh8bGU-h-962EKR3J44imC155JVi6jvJI,362
|
|
105
|
-
udata/core/discussions/models.py,sha256=
|
|
105
|
+
udata/core/discussions/models.py,sha256=9DQ9pYyYdc1VVilaY44TKL_OMJP9_FgYwuo0w9ZZw5s,3360
|
|
106
106
|
udata/core/discussions/notifications.py,sha256=1lsu8WyyOL4bdt0lx6IW5wTxmQ5gS_7FoncN53g3ToQ,927
|
|
107
107
|
udata/core/discussions/permissions.py,sha256=q3tXNuNmuXCvZhKyudROcwXF53l-IeDR3pfKSh_hIL0,636
|
|
108
108
|
udata/core/discussions/signals.py,sha256=zjuF-TiFwu9U_RcgZtHB2Z3W4oBx5hVZy6CCAl5Ekug,543
|
|
@@ -110,7 +110,7 @@ udata/core/discussions/tasks.py,sha256=T_Pi7xgbNH0ulQsxRETZvMIoWikh4QKuwA2jW8rLK
|
|
|
110
110
|
udata/core/followers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
111
111
|
udata/core/followers/api.py,sha256=9777c3RQUNOemQgL5SQI_U6ya4-Mwm8T2hXaXm_B_RM,2601
|
|
112
112
|
udata/core/followers/metrics.py,sha256=nKgoiM2Gu-XHrgEf9duW1My66zFSKbmw25BGqo5wWtY,190
|
|
113
|
-
udata/core/followers/models.py,sha256=
|
|
113
|
+
udata/core/followers/models.py,sha256=8n0o5nJBmGX41OOFKUWxiH6cE3PyV1QlvBfqn-AD2KM,1123
|
|
114
114
|
udata/core/followers/signals.py,sha256=m12PTe9wDVVVD7OkodrX7o_rfk6TALY7PEmd0_jvWPM,528
|
|
115
115
|
udata/core/followers/views.py,sha256=Znc8aGpP7y0_bmgbIJeVCTxQyDfeKZ1hSIWHi8gbwdw,406
|
|
116
116
|
udata/core/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -118,11 +118,11 @@ udata/core/jobs/actions.py,sha256=2-UCuSxAbN6DVArDI427qklkxlYIcr1Yprr8xXsaJUU,80
|
|
|
118
118
|
udata/core/jobs/api.py,sha256=z2NYBLisa-9XG8y0AIGB1oo10fUG6ZMhNxS--213fII,5776
|
|
119
119
|
udata/core/jobs/commands.py,sha256=kYoSluhbIG7MwnCSyO7ptD1V9LGwNjlabqlXSQ4hZq4,4413
|
|
120
120
|
udata/core/jobs/forms.py,sha256=CB_z8JSyvSSJX1XhohsQ1S3kdOhTMgzsFTofso7AD60,1495
|
|
121
|
-
udata/core/jobs/models.py,sha256=
|
|
121
|
+
udata/core/jobs/models.py,sha256=3vRfBp8e7KqJgKxTSSeMgfsMu07rAz1o_IfsYBFk9o4,1325
|
|
122
122
|
udata/core/metrics/__init__.py,sha256=Q3nZVl7no0E1ygz7zNJH-KCa-m9FV6wAH2_y6zimcek,397
|
|
123
123
|
udata/core/metrics/api.py,sha256=vHfH-4n2QR-HE6bXMeAlj1Ma3RR6DRPWDj1LAFukDAM,262
|
|
124
124
|
udata/core/metrics/commands.py,sha256=_365QvZ1Kt3qJPGlMg2CkBE4gwe7ZM5ye6_O43FFt28,4493
|
|
125
|
-
udata/core/metrics/models.py,sha256=
|
|
125
|
+
udata/core/metrics/models.py,sha256=v0xlLxl2Y9QdILW4DTZ1WzUy2a4XTNepdLNKmb8T8LY,287
|
|
126
126
|
udata/core/metrics/signals.py,sha256=Xs_k-9lWzsoZU5Joli-41FNgvIVvbAejkjSFB6DHxh0,176
|
|
127
127
|
udata/core/metrics/tasks.py,sha256=Z7La3-zPB5j6qJoPKr_MgjNZhqscZCmNLPa711ZBkdY,797
|
|
128
128
|
udata/core/organization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -148,7 +148,7 @@ udata/core/post/api.py,sha256=eH9dw8u7_Tx6FP19Dvv91nyRGHSWKPR1pTzSkVXIeA4,5369
|
|
|
148
148
|
udata/core/post/constants.py,sha256=ibocNUJ1s1mw88QCrKz8n1DSkOBnWuSqo7Y5-Yd75kg,196
|
|
149
149
|
udata/core/post/factories.py,sha256=0aXYbf11Rl0KJyntNE0LjPaUnpvr4YqvqdTPfvGlyvM,619
|
|
150
150
|
udata/core/post/forms.py,sha256=ff1efEcFkPRVMWA9YtvCAx0Msy69I7P34WgZsh_jK1E,968
|
|
151
|
-
udata/core/post/models.py,sha256=
|
|
151
|
+
udata/core/post/models.py,sha256=KYx3PiheMYk8z-LqkfJ80hewrYK7lDpGMa1uUP00Ats,1909
|
|
152
152
|
udata/core/post/permissions.py,sha256=uofU0TehhOGYyUoRXf3wuy816_D3xwMmaJbDvV336sw,83
|
|
153
153
|
udata/core/post/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
154
154
|
udata/core/post/tests/test_api.py,sha256=LSJQQDUtUVdpwZNpnJaX3yNQYyjkjTTyO7mHnR5DR_I,3948
|
|
@@ -177,10 +177,10 @@ udata/core/spam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
177
177
|
udata/core/spam/api.py,sha256=8tVRPorw56kxgN64kme5nLkUfh8Gai9QyqT8aNQn9Xo,1674
|
|
178
178
|
udata/core/spam/constants.py,sha256=M-wvYlcFnpUDortccIKFHWZ45vbNuMPWSvqKm2itn4w,143
|
|
179
179
|
udata/core/spam/fields.py,sha256=ppazY9bGnz7mujmDndbxG3pPG_1HDUJCbIufxyD1UNQ,310
|
|
180
|
-
udata/core/spam/models.py,sha256=
|
|
180
|
+
udata/core/spam/models.py,sha256=4ylTXJ0EbjvwlPUTCwTMDERe26fCqLjAstuvt2EwGN0,7968
|
|
181
181
|
udata/core/spam/signals.py,sha256=4VVLyC2I39LFAot4P56nHzY0xumjMBDz_N0Ff_kgBd0,159
|
|
182
182
|
udata/core/spam/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
183
|
-
udata/core/spam/tests/test_spam.py,sha256=
|
|
183
|
+
udata/core/spam/tests/test_spam.py,sha256=W1Ck_rsnURhFi0fy5xOO0CPpW9MuUFbr-NmPZdk5R4Q,676
|
|
184
184
|
udata/core/spatial/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
185
185
|
udata/core/spatial/api.py,sha256=tlApg3JpqbO6CwEwp1LzZ1hyPQreVEgF3H5yrcAPE74,5848
|
|
186
186
|
udata/core/spatial/api_fields.py,sha256=ymGK3FyE2KNlASOU5GiPgZGeBjjOqnOyCOcRCbuw3D8,2629
|
|
@@ -189,11 +189,11 @@ udata/core/spatial/constants.py,sha256=u_4OwAAVYqT0VX6nw_Hc4wIRUPcYww19EFJcnWuMZ
|
|
|
189
189
|
udata/core/spatial/factories.py,sha256=GxUU8nRtSoGPw2m3Q-al0PYps2oSnlqC-bM7Eeu14rk,3288
|
|
190
190
|
udata/core/spatial/forms.py,sha256=tXlYKge5Rc8L8pOjfUo1-9howgVJZDAh7q8xTIlbBww,3218
|
|
191
191
|
udata/core/spatial/geoids.py,sha256=UqCto4dtQYPXOxyG7sx_0npzM6yvId40ngw3eAlmioQ,1159
|
|
192
|
-
udata/core/spatial/models.py,sha256=
|
|
192
|
+
udata/core/spatial/models.py,sha256=8yvjj6SjQcBqPVfmBdRzQRHi9RZNTqdENYzkjlAeSN8,5021
|
|
193
193
|
udata/core/spatial/translations.py,sha256=7BjZAMPObm1fwM5U_wnrlpcG-1FtMoS6Z5E3h3Y3sog,533
|
|
194
194
|
udata/core/spatial/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
195
195
|
udata/core/spatial/tests/test_api.py,sha256=BySPgLpHvWs3vBIX2_7vJkuqfrFBIsTHtdg6PXOsE_U,10171
|
|
196
|
-
udata/core/spatial/tests/test_fields.py,sha256=
|
|
196
|
+
udata/core/spatial/tests/test_fields.py,sha256=23MBhrkGhYkQtWcRbj8TsPsUPT5QWhR-C9sohEKpQrU,9744
|
|
197
197
|
udata/core/spatial/tests/test_geoid.py,sha256=ovVphCxHb5a-iWl7eoLASRAFUY0CGfNEq-MuqHqTPgE,1533
|
|
198
198
|
udata/core/spatial/tests/test_models.py,sha256=SZx3NhngXWgVon5BKtP0pPPEdvxGTvHQlYFE-fewzTU,951
|
|
199
199
|
udata/core/storages/__init__.py,sha256=f_41HjVu_4j4JR5LASQd8En9VkqFEDzBgTD3cQqkSqs,1210
|
|
@@ -204,7 +204,7 @@ udata/core/storages/views.py,sha256=kADmUH8PPnmhWFVWlhlSrOkhjZ9JCP0RCj0Ohre6PVk,
|
|
|
204
204
|
udata/core/tags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
205
205
|
udata/core/tags/api.py,sha256=27aSFH1ZBZKLzeeM5GeNSMsW3-PEiOW3IEtTZyFlabw,867
|
|
206
206
|
udata/core/tags/csv.py,sha256=LnNLKvptaD9BnvjHbd8rjzVy7TDFIW_gWEO5svbh-LQ,294
|
|
207
|
-
udata/core/tags/models.py,sha256=
|
|
207
|
+
udata/core/tags/models.py,sha256=JjvsjQHCGT4szkiNjvMOsyV2hV-ZRSxfRKyhcFdzfaQ,529
|
|
208
208
|
udata/core/tags/tasks.py,sha256=BXBJF45t2DmbWsNgLYkuUC9vBGqJ_Dftye5SmHEOttk,1055
|
|
209
209
|
udata/core/tags/views.py,sha256=BoBktrbx0tqkIu3yYLj_XJjB7ZHu_tq5vfEBrh0MUwI,384
|
|
210
210
|
udata/core/topic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -247,7 +247,7 @@ udata/features/transfer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
|
247
247
|
udata/features/transfer/actions.py,sha256=E2LMndyhwzVrf8Z4bYUcOdXKKlUNZfWRZFelZdmaDDA,1776
|
|
248
248
|
udata/features/transfer/api.py,sha256=S2X9-pLPbR6aIicYSJopQ_GtB7PMfN2raT0BD32VInI,4798
|
|
249
249
|
udata/features/transfer/factories.py,sha256=E05PcdE0EclvUiiC98zl9TyVKRUOw2IOWU0U25PmztY,207
|
|
250
|
-
udata/features/transfer/models.py,sha256=
|
|
250
|
+
udata/features/transfer/models.py,sha256=oItut3YeNJB2Nx_XJ_UBilB0LQF5pZil2Tp6TsGpw5w,922
|
|
251
251
|
udata/features/transfer/notifications.py,sha256=oh_uP0XlEEeT7747A292WkjAjAyO4d0YK28oBICN24Y,1003
|
|
252
252
|
udata/features/transfer/permissions.py,sha256=-iEgQkIfLYDGarhDVp3TMas4ABl_Pc4KJTSP8pcewws,953
|
|
253
253
|
udata/forms/__init__.py,sha256=ZxakXdJMwsM_YFT96Z2X24J5YpbpnP_VZ_VEh15gK3w,820
|
|
@@ -255,7 +255,7 @@ udata/forms/fields.py,sha256=WTCAc4KVPS6EanpUPuan_reDM9gwx4K2wdvJBxu_pTY,29129
|
|
|
255
255
|
udata/forms/validators.py,sha256=EqCJloDOR3BonrR34N_ZaMGBXr0iuliDc82khc98e20,2816
|
|
256
256
|
udata/forms/widgets.py,sha256=P-D3uYfNH5OhAa-SqNoXROg_DuDlnpv_DaO_e4LcJ5I,1380
|
|
257
257
|
udata/frontend/__init__.py,sha256=Xc71TI6a8b_QR_wqEOc1tty2y1CwHVbV4tS04nElme0,3494
|
|
258
|
-
udata/frontend/csv.py,sha256=
|
|
258
|
+
udata/frontend/csv.py,sha256=SDV8GMhNpHyE9NYy9cfHulsFUzwclfc7roWAAm-PZ9M,8257
|
|
259
259
|
udata/frontend/markdown.py,sha256=41bOiU6AKng4U-5v3otBed3dyCu63NI9fnznUQThbIk,4377
|
|
260
260
|
udata/harvest/__init__.py,sha256=C4y5w4vGb_F9Opy62lzV3eHo4DkNyRgPCq-wsarPXiQ,28
|
|
261
261
|
udata/harvest/actions.py,sha256=6f9bkIITLHes0vGU-yioRGfFOghAS3nXThXEVKaHFpA,10082
|
|
@@ -305,7 +305,7 @@ udata/linkchecker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
|
|
|
305
305
|
udata/linkchecker/backends.py,sha256=Ga0QX7aDLTOmWnhah6_qlmecybCkQk1WaZ60Muf6yVk,1116
|
|
306
306
|
udata/linkchecker/checker.py,sha256=YU3CBAIy-Cnd03k0PCwoMxN0lgLx8mHZVeOsaoZV_cI,2899
|
|
307
307
|
udata/linkchecker/commands.py,sha256=sge1zYzbaheAtCV2HFEi0GKc8QLzjKQpd3hVkk8FdQY,469
|
|
308
|
-
udata/linkchecker/models.py,sha256
|
|
308
|
+
udata/linkchecker/models.py,sha256=gnTiSZ1VZLga3fH3PR-ayhBlFTvBta7n8lweSh4sUP4,423
|
|
309
309
|
udata/linkchecker/tasks.py,sha256=u4cvUXOVvnyIMdvA6nfd-1UpQPLpAujmZxAFyJzNwxI,1955
|
|
310
310
|
udata/migrations/2020-07-24-remove-s-from-scope-oauth.py,sha256=7jCWv_tycQFL3LUd-29FWm0PyIGTUvIXtbMBe_RWl-k,664
|
|
311
311
|
udata/migrations/2020-08-24-add-fs-filename.py,sha256=yHKU5l704gWmMYjlBO-ODQ7ahgaJCPfLULs8AS7Emnk,1818
|
|
@@ -329,20 +329,22 @@ udata/migrations/2023-02-08-rename-internal-dates.py,sha256=AYewRwdVCfHsJ5APbhQW
|
|
|
329
329
|
udata/migrations/2024-01-29-fix-reuse-and-dataset-with-private-None.py,sha256=173Zf67G-oJgLwXeQUpzoCzcpAOu1ifcLb4eUMJ9nfU,590
|
|
330
330
|
udata/migrations/2024-03-22-migrate-activity-kwargs-to-extras.py,sha256=n5-udd1IdaD-e3q5cZx9nC4uMUSyJyT1TkI6I4gFgh0,400
|
|
331
331
|
udata/migrations/__init__.py,sha256=3YP8ppVG5Jx_u6fWJ099X6m3JDYsbd_wetpu4arl6_U,10882
|
|
332
|
-
udata/models/__init__.py,sha256=
|
|
333
|
-
udata/
|
|
334
|
-
udata/
|
|
335
|
-
udata/
|
|
336
|
-
udata/
|
|
337
|
-
udata/
|
|
338
|
-
udata/
|
|
339
|
-
udata/
|
|
340
|
-
udata/
|
|
341
|
-
udata/
|
|
342
|
-
udata/
|
|
332
|
+
udata/models/__init__.py,sha256=ObDl28eHct3v0sBKoP58drXbIhys7q31w5pjvD2iTXk,1472
|
|
333
|
+
udata/mongo/__init__.py,sha256=_ubmmhJuo6_fpuoMPEAat9Pv-5K_8rDbUuXmhe62zvU,1419
|
|
334
|
+
udata/mongo/badges_field.py,sha256=NnHA6OT40UysQzO3qnxiDNLR-SCj19KlqD1c-p1DP2Q,984
|
|
335
|
+
udata/mongo/datetime_fields.py,sha256=f3Q4LYa9pKRdB2W2yZVFIuIqd7_ELim1djr6xjPhEZg,1932
|
|
336
|
+
udata/mongo/document.py,sha256=fqqzrj3Q85iYDJ3biwU-Dv_QJqS31IBf_TGqvppCSz4,1200
|
|
337
|
+
udata/mongo/engine.py,sha256=zfV5XLpRcK3ri6unRCshDe1k8lnZ_ETyNztPNVKEbJs,2662
|
|
338
|
+
udata/mongo/extras_fields.py,sha256=OQD-V2h2I9mrL7nP2YPx3QtsDt4TDZYxxjKEQNe5kug,3961
|
|
339
|
+
udata/mongo/owned.py,sha256=LToJQ6UsC65QPXYEbHbPi8U0AmH55tNDqpKIAWZqAz4,2707
|
|
340
|
+
udata/mongo/queryset.py,sha256=2EH9BikDbQXkUsL9c0SotZKYAwkWXUTlk1fi9aJlX8Q,3118
|
|
341
|
+
udata/mongo/slug_fields.py,sha256=WOHfj1I7kIRxtEBYR83IirqLLhVX2WwqZQ0pKMODEmQ,6423
|
|
342
|
+
udata/mongo/taglist_field.py,sha256=R7C2wpRdeDP_gyYs5r5JjTz7tNm4jrrT9h6dv_pdcfw,551
|
|
343
|
+
udata/mongo/url_field.py,sha256=a7FEaDpZKbox8OVfLl4dYno1DFmvxUvHmhzUK2ekSfM,1361
|
|
344
|
+
udata/mongo/uuid_fields.py,sha256=6OUr6yFtoFK5lUZPTjQPF5qSsiP7D79z3DNOffGPCo4,481
|
|
343
345
|
udata/notifications/__init__.py,sha256=cM-wpmzBESXhdac_SNjRIHcexJK8eknmB4MR8L7K3v0,51
|
|
344
346
|
udata/notifications/mattermost.py,sha256=WAmhG86u2ppQyQ8LPGpWyjPmnhrIrJm-kf_bD-8IjwM,782
|
|
345
|
-
udata/search/__init__.py,sha256=
|
|
347
|
+
udata/search/__init__.py,sha256=2P_r5aVSaKz34JUOJUqiuqBZ1K7MmDvoazMQ6xB13X4,3974
|
|
346
348
|
udata/search/adapter.py,sha256=ggtr-_BaO1M40CGKnkAgy2XFNPX57ONusoC4UqJa8bE,2264
|
|
347
349
|
udata/search/commands.py,sha256=UvxfSTmWj1Je72dE25TpmBhn6KPpDm-PlQlsfi0cc10,5577
|
|
348
350
|
udata/search/fields.py,sha256=_bT_AcIOmuJEhnnatScRsPYNWsK_ZWpl2yT8ZnK7-dc,1843
|
|
@@ -556,7 +558,7 @@ udata/tests/__init__.py,sha256=BezijRRI6dPPiEWWjLsJFLrhhfsTZgcctcxhVfp4j70,2332
|
|
|
556
558
|
udata/tests/es-fake-result.json,sha256=z0CX9Gs-NRj49dmtdFvw8ZKsAbMhDt97Na6JX3ucX34,3155
|
|
557
559
|
udata/tests/helpers.py,sha256=aaifyevJ1Z8CZ8htRrl8OCG5hGcaHfj0lL8iMEKds9w,6022
|
|
558
560
|
udata/tests/models.py,sha256=_V0smMb1Z6p3aZv6PorzNN-HiNt_B46Ox1fqXrTJEqk,238
|
|
559
|
-
udata/tests/plugin.py,sha256=
|
|
561
|
+
udata/tests/plugin.py,sha256=puoSIbE5vL6eum0YAeGhE2ARwxWstC6ua-rXJC9Z5fI,11044
|
|
560
562
|
udata/tests/schemas.json,sha256=ZRHijbvYaQBrKuTJzCY5ZeQXdIdaZkv3fo7VMbDjsNg,3483
|
|
561
563
|
udata/tests/test_activity.py,sha256=spWfhueuLze0kD-pAnegiL3_Kv5io155jQuFI4sjN7I,3258
|
|
562
564
|
udata/tests/test_discussions.py,sha256=zPvKOdcTNGXrvHFp9zqjhKE2fqgUkhb_1F98egXYCL0,31036
|
|
@@ -564,11 +566,11 @@ udata/tests/test_i18n.py,sha256=BU9E7OoIkJw5tv5JYGLjDGBDsti2HuQ_3OWDKnBxnaM,3191
|
|
|
564
566
|
udata/tests/test_linkchecker.py,sha256=KxV1-PuuuqogkHf3jP6JhRsc2QG2dFmFB-vSHOiHkuU,10374
|
|
565
567
|
udata/tests/test_mail.py,sha256=LK_fOBbFoqbwdaIEXO9XyGPzxY9nrT9FjyD_dlglUdQ,1643
|
|
566
568
|
udata/tests/test_migrations.py,sha256=IG2o13B3sgkfg3PAqrbOTkS2iqGubNxa_JD-LHL9zxc,15317
|
|
567
|
-
udata/tests/test_model.py,sha256=
|
|
569
|
+
udata/tests/test_model.py,sha256=DoJxj5E_jmWMWQXS44XsZ0Fza3ymSQC5yWnekjMXjGs,20287
|
|
568
570
|
udata/tests/test_notifications.py,sha256=El5i56LCn0PwJc1PYx7g8onUk2i47dfjlcdMohCXGAQ,2333
|
|
569
|
-
udata/tests/test_owned.py,sha256=
|
|
571
|
+
udata/tests/test_owned.py,sha256=JNkJswesmlx2qvrTBX6YNZx1wzxBxM2i8TIqrTYWH0A,5621
|
|
570
572
|
udata/tests/test_rdf.py,sha256=osRAX9U9v5Hm3Tar-FqKUe7wCuTx4jHI7sYJxJVIhaQ,2813
|
|
571
|
-
udata/tests/test_routing.py,sha256=
|
|
573
|
+
udata/tests/test_routing.py,sha256=zoPmmiEakFRK32ZHWKC6N1FOzwsS3x65-Iw4nhw2FYM,10039
|
|
572
574
|
udata/tests/test_storages.py,sha256=V1yaaa2z_cJuy5tIP9uBPeUZxYXqccpYZ_bMVOUQ0c0,9329
|
|
573
575
|
udata/tests/test_tags.py,sha256=zd-w9rZ_Iaj6Z2S1diCWzNrEtOSuBGakTHhD_pIUE1o,3754
|
|
574
576
|
udata/tests/test_topics.py,sha256=r7Y0BW0Z5obld9ASs2Ck9AhykgBtmMedZmL2Bfz_rDw,1323
|
|
@@ -605,7 +607,7 @@ udata/tests/dataset/test_dataset_actions.py,sha256=4_0F_TCSCfHpzqDt659c8hG4GpkWj
|
|
|
605
607
|
udata/tests/dataset/test_dataset_commands.py,sha256=TAgVdimIcBVmcSNKXKXbhmCGYRo8Keh_InBNiS6UlkM,802
|
|
606
608
|
udata/tests/dataset/test_dataset_events.py,sha256=zt6F4j_vOBfMxDW6vBVQ5PGwr0d4s6LGw0cGkt9BlvI,2835
|
|
607
609
|
udata/tests/dataset/test_dataset_model.py,sha256=Mgq_qFh7pY8QFDke9HWezXTO6dqjd8qoRI8i01Qan-o,29769
|
|
608
|
-
udata/tests/dataset/test_dataset_rdf.py,sha256=
|
|
610
|
+
udata/tests/dataset/test_dataset_rdf.py,sha256=2Wt4TQsJcH4w1CAFSW8H2O40Fh8hO--r3H9eSC89z7o,29388
|
|
609
611
|
udata/tests/dataset/test_dataset_tasks.py,sha256=BN5qcvq6753WcpPOZd7vL1iIEW36ZBZrb2Lszb4eWEM,2283
|
|
610
612
|
udata/tests/dataset/test_resource_preview.py,sha256=q1C9W9dO3nLWaR3-hpUOPYW17hCmQ3raty9Bl4FX3hg,3947
|
|
611
613
|
udata/tests/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -613,23 +615,23 @@ udata/tests/features/territories/__init__.py,sha256=tRlFbldRkomeqjYi_QdfDOfvuC12
|
|
|
613
615
|
udata/tests/features/territories/commands.py,sha256=LMestg7oCC52GSHmrpD4l10MRgquLnS_TsjPzy72enQ,240
|
|
614
616
|
udata/tests/features/territories/test_territories_api.py,sha256=OJ6MIcrc0Ttiw0a0jE9etKX1IN3SAP2kp4juQF0Yo6c,7888
|
|
615
617
|
udata/tests/forms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
616
|
-
udata/tests/forms/test_basic_fields.py,sha256=
|
|
618
|
+
udata/tests/forms/test_basic_fields.py,sha256=r76-GROpiHyrhYJH5Olr58A441hRbg93f35Dl7jxbpc,2096
|
|
617
619
|
udata/tests/forms/test_current_user_field.py,sha256=RiXw_Rj56qJHnafPyjcNGq8CIRsp395wxRkWax-fei0,6763
|
|
618
|
-
udata/tests/forms/test_daterange_field.py,sha256=
|
|
619
|
-
udata/tests/forms/test_dict_field.py,sha256=
|
|
620
|
-
udata/tests/forms/test_extras_fields.py,sha256=
|
|
621
|
-
udata/tests/forms/test_form_field.py,sha256=
|
|
622
|
-
udata/tests/forms/test_image_field.py,sha256=
|
|
623
|
-
udata/tests/forms/test_model_field.py,sha256=
|
|
624
|
-
udata/tests/forms/test_model_list_field.py,sha256=
|
|
625
|
-
udata/tests/forms/test_nested_model_list_field.py,sha256=
|
|
620
|
+
udata/tests/forms/test_daterange_field.py,sha256=HZklcuJCsb6diZ3-7bf2GxMVb2BsRSE8dstQaE1sXCI,3800
|
|
621
|
+
udata/tests/forms/test_dict_field.py,sha256=9G05rUOYSFteHz_fQcyKmzSIENAx48E2e4cw4AYG1D8,1644
|
|
622
|
+
udata/tests/forms/test_extras_fields.py,sha256=DbL4itUiUX-VxBt9gLY2XO4htjAJ5ULqf35xDJW1y1Y,4463
|
|
623
|
+
udata/tests/forms/test_form_field.py,sha256=wzGhYXMQNcUX2d-3ritEaOISyrfdtIZqoEhwfQNGKv4,3606
|
|
624
|
+
udata/tests/forms/test_image_field.py,sha256=tcDkunJYkGXxSDQVSu9BXhaWCeDEWpcMImsudthuVuA,3483
|
|
625
|
+
udata/tests/forms/test_model_field.py,sha256=bNJK8Z94CCZ1wMwMQKcEA3syoMQKmPbCx1oPt-iaPwg,9403
|
|
626
|
+
udata/tests/forms/test_model_list_field.py,sha256=m4NXlssAZhG-OJF1ljWqJsWmuby9hL6PbtJ3BQDWcrE,3570
|
|
627
|
+
udata/tests/forms/test_nested_model_list_field.py,sha256=ECOm864hdvo6et5aSclOUe16AUo0-pX3tVXp2BNnlFg,9662
|
|
626
628
|
udata/tests/forms/test_publish_as_field.py,sha256=OqLLRdK8XDvlCixahWbEWGaOxGfYeaZXi8LALJWaFt0,11817
|
|
627
|
-
udata/tests/forms/test_reference_field.py,sha256=
|
|
629
|
+
udata/tests/forms/test_reference_field.py,sha256=CHRxrgf1se286YZIxPP7QqO-29802Rk-yo9rXaZzJos,6524
|
|
628
630
|
udata/tests/forms/test_user_forms.py,sha256=3JJAUWdLn1-oij2AoD_PeJuJHDKbMQTKgBmkoPvBy84,944
|
|
629
|
-
udata/tests/forms/test_uuid_field.py,sha256
|
|
631
|
+
udata/tests/forms/test_uuid_field.py,sha256=-Amb-yzf_QVDs7iJgjlJkmE1Ng8p-XWo9o3ggT6cKhA,1832
|
|
630
632
|
udata/tests/frontend/__init__.py,sha256=nv8LXpGd2y4yi7kLEbhsJMEmtkUs8QMcriMCXQoxwtA,793
|
|
631
633
|
udata/tests/frontend/test_auth.py,sha256=5jPBmzdxEy_1NCuCmbK1D3ax656DQ6fGYwdixpGQ71c,995
|
|
632
|
-
udata/tests/frontend/test_csv.py,sha256=
|
|
634
|
+
udata/tests/frontend/test_csv.py,sha256=Sxub7sfItDsT7chUxEsIDj9sdK2eCJwuFPdx1-u9oVI,11943
|
|
633
635
|
udata/tests/frontend/test_hooks.py,sha256=ZTIHWjtqzBXNQK-5EH4zmqLeBBX0S617i4A_dnO3xIw,4077
|
|
634
636
|
udata/tests/frontend/test_markdown.py,sha256=KHh0rFfWHqzes0qvLPPFc7uV_IPSS7ymVsQeVpjpPA4,12689
|
|
635
637
|
udata/tests/organization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -641,7 +643,7 @@ udata/tests/organization/test_organization_tasks.py,sha256=GZMqwJa8gZj1EiQjm6z-O
|
|
|
641
643
|
udata/tests/reuse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
642
644
|
udata/tests/reuse/test_reuse_model.py,sha256=HWa4_8c3zI-7BMJ3dH_x9Yj7p2sSRCVyT1uyYD0_9Qo,3709
|
|
643
645
|
udata/tests/reuse/test_reuse_task.py,sha256=_aGLPhvFunsNv7_tV8UmLT0obxDegxurchiZ0N_trbs,1396
|
|
644
|
-
udata/tests/search/__init__.py,sha256=
|
|
646
|
+
udata/tests/search/__init__.py,sha256=chVakmBqfB3JXL10vlIZp50Rj-zEdnQLuTVqqGSPxs4,1494
|
|
645
647
|
udata/tests/search/test_adapter.py,sha256=RpQo3tjaV3G2tnLw1vxRWhSZzOqIb-RM0s4U0oN9fEI,7091
|
|
646
648
|
udata/tests/search/test_query.py,sha256=wtgC4rkaxe8vIaWOcANZ1yFFkEKTdNHj2yiTaYI-R-M,1406
|
|
647
649
|
udata/tests/search/test_results.py,sha256=yjeqxNKVbjMxxvUsZb7csfU3wsV_YNjBDnfYRw5QN-s,1998
|
|
@@ -672,9 +674,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=zCVMB-a4-mLM1jNyYMk58rgVRaVIwQ
|
|
|
672
674
|
udata/translations/pt/LC_MESSAGES/udata.po,sha256=avfWczvlLBKSohyB55-4TLmUGMU_Rze4XmAo4OTk2v0,43513
|
|
673
675
|
udata/translations/sr/LC_MESSAGES/udata.mo,sha256=ScuqdpaV4y1ZIpBAEfxeaKdzkyGZL0mJmKMoG6w0iRQ,28553
|
|
674
676
|
udata/translations/sr/LC_MESSAGES/udata.po,sha256=QpgEXh1eHjztPa7oNLXd_sds1DC95A-STTtZyTE4m-E,50093
|
|
675
|
-
udata-7.0.7.
|
|
676
|
-
udata-7.0.7.
|
|
677
|
-
udata-7.0.7.
|
|
678
|
-
udata-7.0.7.
|
|
679
|
-
udata-7.0.7.
|
|
680
|
-
udata-7.0.7.
|
|
677
|
+
udata-7.0.7.dev28443.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
|
|
678
|
+
udata-7.0.7.dev28443.dist-info/METADATA,sha256=kvdXpC9KqzqEeSOMKlS9FdtWxsD4ex641B2faeCD8O8,120674
|
|
679
|
+
udata-7.0.7.dev28443.dist-info/WHEEL,sha256=-G_t0oGuE7UD0DrSpVZnq1hHMBV9DD2XkS5v7XpmTnk,110
|
|
680
|
+
udata-7.0.7.dev28443.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
|
|
681
|
+
udata-7.0.7.dev28443.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
|
|
682
|
+
udata-7.0.7.dev28443.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/udata/{models → mongo}/owned.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|