invenio-app-rdm 14.0.0b2.dev4__py2.py3-none-any.whl → 14.0.0b3.dev0__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.
Files changed (20) hide show
  1. invenio_app_rdm/__init__.py +1 -1
  2. invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/requests_details.html +3 -1
  3. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html +0 -3
  4. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html +2 -0
  5. invenio_app_rdm/records_ui/utils.py +48 -2
  6. invenio_app_rdm/records_ui/views/deposits.py +10 -45
  7. invenio_app_rdm/records_ui/views/records.py +13 -37
  8. invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/record-deletion/index.html +3 -1
  9. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion.js +0 -1
  10. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js +4 -1
  11. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageButton.js +4 -27
  12. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordManagement.js +3 -0
  13. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js +3 -0
  14. invenio_app_rdm/upgrade_scripts/migrate_13_0_to_14_0.py +0 -2
  15. {invenio_app_rdm-14.0.0b2.dev4.dist-info → invenio_app_rdm-14.0.0b3.dev0.dist-info}/METADATA +6 -2
  16. {invenio_app_rdm-14.0.0b2.dev4.dist-info → invenio_app_rdm-14.0.0b3.dev0.dist-info}/RECORD +20 -20
  17. {invenio_app_rdm-14.0.0b2.dev4.dist-info → invenio_app_rdm-14.0.0b3.dev0.dist-info}/WHEEL +0 -0
  18. {invenio_app_rdm-14.0.0b2.dev4.dist-info → invenio_app_rdm-14.0.0b3.dev0.dist-info}/entry_points.txt +0 -0
  19. {invenio_app_rdm-14.0.0b2.dev4.dist-info → invenio_app_rdm-14.0.0b3.dev0.dist-info}/licenses/LICENSE +0 -0
  20. {invenio_app_rdm-14.0.0b2.dev4.dist-info → invenio_app_rdm-14.0.0b3.dev0.dist-info}/top_level.txt +0 -0
@@ -17,6 +17,6 @@
17
17
  #
18
18
  # See PEP 0440 for details - https://www.python.org/dev/peps/pep-0440
19
19
 
20
- __version__ = "14.0.0b2.dev4"
20
+ __version__ = "14.0.0b3.dev0"
21
21
 
22
22
  __all__ = ("__version__",)
@@ -31,7 +31,9 @@ under the terms of the MIT License; see LICENSE file for more details.
31
31
 
32
32
  <div class="twelve wide column mt-10">
33
33
  <p><strong>{{ _("Reason:") }}</strong> {{ invenio_request["payload"]["reason_label"] }}</p>
34
- <p><strong>{{ _("Justification:") }}</strong> {{ invenio_request["payload"]["comment"] }}</p>
34
+ {%- if invenio_request["payload"]["comment"] %}
35
+ <p><strong>{{ _("Justification:") }}</strong> {{ invenio_request["payload"]["comment"] }}</p>
36
+ {%- endif %}
35
37
  </div>
36
38
 
37
39
  <div class="ui divider"></div>
@@ -206,9 +206,6 @@
206
206
  <div id="recordManagementMobile"
207
207
  role="dialog"
208
208
  class="ui flowing popup transition hidden"
209
- data-record='{{ record_ui | tojson }}'
210
- data-permissions='{{ permissions | tojson }}'
211
- data-is-draft="{{ is_draft | tojson }}"
212
209
  {% if config.RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE %}
213
210
  {% include config.RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE %}
214
211
  {% endif %}
@@ -20,8 +20,10 @@ it under the terms of the MIT License; see LICENSE file for more details.
20
20
  data-groups-enabled='{{ config.USERS_RESOURCES_GROUPS_ENABLED | tojson }}'
21
21
  {% if record_deletion %}
22
22
  data-record-deletion='{{ record_deletion | tojson }}'
23
+ data-record-deletion-options='{{ record_deletion_options | tojson }}'
23
24
  {% else %}
24
25
  data-record-deletion='{{ {} | tojson }}'
26
+ data-record-deletion-options='{{ [] | tojson }}'
25
27
  {% endif %}
26
28
  {% if config.RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE %}
27
29
  {% include config.RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE %}
@@ -13,7 +13,9 @@ from itertools import chain
13
13
 
14
14
  from flask import current_app
15
15
  from invenio_access.permissions import system_identity
16
+ from invenio_rdm_records.records.api import RDMRecord
16
17
  from invenio_rdm_records.requests.record_deletion import RecordDeletion
18
+ from invenio_rdm_records.services.config import RDMRecordDeletionPolicy
17
19
  from invenio_records.dictutils import dict_set
18
20
  from invenio_records.errors import MissingModelError
19
21
  from invenio_records_files.api import FileObject
@@ -95,7 +97,7 @@ def dump_external_resource(
95
97
 
96
98
 
97
99
  def get_existing_deletion_request(record_id):
98
- """Return existing open deletion requests for the record."""
100
+ """Return the self HTML link of the existing open deletion request for the record."""
99
101
  existing_requests = current_requests_service.search(
100
102
  system_identity,
101
103
  extra_filter=dsl.Q(
@@ -108,4 +110,48 @@ def get_existing_deletion_request(record_id):
108
110
  ),
109
111
  )
110
112
  if existing_requests.total > 0:
111
- return list(existing_requests)[0]
113
+ return list(existing_requests)[0]["links"]["self_html"]
114
+
115
+
116
+ def evaluate_record_deletion(record: RDMRecord, identity):
117
+ """Evaluate whether a given record can be deleted by an identity."""
118
+ rec_del = RDMRecordDeletionPolicy().evaluate(identity, record._record)
119
+
120
+ immediate, request = rec_del["immediate_deletion"], rec_del["request_deletion"]
121
+ rd_enabled = immediate.enabled or request.enabled
122
+ rd_valid_user = (
123
+ rec_del["immediate_deletion"].valid_user
124
+ or rec_del["request_deletion"].valid_user
125
+ )
126
+ rd_allowed = immediate.allowed or request.allowed
127
+
128
+ if rd_allowed:
129
+ record_deletion = {
130
+ "enabled": rd_enabled,
131
+ "valid_user": rd_valid_user,
132
+ "allowed": rd_allowed,
133
+ "recordDeletion": rec_del,
134
+ "checklist": (
135
+ current_app.config["RDM_IMMEDIATE_RECORD_DELETION_CHECKLIST"]
136
+ if immediate.allowed
137
+ else current_app.config["RDM_REQUEST_RECORD_DELETION_CHECKLIST"]
138
+ ),
139
+ "context": {
140
+ "files": record.files.count,
141
+ "internalDoi": record.pids["doi"]["provider"] != "external",
142
+ },
143
+ }
144
+ else:
145
+ record_deletion = {
146
+ "enabled": rd_enabled,
147
+ "valid_user": rd_valid_user,
148
+ "allowed": rd_allowed,
149
+ }
150
+ record_deletion["existing_request"] = (
151
+ # We show existing requests to valid users (even if they are not allowed to delete a record anymore).
152
+ get_existing_deletion_request(record.id)
153
+ if rd_valid_user
154
+ else None
155
+ )
156
+
157
+ return record_deletion
@@ -26,7 +26,6 @@ from invenio_i18n.ext import current_i18n
26
26
  from invenio_rdm_records.proxies import current_rdm_records
27
27
  from invenio_rdm_records.records.api import get_files_quota
28
28
  from invenio_rdm_records.resources.serializers import UIJSONSerializer
29
- from invenio_rdm_records.services.config import RDMRecordDeletionPolicy
30
29
  from invenio_rdm_records.services.schemas import RDMRecordSchema
31
30
  from invenio_rdm_records.services.schemas.utils import dump_empty
32
31
  from invenio_rdm_records.views import file_transfer_type
@@ -38,7 +37,7 @@ from invenio_vocabularies.records.models import VocabularyScheme
38
37
  from marshmallow_utils.fields.babel import gettext_from_dict
39
38
  from sqlalchemy.orm import load_only
40
39
 
41
- from ..utils import get_existing_deletion_request, set_default_value
40
+ from ..utils import evaluate_record_deletion, set_default_value
42
41
  from .decorators import (
43
42
  no_cache_response,
44
43
  pass_draft,
@@ -314,12 +313,14 @@ class VocabulariesOptions:
314
313
  "related_identifiers", "RDM_RECORDS_RELATED_IDENTIFIERS_SCHEMES"
315
314
  )
316
315
 
317
- def removal_reasons(self):
318
- """Dump removal reasons vocabulary."""
319
- self._vocabularies["removal_reasons"] = self._dump_vocabulary_w_basic_fields(
320
- "removalreasons", extra_filter=dsl.Q("term", tags="deletion-request")
316
+ def deletion_request_removal_reasons(self):
317
+ """Dump deletion request removal reasons vocabulary."""
318
+ self._vocabularies["deletion_request_removal_reasons"] = (
319
+ self._dump_vocabulary_w_basic_fields(
320
+ "removalreasons", extra_filter=dsl.Q("term", tags="deletion-request")
321
+ )
321
322
  )
322
- return self._vocabularies["removal_reasons"]
323
+ return self._vocabularies["deletion_request_removal_reasons"]
323
324
 
324
325
  def dump(self):
325
326
  """Dump into dict."""
@@ -333,7 +334,7 @@ class VocabulariesOptions:
333
334
  self.subjects()
334
335
  self.identifiers()
335
336
  self.related_identifiers()
336
- self.removal_reasons()
337
+ self.deletion_request_removal_reasons()
337
338
  # We removed
338
339
  # vocabularies["relation_type"] = _dump_relation_types_vocabulary()
339
340
  return self._vocabularies
@@ -550,43 +551,7 @@ def deposit_edit(pid_value, draft=None, draft_files=None, files_locked=True):
550
551
  )
551
552
  published_record = ui_serializer.dump_obj(published_record_result.to_dict())
552
553
 
553
- rec_del = RDMRecordDeletionPolicy().evaluate(
554
- g.identity, published_record_result._record
555
- )
556
- immediate, request = rec_del["immediate_deletion"], rec_del["request_deletion"]
557
- rd_enabled = immediate.enabled or request.enabled
558
- rd_valid_user = (
559
- rec_del["immediate_deletion"].valid_user
560
- or rec_del["request_deletion"].valid_user
561
- )
562
- rd_allowed = immediate.allowed or request.allowed
563
- existing_request = get_existing_deletion_request(record.get("id"))
564
-
565
- if rd_allowed:
566
- record_deletion = {
567
- "enabled": rd_enabled,
568
- "valid_user": rd_valid_user,
569
- "allowed": rd_allowed,
570
- "recordDeletion": rec_del,
571
- "checklist": (
572
- current_app.config["RDM_IMMEDIATE_RECORD_DELETION_CHECKLIST"]
573
- if immediate.allowed
574
- else current_app.config["RDM_REQUEST_RECORD_DELETION_CHECKLIST"]
575
- ),
576
- "context": {
577
- "files": draft._record.files.count,
578
- "internalDoi": draft._record.pids["doi"]["provider"] != "external",
579
- },
580
- }
581
- else:
582
- record_deletion = {
583
- "enabled": rd_enabled,
584
- "valid_user": rd_valid_user,
585
- "allowed": rd_allowed,
586
- }
587
- record_deletion["existing_request"] = (
588
- existing_request["links"]["self_html"] if existing_request else None
589
- )
554
+ record_deletion = evaluate_record_deletion(published_record_result, g.identity)
590
555
  else:
591
556
  record_deletion = {}
592
557
 
@@ -29,7 +29,6 @@ from invenio_rdm_records.records.systemfields.access.access_settings import (
29
29
  AccessSettings,
30
30
  )
31
31
  from invenio_rdm_records.resources.serializers import UIJSONSerializer
32
- from invenio_rdm_records.services.config import RDMRecordDeletionPolicy
33
32
  from invenio_stats.proxies import current_stats
34
33
  from invenio_users_resources.proxies import current_user_resources
35
34
  from marshmallow import ValidationError
@@ -38,7 +37,7 @@ from invenio_app_rdm.records_ui.previewer.iiif_simple import (
38
37
  previewable_extensions as image_extensions,
39
38
  )
40
39
 
41
- from ..utils import get_existing_deletion_request, get_external_resources
40
+ from ..utils import evaluate_record_deletion, get_external_resources
42
41
  from .decorators import (
43
42
  add_signposting_content_resources,
44
43
  add_signposting_landing_page,
@@ -53,7 +52,11 @@ from .decorators import (
53
52
  pass_record_media_files,
54
53
  pass_record_or_draft,
55
54
  )
56
- from .deposits import get_user_communities_memberships, load_custom_fields
55
+ from .deposits import (
56
+ VocabulariesOptions,
57
+ get_user_communities_memberships,
58
+ load_custom_fields,
59
+ )
57
60
 
58
61
 
59
62
  def get_record_community(record):
@@ -158,41 +161,13 @@ def record_detail(
158
161
 
159
162
  record_ui = UIJSONSerializer().dump_obj(record.to_dict())
160
163
 
161
- rec_del = RDMRecordDeletionPolicy().evaluate(g.identity, record._record)
164
+ record_deletion = evaluate_record_deletion(record, g.identity)
162
165
 
163
- immediate, request = rec_del["immediate_deletion"], rec_del["request_deletion"]
164
- rd_enabled = immediate.enabled or request.enabled
165
- rd_valid_user = (
166
- rec_del["immediate_deletion"].valid_user
167
- or rec_del["request_deletion"].valid_user
168
- )
169
- rd_allowed = immediate.allowed or request.allowed
170
- existing_request = get_existing_deletion_request(record.id)
171
-
172
- if rd_allowed:
173
- record_deletion = {
174
- "enabled": rd_enabled,
175
- "valid_user": rd_valid_user,
176
- "allowed": rd_allowed,
177
- "recordDeletion": rec_del,
178
- "checklist": (
179
- current_app.config["RDM_IMMEDIATE_RECORD_DELETION_CHECKLIST"]
180
- if immediate.allowed
181
- else current_app.config["RDM_REQUEST_RECORD_DELETION_CHECKLIST"]
182
- ),
183
- "context": {
184
- "files": record._record.files.count,
185
- "internalDoi": record._record.pids["doi"]["provider"] != "external",
186
- },
187
- }
188
- else:
189
- record_deletion = {
190
- "enabled": rd_enabled,
191
- "valid_user": rd_valid_user,
192
- "allowed": rd_allowed,
193
- }
194
- record_deletion["existing_request"] = (
195
- existing_request["links"]["self_html"] if existing_request else None
166
+ # The deletion options are only needed if the user is allowed to delete the given record.
167
+ record_deletion_options = (
168
+ VocabulariesOptions().deletion_request_removal_reasons()
169
+ if record_deletion["allowed"]
170
+ else []
196
171
  )
197
172
 
198
173
  is_draft = record_ui["is_draft"]
@@ -295,6 +270,7 @@ def record_detail(
295
270
  external_resources=get_external_resources(record),
296
271
  user_avatar=avatar,
297
272
  record_deletion=record_deletion,
273
+ record_deletion_options=record_deletion_options,
298
274
  )
299
275
 
300
276
 
@@ -25,7 +25,9 @@
25
25
 
26
26
  <div class="twelve wide column mt-10">
27
27
  <p><strong>{{ _("Reason:") }}</strong> {{ invenio_request["payload"]["reason_label"] }}</p>
28
- <p><strong>{{ _("Justification:") }}</strong> {{ invenio_request["payload"]["comment"] }}</p>
28
+ {%- if invenio_request["payload"]["comment"] %}
29
+ <p><strong>{{ _("Justification:") }}</strong> {{ invenio_request["payload"]["comment"] }}</p>
30
+ {%- endif %}
29
31
  </div>
30
32
  {%- endblock request_header %}
31
33
 
@@ -33,7 +33,6 @@ export const RecordDeletion = ({
33
33
  fluid
34
34
  as="a"
35
35
  href={recordDeletion.existing_request}
36
- disabled={disabled}
37
36
  className="basic"
38
37
  color="red"
39
38
  aria-haspopup="dialog"
@@ -780,7 +780,10 @@ export class RDMDepositForm extends Component {
780
780
  record={record}
781
781
  permissions={permissions}
782
782
  recordDeletion={recordDeletion}
783
- options={this.vocabularies.metadata.removal_reasons}
783
+ options={
784
+ this.vocabularies.metadata
785
+ .deletion_request_removal_reasons
786
+ }
784
787
  disabled={!recordDeletion["allowed"]}
785
788
  />
786
789
  </Grid.Column>
@@ -4,7 +4,7 @@
4
4
  // Invenio RDM Records is free software; you can redistribute it and/or modify it
5
5
  // under the terms of the MIT License; see LICENSE file for more details.
6
6
 
7
- import React, { useEffect, useState } from "react";
7
+ import React from "react";
8
8
  import { Dropdown, Modal, Button, Message } from "semantic-ui-react";
9
9
  import { i18next } from "@translations/invenio_app_rdm/i18next";
10
10
  import PropTypes from "prop-types";
@@ -12,37 +12,13 @@ import { http } from "react-invenio-forms";
12
12
  import { APIRoutes } from "../administration/users/api/routes";
13
13
  import { RecordDeletion } from "../components/RecordDeletion";
14
14
 
15
- const fetchOptions = async () => {
16
- const url = "/api/vocabularies/removalreasons?q=tags:deletion-request";
17
- const req = http.get(url);
18
- try {
19
- const response = await req;
20
- const data = response.data.hits.hits;
21
-
22
- const options = data.map((x) => {
23
- return {
24
- text: x["title_l10n"],
25
- value: x["id"],
26
- };
27
- });
28
- return options;
29
- } catch (e) {
30
- console.error(e);
31
- }
32
- };
33
-
34
15
  export const ManageButton = ({
35
16
  record,
36
17
  recordOwnerID,
37
18
  permissions,
38
19
  recordDeletion,
20
+ recordDeletionOptions,
39
21
  }) => {
40
- const [options, setOptions] = useState([]);
41
-
42
- useEffect(() => {
43
- fetchOptions().then(setOptions);
44
- }, []);
45
-
46
22
  return (
47
23
  <Dropdown
48
24
  fluid
@@ -61,7 +37,7 @@ export const ManageButton = ({
61
37
  record={record}
62
38
  permissions={permissions}
63
39
  recordDeletion={recordDeletion}
64
- options={options}
40
+ options={recordDeletionOptions}
65
41
  disabled={!recordDeletion["allowed"]}
66
42
  />
67
43
  </Dropdown.Item>
@@ -99,6 +75,7 @@ ManageButton.propTypes = {
99
75
  recordOwnerID: PropTypes.string.isRequired,
100
76
  permissions: PropTypes.object.isRequired,
101
77
  recordDeletion: PropTypes.object.isRequired,
78
+ recordDeletionOptions: PropTypes.object.isRequired,
102
79
  };
103
80
 
104
81
  const BlockUserItem = ({ recordOwnerID }) => {
@@ -35,6 +35,7 @@ export class RecordManagement extends Component {
35
35
  recordOwnerID,
36
36
  groupsEnabled,
37
37
  recordDeletion,
38
+ recordDeletionOptions,
38
39
  } = this.props;
39
40
  const { error } = this.state;
40
41
  const { id: recid } = record;
@@ -52,6 +53,7 @@ export class RecordManagement extends Component {
52
53
  recordOwnerID={recordOwnerID}
53
54
  permissions={permissions}
54
55
  recordDeletion={recordDeletion}
56
+ recordDeletionOptions={recordDeletionOptions}
55
57
  />
56
58
  </Grid.Column>
57
59
  )}
@@ -127,4 +129,5 @@ RecordManagement.propTypes = {
127
129
  currentUserId: PropTypes.string.isRequired,
128
130
  recordOwnerID: PropTypes.string.isRequired,
129
131
  recordDeletion: PropTypes.object.isRequired,
132
+ recordDeletionOptions: PropTypes.object.isRequired,
130
133
  };
@@ -40,6 +40,9 @@ function renderRecordManagement(element) {
40
40
  recordOwnerID={record.parent.access.owned_by.user}
41
41
  groupsEnabled={JSON.parse(recordManagementAppDiv.dataset.groupsEnabled)}
42
42
  recordDeletion={JSON.parse(recordManagementAppDiv.dataset.recordDeletion)}
43
+ recordDeletionOptions={JSON.parse(
44
+ recordManagementAppDiv.dataset.recordDeletionOptions
45
+ )}
43
46
  />
44
47
  </OverridableContext.Provider>,
45
48
  element
@@ -25,7 +25,6 @@ from invenio_access.permissions import system_identity
25
25
  from invenio_db import db
26
26
  from invenio_drafts_resources.resources.records.errors import DraftNotCreatedError
27
27
  from invenio_rdm_records.proxies import current_rdm_records_service as records_service
28
- from invenio_rdm_records.records.api import RDMDraft, RDMRecord
29
28
  from invenio_search.api import RecordsSearchV2
30
29
 
31
30
 
@@ -42,7 +41,6 @@ def run_upgrade(migrate_record, migrate_draft):
42
41
  # Handle published records
43
42
  published_records = (
44
43
  RecordsSearchV2(index=records_service.record_cls.index._name)
45
- .filter("term", deletion_status="P")
46
44
  .filter(
47
45
  "query_string",
48
46
  query="metadata.resource_type.id:publication-thesis OR metadata.related_identifiers.resource_type.id:publication-thesis",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invenio-app-rdm
3
- Version: 14.0.0b2.dev4
3
+ Version: 14.0.0b3.dev0
4
4
  Summary: Invenio Research Data Management.
5
5
  Home-page: https://github.com/inveniosoftware/invenio-app-rdm
6
6
  Author: CERN
@@ -27,7 +27,7 @@ Requires-Dist: invenio-theme<5.0.0,>=4.0.0
27
27
  Requires-Dist: invenio-access<5.0.0,>=4.0.0
28
28
  Requires-Dist: invenio-accounts<7.0.0,>=6.0.0
29
29
  Requires-Dist: invenio-oauth2server<4.0.0,>=3.0.0
30
- Requires-Dist: invenio-oauthclient<6.0.0,>=5.0.0
30
+ Requires-Dist: invenio-oauthclient<7.0.0,>=6.0.0
31
31
  Requires-Dist: invenio-userprofiles<5.0.0,>=4.0.0
32
32
  Requires-Dist: invenio-indexer<4.0.0,>=3.0.0
33
33
  Requires-Dist: invenio-jsonschemas<3.0.0,>=2.0.0
@@ -101,6 +101,10 @@ https://inveniordm.docs.cern.ch
101
101
  Changes
102
102
  =======
103
103
 
104
+ Version v14.0.0b3.dev0 (released 2025-XX-XX)
105
+
106
+ - setup: bump major version of `invenio-oauthclient`
107
+
104
108
  Version v14.0.0b2.dev4 (released 2025-11-05)
105
109
 
106
110
  - refactor(config): Update DataCite serializer for schema v4.5
@@ -1,4 +1,4 @@
1
- invenio_app_rdm/__init__.py,sha256=L-KTUnHxrn_j8CKdH8hLSeku3OQ1clYsbichPl_bebM,704
1
+ invenio_app_rdm/__init__.py,sha256=VZpM1M3jal-5WfNARRhKwtJxRiX18vbpWLDtWQeDq2Q,704
2
2
  invenio_app_rdm/cli.py,sha256=G6QqNU2W6n6ICtTMnpeKFXIsdorncDmVXwwwsGH5F2k,2746
3
3
  invenio_app_rdm/config.py,sha256=pigyCXGUMru2krv-ZJ15iosbm3UBk9dmiAQauYvzWbk,53632
4
4
  invenio_app_rdm/ext.py,sha256=K7syn5CU5If7yOclFeNOCZX_u5q6VB7NJEQVm41mlng,5286
@@ -16,7 +16,7 @@ invenio_app_rdm/administration/records/records.py,sha256=6nVyDwYLdipIDSnlXMRe6Ju
16
16
  invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/audit_logs.html,sha256=kLP3lfZiwLB8N-78_xINymnD8TIjGMzeJIO1a1zO130,346
17
17
  invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/domains_search.html,sha256=NP8HPfOQPIR9psNDMFRXJH8fjok2AbXCentD_3Q1wWw,338
18
18
  invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/requests.html,sha256=kvM8b3m8p_yVJ0i1aCuNNj1-9KHJk4EsEI-Zxd8B2zo,340
19
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/requests_details.html,sha256=0eTICmdnDZEW6JeftRkiUV2N3v-Dha5RMh804c0DeQs,3102
19
+ invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/requests_details.html,sha256=PMUVAHU3Pqqlfz9YepNJXPn-6IGRmUfirkWeybKCplA,3185
20
20
  invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/user_moderation.html,sha256=koXd8lV_KBgAl1Wll7aM3xR0NgYcOl2PiFqD2Xkcp2w,348
21
21
  invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/user_moderation_details.html,sha256=g6YZh9yWqDfzd5kMgIrO4c5k4iKa61y04RsuT_ZbMJI,350
22
22
  invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/users_search.html,sha256=BtuBmQ3RqRZ-bzYWRsToC3m7ULd-T2vMCLSwrTLwWF8,337
@@ -47,11 +47,11 @@ invenio_app_rdm/fixtures/pages/.gitkeep,sha256=1HVs32jZTGcMkk-dV9RHGPZm5FdydwFIZ
47
47
  invenio_app_rdm/records_ui/__init__.py,sha256=c4_HH3R7fTOp7AnNQSF4P9h_mwOvL0SE9tkpo6SBnT8,327
48
48
  invenio_app_rdm/records_ui/searchapp.py,sha256=QD5fTdimVUC5K4ERVBjgXHZdbC3ZkgcR8LSIxFTPBQY,2697
49
49
  invenio_app_rdm/records_ui/sitemap.py,sha256=erWpwi8lx17ATicBo3dTwMiEEwHTilL8xTAkNCC3J4U,1619
50
- invenio_app_rdm/records_ui/utils.py,sha256=04Q_mI3SvfuNlmSziIJldr94UI2EKXZIdHAm4qHrEN0,3469
50
+ invenio_app_rdm/records_ui/utils.py,sha256=3fjY2D1dvQqF7IqOE4hPQqN3ANj1sbPlv-mYTALPWwY,5218
51
51
  invenio_app_rdm/records_ui/previewer/__init__.py,sha256=T32i_ssGKONDpNB3gECpn20ubHvGYYVrNuIgCADioOM,267
52
52
  invenio_app_rdm/records_ui/previewer/iiif_simple.py,sha256=lGxB3g0hNVJDWnq5jV_KrKPwC-LR1C51DMjas1-UpBM,1589
53
53
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/deposit.html,sha256=vCz8EJsitKPFpEqp1yR2uPC97QpMvc941dK2Bgujj2c,2977
54
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html,sha256=pyyAjZ8eW_HS9Pajoiw1c1n4P0EcLdx6Phh8ZHPZkUE,21046
54
+ invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html,sha256=_OqYPP-7qOyzenDoj-8qhSPwmwtMFYJ8mj6MdJcMPNI,20852
55
55
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/draft_not_found.html,sha256=_FPflgqVZ556Xw349mHPSFb0FOhxYkIHfmUUTX53_LU,624
56
56
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/export.html,sha256=2h-FGJvNKS9ASZ0mErL2vz5jXQYiLL8u8rTO2_D3FVQ,1166
57
57
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/iiif_preview.html,sha256=RningdsVBXsJ8qnQjzurf0Ty8R5Tq08eS31s53c3DNE,444
@@ -77,7 +77,7 @@ invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details
77
77
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/keywords_subjects.html,sha256=8FTUt6MVRvEsj89qDxP6eK2feyv2UI0fgICoT99cUIU,717
78
78
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/licenses.html,sha256=8VfF1BJCvjc3MPPGDg5cm2M6_zbkz2HybJuRU5a2gXc,3172
79
79
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/locations.html,sha256=6o5nQyXP0V158KMBsOpKMeuLGcw_lAhnZIyGpaogbMk,721
80
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html,sha256=BPAaDG_OhCkKaIUSqyBfjMFK8gMnweHzZtyNdwI0T4k,1516
80
+ invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html,sha256=t7Ux3nZpaMMQkGfT7IWZKXzKyJVzs_vBTv1ctGFz7TA,1659
81
81
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/metrics.html,sha256=6aS28YC8U7VDWn2vI2ckYtzm9wVWacGZ4a7Pu5D3BBI,526
82
82
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/technical_metadata.html,sha256=ptS8h6orgDhFFGXeZBCNBltELy_g9fUtS1bMTzieCPk,676
83
83
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/versions.html,sha256=fIa8R0blN2rWkrP0K43qvSTye4Gt6-5yo3HN5FLdLTA,935
@@ -90,9 +90,9 @@ invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/
90
90
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/version.html,sha256=eA8-n81XUezkwPXvcG5v2sgLPQNTgr7hB36-_Gr-tVI,758
91
91
  invenio_app_rdm/records_ui/views/__init__.py,sha256=9DaDls04IQv7fYttDjLofIWGsRRjk-FwUYnIfxV3OWk,5840
92
92
  invenio_app_rdm/records_ui/views/decorators.py,sha256=-GdyPh2qIxV_wacAv5uChNx-HW2LiKjHQiRujiu42B4,16510
93
- invenio_app_rdm/records_ui/views/deposits.py,sha256=_7pyI3xk46m2bo1w8PVrP8PHKj_g4wh4hiUX-yuaS5A,25785
93
+ invenio_app_rdm/records_ui/views/deposits.py,sha256=t0gP0TIreb5RcHRtDd3CIX0yEE-hasUJV6q68fM4veM,24363
94
94
  invenio_app_rdm/records_ui/views/filters.py,sha256=dtAjJ5NmPvxEYZJeldW5oxrj0D0AYXobNelii57Tfdo,7455
95
- invenio_app_rdm/records_ui/views/records.py,sha256=vLuenTEoTV9ZB9suUGI4ct1ml2iModZqhdlVfK5dIRc,17811
95
+ invenio_app_rdm/records_ui/views/records.py,sha256=ciYqS0Ljb0QZZA6aZymVEeVlSdLemwHKTVMN-7AWTtw,16777
96
96
  invenio_app_rdm/redirector/__init__.py,sha256=AYCTGmfbmkHW3YJXMqXlWBXcBrUsta-QmL9ULX2bjwA,243
97
97
  invenio_app_rdm/redirector/resource.py,sha256=XuH6ZK0HVE5LdXoorlm8aI3deizvnZ5gFa9d1ihYosk,3312
98
98
  invenio_app_rdm/redirector/views.py,sha256=CTJ3EGEFKfc0lFwNb9pwH7MbMLiqaWnF8LA3xGIwahc,563
@@ -103,7 +103,7 @@ invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-inv
103
103
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-submission/index.html,sha256=nJIHevyCGQua_H67IV0mnFiQjNjcQYsZTieQgvP48JY,3452
104
104
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/guest-access-request/index.html,sha256=RXtoMrLFvEGHuy2YgoyCkpjEJmUVehFbmXvX1_7qGtY,1978
105
105
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/macros/request_header.html,sha256=Iado6BmcFFswmvQ9IrdtgSyAzJr5AIT2BP2IDg-B-8U,2695
106
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/record-deletion/index.html,sha256=av7g0h7A1V7KBpdP9ogkHIjhBhZzhRTJwv9fCEsOJYo,2745
106
+ invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/record-deletion/index.html,sha256=JzLATsMOLpHMfxlXeBPXgC2VMydCYa9TDjPHAuLPbU4,2820
107
107
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/subcommunity/index.html,sha256=eEYjTnVL-L30Dm_1LvSNKSx3QEHRoxMGHLupvu_1nMM,1453
108
108
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/subcommunity-invitation/index.html,sha256=347Saf8Fv78uevCbK2nFiOtNFUT0QyZSZS7lgoNzHdQ,1448
109
109
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/user-access-request/index.html,sha256=ltSP9sYPnpmCKMDYpZYU25Wxr3Dfqe2RNDxm6bVjX_I,1779
@@ -177,11 +177,11 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CompactSt
177
177
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CopyButton.js,sha256=uBcEXzGJYZ7dPIdQBxPqxLvwP6Z5QVg1x-YRncRDW3k,3550
178
178
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayPartOfCommunities.js,sha256=bSmhuwSWk4CW80mqa4ZZbjfa-_NsiJ1IxQ9veDy6sAM,2751
179
179
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayVerifiedCommunity.js,sha256=m3rT8jJ3440ZX22zZog8bHatWltYXwvmw_tu6tJUM9k,1506
180
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion.js,sha256=0rAS8mGVKNqJtBdWoGa1G1FMnY3QaKAs1Gd--91JqIA,2297
180
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion.js,sha256=9ywSA48X-WZlpZ1krtAwzOYRodXYTLt4UJhpqxduF90,2261
181
181
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordsResultsListItem.js,sha256=RTSQBlGQY7ww7fVGHDvDfWQNyJ07mnEoyboTGIcCgD4,6694
182
182
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion/DeletionModal.js,sha256=kXME7Lr51ygS6PdA355Q2gh7bVcHLOBBW1ZClI_R4_E,12131
183
183
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion/DeletionRadioGroup.js,sha256=qMFdPQkVQQsaS0P9KdPyFcuunZmGlEALjfABPueuoVU,1227
184
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js,sha256=wC3-MSDufkBkj3C1tDkuppzTpUaizhJNGe71dcnOQNw,34914
184
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js,sha256=TGroJZONgyBP2ACE_yoOmWF7Vo4Yr3SG1s3ZMf74z10,35048
185
185
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/ShareDraftButton.js,sha256=ICMV4Ixe-nTe6q7COZ0oyAQf2nVp2cez_-iUZobwUD0,1998
186
186
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/config.js,sha256=rd2wqiwmYOkh4kWe8AiGWJar2kA8R8TkGMnX5XZvihs,1473
187
187
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/index.js,sha256=r9MvsucIXEyW7Bbb8vuEP2ZTRMzA-GJCn7GEpvqO0tY,1710
@@ -192,13 +192,13 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/Communi
192
192
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagementDropdown.js,sha256=qocsinvtbWEqAi8kgqNqx7c0X-_evRmCz2bPTaMQlcI,5953
193
193
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/EditButton.js,sha256=WJ5lNpbPcd_Kymn_TYklSTfkCJRPhpFeT6cWcR48mSQ,1452
194
194
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ExportDropdown.js,sha256=fDqs5sel6Zo1oPkJT1XbR3dtHXvvgVuDhe_sg_-D690,1969
195
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageButton.js,sha256=Lx9zHYxuqNKLPdOsPM019HgO_hqo2p3auqSpaPyRveg,4287
195
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageButton.js,sha256=OGxcPvhFrm2vv_hzDP7ONdJtezCLjnz13Wo4BWC0Sfk,3828
196
196
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCitationField.js,sha256=XYfXsQejNeC1R0spndn0qDrqvz6w3bj5UlPEIgT4U24,4757
197
197
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesList.js,sha256=wORVCOjlyX2mIsDU9J0MwWFE4Zw9CCL5inWpV7m8lsM,4004
198
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordManagement.js,sha256=N4_pyfqVY698DmVv2oJMMgzvgNvVNm4ptoSSONfAR64,4106
198
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordManagement.js,sha256=62TbXu96jXUSRxdXOnhu6eSl_tpYTydni4WtdBBQOe8,4249
199
199
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js,sha256=ZJaD4fW2z00tcektXVz0eLXu6oGLLW-NUjV86neuDjM,7141
200
200
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/access.js,sha256=FVcpKl22zMi1GssbLZAj1pO98c6Em_wg_yBIdfBJor0,938
201
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js,sha256=2gwIJGItno7I0U_avhYQ6wNzMZ9w5zqWnWam_EvX50I,5060
201
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js,sha256=ETWFzdM61Uy94bUwT2uzjM11aIk6Lt2MOzxmPswrjoA,5177
202
202
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js,sha256=TieqbbmJrxVKlkD5Kvsw6F-sbpucxSV9dv30Y6pXKjI,3144
203
203
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageDefaultBrandingAction/ManageDefaultBrandingAction.js,sha256=qNWpe3KyZ8NDHKocG6XKJzb6w3fIQk3muWN126pUo9w,3529
204
204
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunitiesModal.js,sha256=G9OwLxKqX73w_7D1k7BHOzMeLmokowMfJQg5Km7J8RA,1797
@@ -475,7 +475,7 @@ invenio_app_rdm/upgrade_scripts/fix_migrated_records_from_8_0_to_9_0.py,sha256=p
475
475
  invenio_app_rdm/upgrade_scripts/migrate_10_0_to_11_0.py,sha256=TX6FCWXY4qM4z7IYzDO5qaMTheo3zAjFrmR1sXaEf4U,1333
476
476
  invenio_app_rdm/upgrade_scripts/migrate_11_0_to_12_0.py,sha256=Tp7jfT2JHrYCFzF2qIYqG7yr7k-GhX2zkw61CWJGA78,6941
477
477
  invenio_app_rdm/upgrade_scripts/migrate_12_0_to_13_0.py,sha256=pyO68jyGyKXVTcja8tpi2XgNx_FxXk7JhgDTV-wx3xM,8205
478
- invenio_app_rdm/upgrade_scripts/migrate_13_0_to_14_0.py,sha256=-JyKmXQolkeh0dUKdEekVhVGTYZ4AncyjZdy4n5DIeQ,11356
478
+ invenio_app_rdm/upgrade_scripts/migrate_13_0_to_14_0.py,sha256=vSixZ-Md5esqabBNbWwN8mjEWSsMv0IroHA2gqy_GJ8,11247
479
479
  invenio_app_rdm/upgrade_scripts/migrate_1_0_records_to_2_0.py,sha256=mRDv_Ao5zMgA6X0aogMfvhspO1CIApKtDW_ziJp5fjI,3325
480
480
  invenio_app_rdm/upgrade_scripts/migrate_2_0_to_3_0.py,sha256=jL_2I61Q9qt3fjBzYYueeT4EMQ9FlNPxYE4nzDQbLEY,2698
481
481
  invenio_app_rdm/upgrade_scripts/migrate_3_0_to_4_0.py,sha256=BNjGufwLBvLHnu0gz5b_Are-FuxYjXlCtkLgNQckV3U,4768
@@ -496,9 +496,9 @@ invenio_app_rdm/users_ui/views/__init__.py,sha256=SMdY2NJj9GICfr3Xuok7qdNYVtA2bJ
496
496
  invenio_app_rdm/users_ui/views/dashboard.py,sha256=iUn2PrODAwb8ugmMosJKAjPhUzjCiWiAWoXQr9RUFuc,1793
497
497
  invenio_app_rdm/users_ui/views/ui.py,sha256=W_eXM8dLVIrNHQB2UEh37C9BYoHauft6RyvcDNFHovA,1742
498
498
  invenio_app_rdm/utils/files.py,sha256=CruDyO2gDVadSlWEJD-WHpWHeOQ0juh-Ei9jz3D9yjc,3923
499
- invenio_app_rdm-14.0.0b2.dev4.dist-info/licenses/LICENSE,sha256=AZXFHRrZa5s4m9DV7zZr4bPGTMUvcEPCodeV_AmFI8k,1204
500
- invenio_app_rdm-14.0.0b2.dev4.dist-info/METADATA,sha256=zgGEIcnup8IgzO2OpK3IoYv1KJcPxi-KGN-BsqtZhhs,19737
501
- invenio_app_rdm-14.0.0b2.dev4.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
502
- invenio_app_rdm-14.0.0b2.dev4.dist-info/entry_points.txt,sha256=MwtT1SN5saWOgTYhNb5y0YGA9VGAi0kXN0cykIfsb4U,2405
503
- invenio_app_rdm-14.0.0b2.dev4.dist-info/top_level.txt,sha256=quZejDUw2vLfKQboNIuVLJ9fxZifdnCT_s2PNf1dfmk,16
504
- invenio_app_rdm-14.0.0b2.dev4.dist-info/RECORD,,
499
+ invenio_app_rdm-14.0.0b3.dev0.dist-info/licenses/LICENSE,sha256=AZXFHRrZa5s4m9DV7zZr4bPGTMUvcEPCodeV_AmFI8k,1204
500
+ invenio_app_rdm-14.0.0b3.dev0.dist-info/METADATA,sha256=33XPZ7W9Gjq7xvijIkpcyJ8RwV3j7SVollh4xjpUN6Q,19837
501
+ invenio_app_rdm-14.0.0b3.dev0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
502
+ invenio_app_rdm-14.0.0b3.dev0.dist-info/entry_points.txt,sha256=MwtT1SN5saWOgTYhNb5y0YGA9VGAi0kXN0cykIfsb4U,2405
503
+ invenio_app_rdm-14.0.0b3.dev0.dist-info/top_level.txt,sha256=quZejDUw2vLfKQboNIuVLJ9fxZifdnCT_s2PNf1dfmk,16
504
+ invenio_app_rdm-14.0.0b3.dev0.dist-info/RECORD,,