invenio-app-rdm 14.0.0b1.dev4__py2.py3-none-any.whl → 14.0.0b1.dev6__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.
- invenio_app_rdm/__init__.py +1 -1
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/requests_details.html +3 -1
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html +1 -4
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html +4 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/tombstone.html +6 -1
- invenio_app_rdm/records_ui/utils.py +48 -2
- invenio_app_rdm/records_ui/views/deposits.py +28 -55
- invenio_app_rdm/records_ui/views/filters.py +10 -3
- invenio_app_rdm/records_ui/views/records.py +13 -37
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/record-deletion/index.html +3 -1
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion.js +0 -1
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js +4 -1
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageButton.js +4 -27
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordManagement.js +3 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js +3 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/AccessRequestTimelineEdit.js +5 -5
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/AccessRequestTimelineRead.js +2 -2
- {invenio_app_rdm-14.0.0b1.dev4.dist-info → invenio_app_rdm-14.0.0b1.dev6.dist-info}/METADATA +25 -1
- {invenio_app_rdm-14.0.0b1.dev4.dist-info → invenio_app_rdm-14.0.0b1.dev6.dist-info}/RECORD +23 -23
- {invenio_app_rdm-14.0.0b1.dev4.dist-info → invenio_app_rdm-14.0.0b1.dev6.dist-info}/WHEEL +0 -0
- {invenio_app_rdm-14.0.0b1.dev4.dist-info → invenio_app_rdm-14.0.0b1.dev6.dist-info}/entry_points.txt +0 -0
- {invenio_app_rdm-14.0.0b1.dev4.dist-info → invenio_app_rdm-14.0.0b1.dev6.dist-info}/licenses/LICENSE +0 -0
- {invenio_app_rdm-14.0.0b1.dev4.dist-info → invenio_app_rdm-14.0.0b1.dev6.dist-info}/top_level.txt +0 -0
invenio_app_rdm/__init__.py
CHANGED
|
@@ -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
|
-
|
|
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>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{#
|
|
2
|
-
Copyright (C) 2020-
|
|
2
|
+
Copyright (C) 2020-2025 CERN.
|
|
3
3
|
Copyright (C) 2020-2021 Northwestern University.
|
|
4
4
|
Copyright (C) 2021-2023 TU Wien.
|
|
5
5
|
Copyright (C) 2021 Graz University of Technology.
|
|
@@ -203,9 +203,6 @@
|
|
|
203
203
|
<div id="recordManagementMobile"
|
|
204
204
|
role="dialog"
|
|
205
205
|
class="ui flowing popup transition hidden"
|
|
206
|
-
data-record='{{ record_ui | tojson }}'
|
|
207
|
-
data-permissions='{{ permissions | tojson }}'
|
|
208
|
-
data-is-draft="{{ is_draft | tojson }}"
|
|
209
206
|
{% if config.RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE %}
|
|
210
207
|
{% include config.RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE %}
|
|
211
208
|
{% endif %}
|
|
@@ -20,6 +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 }}'
|
|
24
|
+
{% else %}
|
|
25
|
+
data-record-deletion='{{ {} | tojson }}'
|
|
26
|
+
data-record-deletion-options='{{ [] | tojson }}'
|
|
23
27
|
{% endif %}
|
|
24
28
|
{% if config.RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE %}
|
|
25
29
|
{% include config.RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE %}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{#
|
|
2
|
-
Copyright (C) 2021 CERN.
|
|
2
|
+
Copyright (C) 2021-2025 CERN.
|
|
3
3
|
Copyright (C) 2023 TU Wien.
|
|
4
4
|
|
|
5
5
|
Invenio App RDM is free software; you can redistribute it and/or modify it
|
|
@@ -37,6 +37,11 @@
|
|
|
37
37
|
<p>
|
|
38
38
|
<strong>{{ _("Removed by:") }}</strong> {{ record.ui.tombstone.removed_by }}
|
|
39
39
|
</p>
|
|
40
|
+
{%- if record.ui.tombstone.deletion_policy %}
|
|
41
|
+
<p>
|
|
42
|
+
<strong>{{ _("Deletion Policy:") }}</strong> {{ record.ui.tombstone.deletion_policy }}
|
|
43
|
+
</p>
|
|
44
|
+
{%- endif %}
|
|
40
45
|
{%- if record.ui.tombstone.note %}
|
|
41
46
|
<p>
|
|
42
47
|
<strong>{{ _("Removal note:") }}</strong> {{ record.ui.tombstone.note }}
|
|
@@ -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
|
|
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
|
|
40
|
+
from ..utils import evaluate_record_deletion, set_default_value
|
|
42
41
|
from .decorators import (
|
|
43
42
|
no_cache_response,
|
|
44
43
|
pass_draft,
|
|
@@ -289,30 +288,39 @@ class VocabulariesOptions:
|
|
|
289
288
|
"""Dump linkable resource type vocabulary."""
|
|
290
289
|
return self._resource_types(dsl.Q("term", tags="linkable"))
|
|
291
290
|
|
|
292
|
-
def
|
|
293
|
-
"""Dump
|
|
294
|
-
|
|
295
|
-
"Fake" because identifiers scheme is not a vocabulary.
|
|
296
|
-
"""
|
|
291
|
+
def _dump_identifier_schemes(self, config_key):
|
|
292
|
+
"""Dump identifier schemes from a given config key."""
|
|
297
293
|
return [
|
|
298
294
|
{"text": get_scheme_label(scheme), "value": scheme}
|
|
299
|
-
for scheme in current_app.config.get(
|
|
295
|
+
for scheme in current_app.config.get(config_key, {})
|
|
300
296
|
]
|
|
301
297
|
|
|
302
|
-
def
|
|
303
|
-
"""Dump
|
|
304
|
-
self._vocabularies[
|
|
298
|
+
def _dump_identifiers(self, vocab_key, config_key):
|
|
299
|
+
"""Dump identifiers vocabulary for a given vocab/config key pair."""
|
|
300
|
+
self._vocabularies[vocab_key] = {
|
|
305
301
|
"relations": self.relation_types(),
|
|
306
302
|
"resource_type": self.linkable_resource_types(),
|
|
307
|
-
"scheme": self.
|
|
303
|
+
"scheme": self._dump_identifier_schemes(config_key),
|
|
308
304
|
}
|
|
309
305
|
|
|
310
|
-
def
|
|
311
|
-
"""Dump
|
|
312
|
-
self.
|
|
313
|
-
|
|
306
|
+
def identifiers(self):
|
|
307
|
+
"""Dump identifiers vocabulary."""
|
|
308
|
+
self._dump_identifiers("identifiers", "RDM_RECORDS_IDENTIFIERS_SCHEMES")
|
|
309
|
+
|
|
310
|
+
def related_identifiers(self):
|
|
311
|
+
"""Dump related identifiers vocabulary."""
|
|
312
|
+
self._dump_identifiers(
|
|
313
|
+
"related_identifiers", "RDM_RECORDS_RELATED_IDENTIFIERS_SCHEMES"
|
|
314
314
|
)
|
|
315
|
-
|
|
315
|
+
|
|
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
|
+
)
|
|
322
|
+
)
|
|
323
|
+
return self._vocabularies["deletion_request_removal_reasons"]
|
|
316
324
|
|
|
317
325
|
def dump(self):
|
|
318
326
|
"""Dump into dict."""
|
|
@@ -325,7 +333,8 @@ class VocabulariesOptions:
|
|
|
325
333
|
self.contributor_roles()
|
|
326
334
|
self.subjects()
|
|
327
335
|
self.identifiers()
|
|
328
|
-
self.
|
|
336
|
+
self.related_identifiers()
|
|
337
|
+
self.deletion_request_removal_reasons()
|
|
329
338
|
# We removed
|
|
330
339
|
# vocabularies["relation_type"] = _dump_relation_types_vocabulary()
|
|
331
340
|
return self._vocabularies
|
|
@@ -542,43 +551,7 @@ def deposit_edit(pid_value, draft=None, draft_files=None, files_locked=True):
|
|
|
542
551
|
)
|
|
543
552
|
published_record = ui_serializer.dump_obj(published_record_result.to_dict())
|
|
544
553
|
|
|
545
|
-
|
|
546
|
-
g.identity, published_record_result._record
|
|
547
|
-
)
|
|
548
|
-
immediate, request = rec_del["immediate_deletion"], rec_del["request_deletion"]
|
|
549
|
-
rd_enabled = immediate.enabled or request.enabled
|
|
550
|
-
rd_valid_user = (
|
|
551
|
-
rec_del["immediate_deletion"].valid_user
|
|
552
|
-
or rec_del["request_deletion"].valid_user
|
|
553
|
-
)
|
|
554
|
-
rd_allowed = immediate.allowed or request.allowed
|
|
555
|
-
existing_request = get_existing_deletion_request(record.get("id"))
|
|
556
|
-
|
|
557
|
-
if rd_allowed:
|
|
558
|
-
record_deletion = {
|
|
559
|
-
"enabled": rd_enabled,
|
|
560
|
-
"valid_user": rd_valid_user,
|
|
561
|
-
"allowed": rd_allowed,
|
|
562
|
-
"recordDeletion": rec_del,
|
|
563
|
-
"checklist": (
|
|
564
|
-
current_app.config["RDM_IMMEDIATE_RECORD_DELETION_CHECKLIST"]
|
|
565
|
-
if immediate.allowed
|
|
566
|
-
else current_app.config["RDM_REQUEST_RECORD_DELETION_CHECKLIST"]
|
|
567
|
-
),
|
|
568
|
-
"context": {
|
|
569
|
-
"files": draft._record.files.count,
|
|
570
|
-
"internalDoi": draft._record.pids["doi"]["provider"] != "external",
|
|
571
|
-
},
|
|
572
|
-
}
|
|
573
|
-
else:
|
|
574
|
-
record_deletion = {
|
|
575
|
-
"enabled": rd_enabled,
|
|
576
|
-
"valid_user": rd_valid_user,
|
|
577
|
-
"allowed": rd_allowed,
|
|
578
|
-
}
|
|
579
|
-
record_deletion["existing_request"] = (
|
|
580
|
-
existing_request["links"]["self_html"] if existing_request else None
|
|
581
|
-
)
|
|
554
|
+
record_deletion = evaluate_record_deletion(published_record_result, g.identity)
|
|
582
555
|
else:
|
|
583
556
|
record_deletion = {}
|
|
584
557
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2019-
|
|
3
|
+
# Copyright (C) 2019-2025 CERN.
|
|
4
4
|
# Copyright (C) 2019-2020 Northwestern University.
|
|
5
5
|
# Copyright (C) 2021 TU Wien.
|
|
6
6
|
# Copyright (C) 2024 Graz University of Technology.
|
|
@@ -123,9 +123,16 @@ def order_entries(files):
|
|
|
123
123
|
|
|
124
124
|
def get_scheme_label(scheme):
|
|
125
125
|
"""Convert backend scheme to frontend label."""
|
|
126
|
-
|
|
126
|
+
configs = [
|
|
127
|
+
current_app.config.get("RDM_RECORDS_IDENTIFIERS_SCHEMES", {}),
|
|
128
|
+
current_app.config.get("RDM_RECORDS_RELATED_IDENTIFIERS_SCHEMES", {}),
|
|
129
|
+
]
|
|
130
|
+
|
|
131
|
+
for cfg in configs:
|
|
132
|
+
if scheme in cfg:
|
|
133
|
+
return cfg[scheme].get("label", scheme)
|
|
127
134
|
|
|
128
|
-
return
|
|
135
|
+
return scheme
|
|
129
136
|
|
|
130
137
|
|
|
131
138
|
def localize_number(value):
|
|
@@ -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
|
|
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
|
|
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
|
-
|
|
164
|
+
record_deletion = evaluate_record_deletion(record, g.identity)
|
|
162
165
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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
|
|
invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/record-deletion/index.html
CHANGED
|
@@ -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
|
-
|
|
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
|
|
|
@@ -774,7 +774,10 @@ export class RDMDepositForm extends Component {
|
|
|
774
774
|
record={record}
|
|
775
775
|
permissions={permissions}
|
|
776
776
|
recordDeletion={recordDeletion}
|
|
777
|
-
options={
|
|
777
|
+
options={
|
|
778
|
+
this.vocabularies.metadata
|
|
779
|
+
.deletion_request_removal_reasons
|
|
780
|
+
}
|
|
778
781
|
disabled={!recordDeletion["allowed"]}
|
|
779
782
|
/>
|
|
780
783
|
</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
|
|
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={
|
|
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 }) => {
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordManagement.js
CHANGED
|
@@ -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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// This file is part of InvenioRDM
|
|
2
|
-
// Copyright (C) 2023 CERN.
|
|
2
|
+
// Copyright (C) 2023-2025 CERN.
|
|
3
3
|
//
|
|
4
4
|
// Invenio App RDM 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.
|
|
@@ -46,7 +46,7 @@ export class AccessRequestTimelineEdit extends Component {
|
|
|
46
46
|
links: { self: selfLink },
|
|
47
47
|
} = request;
|
|
48
48
|
const { secret_link_expiration: secretLinkExpiration } = values;
|
|
49
|
-
if (secretLinkExpiration === null) {
|
|
49
|
+
if (secretLinkExpiration === null || secretLinkExpiration === "") {
|
|
50
50
|
payload["secret_link_expiration"] = "0";
|
|
51
51
|
} else {
|
|
52
52
|
const date = DateTime.fromISO(secretLinkExpiration);
|
|
@@ -76,17 +76,17 @@ export class AccessRequestTimelineEdit extends Component {
|
|
|
76
76
|
initFormValues = () => {
|
|
77
77
|
const {
|
|
78
78
|
request: {
|
|
79
|
-
payload: { secret_link_expiration },
|
|
79
|
+
payload: { secret_link_expiration: secretLinkExpiration },
|
|
80
80
|
},
|
|
81
81
|
} = this.props;
|
|
82
82
|
|
|
83
|
-
if (parseInt(
|
|
83
|
+
if (parseInt(secretLinkExpiration) === 0 || secretLinkExpiration === "NaN") {
|
|
84
84
|
return {
|
|
85
85
|
secret_link_expiration: "",
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
88
|
const dateFromDays = DateTime.now().plus({
|
|
89
|
-
days: parseInt(
|
|
89
|
+
days: parseInt(secretLinkExpiration),
|
|
90
90
|
});
|
|
91
91
|
return {
|
|
92
92
|
secret_link_expiration: dateFromDays.toISODate(),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// This file is part of InvenioRDM
|
|
2
|
-
// Copyright (C) 2023 CERN.
|
|
2
|
+
// Copyright (C) 2023-2025 CERN.
|
|
3
3
|
//
|
|
4
4
|
// Invenio App RDM 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.
|
|
@@ -20,7 +20,7 @@ export class AccessRequestTimelineRead extends Component {
|
|
|
20
20
|
} = this.props;
|
|
21
21
|
|
|
22
22
|
const expirationDate =
|
|
23
|
-
secretLinkExpiration === 0
|
|
23
|
+
parseInt(secretLinkExpiration) === 0
|
|
24
24
|
? i18next.t("Never")
|
|
25
25
|
: DateTime.fromISO(updated)
|
|
26
26
|
.plus({
|
{invenio_app_rdm-14.0.0b1.dev4.dist-info → invenio_app_rdm-14.0.0b1.dev6.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: invenio-app-rdm
|
|
3
|
-
Version: 14.0.0b1.
|
|
3
|
+
Version: 14.0.0b1.dev6
|
|
4
4
|
Summary: Invenio Research Data Management.
|
|
5
5
|
Home-page: https://github.com/inveniosoftware/invenio-app-rdm
|
|
6
6
|
Author: CERN
|
|
@@ -101,6 +101,30 @@ https://inveniordm.docs.cern.ch
|
|
|
101
101
|
Changes
|
|
102
102
|
=======
|
|
103
103
|
|
|
104
|
+
Version v14.0.0b1.dev6 (released 2025-11-13)
|
|
105
|
+
|
|
106
|
+
- tombstone: add deletion policy
|
|
107
|
+
- fix(deletion-request): never disable the existing deletion request link
|
|
108
|
+
- fix(deletion-request): fetch existing request only for valid users
|
|
109
|
+
- fix(deletion-request): removal reasons in landing page data attribute
|
|
110
|
+
- vocab: add deletion_request prefix to removal_reasons vocabulary
|
|
111
|
+
- ui: added related identifiers to vocabulary
|
|
112
|
+
- views: remove unused data attributes from recordManagementMobile
|
|
113
|
+
- requests: ui: only show justification if present
|
|
114
|
+
|
|
115
|
+
Version v14.0.0b1.dev5 (released 2025-10-14)
|
|
116
|
+
|
|
117
|
+
- fix(community-submission): add missing var in side bar template
|
|
118
|
+
- fix(guest-access-request): handle broken expiration date payload value
|
|
119
|
+
* this extra check prevents the request timeline UI from breaking when a
|
|
120
|
+
request payload has a broken value, to make recovery easier
|
|
121
|
+
* also, make eslint happy with a camel case variable name
|
|
122
|
+
- fix(guest-access-request): handle more possible expiration date values
|
|
123
|
+
* when the expiration date gets submitted, the value of the empty input
|
|
124
|
+
field is typically the empty string rather than `null`
|
|
125
|
+
* on the reading side, handle the case that the expiration date is set
|
|
126
|
+
as a string value (since request payloads are generally strings)
|
|
127
|
+
|
|
104
128
|
Version v14.0.0b1.dev4 (released 2025-10-03)
|
|
105
129
|
|
|
106
130
|
- installation: relax invenio-collections dependency requirements
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
invenio_app_rdm/__init__.py,sha256=
|
|
1
|
+
invenio_app_rdm/__init__.py,sha256=dgL01pNwmR9Rbpjou2Z-ABn405Wbwe-iPYd4Ic9HSDQ,704
|
|
2
2
|
invenio_app_rdm/cli.py,sha256=G6QqNU2W6n6ICtTMnpeKFXIsdorncDmVXwwwsGH5F2k,2746
|
|
3
3
|
invenio_app_rdm/config.py,sha256=kxAliLtzXLRysO8qxWxoSt1FhOjuDfzUi8xr40BBIYE,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=
|
|
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,17 +47,17 @@ 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=
|
|
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=jdtme926G943raYhGa-evTK9NfWdyDOWEoONLtb-o2Q,2791
|
|
54
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html,sha256=
|
|
54
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html,sha256=_Wvz_sgOckoj--cQRPWUypVIwrwnxMLxKangM-VyXW8,20671
|
|
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
|
|
58
58
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/restricted_with_doi_tombstone.html,sha256=d2_LrLbWG_vQuR-Gz8P2nrgGuBZONk36kGBMT6iW3uE,987
|
|
59
59
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/search.html,sha256=MdDMzWNIqvZRH-7Blvb9lBdJCA-TK0MXdPpyVWjjBo8,606
|
|
60
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/tombstone.html,sha256=
|
|
60
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/tombstone.html,sha256=QyFJ1q9NsECLpktZxPtR4X62uJ6X8-gymq0g2CKsFwI,2094
|
|
61
61
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/access-form.html,sha256=rLkoNmouAMV8S6fAU3_PtGuqDjFTACniyiosGAKjcN0,2317
|
|
62
62
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html,sha256=QBbRNCBBdE7JJirLrIdCWlhcmR37qh_2QXg7AnTtwdw,576
|
|
63
63
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/contact.html,sha256=czuC-Ec5zJaKzFOaqhz7JqhWiCS3U3NKaQmPw9-rzks,403
|
|
@@ -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=
|
|
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=
|
|
94
|
-
invenio_app_rdm/records_ui/views/filters.py,sha256=
|
|
95
|
-
invenio_app_rdm/records_ui/views/records.py,sha256=
|
|
93
|
+
invenio_app_rdm/records_ui/views/deposits.py,sha256=t0gP0TIreb5RcHRtDd3CIX0yEE-hasUJV6q68fM4veM,24363
|
|
94
|
+
invenio_app_rdm/records_ui/views/filters.py,sha256=hyQ1gsYi3ux5vH4-K85uTk0Se-91BQ5B1uXAI7rcajw,7143
|
|
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=
|
|
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=
|
|
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=
|
|
184
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js,sha256=zpyvVwcOUTDNW_BO0z_gKZOHJfDE7Lf3_4C2rjRknIo,34606
|
|
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=
|
|
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=
|
|
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=
|
|
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
|
|
@@ -228,8 +228,8 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/overridableRegistry/
|
|
|
228
228
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/overridableRegistry/mapping.js,sha256=kRIVYx1pkzq6kNry3M6Cn5hykDkNJAaG7sQ0BdwGSj8,434
|
|
229
229
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/AccessRequestExpiration.js,sha256=rakfZqfulHvuW60i3oTF0ptQvFChDoacPEw5iJkMq9U,1721
|
|
230
230
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/index.js,sha256=FZ_XVB-5V7k_wOYeiI06RXQn3aIeh7beyBhcK5AIvCg,75
|
|
231
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/AccessRequestTimelineEdit.js,sha256=
|
|
232
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/AccessRequestTimelineRead.js,sha256=
|
|
231
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/AccessRequestTimelineEdit.js,sha256=xd0uVbKLC23Y3RHlHDs0NdQ2vq9PNhimPwANkEtLSJ8,5727
|
|
232
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/AccessRequestTimelineRead.js,sha256=CN_IIXwIeMDFxBxsal070uPVrpDH1_Rh7DSJi4hSjXA,1404
|
|
233
233
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/overrides/TimelineFeedHeader.js,sha256=vU_D4F5jabAghjfPtpC3JvErrBVy39Je-PARgqwMD4w,1164
|
|
234
234
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/search/components.js,sha256=HfGLz_FZYePPEnS4fJ9-CVa8BzHPOgRi1_d21FgVrFg,7234
|
|
235
235
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/search/index.js,sha256=xvc8dtcPsTABiSpbt8azBVuZJuhXi39Nj4N8mPiFd40,2190
|
|
@@ -495,9 +495,9 @@ invenio_app_rdm/users_ui/views/__init__.py,sha256=SMdY2NJj9GICfr3Xuok7qdNYVtA2bJ
|
|
|
495
495
|
invenio_app_rdm/users_ui/views/dashboard.py,sha256=iUn2PrODAwb8ugmMosJKAjPhUzjCiWiAWoXQr9RUFuc,1793
|
|
496
496
|
invenio_app_rdm/users_ui/views/ui.py,sha256=W_eXM8dLVIrNHQB2UEh37C9BYoHauft6RyvcDNFHovA,1742
|
|
497
497
|
invenio_app_rdm/utils/files.py,sha256=CruDyO2gDVadSlWEJD-WHpWHeOQ0juh-Ei9jz3D9yjc,3923
|
|
498
|
-
invenio_app_rdm-14.0.0b1.
|
|
499
|
-
invenio_app_rdm-14.0.0b1.
|
|
500
|
-
invenio_app_rdm-14.0.0b1.
|
|
501
|
-
invenio_app_rdm-14.0.0b1.
|
|
502
|
-
invenio_app_rdm-14.0.0b1.
|
|
503
|
-
invenio_app_rdm-14.0.0b1.
|
|
498
|
+
invenio_app_rdm-14.0.0b1.dev6.dist-info/licenses/LICENSE,sha256=AZXFHRrZa5s4m9DV7zZr4bPGTMUvcEPCodeV_AmFI8k,1204
|
|
499
|
+
invenio_app_rdm-14.0.0b1.dev6.dist-info/METADATA,sha256=v1-RyTCgIufGTBL5q17LR9t-ja29-oUUVTx_RUr5Wxc,19409
|
|
500
|
+
invenio_app_rdm-14.0.0b1.dev6.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
|
501
|
+
invenio_app_rdm-14.0.0b1.dev6.dist-info/entry_points.txt,sha256=MwtT1SN5saWOgTYhNb5y0YGA9VGAi0kXN0cykIfsb4U,2405
|
|
502
|
+
invenio_app_rdm-14.0.0b1.dev6.dist-info/top_level.txt,sha256=quZejDUw2vLfKQboNIuVLJ9fxZifdnCT_s2PNf1dfmk,16
|
|
503
|
+
invenio_app_rdm-14.0.0b1.dev6.dist-info/RECORD,,
|
|
File without changes
|
{invenio_app_rdm-14.0.0b1.dev4.dist-info → invenio_app_rdm-14.0.0b1.dev6.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{invenio_app_rdm-14.0.0b1.dev4.dist-info → invenio_app_rdm-14.0.0b1.dev6.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{invenio_app_rdm-14.0.0b1.dev4.dist-info → invenio_app_rdm-14.0.0b1.dev6.dist-info}/top_level.txt
RENAMED
|
File without changes
|