oarepo-runtime 1.5.27__tar.gz → 1.5.29__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. {oarepo-runtime-1.5.27/oarepo_runtime.egg-info → oarepo-runtime-1.5.29}/PKG-INFO +1 -1
  2. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/cli/fixtures.py +26 -0
  3. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/fixtures.py +7 -2
  4. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/resources/localized_ui_json_serializer.py +10 -5
  5. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29/oarepo_runtime.egg-info}/PKG-INFO +1 -1
  6. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/setup.cfg +1 -1
  7. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/LICENSE +0 -0
  8. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/MANIFEST.in +0 -0
  9. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/README.md +0 -0
  10. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/__init__.py +0 -0
  11. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/cli/__init__.py +0 -0
  12. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/cli/assets.py +0 -0
  13. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/cli/base.py +0 -0
  14. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/cli/cf.py +0 -0
  15. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/cli/check.py +0 -0
  16. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/cli/configuration.py +0 -0
  17. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/cli/index.py +0 -0
  18. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/cli/validate.py +0 -0
  19. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/__init__.py +0 -0
  20. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/asynchronous.py +0 -0
  21. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/catalogue.py +0 -0
  22. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/datastreams.py +0 -0
  23. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/errors.py +0 -0
  24. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/ext.py +0 -0
  25. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/json.py +0 -0
  26. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/readers/__init__.py +0 -0
  27. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/readers/attachments.py +0 -0
  28. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/readers/excel.py +0 -0
  29. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/readers/json.py +0 -0
  30. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/readers/service.py +0 -0
  31. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/readers/yaml.py +0 -0
  32. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/semi_asynchronous.py +0 -0
  33. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/synchronous.py +0 -0
  34. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/transformers.py +0 -0
  35. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/types.py +0 -0
  36. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/utils.py +0 -0
  37. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/writers/__init__.py +0 -0
  38. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/writers/attachments_file.py +0 -0
  39. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/writers/attachments_service.py +0 -0
  40. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/writers/service.py +0 -0
  41. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/writers/utils.py +0 -0
  42. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/writers/validation_errors.py +0 -0
  43. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/datastreams/writers/yaml.py +0 -0
  44. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/ext.py +0 -0
  45. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/ext_config.py +0 -0
  46. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/i18n/__init__.py +0 -0
  47. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/info/__init__.py +0 -0
  48. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/info/views.py +0 -0
  49. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/profile.py +0 -0
  50. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/proxies.py +0 -0
  51. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/__init__.py +0 -0
  52. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/dumpers/__init__.py +0 -0
  53. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/dumpers/edtf_interval.py +0 -0
  54. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/dumpers/multilingual_dumper.py +0 -0
  55. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/entity_resolvers/__init__.py +0 -0
  56. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/entity_resolvers/proxies.py +0 -0
  57. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/owners/__init__.py +0 -0
  58. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/owners/registry.py +0 -0
  59. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/relations/__init__.py +0 -0
  60. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/relations/base.py +0 -0
  61. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/relations/internal.py +0 -0
  62. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/relations/lookup.py +0 -0
  63. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/relations/pid_relation.py +0 -0
  64. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/systemfields/__init__.py +0 -0
  65. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/systemfields/featured_file.py +0 -0
  66. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/systemfields/has_draftcheck.py +0 -0
  67. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/systemfields/icu.py +0 -0
  68. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/systemfields/mapping.py +0 -0
  69. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/systemfields/owner.py +0 -0
  70. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/systemfields/record_status.py +0 -0
  71. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/systemfields/selectors.py +0 -0
  72. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/records/systemfields/synthetic.py +0 -0
  73. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/resources/__init__.py +0 -0
  74. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/resources/file_resource.py +0 -0
  75. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/__init__.py +0 -0
  76. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/components.py +0 -0
  77. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/config/__init__.py +0 -0
  78. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/config/permissions_presets.py +0 -0
  79. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/config/service.py +0 -0
  80. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/custom_fields/__init__.py +0 -0
  81. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/custom_fields/mappings.py +0 -0
  82. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/expansions/__init__.py +0 -0
  83. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/expansions/expandable_fields.py +0 -0
  84. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/expansions/service.py +0 -0
  85. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/facets/__init__.py +0 -0
  86. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/facets/base.py +0 -0
  87. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/facets/date.py +0 -0
  88. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/facets/enum.py +0 -0
  89. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/facets/facet_groups_names.py +0 -0
  90. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/facets/max_facet.py +0 -0
  91. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/facets/nested_facet.py +0 -0
  92. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/facets/params.py +0 -0
  93. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/files/__init__.py +0 -0
  94. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/files/service.py +0 -0
  95. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/generators.py +0 -0
  96. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/relations/__init__.py +0 -0
  97. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/relations/components.py +0 -0
  98. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/relations/errors.py +0 -0
  99. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/relations/mapping.py +0 -0
  100. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/results.py +0 -0
  101. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/schema/__init__.py +0 -0
  102. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/schema/cf.py +0 -0
  103. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/schema/i18n.py +0 -0
  104. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/schema/i18n_ui.py +0 -0
  105. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/schema/i18n_validation.py +0 -0
  106. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/schema/marshmallow.py +0 -0
  107. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/schema/polymorphic.py +0 -0
  108. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/schema/ui.py +0 -0
  109. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/schema/validation.py +0 -0
  110. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/services/search.py +0 -0
  111. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
  112. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.po +0 -0
  113. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/translations/default_translations.py +0 -0
  114. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/translations/en/LC_MESSAGES/messages.mo +0 -0
  115. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/translations/en/LC_MESSAGES/messages.po +0 -0
  116. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/translations/jinjax_messages.jinja +0 -0
  117. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/translations/messages.pot +0 -0
  118. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/uow.py +0 -0
  119. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/utils/__init__.py +0 -0
  120. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/utils/functools.py +0 -0
  121. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime/utils/path.py +0 -0
  122. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime.egg-info/SOURCES.txt +0 -0
  123. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime.egg-info/dependency_links.txt +0 -0
  124. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime.egg-info/entry_points.txt +0 -0
  125. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime.egg-info/requires.txt +0 -0
  126. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/oarepo_runtime.egg-info/top_level.txt +0 -0
  127. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/pyproject.toml +0 -0
  128. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/setup.py +0 -0
  129. {oarepo-runtime-1.5.27 → oarepo-runtime-1.5.29}/tests/pkg_data/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oarepo-runtime
3
- Version: 1.5.27
3
+ Version: 1.5.29
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -2,6 +2,10 @@ import click
2
2
  import tqdm
3
3
  from flask import current_app
4
4
  from flask.cli import with_appcontext
5
+ from flask_login import login_user
6
+ from flask_principal import Identity, identity_changed, identity_loaded, UserNeed, RoleNeed
7
+ from invenio_access.permissions import system_identity, any_user, authenticated_user
8
+ from invenio_accounts.models import User
5
9
 
6
10
  from oarepo_runtime.cli import oarepo
7
11
  from oarepo_runtime.datastreams import SynchronousDataStream
@@ -35,6 +39,7 @@ def fixtures():
35
39
  "will be committed in a single transaction and indexed together",
36
40
  )
37
41
  @click.option("--batch-size", help="Alias for --bulk-size", type=int)
42
+ @click.option("--identity", help="Email of the identity that will be used to import the data")
38
43
  @with_appcontext
39
44
  def load(
40
45
  fixture_dir=None,
@@ -45,6 +50,7 @@ def load(
45
50
  bulk_size=100,
46
51
  on_background=False,
47
52
  batch_size=None,
53
+ identity=None
48
54
  ):
49
55
  """Loads fixtures"""
50
56
  if batch_size:
@@ -57,7 +63,26 @@ def load(
57
63
  if fixture_dir:
58
64
  system_fixtures = False
59
65
 
66
+ if not identity:
67
+ user = None
68
+ identity = system_identity
69
+ else:
70
+ # identity is user email
71
+ user = User.query.filter_by(email=identity).one()
72
+ identity = Identity(user.id)
73
+
74
+ # TODO: add provides. How to do it better? It seems that we can not use
75
+ # flask signals to add these, as they depend on request context that is
76
+ # not available here
77
+ identity.provides.add(any_user)
78
+ identity.provides.add(authenticated_user)
79
+ identity.provides.add(UserNeed(user.id))
80
+ for role in getattr(user, 'roles', []):
81
+ identity.provides.add(RoleNeed(role.name))
82
+ # TODO: community roles ...
83
+
60
84
  with current_app.wsgi_app.mounts["/api"].app_context():
85
+
61
86
  load_fixtures(
62
87
  fixture_dir,
63
88
  _make_list(include),
@@ -68,6 +93,7 @@ def load(
68
93
  datastreams_impl=(
69
94
  AsynchronousDataStream if on_background else SynchronousDataStream
70
95
  ),
96
+ identity=identity
71
97
  )
72
98
  if not on_background:
73
99
  _show_stats(callback, "Load fixtures")
@@ -6,6 +6,7 @@ import pkg_resources
6
6
  import yaml
7
7
  from celery import shared_task
8
8
  from flask import current_app
9
+ from invenio_access.permissions import system_identity
9
10
  from invenio_records_resources.proxies import current_service_registry
10
11
 
11
12
  from oarepo_runtime.datastreams import (
@@ -34,6 +35,7 @@ def load_fixtures(
34
35
  callback: FixturesCallback = None,
35
36
  batch_size=100,
36
37
  datastreams_impl=SynchronousDataStream,
38
+ identity=system_identity
37
39
  ):
38
40
  """
39
41
  Loads fixtures. If fixture dir is set, fixtures are loaded from that directory first.
@@ -62,6 +64,7 @@ def load_fixtures(
62
64
  callback,
63
65
  batch_size=batch_size,
64
66
  datastreams_impl=datastreams_impl,
67
+ identity=identity
65
68
  )
66
69
 
67
70
  if system_fixtures:
@@ -91,11 +94,13 @@ def load_fixtures(
91
94
  callback,
92
95
  batch_size=batch_size,
93
96
  datastreams_impl=datastreams_impl,
97
+ identity=identity
94
98
  )
95
99
 
96
100
 
97
101
  def _load_fixtures_from_catalogue(
98
- catalogue, fixtures, include, exclude, callback, batch_size, datastreams_impl
102
+ catalogue, fixtures, include, exclude, callback, batch_size, datastreams_impl,
103
+ identity=system_identity
99
104
  ):
100
105
  for catalogue_datastream in catalogue.get_datastreams():
101
106
  if catalogue_datastream.stream_name in fixtures:
@@ -118,7 +123,7 @@ def _load_fixtures_from_catalogue(
118
123
  callback=callback,
119
124
  batch_size=batch_size,
120
125
  )
121
- datastream.process()
126
+ datastream.process(identity=identity)
122
127
  if hasattr(callback, "fixture_finished"):
123
128
  callback.fixture_finished(catalogue_datastream.stream_name)
124
129
 
@@ -27,13 +27,15 @@ class LocalizedUIJSONSerializer(MarshmallowSerializer):
27
27
  self.object_schema_cls = object_schema_cls
28
28
  self.list_schema_cls = list_schema_cls
29
29
 
30
- def dump_obj(self, obj):
30
+ def dump_obj(self, obj, *args, **kwargs):
31
31
  """Dump the object using object schema class."""
32
- return self.object_schema_cls(
33
- context={**self.schema_context, "locale": get_locale()}
34
- ).dump(obj)
32
+ ctx = {**self.schema_context, "locale": get_locale()}
33
+ if "extra_context" in kwargs:
34
+ ctx |= kwargs["extra_context"]
35
35
 
36
- def dump_list(self, obj_list):
36
+ return self.object_schema_cls(context=ctx).dump(obj)
37
+
38
+ def dump_list(self, obj_list, *args, **kwargs):
37
39
  """Dump the list of objects."""
38
40
  ctx = {
39
41
  "object_schema_cls": self.object_schema_cls,
@@ -41,6 +43,9 @@ class LocalizedUIJSONSerializer(MarshmallowSerializer):
41
43
  ctx.update(self.schema_context)
42
44
  ctx["locale"] = get_locale()
43
45
 
46
+ if "extra_context" in kwargs:
47
+ ctx |= kwargs["extra_context"]
48
+
44
49
  if self.list_schema_cls is None:
45
50
  return self.object_schema_cls(context=self.schema_context).dump(
46
51
  obj_list, many=True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oarepo-runtime
3
- Version: 1.5.27
3
+ Version: 1.5.29
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = oarepo-runtime
3
- version = 1.5.27
3
+ version = 1.5.29
4
4
  description = A set of runtime extensions of Invenio repository
5
5
  authors = Alzbeta Pokorna
6
6
  readme = README.md
File without changes