invenio-app-rdm 14.0.0b4.dev3__py2.py3-none-any.whl → 14.0.0b4.dev5__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/audit_logs/audit_logs.py +1 -0
- invenio_app_rdm/administration/moderation/requests.py +1 -1
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/requests_details.html +8 -6
- invenio_app_rdm/config.py +9 -4
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html +14 -6
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/files.html +20 -9
- invenio_app_rdm/records_ui/views/decorators.py +28 -17
- invenio_app_rdm/records_ui/views/records.py +20 -3
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CopyButton.js +10 -10
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js +37 -29
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js +6 -4
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js +19 -3
- invenio_app_rdm/theme/templates/semantic-ui/invenio_previewer/latest_record.html +18 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_previewer/rdm_abstract_previewer.html +30 -0
- invenio_app_rdm/upgrade_scripts/migrate_11_0_to_12_0.py +1 -0
- {invenio_app_rdm-14.0.0b4.dev3.dist-info → invenio_app_rdm-14.0.0b4.dev5.dist-info}/METADATA +14 -1
- {invenio_app_rdm-14.0.0b4.dev3.dist-info → invenio_app_rdm-14.0.0b4.dev5.dist-info}/RECORD +22 -20
- {invenio_app_rdm-14.0.0b4.dev3.dist-info → invenio_app_rdm-14.0.0b4.dev5.dist-info}/WHEEL +1 -1
- {invenio_app_rdm-14.0.0b4.dev3.dist-info → invenio_app_rdm-14.0.0b4.dev5.dist-info}/entry_points.txt +0 -0
- {invenio_app_rdm-14.0.0b4.dev3.dist-info → invenio_app_rdm-14.0.0b4.dev5.dist-info}/licenses/LICENSE +0 -0
- {invenio_app_rdm-14.0.0b4.dev3.dist-info → invenio_app_rdm-14.0.0b4.dev5.dist-info}/top_level.txt +0 -0
invenio_app_rdm/__init__.py
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
# under the terms of the MIT License; see LICENSE file for more details.
|
|
7
7
|
|
|
8
8
|
"""Invenio administration view module for audit logs."""
|
|
9
|
+
|
|
9
10
|
from flask import current_app
|
|
10
11
|
from invenio_administration.views.base import AdminResourceListView
|
|
11
12
|
from invenio_i18n import lazy_gettext as _
|
|
@@ -138,7 +138,7 @@ class ModerationRequestDetailView(AdminResourceDetailView):
|
|
|
138
138
|
g.identity, current_user
|
|
139
139
|
)["avatar"]
|
|
140
140
|
permissions = []
|
|
141
|
-
if "reason" in request
|
|
141
|
+
if "reason" in request.get("payload", {}):
|
|
142
142
|
reason_title = vocabulary_service.read(
|
|
143
143
|
g.identity,
|
|
144
144
|
("removalreasons", request["payload"]["reason"]),
|
|
@@ -29,12 +29,14 @@ under the terms of the MIT License; see LICENSE file for more details.
|
|
|
29
29
|
)
|
|
30
30
|
}}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
{%- if "payload" in invenio_request %}
|
|
33
|
+
<div class="twelve wide column mt-10">
|
|
34
|
+
<p><strong>{{ _("Reason:") }}</strong> {{ invenio_request["payload"]["reason_label"] }}</p>
|
|
35
|
+
{%- if invenio_request["payload"]["comment"] %}
|
|
36
|
+
<p><strong>{{ _("Justification:") }}</strong> {{ invenio_request["payload"]["comment"] }}</p>
|
|
37
|
+
{%- endif %}
|
|
38
|
+
</div>
|
|
39
|
+
{%- endif %}
|
|
38
40
|
|
|
39
41
|
<div class="ui divider"></div>
|
|
40
42
|
{%- endblock request_header %}
|
invenio_app_rdm/config.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Copyright (C) 2019-2025 CERN.
|
|
4
4
|
# Copyright (C) 2019-2020 Northwestern University.
|
|
5
5
|
# Copyright (C) 2021-2025 Graz University of Technology.
|
|
6
|
-
# Copyright (C) 2022-
|
|
6
|
+
# Copyright (C) 2022-2025 KTH Royal Institute of Technology.
|
|
7
7
|
# Copyright (C) 2023 TU Wien
|
|
8
8
|
#
|
|
9
9
|
# Invenio App RDM is free software; you can redistribute it and/or modify it
|
|
@@ -87,6 +87,7 @@ from invenio_rdm_records.services.tasks import StatsRDMReindexTask
|
|
|
87
87
|
from invenio_records_resources.references.entity_resolvers import ServiceResultResolver
|
|
88
88
|
from invenio_requests.notifications.builders import (
|
|
89
89
|
CommentRequestEventCreateNotificationBuilder,
|
|
90
|
+
CommentRequestEventReplyNotificationBuilder,
|
|
90
91
|
)
|
|
91
92
|
from invenio_requests.resources.requests.config import request_error_handlers
|
|
92
93
|
from invenio_requests.services.requests import facets
|
|
@@ -1074,9 +1075,9 @@ COMMUNITIES_SHOW_BROWSE_MENU_ENTRY = False
|
|
|
1074
1075
|
# ===================
|
|
1075
1076
|
|
|
1076
1077
|
RDM_REQUESTS_ROUTES = {
|
|
1077
|
-
"user-dashboard-request-details": "/me/requests/<request_pid_value>",
|
|
1078
|
-
"community-dashboard-request-details": "/communities/<pid_value>/requests/<request_pid_value>",
|
|
1079
|
-
"community-dashboard-invitation-details": "/communities/<pid_value>/invitations/<request_pid_value>",
|
|
1078
|
+
"user-dashboard-request-details": "/me/requests/<uuid:request_pid_value>",
|
|
1079
|
+
"community-dashboard-request-details": "/communities/<pid_value>/requests/<uuid:request_pid_value>",
|
|
1080
|
+
"community-dashboard-invitation-details": "/communities/<pid_value>/invitations/<uuid:request_pid_value>",
|
|
1080
1081
|
}
|
|
1081
1082
|
|
|
1082
1083
|
RDM_COMMUNITIES_ROUTES = {
|
|
@@ -1172,6 +1173,9 @@ PREVIEWER_PREFERENCE = [
|
|
|
1172
1173
|
]
|
|
1173
1174
|
"""Preferred previewers."""
|
|
1174
1175
|
|
|
1176
|
+
PREVIEWER_ABSTRACT_TEMPLATE = "invenio_previewer/rdm_abstract_previewer.html"
|
|
1177
|
+
"""Override the abstract template with an RDM-specific one."""
|
|
1178
|
+
|
|
1175
1179
|
RECORDS_RESOURCES_IMAGE_FORMATS = ["." + ext for ext in IIIF_FORMATS.keys()]
|
|
1176
1180
|
"""RECORDS_RESOURCES_IMAGE_FORMATS must contain all possible IIIF formats to ensure their metadata is extracted."""
|
|
1177
1181
|
|
|
@@ -1404,6 +1408,7 @@ NOTIFICATIONS_BUILDERS = {
|
|
|
1404
1408
|
GrantUserAccessNotificationBuilder.type: GrantUserAccessNotificationBuilder,
|
|
1405
1409
|
# Comment request event
|
|
1406
1410
|
CommentRequestEventCreateNotificationBuilder.type: CommentRequestEventCreateNotificationBuilder,
|
|
1411
|
+
CommentRequestEventReplyNotificationBuilder.type: CommentRequestEventReplyNotificationBuilder,
|
|
1407
1412
|
community_notifications.SubComReqCommentNotificationBuilder.type: community_notifications.SubComReqCommentNotificationBuilder,
|
|
1408
1413
|
community_notifications.SubComInvCommentNotificationBuilder.type: community_notifications.SubComInvCommentNotificationBuilder,
|
|
1409
1414
|
# Community inclusion
|
|
@@ -26,6 +26,9 @@
|
|
|
26
26
|
{%- set title = record_ui["metadata"]["title"] %}
|
|
27
27
|
{%- set metadata = record_ui["metadata"] %}
|
|
28
28
|
|
|
29
|
+
<!-- Shared namespace for files to allow overridability on child blocks while maintaining reference to parent values -->
|
|
30
|
+
{% set files_ns = namespace(preview_file=None, files=[]) %}
|
|
31
|
+
|
|
29
32
|
{%- set can_curate_record = permissions is defined and (permissions.can_edit or permissions.can_review) %}
|
|
30
33
|
|
|
31
34
|
<!-- preview_submission_request is set to true when coming from a community submission request -->
|
|
@@ -288,14 +291,19 @@
|
|
|
288
291
|
aria-label="{{ _('Files') }}">
|
|
289
292
|
{%- if permissions.can_read_files -%}
|
|
290
293
|
{# record has files AND user can see files #}
|
|
291
|
-
{
|
|
292
|
-
{%-
|
|
294
|
+
{# Shared namespace for files (outside blocks) #}
|
|
295
|
+
{%- set files_ns.files = files | order_entries | selectattr("status", "==", "completed") | list %}
|
|
296
|
+
{%- if files_ns.files|length > 0 -%}
|
|
293
297
|
<h2 id="files-heading">{{ _('Files') }}</h2>
|
|
294
|
-
{%- if files|has_previewable_files -%}
|
|
295
|
-
{%-set preview_file = files|select_preview_file(default_preview=record_ui["files"]["default_preview"]) %}
|
|
296
|
-
{
|
|
298
|
+
{%- if files_ns.files|has_previewable_files -%}
|
|
299
|
+
{%-set files_ns.preview_file = files_ns.files|select_preview_file(default_preview=record_ui["files"]["default_preview"]) %}
|
|
300
|
+
{%- block record_file_preview -%}
|
|
301
|
+
{{ preview_file_box(files_ns.preview_file, record_ui["id"], is_preview, record, include_deleted) }}
|
|
302
|
+
{%- endblock record_file_preview -%}
|
|
297
303
|
{%- endif -%}
|
|
298
|
-
{
|
|
304
|
+
{%- block record_file_list -%}
|
|
305
|
+
{{ file_list_box(files_ns.files, record_ui["id"], is_preview, include_deleted, record, permissions) }}
|
|
306
|
+
{%- endblock record_file_list -%}
|
|
299
307
|
{% endif %}
|
|
300
308
|
{% else %}
|
|
301
309
|
{# record has files BUT user does not have permission to see files #}
|
|
@@ -31,8 +31,13 @@
|
|
|
31
31
|
{%- endmacro %}
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
{% macro preview_file_box(file, pid, is_preview, record, include_deleted) %}
|
|
34
|
+
{% macro preview_file_box(file, pid, is_preview, record, include_deleted, display_name=None) %}
|
|
35
35
|
{%- set is_remote_file = file.transfer.type == transfer_types.REMOTE %}
|
|
36
|
+
{%- if display_name %}
|
|
37
|
+
{%- set human_readable_file_name = display_name(file) or file.key %}
|
|
38
|
+
{%- else %}
|
|
39
|
+
{%- set human_readable_file_name = file.key %}
|
|
40
|
+
{%- endif %}
|
|
36
41
|
<div class="ui accordion panel mb-10 {{record.ui.access_status.id}}" href="#files-preview-accordion-panel">
|
|
37
42
|
<h3 class="active title panel-heading {{ record.ui.access_status.id }} m-0">
|
|
38
43
|
<div
|
|
@@ -44,7 +49,7 @@
|
|
|
44
49
|
class="trigger"
|
|
45
50
|
aria-label="{{ _('File preview') }}"
|
|
46
51
|
>
|
|
47
|
-
<span id="preview-file-title">{{
|
|
52
|
+
<span id="preview-file-title">{{ human_readable_file_name }}</span>
|
|
48
53
|
<i class="angle right icon" aria-hidden="true"></i>
|
|
49
54
|
</div>
|
|
50
55
|
</h3>
|
|
@@ -82,9 +87,10 @@ To access its content, please download it and open it locally.') }}
|
|
|
82
87
|
download_endpoint='invenio_app_rdm_records.record_file_download',
|
|
83
88
|
preview_endpoint='invenio_app_rdm_records.record_file_preview',
|
|
84
89
|
is_media=false,
|
|
85
|
-
permissions=None
|
|
90
|
+
permissions=None,
|
|
91
|
+
display_name=None
|
|
86
92
|
) %}
|
|
87
|
-
<table class="ui striped table files fluid {{record.ui.access_status.id}}">
|
|
93
|
+
<table id="file-list-table" class="ui striped table files fluid {{record.ui.access_status.id}}">
|
|
88
94
|
<thead>
|
|
89
95
|
<tr>
|
|
90
96
|
<th>{{_('Name')}}</th>
|
|
@@ -108,6 +114,11 @@ To access its content, please download it and open it locally.') }}
|
|
|
108
114
|
{% for file in files %}
|
|
109
115
|
{% if not file.access.hidden %}
|
|
110
116
|
{%- set is_remote_file = file.transfer.type == transfer_types.REMOTE %}
|
|
117
|
+
{%- if display_name %}
|
|
118
|
+
{%- set human_readable_file_name = display_name(file) or file.key %}
|
|
119
|
+
{%- else %}
|
|
120
|
+
{%- set human_readable_file_name = file.key %}
|
|
121
|
+
{%- endif %}
|
|
111
122
|
{% if is_preview %}
|
|
112
123
|
{%- set file_url_download = url_for(download_endpoint, pid_value=pid, filename=file.key, download=1, preview=1) %}
|
|
113
124
|
{%- set file_url_preview = url_for(preview_endpoint, pid_value=pid, filename=file.key, preview=1, include_deleted=include_deleted_value) %}
|
|
@@ -120,7 +131,7 @@ To access its content, please download it and open it locally.') }}
|
|
|
120
131
|
<tr>
|
|
121
132
|
<td class="ten wide">
|
|
122
133
|
<div>
|
|
123
|
-
<a href="{{ file_url_download }}">{{
|
|
134
|
+
<a href="{{ file_url_download }}">{{ human_readable_file_name }}</a>
|
|
124
135
|
</div>
|
|
125
136
|
{%- if not is_remote_file %}
|
|
126
137
|
<small class="ui text-muted font-tiny">{{ file.checksum or _("Checksum not yet calculated.") }}
|
|
@@ -151,7 +162,7 @@ To access its content, please download it and open it locally.') }}
|
|
|
151
162
|
{%- endmacro %}
|
|
152
163
|
|
|
153
164
|
|
|
154
|
-
{% macro file_list_box(files, pid, is_preview, include_deleted, record, permissions) %}
|
|
165
|
+
{% macro file_list_box(files, pid, is_preview, include_deleted, record, permissions, display_name=None) %}
|
|
155
166
|
{%- set binary_sizes = not config.APP_RDM_DISPLAY_DECIMAL_FILE_SIZES %}
|
|
156
167
|
<div class="ui accordion panel mb-10 {{ record.ui.access_status.id }}" href="#files-list-accordion-panel">
|
|
157
168
|
<h3 class="active title panel-heading {{ record.ui.access_status.id }} m-0">
|
|
@@ -174,13 +185,13 @@ To access its content, please download it and open it locally.') }}
|
|
|
174
185
|
</div>
|
|
175
186
|
{% endif %}
|
|
176
187
|
<div>
|
|
177
|
-
{{ file_list(files, pid, is_preview, include_deleted, record=record,download_endpoint="invenio_app_rdm_records.record_file_download", permissions=permissions) }}
|
|
188
|
+
{{ file_list(files, pid, is_preview, include_deleted, record=record,download_endpoint="invenio_app_rdm_records.record_file_download", permissions=permissions, display_name=display_name) }}
|
|
178
189
|
</div>
|
|
179
190
|
</div>
|
|
180
191
|
</div>
|
|
181
192
|
{%- endmacro %}
|
|
182
193
|
|
|
183
|
-
{% macro media_file_list_box(files, pid, is_preview, include_deleted, record, permissions) %}
|
|
194
|
+
{% macro media_file_list_box(files, pid, is_preview, include_deleted, record, permissions, display_name=None) %}
|
|
184
195
|
{%- set binary_sizes = not config.APP_RDM_DISPLAY_DECIMAL_FILE_SIZES %}
|
|
185
196
|
<div class="ui accordion panel mb-10 {{ record.access.record }}" href="#media-files-preview-accordion-panel">
|
|
186
197
|
<h3 class="active title panel-heading {{ record.access.record }} m-0">
|
|
@@ -204,7 +215,7 @@ To access its content, please download it and open it locally.') }}
|
|
|
204
215
|
</div>
|
|
205
216
|
{% endif %}
|
|
206
217
|
<div>
|
|
207
|
-
{{ file_list(files, pid, is_preview, include_deleted, record=record, with_preview=false, download_endpoint="invenio_app_rdm_records.record_media_file_download", is_media=true, permissions=permissions) }}
|
|
218
|
+
{{ file_list(files, pid, is_preview, include_deleted, record=record, with_preview=false, download_endpoint="invenio_app_rdm_records.record_media_file_download", is_media=true, permissions=permissions, display_name=display_name) }}
|
|
208
219
|
</div>
|
|
209
220
|
</div>
|
|
210
221
|
</div>
|
|
@@ -111,6 +111,30 @@ def pass_is_preview(f):
|
|
|
111
111
|
return view
|
|
112
112
|
|
|
113
113
|
|
|
114
|
+
def pass_is_iframe(f):
|
|
115
|
+
"""Decorate a view to check if it's being requested from inside an iframe."""
|
|
116
|
+
|
|
117
|
+
@wraps(f)
|
|
118
|
+
def view(**kwargs):
|
|
119
|
+
# See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Sec-Fetch-Dest
|
|
120
|
+
header_value = request.headers.get("Sec-Fetch-Dest")
|
|
121
|
+
kwargs["is_iframe"] = header_value == "iframe"
|
|
122
|
+
return f(**kwargs)
|
|
123
|
+
|
|
124
|
+
return view
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
def pass_preview_file(f):
|
|
128
|
+
"""Decorate a view to pass the preview file."""
|
|
129
|
+
|
|
130
|
+
@wraps(f)
|
|
131
|
+
def view(**kwargs):
|
|
132
|
+
kwargs["preview_file"] = request.args.get("preview_file")
|
|
133
|
+
return f(**kwargs)
|
|
134
|
+
|
|
135
|
+
return view
|
|
136
|
+
|
|
137
|
+
|
|
114
138
|
# TODO to be improved as a request arg schema (following the REST views)
|
|
115
139
|
def pass_include_deleted(f):
|
|
116
140
|
"""Decorate a view to check if it's a include deleted."""
|
|
@@ -155,6 +179,7 @@ def pass_record_or_draft(expand=False):
|
|
|
155
179
|
def view(**kwargs):
|
|
156
180
|
pid_value = kwargs.get("pid_value")
|
|
157
181
|
is_preview = kwargs.get("is_preview")
|
|
182
|
+
preview_file = kwargs.get("preview_file")
|
|
158
183
|
include_deleted = kwargs.get("include_deleted", False)
|
|
159
184
|
read_kwargs = {
|
|
160
185
|
"id_": pid_value,
|
|
@@ -163,23 +188,8 @@ def pass_record_or_draft(expand=False):
|
|
|
163
188
|
}
|
|
164
189
|
|
|
165
190
|
if is_preview:
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
except NoResultFound:
|
|
169
|
-
try:
|
|
170
|
-
record = service().read(
|
|
171
|
-
include_deleted=include_deleted, **read_kwargs
|
|
172
|
-
)
|
|
173
|
-
except NoResultFound:
|
|
174
|
-
# If the parent pid is being used we can get the id of the latest record and redirect
|
|
175
|
-
latest_version = service().read_latest(**read_kwargs)
|
|
176
|
-
return redirect(
|
|
177
|
-
url_for(
|
|
178
|
-
"invenio_app_rdm_records.record_detail",
|
|
179
|
-
pid_value=latest_version.id,
|
|
180
|
-
preview=1,
|
|
181
|
-
)
|
|
182
|
-
)
|
|
191
|
+
# read_draft internally handles NoResultFound and renders an error page
|
|
192
|
+
record = service().read_draft(**read_kwargs)
|
|
183
193
|
else:
|
|
184
194
|
try:
|
|
185
195
|
record = service().read(
|
|
@@ -192,6 +202,7 @@ def pass_record_or_draft(expand=False):
|
|
|
192
202
|
url_for(
|
|
193
203
|
"invenio_app_rdm_records.record_detail",
|
|
194
204
|
pid_value=latest_version.id,
|
|
205
|
+
preview_file=preview_file,
|
|
195
206
|
)
|
|
196
207
|
)
|
|
197
208
|
kwargs["record"] = record
|
|
@@ -49,7 +49,9 @@ from .decorators import (
|
|
|
49
49
|
pass_file_item,
|
|
50
50
|
pass_file_metadata,
|
|
51
51
|
pass_include_deleted,
|
|
52
|
+
pass_is_iframe,
|
|
52
53
|
pass_is_preview,
|
|
54
|
+
pass_preview_file,
|
|
53
55
|
pass_record_files,
|
|
54
56
|
pass_record_from_pid,
|
|
55
57
|
pass_record_latest,
|
|
@@ -147,7 +149,9 @@ class PreviewFile:
|
|
|
147
149
|
`invenio_previewer.api.PreviewFile`.
|
|
148
150
|
"""
|
|
149
151
|
|
|
150
|
-
def __init__(
|
|
152
|
+
def __init__(
|
|
153
|
+
self, file_item, record_pid_value, record=None, url=None, is_iframe=False
|
|
154
|
+
):
|
|
151
155
|
"""Create a new PreviewFile."""
|
|
152
156
|
self.file = file_item
|
|
153
157
|
self.data = file_item.data
|
|
@@ -160,6 +164,7 @@ class PreviewFile:
|
|
|
160
164
|
pid_value=record_pid_value,
|
|
161
165
|
filename=self.filename,
|
|
162
166
|
)
|
|
167
|
+
self.is_iframe = is_iframe
|
|
163
168
|
|
|
164
169
|
def is_local(self):
|
|
165
170
|
"""Check if file is local."""
|
|
@@ -185,12 +190,19 @@ class PreviewFile:
|
|
|
185
190
|
|
|
186
191
|
@pass_is_preview
|
|
187
192
|
@pass_include_deleted
|
|
193
|
+
@pass_preview_file
|
|
188
194
|
@pass_record_or_draft(expand=True)
|
|
189
195
|
@pass_record_files
|
|
190
196
|
@pass_record_media_files
|
|
191
197
|
@add_signposting_landing_page
|
|
192
198
|
def record_detail(
|
|
193
|
-
pid_value,
|
|
199
|
+
pid_value,
|
|
200
|
+
record,
|
|
201
|
+
files,
|
|
202
|
+
media_files,
|
|
203
|
+
is_preview=False,
|
|
204
|
+
include_deleted=False,
|
|
205
|
+
preview_file=None,
|
|
194
206
|
):
|
|
195
207
|
"""Record detail page (aka landing page)."""
|
|
196
208
|
files_dict = None if files is None else files.to_dict()
|
|
@@ -202,6 +214,9 @@ def record_detail(
|
|
|
202
214
|
|
|
203
215
|
record_ui = UIJSONSerializer().dump_obj(record.to_dict())
|
|
204
216
|
|
|
217
|
+
if preview_file:
|
|
218
|
+
record_ui["files"]["default_preview"] = preview_file
|
|
219
|
+
|
|
205
220
|
record_deletion = evaluate_record_deletion(record._record, g.identity)
|
|
206
221
|
|
|
207
222
|
# The deletion options are only needed if the user is allowed to delete the given record.
|
|
@@ -347,6 +362,7 @@ def record_export(
|
|
|
347
362
|
@pass_include_deleted
|
|
348
363
|
@pass_record_or_draft(expand=False)
|
|
349
364
|
@pass_file_metadata
|
|
365
|
+
@pass_is_iframe
|
|
350
366
|
def record_file_preview(
|
|
351
367
|
pid_value,
|
|
352
368
|
record=None,
|
|
@@ -354,6 +370,7 @@ def record_file_preview(
|
|
|
354
370
|
file_metadata=None,
|
|
355
371
|
is_preview=False,
|
|
356
372
|
include_deleted=False,
|
|
373
|
+
is_iframe=False,
|
|
357
374
|
**kwargs,
|
|
358
375
|
):
|
|
359
376
|
"""Render a preview of the specified file."""
|
|
@@ -365,7 +382,7 @@ def record_file_preview(
|
|
|
365
382
|
)
|
|
366
383
|
|
|
367
384
|
# Find a suitable previewer
|
|
368
|
-
fileobj = PreviewFile(file_metadata, pid_value, record, url)
|
|
385
|
+
fileobj = PreviewFile(file_metadata, pid_value, record, url, is_iframe)
|
|
369
386
|
# Try to see if specific previewer preference is set for the file
|
|
370
387
|
file_previewer = (file_metadata.data.get("metadata") or {}).get("previewer")
|
|
371
388
|
if file_previewer:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// This file is part of InvenioRDM
|
|
2
|
-
// Copyright (C) 2021 CERN.
|
|
2
|
+
// Copyright (C) 2021-2026 CERN.
|
|
3
3
|
//
|
|
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.
|
|
@@ -26,18 +26,18 @@ class SimpleCopyButton extends React.Component {
|
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
render() {
|
|
29
|
-
const { hoverState,
|
|
29
|
+
const { hoverState, className, uiProps } = this.props;
|
|
30
30
|
|
|
31
31
|
return (
|
|
32
32
|
<Button
|
|
33
|
-
className=
|
|
33
|
+
className={`copy ${className || ""}`}
|
|
34
34
|
basic
|
|
35
|
-
size={size}
|
|
36
35
|
icon="copy"
|
|
37
36
|
aria-label={i18next.t("Copy to clipboard")}
|
|
38
37
|
onClick={this.handleClick} // Handle click to fetch from url if url passed, otherwise use text from props
|
|
39
38
|
onMouseEnter={hoverState}
|
|
40
39
|
onMouseLeave={hoverState}
|
|
40
|
+
{...uiProps}
|
|
41
41
|
/>
|
|
42
42
|
);
|
|
43
43
|
}
|
|
@@ -48,13 +48,15 @@ SimpleCopyButton.propTypes = {
|
|
|
48
48
|
onCopy: PropTypes.func.isRequired,
|
|
49
49
|
url: PropTypes.string,
|
|
50
50
|
hoverState: PropTypes.func,
|
|
51
|
-
|
|
51
|
+
className: PropTypes.string,
|
|
52
|
+
uiProps: PropTypes.object,
|
|
52
53
|
};
|
|
53
54
|
|
|
54
55
|
SimpleCopyButton.defaultProps = {
|
|
55
56
|
hoverState: null,
|
|
56
57
|
url: null,
|
|
57
|
-
|
|
58
|
+
className: "",
|
|
59
|
+
uiProps: {},
|
|
58
60
|
};
|
|
59
61
|
|
|
60
62
|
export class CopyButton extends Component {
|
|
@@ -99,7 +101,7 @@ export class CopyButton extends Component {
|
|
|
99
101
|
};
|
|
100
102
|
|
|
101
103
|
render() {
|
|
102
|
-
const { popUpPosition, text, url,
|
|
104
|
+
const { popUpPosition, text, url, ...uiProps } = this.props;
|
|
103
105
|
const { confirmationPopupMsg, confirmationPopupIsOpen, hoverPopupIsOpen } =
|
|
104
106
|
this.state;
|
|
105
107
|
|
|
@@ -118,7 +120,7 @@ export class CopyButton extends Component {
|
|
|
118
120
|
onCopy={this.onCopy}
|
|
119
121
|
url={url}
|
|
120
122
|
hoverState={this.hoverStateHandler}
|
|
121
|
-
|
|
123
|
+
uiProps={uiProps}
|
|
122
124
|
/>
|
|
123
125
|
}
|
|
124
126
|
/>
|
|
@@ -131,12 +133,10 @@ CopyButton.propTypes = {
|
|
|
131
133
|
popUpPosition: PropTypes.string,
|
|
132
134
|
text: PropTypes.string,
|
|
133
135
|
url: PropTypes.string,
|
|
134
|
-
size: PropTypes.string,
|
|
135
136
|
};
|
|
136
137
|
|
|
137
138
|
CopyButton.defaultProps = {
|
|
138
139
|
popUpPosition: "right center",
|
|
139
140
|
text: "",
|
|
140
141
|
url: "",
|
|
141
|
-
size: "medium",
|
|
142
142
|
};
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js
CHANGED
|
@@ -12,6 +12,7 @@ import { Grid, Icon, Message, Placeholder, List, Divider } from "semantic-ui-rea
|
|
|
12
12
|
import { i18next } from "@translations/invenio_app_rdm/i18next";
|
|
13
13
|
import PropTypes from "prop-types";
|
|
14
14
|
import { withCancel, http, ErrorMessage } from "react-invenio-forms";
|
|
15
|
+
import Overridable from "react-overridable";
|
|
15
16
|
|
|
16
17
|
const deserializeRecord = (record) => ({
|
|
17
18
|
id: record.id,
|
|
@@ -26,37 +27,44 @@ const deserializeRecord = (record) => ({
|
|
|
26
27
|
|
|
27
28
|
const NUMBER_OF_VERSIONS = 5;
|
|
28
29
|
|
|
29
|
-
const RecordVersionItem = ({ item, activeVersion }) => {
|
|
30
|
+
export const RecordVersionItem = ({ item, activeVersion }) => {
|
|
30
31
|
const doi = _get(item.pids, "doi.identifier", "");
|
|
31
32
|
return (
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
33
|
+
<Overridable
|
|
34
|
+
id="InvenioAppRdm.RecordVersionsList.Item.container"
|
|
35
|
+
item={item}
|
|
36
|
+
activeVersion={activeVersion}
|
|
37
|
+
doi={doi}
|
|
38
|
+
>
|
|
39
|
+
<List.Item key={item.id} {...(activeVersion && { className: "version active" })}>
|
|
40
|
+
<List.Content floated="left">
|
|
41
|
+
{activeVersion ? (
|
|
42
|
+
<span className="text-break">
|
|
43
|
+
{i18next.t("Version {{- version}}", { version: item.version })}
|
|
44
|
+
</span>
|
|
45
|
+
) : (
|
|
46
|
+
<a href={`/records/${item.id}`} className="text-break">
|
|
47
|
+
{i18next.t("Version {{- version}}", { version: item.version })}
|
|
48
|
+
</a>
|
|
49
|
+
)}
|
|
50
|
+
|
|
51
|
+
{doi && (
|
|
52
|
+
<a
|
|
53
|
+
href={`https://doi.org/${doi}`}
|
|
54
|
+
className={"doi" + (activeVersion ? " text-muted-darken" : " text-muted")}
|
|
55
|
+
>
|
|
56
|
+
{doi}
|
|
57
|
+
</a>
|
|
58
|
+
)}
|
|
59
|
+
</List.Content>
|
|
60
|
+
|
|
61
|
+
<List.Content floated="right">
|
|
62
|
+
<small className={activeVersion ? "text-muted-darken" : "text-muted"}>
|
|
63
|
+
{item.publication_date}
|
|
64
|
+
</small>
|
|
65
|
+
</List.Content>
|
|
66
|
+
</List.Item>
|
|
67
|
+
</Overridable>
|
|
60
68
|
);
|
|
61
69
|
};
|
|
62
70
|
|
|
@@ -52,10 +52,12 @@ function renderRecordManagement(element) {
|
|
|
52
52
|
const recordVersionsAppDiv = document.getElementById("recordVersions");
|
|
53
53
|
if (recordVersionsAppDiv) {
|
|
54
54
|
ReactDOM.render(
|
|
55
|
-
<
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
<OverridableContext.Provider value={overriddenComponents}>
|
|
56
|
+
<RecordVersionsList
|
|
57
|
+
record={JSON.parse(recordVersionsAppDiv.dataset.record)}
|
|
58
|
+
isPreview={JSON.parse(recordVersionsAppDiv.dataset.preview)}
|
|
59
|
+
/>
|
|
60
|
+
</OverridableContext.Provider>,
|
|
59
61
|
recordVersionsAppDiv
|
|
60
62
|
);
|
|
61
63
|
}
|
|
@@ -16,9 +16,25 @@ $("#record-conceptdoi-badge").on("click", function () {
|
|
|
16
16
|
$("#conceptdoi-modal").modal("show");
|
|
17
17
|
});
|
|
18
18
|
|
|
19
|
-
$("
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
$("#file-list-table")
|
|
20
|
+
.find(".preview-link")
|
|
21
|
+
.on("click", function (event) {
|
|
22
|
+
const fileKey = event.target.dataset.fileKey;
|
|
23
|
+
$("#preview-file-title").text(fileKey);
|
|
24
|
+
|
|
25
|
+
event.preventDefault(); // Prevent default link navigation for back button to navigate the record and not the iframe
|
|
26
|
+
|
|
27
|
+
const newUrl = new URL(window.location);
|
|
28
|
+
newUrl.searchParams.set("preview_file", fileKey); // .set method automatically encodes the value
|
|
29
|
+
window.history.replaceState(null, "", newUrl);
|
|
30
|
+
|
|
31
|
+
// Update iframe with the updated URL to the preview file without adding to browser history
|
|
32
|
+
const previewUrl = $(this).attr("href");
|
|
33
|
+
const iframe = document.getElementById("preview-iframe");
|
|
34
|
+
if (iframe && iframe.contentWindow) {
|
|
35
|
+
iframe.contentWindow.location.replace(previewUrl);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
22
38
|
|
|
23
39
|
// Export dropdown on landing page
|
|
24
40
|
$(".dropdown.export").dropdown({
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
This file is part of Invenio.
|
|
4
|
+
Copyright (C) 2026 CERN.
|
|
5
|
+
|
|
6
|
+
Invenio is free software; you can redistribute it and/or modify it
|
|
7
|
+
under the terms of the MIT License; see LICENSE file for more details.
|
|
8
|
+
#}
|
|
9
|
+
|
|
10
|
+
{% if file.record.data["is_published"] and file.record.data["links"]["latest_html"] and not file.record.data["versions"]["is_latest"] %}
|
|
11
|
+
<div class="ui warning flashed attached manage message pl-10 pr-10">
|
|
12
|
+
<p>
|
|
13
|
+
{% trans link_start=('<a href="' + file.record.data["links"]["latest_html"] + '"><b>')|safe, link_end='</b></a>'|safe %}
|
|
14
|
+
You are viewing a file from an older version of this record. {{ link_start }}View latest record{{ link_end }}.
|
|
15
|
+
{% endtrans %}
|
|
16
|
+
</p>
|
|
17
|
+
</div>
|
|
18
|
+
{% endif %}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
This file is part of Invenio.
|
|
4
|
+
Copyright (C) 2026 CERN.
|
|
5
|
+
|
|
6
|
+
Invenio is free software; you can redistribute it and/or modify it
|
|
7
|
+
under the terms of the MIT License; see LICENSE file for more details.
|
|
8
|
+
#}
|
|
9
|
+
|
|
10
|
+
{%- extends "invenio_previewer/base.html" %}
|
|
11
|
+
|
|
12
|
+
{%- block head %}
|
|
13
|
+
{% for css_bundle in css_bundles %}
|
|
14
|
+
{{ webpack[css_bundle] }}
|
|
15
|
+
{% endfor %}
|
|
16
|
+
{{ webpack['theme.css'] }}
|
|
17
|
+
{%- endblock %}
|
|
18
|
+
|
|
19
|
+
{%- block page_body %}
|
|
20
|
+
{%- if request.args.get('embed') %}
|
|
21
|
+
{%- include 'invenio_previewer/top.html' %}
|
|
22
|
+
{%- endif %}
|
|
23
|
+
{%- if not file.is_iframe %}
|
|
24
|
+
{%- include "invenio_previewer/latest_record.html" %}
|
|
25
|
+
{%- endif %}
|
|
26
|
+
{%- block panel %}{% endblock %}
|
|
27
|
+
{%- if request.args.get('embed') %}
|
|
28
|
+
{%- include 'invenio_previewer/bottom.html' %}
|
|
29
|
+
{%- endif %}
|
|
30
|
+
{%- endblock %}
|
{invenio_app_rdm-14.0.0b4.dev3.dist-info → invenio_app_rdm-14.0.0b4.dev5.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: invenio-app-rdm
|
|
3
|
-
Version: 14.0.0b4.
|
|
3
|
+
Version: 14.0.0b4.dev5
|
|
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,19 @@ https://inveniordm.docs.cern.ch
|
|
|
101
101
|
Changes
|
|
102
102
|
=======
|
|
103
103
|
|
|
104
|
+
Version v14.0.0b4.dev4 (released 2026-01-21)
|
|
105
|
+
|
|
106
|
+
- feat(CopyButton): Pass remaining props to customize UI & functionality
|
|
107
|
+
- refactor(RecordVersionsList): Make version items overridable
|
|
108
|
+
|
|
109
|
+
Version v14.0.0b4.dev4 (released 2026-01-15)
|
|
110
|
+
|
|
111
|
+
- refactor(ui): support custom file display name resolver
|
|
112
|
+
- fix: use UUID type for request identifiers
|
|
113
|
+
- feat(comment-replies): add single threading on comments
|
|
114
|
+
- fix(moderation.requests): handle empty payload key not in request
|
|
115
|
+
- feat(previewer): show message for outdated records
|
|
116
|
+
|
|
104
117
|
Version v14.0.0b4.dev3 (released 2025-12-18)
|
|
105
118
|
|
|
106
119
|
- fix(feed): styling for disabled reply input
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
invenio_app_rdm/__init__.py,sha256=
|
|
1
|
+
invenio_app_rdm/__init__.py,sha256=ekTsVfOct-ISZRXM4igCnTpOnzlxQBGQvoAIMnmtetI,704
|
|
2
2
|
invenio_app_rdm/cli.py,sha256=G6QqNU2W6n6ICtTMnpeKFXIsdorncDmVXwwwsGH5F2k,2746
|
|
3
|
-
invenio_app_rdm/config.py,sha256=
|
|
3
|
+
invenio_app_rdm/config.py,sha256=OI25kBsLhnyYP3SMqLGyUt4iIpc0Xqho1dtRvLCA1L8,53937
|
|
4
4
|
invenio_app_rdm/ext.py,sha256=K7syn5CU5If7yOclFeNOCZX_u5q6VB7NJEQVm41mlng,5286
|
|
5
5
|
invenio_app_rdm/tasks.py,sha256=FyrIQXVuPjms-dNEnLrVmmdwrX_IykJ87gcSNgOR6O0,1373
|
|
6
6
|
invenio_app_rdm/views.py,sha256=SDr9NwZEWQcgT_3GFRYdDf6eUaK9DfnoafIkhUf9nSI,785
|
|
7
7
|
invenio_app_rdm/administration/__init__.py,sha256=8r9LeoE9fNHZSVS5QsCfVhRU7MAiEOWJk9MA3Y--4F8,251
|
|
8
8
|
invenio_app_rdm/administration/audit_logs/__init__.py,sha256=jsBXeKSY5YNn1juF9sFyHPYo_XYpwdP3Dye-de7cMK0,318
|
|
9
|
-
invenio_app_rdm/administration/audit_logs/audit_logs.py,sha256=
|
|
9
|
+
invenio_app_rdm/administration/audit_logs/audit_logs.py,sha256=kbBOH1Jn8zLfntYjy-WAuDdT3A12k8b3fmkhxJNJ16M,2167
|
|
10
10
|
invenio_app_rdm/administration/domains/__init__.py,sha256=Qob5kqjRPxpuSE5yDV2tesN6tmaKp5JcxCxGA8Mrcak,487
|
|
11
11
|
invenio_app_rdm/administration/domains/domains.py,sha256=vafLa-mqkg_tQLjx328E64P_4mksB5kjBlsfunvdatg,5599
|
|
12
12
|
invenio_app_rdm/administration/moderation/__init__.py,sha256=5Jr_Kicz0xsybdyRr48amQDkLlalVbRz9Pq0zGrTqMg,404
|
|
13
|
-
invenio_app_rdm/administration/moderation/requests.py,sha256=
|
|
13
|
+
invenio_app_rdm/administration/moderation/requests.py,sha256=44JD46PqJA42locRgIshXLliC4PPgL6btamoOZm2Qxk,6272
|
|
14
14
|
invenio_app_rdm/administration/records/__init__.py,sha256=WpNHBm_Mk9FF8GzvrXWjL79URMSgBhpqgxvrLXNooqg,434
|
|
15
15
|
invenio_app_rdm/administration/records/records.py,sha256=6nVyDwYLdipIDSnlXMRe6JuiIIo5CaVojeNJCOlTPjI,5371
|
|
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=l9YnIK3pKDKtyoDpc7P5IZMnv617VwdiF4VZAYvknEo,3265
|
|
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
|
|
@@ -51,7 +51,7 @@ invenio_app_rdm/records_ui/utils.py,sha256=MGB4YAWrrE5Wu4RhbT2F5SAfVkm3PLe-jzD1B
|
|
|
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=aBdqSLQMi2nKKoC0dt3c7B8xluy3eE6l9j-M-rAa5Zc,3121
|
|
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=th4UkmgB8-q65Os_hTJfgAyD6do3Koz_VoHd2U6h06w,21396
|
|
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
|
|
@@ -84,15 +84,15 @@ invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details
|
|
|
84
84
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/creatibutors.html,sha256=N53nwtlEZjxweCx70qFJa1s6uL1pPSzWZgk8p1vodE4,4277
|
|
85
85
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/detail.html,sha256=Ur6pFoCiL8K02X7D6QNgtMoS7eMiDo7BhExKx9fMke8,11052
|
|
86
86
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/doi.html,sha256=32Yknq5PgvJpYg9Z3Brod9wui9yrpDNE11_esG-20jw,1656
|
|
87
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/files.html,sha256=
|
|
87
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/files.html,sha256=wVmtCCyIJxB3h_Xs20-Cc2drVKOW6Z2g9t4KCHjZ1Qc,10137
|
|
88
88
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/locations.html,sha256=27-KyPqb05pu-yRXHvxCgZWRSi5bFP6xf7XBn91sbeA,1741
|
|
89
89
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/stats_popup.html,sha256=5SVzfIS15Aro2Itd2BiaLbMXm0cvvwk6ZCdYjuSwhBw,625
|
|
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
|
-
invenio_app_rdm/records_ui/views/decorators.py,sha256=
|
|
92
|
+
invenio_app_rdm/records_ui/views/decorators.py,sha256=t4lBAYfdzSKchd4wEA_yZasI4011vifxcthKXMIO7NY,16397
|
|
93
93
|
invenio_app_rdm/records_ui/views/deposits.py,sha256=vckL56fcyOFcrQ0YSxPtx-jk7AAwzKQrxjIrXcIVSyQ,24636
|
|
94
94
|
invenio_app_rdm/records_ui/views/filters.py,sha256=dtAjJ5NmPvxEYZJeldW5oxrj0D0AYXobNelii57Tfdo,7455
|
|
95
|
-
invenio_app_rdm/records_ui/views/records.py,sha256=
|
|
95
|
+
invenio_app_rdm/records_ui/views/records.py,sha256=tQ6Gog1mfcaDd4hHa4HQwaNAHSJlUHfBIvdi54HgA-o,18504
|
|
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
|
|
@@ -175,7 +175,7 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSear
|
|
|
175
175
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/components.js,sha256=k26jDWt0BWIrhnuGF-t0iNmudXdniO8YPkquF8VK7gk,271
|
|
176
176
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/index.js,sha256=8Ev-tdRIWl2HhB7Y8YR30dXK-A4ePyShOsb9A9X-GhQ,2193
|
|
177
177
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CompactStats.js,sha256=_QNFYvYQJQgAjAWidxxGTX5YxAGhIUvZnOMxAKBnYxA,1374
|
|
178
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CopyButton.js,sha256=
|
|
178
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CopyButton.js,sha256=Ie79IcUP6zd9YNksD5nMAQo4xg5riuKFqW66ojZSJso,3611
|
|
179
179
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayPartOfCommunities.js,sha256=bSmhuwSWk4CW80mqa4ZZbjfa-_NsiJ1IxQ9veDy6sAM,2751
|
|
180
180
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayVerifiedCommunity.js,sha256=m3rT8jJ3440ZX22zZog8bHatWltYXwvmw_tu6tJUM9k,1506
|
|
181
181
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/FileModificationUntil.js,sha256=3GtEW_IaP6TBKzMBBX1eYD-DuJbM31ps-dbjdgpLfc8,1254
|
|
@@ -198,10 +198,10 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageB
|
|
|
198
198
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCitationField.js,sha256=XYfXsQejNeC1R0spndn0qDrqvz6w3bj5UlPEIgT4U24,4757
|
|
199
199
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesList.js,sha256=w9iPhdQWJDpc9eXUFfUMqFp1GOjLHriAuVzAgIysHTs,5217
|
|
200
200
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordManagement.js,sha256=cViV1fQ_1xvd_JUV3toffX-nuWgkKiy7WGtZcg5tV5Y,4297
|
|
201
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js,sha256=
|
|
201
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js,sha256=2wdyGkDYleScMDfWhUT-DS2_cF1l-aONrRhkrw7qZRs,7416
|
|
202
202
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/access.js,sha256=FVcpKl22zMi1GssbLZAj1pO98c6Em_wg_yBIdfBJor0,938
|
|
203
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js,sha256=
|
|
204
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js,sha256=
|
|
203
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js,sha256=EPF96wIjBwDOzaC6Gsm_gBEb4ut5EiwMccvqZh_yPh0,5454
|
|
204
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js,sha256=E-k0eKbkGZ7aF4eVojQmgWymSIzOzPHdysPLe2Kfwek,3837
|
|
205
205
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageDefaultBrandingAction/ManageDefaultBrandingAction.js,sha256=ti3NaV7kZ0cVl82Aj3l4b7cLjDiKmI2qGsjWEOKxLU0,3529
|
|
206
206
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunitiesModal.js,sha256=G9OwLxKqX73w_7D1k7BHOzMeLmokowMfJQg5Km7J8RA,1797
|
|
207
207
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunitiesSearch.js,sha256=8kiiICVaJ0m2K_5cPbiHo8tN8Q_AweSmlBIkx-aJ-dA,2753
|
|
@@ -410,6 +410,8 @@ invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/versioning.sv.h
|
|
|
410
410
|
invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/macros/records_list.html,sha256=46so8aObvJUSCTiEx1TXV53pIjONqIK2DcCI_3HbyXA,1183
|
|
411
411
|
invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/settings/notifications.html,sha256=7KfuuIbYtZT7DtxkBhP9U02JxEOgrAKO9AC1SDVY3uo,515
|
|
412
412
|
invenio_app_rdm/theme/templates/semantic-ui/invenio_communities/default_static_page.html,sha256=X27Jhk2Z3h1JJY61a6WXhu8AtEDIYavUNprhG5t8Oy8,722
|
|
413
|
+
invenio_app_rdm/theme/templates/semantic-ui/invenio_previewer/latest_record.html,sha256=i38qVH_xZkONZeswAiCkJ4GZLHEPEYtWH6VNBPxP_2M,745
|
|
414
|
+
invenio_app_rdm/theme/templates/semantic-ui/invenio_previewer/rdm_abstract_previewer.html,sha256=0I_BOGNSvh8g-9PMC_7fR6j1u50hIlJJxCo0XCtjvpw,808
|
|
413
415
|
invenio_app_rdm/theme/templates/themes/default/invenio_app_rdm/header.html,sha256=pPNIT9J_C4omwWuZWrAdq8rQANLaQmXeeKBmpAMxFtg,5910
|
|
414
416
|
invenio_app_rdm/theme/templates/themes/default/invenio_app_rdm/site_footer.html,sha256=D8rFpAzWZ05hUj7kbBqvi-PqLRnEJhtL7UPYy5u0jHA,1644
|
|
415
417
|
invenio_app_rdm/translations/messages.pot,sha256=6Zr8VhWZxAw55EJtmiET3GRkE-9jsQ6X9iuXaasxI3A,48847
|
|
@@ -475,7 +477,7 @@ invenio_app_rdm/upgrade_scripts/__init__.py,sha256=AlBBeGDr7RmylFE1ynJhFylaAlINQ
|
|
|
475
477
|
invenio_app_rdm/upgrade_scripts/fix_migrated_records_from_1_0_to_2_0.py,sha256=SCUdvuQYGnjWLfm6Kd-f3swlOrxSNN3kO36OVEOkN7g,1760
|
|
476
478
|
invenio_app_rdm/upgrade_scripts/fix_migrated_records_from_8_0_to_9_0.py,sha256=p6qTNjUMAJ-0tnrSwar7jtDX_sg6V9kFj7fzH-wrbkY,2769
|
|
477
479
|
invenio_app_rdm/upgrade_scripts/migrate_10_0_to_11_0.py,sha256=TX6FCWXY4qM4z7IYzDO5qaMTheo3zAjFrmR1sXaEf4U,1333
|
|
478
|
-
invenio_app_rdm/upgrade_scripts/migrate_11_0_to_12_0.py,sha256=
|
|
480
|
+
invenio_app_rdm/upgrade_scripts/migrate_11_0_to_12_0.py,sha256=U3h09wf8Eb3TL3FdYDJeV2SauyaVwh3xO9pBhZQID-U,6942
|
|
479
481
|
invenio_app_rdm/upgrade_scripts/migrate_12_0_to_13_0.py,sha256=pyO68jyGyKXVTcja8tpi2XgNx_FxXk7JhgDTV-wx3xM,8205
|
|
480
482
|
invenio_app_rdm/upgrade_scripts/migrate_13_0_to_14_0.py,sha256=vSixZ-Md5esqabBNbWwN8mjEWSsMv0IroHA2gqy_GJ8,11247
|
|
481
483
|
invenio_app_rdm/upgrade_scripts/migrate_1_0_records_to_2_0.py,sha256=mRDv_Ao5zMgA6X0aogMfvhspO1CIApKtDW_ziJp5fjI,3325
|
|
@@ -498,9 +500,9 @@ invenio_app_rdm/users_ui/views/__init__.py,sha256=SMdY2NJj9GICfr3Xuok7qdNYVtA2bJ
|
|
|
498
500
|
invenio_app_rdm/users_ui/views/dashboard.py,sha256=iUn2PrODAwb8ugmMosJKAjPhUzjCiWiAWoXQr9RUFuc,1793
|
|
499
501
|
invenio_app_rdm/users_ui/views/ui.py,sha256=W_eXM8dLVIrNHQB2UEh37C9BYoHauft6RyvcDNFHovA,1742
|
|
500
502
|
invenio_app_rdm/utils/files.py,sha256=CruDyO2gDVadSlWEJD-WHpWHeOQ0juh-Ei9jz3D9yjc,3923
|
|
501
|
-
invenio_app_rdm-14.0.0b4.
|
|
502
|
-
invenio_app_rdm-14.0.0b4.
|
|
503
|
-
invenio_app_rdm-14.0.0b4.
|
|
504
|
-
invenio_app_rdm-14.0.0b4.
|
|
505
|
-
invenio_app_rdm-14.0.0b4.
|
|
506
|
-
invenio_app_rdm-14.0.0b4.
|
|
503
|
+
invenio_app_rdm-14.0.0b4.dev5.dist-info/licenses/LICENSE,sha256=AZXFHRrZa5s4m9DV7zZr4bPGTMUvcEPCodeV_AmFI8k,1204
|
|
504
|
+
invenio_app_rdm-14.0.0b4.dev5.dist-info/METADATA,sha256=0pdeo8AG-6J46a_Oj6FpB2wY4z6GVbn0MydocNwGWlc,22534
|
|
505
|
+
invenio_app_rdm-14.0.0b4.dev5.dist-info/WHEEL,sha256=Q6xS052dXadQWXcEVKSI037R6NoyqhUlJ5BcYz2iMP4,110
|
|
506
|
+
invenio_app_rdm-14.0.0b4.dev5.dist-info/entry_points.txt,sha256=MwtT1SN5saWOgTYhNb5y0YGA9VGAi0kXN0cykIfsb4U,2405
|
|
507
|
+
invenio_app_rdm-14.0.0b4.dev5.dist-info/top_level.txt,sha256=quZejDUw2vLfKQboNIuVLJ9fxZifdnCT_s2PNf1dfmk,16
|
|
508
|
+
invenio_app_rdm-14.0.0b4.dev5.dist-info/RECORD,,
|
{invenio_app_rdm-14.0.0b4.dev3.dist-info → invenio_app_rdm-14.0.0b4.dev5.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{invenio_app_rdm-14.0.0b4.dev3.dist-info → invenio_app_rdm-14.0.0b4.dev5.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{invenio_app_rdm-14.0.0b4.dev3.dist-info → invenio_app_rdm-14.0.0b4.dev5.dist-info}/top_level.txt
RENAMED
|
File without changes
|