udata 10.6.1.dev36082__py2.py3-none-any.whl → 10.6.1.dev36098__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of udata might be problematic. Click here for more details.

Files changed (100) hide show
  1. udata/api/fields.py +0 -17
  2. udata/auth/views.py +22 -24
  3. udata/core/activity/api.py +1 -1
  4. udata/core/dataservices/api.py +3 -3
  5. udata/core/dataservices/models.py +11 -11
  6. udata/core/dataservices/rdf.py +3 -18
  7. udata/core/dataset/api.py +4 -3
  8. udata/core/dataset/api_fields.py +14 -25
  9. udata/core/dataset/apiv2.py +8 -11
  10. udata/core/dataset/csv.py +2 -2
  11. udata/core/dataset/models.py +18 -20
  12. udata/core/dataset/rdf.py +5 -38
  13. udata/core/dataset/search.py +1 -1
  14. udata/core/discussions/api.py +3 -1
  15. udata/core/discussions/models.py +11 -15
  16. udata/core/linkable.py +16 -0
  17. udata/core/organization/api.py +1 -0
  18. udata/core/organization/api_fields.py +14 -26
  19. udata/core/organization/csv.py +1 -1
  20. udata/core/organization/models.py +13 -16
  21. udata/core/organization/rdf.py +1 -5
  22. udata/core/post/api.py +8 -8
  23. udata/core/post/models.py +9 -16
  24. udata/core/reports/models.py +2 -2
  25. udata/core/reuse/api.py +4 -3
  26. udata/core/reuse/api_fields.py +1 -7
  27. udata/core/reuse/csv.py +1 -1
  28. udata/core/reuse/models.py +15 -22
  29. udata/core/site/rdf.py +2 -3
  30. udata/core/spatial/models.py +2 -9
  31. udata/core/topic/api.py +4 -8
  32. udata/core/topic/apiv2.py +3 -8
  33. udata/core/topic/models.py +0 -5
  34. udata/core/user/api_fields.py +14 -14
  35. udata/core/user/models.py +10 -16
  36. udata/core/user/rdf.py +1 -3
  37. udata/features/territories/models.py +1 -17
  38. udata/rdf.py +1 -2
  39. udata/routing.py +3 -2
  40. udata/settings.py +2 -0
  41. udata/static/chunks/{10.471164b2a9fe15614797.js → 10.8ca60413647062717b1e.js} +3 -3
  42. udata/static/chunks/{10.471164b2a9fe15614797.js.map → 10.8ca60413647062717b1e.js.map} +1 -1
  43. udata/static/chunks/{11.83535504cd650ea08f65.js → 11.0f04e49a40a0a381bcce.js} +3 -3
  44. udata/static/chunks/{11.83535504cd650ea08f65.js.map → 11.0f04e49a40a0a381bcce.js.map} +1 -1
  45. udata/static/chunks/{13.d9c1735d14038b94c17e.js → 13.f29411b06be1883356a3.js} +2 -2
  46. udata/static/chunks/{13.d9c1735d14038b94c17e.js.map → 13.f29411b06be1883356a3.js.map} +1 -1
  47. udata/static/chunks/{17.81c57c0dedf812e43013.js → 17.3bd0340930d4a314ce9c.js} +2 -2
  48. udata/static/chunks/{17.81c57c0dedf812e43013.js.map → 17.3bd0340930d4a314ce9c.js.map} +1 -1
  49. udata/static/chunks/{19.df16abde17a42033a7f8.js → 19.0586efa786ebf09fb288.js} +3 -3
  50. udata/static/chunks/{19.df16abde17a42033a7f8.js.map → 19.0586efa786ebf09fb288.js.map} +1 -1
  51. udata/static/chunks/{8.462bb3029de008497675.js → 8.b966402f5d680d4bdf4a.js} +2 -2
  52. udata/static/chunks/{8.462bb3029de008497675.js.map → 8.b966402f5d680d4bdf4a.js.map} +1 -1
  53. udata/static/chunks/{9.07515e5187f475bce828.js → 9.033d7e190ca9e226a5d0.js} +3 -3
  54. udata/static/chunks/{9.07515e5187f475bce828.js.map → 9.033d7e190ca9e226a5d0.js.map} +1 -1
  55. udata/static/common.js +1 -1
  56. udata/static/common.js.map +1 -1
  57. udata/templates/api/oauth_error.html +1 -1
  58. udata/templates/macros/metadata.html +0 -1
  59. udata/templates/mail/account_inactivity.html +1 -1
  60. udata/templates/mail/account_inactivity.txt +1 -1
  61. udata/templates/mail/badge_added_association.html +3 -3
  62. udata/templates/mail/badge_added_association.txt +1 -1
  63. udata/templates/mail/badge_added_certified.html +3 -3
  64. udata/templates/mail/badge_added_certified.txt +1 -1
  65. udata/templates/mail/badge_added_company.html +3 -3
  66. udata/templates/mail/badge_added_company.txt +1 -1
  67. udata/templates/mail/badge_added_local_authority.html +3 -3
  68. udata/templates/mail/badge_added_local_authority.txt +1 -1
  69. udata/templates/mail/badge_added_public_service.html +3 -3
  70. udata/templates/mail/badge_added_public_service.txt +1 -1
  71. udata/templates/mail/discussion_closed.html +3 -3
  72. udata/templates/mail/discussion_closed.txt +1 -1
  73. udata/templates/mail/frequency_reminder.html +1 -1
  74. udata/templates/mail/frequency_reminder.txt +1 -1
  75. udata/templates/mail/membership_refused.html +1 -1
  76. udata/templates/mail/membership_request.html +3 -3
  77. udata/templates/mail/membership_request.txt +1 -1
  78. udata/templates/mail/new_discussion.html +3 -3
  79. udata/templates/mail/new_discussion.txt +1 -1
  80. udata/templates/mail/new_discussion_comment.html +3 -3
  81. udata/templates/mail/new_discussion_comment.txt +1 -1
  82. udata/templates/mail/new_member.html +2 -2
  83. udata/templates/mail/new_member.txt +1 -1
  84. udata/templates/mail/new_reuse.html +2 -12
  85. udata/templates/mail/new_reuse.txt +1 -3
  86. udata/templates/mail/user_mail_card.html +1 -1
  87. udata/tests/api/test_dataservices_api.py +2 -2
  88. udata/tests/api/test_datasets_api.py +2 -2
  89. udata/tests/api/test_reuses_api.py +2 -2
  90. udata/tests/api/test_topics_api.py +4 -4
  91. udata/tests/dataset/test_dataset_rdf.py +1 -9
  92. udata/tests/test_discussions.py +3 -3
  93. udata/tests/test_mail.py +8 -0
  94. udata/uris.py +28 -7
  95. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/METADATA +1 -1
  96. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/RECORD +100 -99
  97. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/LICENSE +0 -0
  98. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/WHEEL +0 -0
  99. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/entry_points.txt +0 -0
  100. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/top_level.txt +0 -0
udata/core/user/models.py CHANGED
@@ -7,7 +7,7 @@ from time import time
7
7
 
8
8
  from authlib.jose import JsonWebSignature
9
9
  from blinker import Signal
10
- from flask import current_app
10
+ from flask import current_app, url_for
11
11
  from flask_security import MongoEngineUserDatastore, RoleMixin, UserMixin
12
12
  from mongoengine.signals import post_save, pre_save
13
13
  from werkzeug.utils import cached_property
@@ -16,12 +16,12 @@ from udata import mail
16
16
  from udata.api_fields import field
17
17
  from udata.core import storages
18
18
  from udata.core.discussions.models import Discussion
19
+ from udata.core.linkable import Linkable
19
20
  from udata.core.storages import avatars, default_image_basename
20
21
  from udata.frontend.markdown import mdstrip
21
22
  from udata.i18n import lazy_gettext as _
22
- from udata.mail import get_mail_campaign_dict
23
23
  from udata.models import Follow, WithMetrics, db
24
- from udata.uris import endpoint_for
24
+ from udata.uris import cdata_url
25
25
 
26
26
  from .constants import AVATAR_SIZES
27
27
 
@@ -45,7 +45,7 @@ class UserSettings(db.EmbeddedDocument):
45
45
  prefered_language = db.StringField()
46
46
 
47
47
 
48
- class User(WithMetrics, UserMixin, db.Document):
48
+ class User(WithMetrics, UserMixin, Linkable, db.Document):
49
49
  slug = field(
50
50
  db.SlugField(max_length=255, required=True, populate_from="fullname"), auditable=False
51
51
  )
@@ -133,19 +133,13 @@ class User(WithMetrics, UserMixin, db.Document):
133
133
  def sysadmin(self):
134
134
  return self.has_role("admin")
135
135
 
136
- def url_for(self, *args, **kwargs):
137
- return endpoint_for("users.show", "api.user", user=self, *args, **kwargs)
136
+ def self_web_url(self, **kwargs):
137
+ return cdata_url(f"/users/{self._link_id(**kwargs)}/", **kwargs)
138
138
 
139
- display_url = property(url_for)
140
-
141
- @property
142
- def external_url(self):
143
- return self.url_for(_external=True)
144
-
145
- @property
146
- def external_url_with_campaign(self):
147
- extras = get_mail_campaign_dict()
148
- return self.url_for(_external=True, **extras)
139
+ def self_api_url(self, **kwargs):
140
+ return url_for(
141
+ "api.user", user=self._link_id(**kwargs), **self._self_api_url_kwargs(**kwargs)
142
+ )
149
143
 
150
144
  @property
151
145
  def visible(self):
udata/core/user/rdf.py CHANGED
@@ -6,7 +6,6 @@ from rdflib import BNode, Graph, Literal, URIRef
6
6
  from rdflib.namespace import FOAF, RDF, RDFS
7
7
 
8
8
  from udata.rdf import namespace_manager
9
- from udata.uris import endpoint_for
10
9
 
11
10
 
12
11
  def user_to_rdf(user, graph=None):
@@ -15,8 +14,7 @@ def user_to_rdf(user, graph=None):
15
14
  """
16
15
  graph = graph or Graph(namespace_manager=namespace_manager)
17
16
  if user.id:
18
- user_url = endpoint_for("users.show_redirect", "api.user", user=user.id, _external=True)
19
- id = URIRef(user_url)
17
+ id = URIRef(user.url_for(_useId=True))
20
18
  else:
21
19
  id = BNode()
22
20
  o = graph.resource(id)
@@ -1,6 +1,3 @@
1
- from flask import url_for
2
-
3
- from udata.mail import get_mail_campaign_dict
4
1
  from udata.models import License, Organization
5
2
 
6
3
  __all__ = ("TerritoryDataset", "ResourceBasedTerritoryDataset", "TERRITORY_DATASETS")
@@ -45,23 +42,10 @@ class ResourceBasedTerritoryDataset(TerritoryDataset):
45
42
  csv_column = ""
46
43
 
47
44
  def url_for(self, external=False):
48
- return url_for(
49
- "territories.territory_dataset_resource",
50
- territory=self.territory,
51
- dataset=self.dataset_id,
52
- resource_id=self.resource_id,
53
- territory_attr=self.territory_attr,
54
- csv_column=self.csv_column,
55
- _external=external,
56
- )
45
+ return None
57
46
 
58
47
  url = property(url_for)
59
48
 
60
49
  @property
61
50
  def external_url(self):
62
51
  return self.url_for(external=True)
63
-
64
- @property
65
- def external_url_with_campaign(self):
66
- extras = get_mail_campaign_dict()
67
- return self.url_for(_external=True, **extras)
udata/rdf.py CHANGED
@@ -29,7 +29,6 @@ from udata.frontend.markdown import parse_html
29
29
  from udata.models import Schema
30
30
  from udata.mongo.errors import FieldValidationError
31
31
  from udata.tags import slug as slugify_tag
32
- from udata.uris import endpoint_for
33
32
 
34
33
  log = logging.getLogger(__name__)
35
34
 
@@ -367,7 +366,7 @@ def contact_points_to_rdf(contacts, graph=None):
367
366
  for contact in contacts:
368
367
  if contact.id:
369
368
  id = URIRef(
370
- endpoint_for(
369
+ url_for(
371
370
  "api.contact_point",
372
371
  contact_point=contact.id,
373
372
  _external=True,
udata/routing.py CHANGED
@@ -12,7 +12,7 @@ from udata.core.dataservices.models import Dataservice
12
12
  from udata.core.spatial.models import GeoZone
13
13
  from udata.i18n import ISO_639_1_CODES
14
14
  from udata.mongo import db
15
- from udata.uris import endpoint_for
15
+ from udata.uris import cdata_url, homepage_url
16
16
 
17
17
 
18
18
  class LazyRedirect(object):
@@ -249,4 +249,5 @@ def init_app(app):
249
249
  app.url_map.converters["contact_point"] = ContactPointConverter
250
250
  app.url_map.converters["report"] = ReportConverter
251
251
 
252
- app.jinja_env.globals["endpoint_for"] = endpoint_for
252
+ app.jinja_env.globals["cdata_url"] = cdata_url
253
+ app.jinja_env.globals["homepage_url"] = homepage_url
udata/settings.py CHANGED
@@ -24,6 +24,8 @@ class Defaults(object):
24
24
  CONTACT_EMAIL = "contact@example.org"
25
25
  TERRITORIES_EMAIL = "territories@example.org"
26
26
 
27
+ CDATA_BASE_URL = None
28
+
27
29
  MONGODB_HOST = "mongodb://localhost:27017/udata"
28
30
  MONGODB_CONNECT = False # Lazy connexion for Fork-safe usage
29
31