invenio-app-rdm 14.0.0b0.dev1__py2.py3-none-any.whl → 14.0.0b0.dev2__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/records/records.py +9 -7
- invenio_app_rdm/config.py +1 -0
- invenio_app_rdm/fixtures/pages.py +5 -2
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html +2 -2
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/communities.html +8 -7
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/external_resources.html +5 -6
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/licenses.html +9 -13
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html +1 -2
- invenio_app_rdm/records_ui/views/decorators.py +2 -1
- invenio_app_rdm/records_ui/views/deposits.py +10 -3
- invenio_app_rdm/records_ui/views/records.py +3 -11
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewRecentChanges.js +8 -8
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/RevisionsDiffViewer.js +14 -16
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js +1 -2
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js +1 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagement.js +2 -2
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCitationField.js +15 -14
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesListModal.js +4 -4
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js +38 -40
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js +5 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/licenses.less +5 -3
- invenio_app_rdm/upgrade_scripts/migrate_12_0_to_13_0.py +76 -4
- {invenio_app_rdm-14.0.0b0.dev1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/METADATA +21 -2
- {invenio_app_rdm-14.0.0b0.dev1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/RECORD +29 -29
- {invenio_app_rdm-14.0.0b0.dev1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/WHEEL +0 -0
- {invenio_app_rdm-14.0.0b0.dev1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/entry_points.txt +0 -0
- {invenio_app_rdm-14.0.0b0.dev1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/licenses/LICENSE +0 -0
- {invenio_app_rdm-14.0.0b0.dev1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/top_level.txt +0 -0
invenio_app_rdm/__init__.py
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2023-
|
|
3
|
+
# Copyright (C) 2023-2025 CERN.
|
|
4
4
|
# Copyright (C) 2023 Graz University of Technology.
|
|
5
5
|
# Copyright (C) 2024 KTH Royal Institute of Technology.
|
|
6
6
|
#
|
|
7
|
-
#
|
|
7
|
+
# Invenio-app-rdm is free software; you can redistribute it and/or
|
|
8
8
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
9
9
|
# details.
|
|
10
10
|
|
|
11
|
-
"""Invenio administration
|
|
11
|
+
"""Invenio administration records and drafts list views."""
|
|
12
12
|
|
|
13
13
|
from functools import partial
|
|
14
14
|
|
|
@@ -19,7 +19,7 @@ from invenio_search_ui.searchconfig import search_app_config
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class RecordAdminListView(AdminResourceListView):
|
|
22
|
-
"""Configuration for
|
|
22
|
+
"""Configuration for the records list view."""
|
|
23
23
|
|
|
24
24
|
api_endpoint = "/records"
|
|
25
25
|
name = "records"
|
|
@@ -27,10 +27,11 @@ class RecordAdminListView(AdminResourceListView):
|
|
|
27
27
|
search_request_headers = {"Accept": "application/vnd.inveniordm.v1+json"}
|
|
28
28
|
title = _("Records")
|
|
29
29
|
menu_label = _("Records")
|
|
30
|
-
category = _("
|
|
30
|
+
category = _("Deposits")
|
|
31
31
|
icon = "file"
|
|
32
32
|
template = "invenio_app_rdm/administration/records/records.html"
|
|
33
33
|
extension_name = "invenio-rdm-records"
|
|
34
|
+
order = 1
|
|
34
35
|
|
|
35
36
|
display_search = True
|
|
36
37
|
display_delete = False
|
|
@@ -103,7 +104,7 @@ class RecordAdminListView(AdminResourceListView):
|
|
|
103
104
|
|
|
104
105
|
|
|
105
106
|
class DraftAdminListView(AdminResourceListView):
|
|
106
|
-
"""Configuration for
|
|
107
|
+
"""Configuration for the drafts list view."""
|
|
107
108
|
|
|
108
109
|
api_endpoint = "/user/records"
|
|
109
110
|
name = "drafts"
|
|
@@ -111,10 +112,11 @@ class DraftAdminListView(AdminResourceListView):
|
|
|
111
112
|
search_request_headers = {"Accept": "application/vnd.inveniordm.v1+json"}
|
|
112
113
|
title = _("Drafts")
|
|
113
114
|
menu_label = _("Drafts")
|
|
114
|
-
category = _("
|
|
115
|
+
category = _("Deposits")
|
|
115
116
|
icon = "upload"
|
|
116
117
|
template = "invenio_app_rdm/administration/records/drafts.html"
|
|
117
118
|
extension_name = "invenio-rdm-records"
|
|
119
|
+
order = 2
|
|
118
120
|
|
|
119
121
|
display_search = True
|
|
120
122
|
display_delete = False
|
invenio_app_rdm/config.py
CHANGED
|
@@ -1181,6 +1181,7 @@ PAGES_DEFAULT_TEMPLATE = "invenio_app_rdm/default_static_page.html"
|
|
|
1181
1181
|
|
|
1182
1182
|
PAGES_TEMPLATES = [
|
|
1183
1183
|
("invenio_app_rdm/default_static_page.html", "Default"),
|
|
1184
|
+
("invenio_communities/default_static_page.html", "Community"),
|
|
1184
1185
|
]
|
|
1185
1186
|
"""List of available templates for pages."""
|
|
1186
1187
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2022-
|
|
3
|
+
# Copyright (C) 2022-2025 CERN.
|
|
4
4
|
# Copyright (C) 2025 University of Münster.
|
|
5
5
|
#
|
|
6
6
|
# Invenio App RDM is free software; you can redistribute it and/or modify
|
|
@@ -68,6 +68,9 @@ class StaticPages(FixtureMixin):
|
|
|
68
68
|
),
|
|
69
69
|
"lang": lang[0],
|
|
70
70
|
"description": entry.get("description", ""),
|
|
71
|
-
"template_name":
|
|
71
|
+
"template_name": entry.get(
|
|
72
|
+
"template_name",
|
|
73
|
+
current_app.config["PAGES_DEFAULT_TEMPLATE"],
|
|
74
|
+
),
|
|
72
75
|
}
|
|
73
76
|
current_pages_service.create(system_identity, data)
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{#
|
|
2
|
-
Copyright (C) 2020-
|
|
2
|
+
Copyright (C) 2020-2025 CERN.
|
|
3
3
|
Copyright (C) 2020 Northwestern University.
|
|
4
4
|
Copyright (C) 2021 New York University.
|
|
5
5
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
it under the terms of the MIT License; see LICENSE file for more details.
|
|
8
8
|
#}
|
|
9
9
|
|
|
10
|
-
<div id="recordCitation" data-record='{{ record_ui | tojson }}'
|
|
10
|
+
<div id="recordCitation" data-record-links='{{ record_ui.links | tojson }}'
|
|
11
11
|
data-styles='{{ config.get("RDM_CITATION_STYLES") | tojson }}'
|
|
12
12
|
data-defaultstyle='{{ config.get("RDM_CITATION_STYLES_DEFAULT") | tojson }}'
|
|
13
13
|
data-include-deleted='{{ include_deleted | tojson }}'>
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
<div
|
|
2
2
|
id="sidebar-communities-manage"
|
|
3
3
|
data-user-communities-memberships='{{ user_communities_memberships | tojson }}'
|
|
4
|
-
data-record-community-endpoint=
|
|
5
|
-
data-record-community-search-endpoint=
|
|
6
|
-
data-record-
|
|
7
|
-
data-
|
|
8
|
-
data-record-community-search-config='{{
|
|
9
|
-
data-
|
|
4
|
+
data-record-community-endpoint='{{ record_ui["links"]["communities"] }}'
|
|
5
|
+
data-record-community-search-endpoint='{{ record_ui["links"]["communities-suggestions"] }}'
|
|
6
|
+
data-record-community-search-config='{{ search_app_rdm_record_communities_config(app_id="InvenioAppRdm.RecordCommunitiesSuggestions", endpoint=record_ui["links"]["communities-suggestions"]) | tojson }}'
|
|
7
|
+
data-record-user-community-search-endpoint='{{ record_ui["links"]["user-communities-suggestions"] }}'
|
|
8
|
+
data-record-user-community-search-config='{{ search_app_rdm_record_user_communities_config(app_id="InvenioAppRdm.RecordUserCommunitiesSuggestions", endpoint=record_ui["links"]["communities-suggestions"]) | tojson }}'
|
|
9
|
+
data-pending-communities-search-config='{{ search_app_rdm_record_requests_config(app_id="InvenioAppRdm.RecordRequests", endpoint=record_ui["links"]["requests"]) | tojson }}'
|
|
10
10
|
data-permissions='{{ permissions | tojson }}'
|
|
11
|
-
|
|
11
|
+
data-record='{{ record_ui | tojson }}'
|
|
12
|
+
class='sidebar-container'
|
|
12
13
|
>
|
|
13
14
|
|
|
14
15
|
<h2 class="ui medium top attached header">{{ _("Communities") }}</h2>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{#
|
|
2
|
-
Copyright (C) 2020 CERN.
|
|
2
|
+
Copyright (C) 2020-2025 CERN.
|
|
3
3
|
|
|
4
4
|
Invenio RDM Records is free software; you can redistribute it and/or modify
|
|
5
5
|
it under the terms of the MIT License; see LICENSE file for more details.
|
|
@@ -7,15 +7,14 @@ it under the terms of the MIT License; see LICENSE file for more details.
|
|
|
7
7
|
{%- if external_resources -%}
|
|
8
8
|
<div class="sidebar-container">
|
|
9
9
|
<h2 class="ui small top attached header">{{ _('External resources')}}</h2>
|
|
10
|
-
<
|
|
10
|
+
<dl id="external-resource" aria-label="{{ _('External resources') }}" class="ui bottom attached segment rdm-sidebar external resource details-list">
|
|
11
11
|
|
|
12
12
|
{# dynamically create the list of external resources #}
|
|
13
13
|
{%- for section, external_resources in external_resources | groupby("content.section") -%}
|
|
14
|
-
<
|
|
15
|
-
<ul class="ui
|
|
14
|
+
<dt class="ui tiny header">{{ section }}</dt>
|
|
15
|
+
<ul class="ui list no-bullet m-0">
|
|
16
16
|
|
|
17
17
|
{%- for resource in external_resources -%}
|
|
18
|
-
|
|
19
18
|
{%- if resource -%}
|
|
20
19
|
{%- if resource.template -%}
|
|
21
20
|
{# It's up to the template to render the `resource` as it wishes #}
|
|
@@ -50,7 +49,7 @@ it under the terms of the MIT License; see LICENSE file for more details.
|
|
|
50
49
|
{%- endfor -%}
|
|
51
50
|
</ul>
|
|
52
51
|
{%- endfor -%}
|
|
53
|
-
</
|
|
52
|
+
</dl>
|
|
54
53
|
</div>
|
|
55
54
|
{%- endif -%}
|
|
56
55
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{#
|
|
2
|
-
Copyright (C) 2020 CERN.
|
|
2
|
+
Copyright (C) 2020-2025 CERN.
|
|
3
3
|
Copyright (C) 2020 Northwestern University.
|
|
4
4
|
Copyright (C) 2021 Graz University of Technology.
|
|
5
5
|
Copyright (C) 2021 New York University.
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
<div class="sidebar-container">
|
|
26
26
|
<h2 class="ui medium top attached header mt-0">{{ _('Rights') }}</h2>
|
|
27
27
|
<div id="licenses" class="ui segment bottom attached rdm-sidebar">
|
|
28
|
+
<dl class="details-list">
|
|
28
29
|
{% if rights %}
|
|
29
|
-
<
|
|
30
|
-
<ul class="details-list m-0 p-0">
|
|
30
|
+
<dt class="ui tiny header">License</dt>
|
|
31
31
|
{%- for license in rights -%}
|
|
32
|
-
<
|
|
32
|
+
<dd id="license-{{ license.id }}-{{ loop.index }}" class="has-popup">
|
|
33
33
|
<div id="title-{{ license.id }}-{{ loop.index }}"
|
|
34
34
|
class="license clickable"
|
|
35
35
|
tabindex="0"
|
|
@@ -45,7 +45,6 @@
|
|
|
45
45
|
alt="{{ license.id }} icon"/>
|
|
46
46
|
</span>
|
|
47
47
|
{% endif %}
|
|
48
|
-
|
|
49
48
|
<span class="title-text">
|
|
50
49
|
{{ license.title_l10n }}
|
|
51
50
|
</span>
|
|
@@ -57,7 +56,6 @@
|
|
|
57
56
|
>
|
|
58
57
|
<i role="button" tabindex="0" class="close icon text-muted"
|
|
59
58
|
aria-label="{{ _('Close') }}"></i>
|
|
60
|
-
|
|
61
59
|
<div id="license-description-{{ loop.index }}" class="description">
|
|
62
60
|
<span class="text-muted">
|
|
63
61
|
{{ license.description_l10n or _('No further description.') }}
|
|
@@ -65,18 +63,16 @@
|
|
|
65
63
|
{{ license_link(license) }}
|
|
66
64
|
</div>
|
|
67
65
|
</div>
|
|
68
|
-
</
|
|
66
|
+
</dd>
|
|
69
67
|
{% endfor %}
|
|
70
|
-
|
|
71
|
-
</ul>
|
|
72
68
|
{% endif %}
|
|
73
69
|
{% if copyrights %}
|
|
74
|
-
<
|
|
75
|
-
<
|
|
70
|
+
<dt class="ui tiny header">Copyright</dt>
|
|
71
|
+
<dd id="copyrights">
|
|
76
72
|
{{ copyrights }}
|
|
77
|
-
</
|
|
73
|
+
</dd>
|
|
78
74
|
{% endif %}
|
|
75
|
+
</dl>
|
|
79
76
|
</div>
|
|
80
|
-
|
|
81
77
|
</div>
|
|
82
78
|
{% endif %}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{#
|
|
2
|
-
Copyright (C) 2022-
|
|
2
|
+
Copyright (C) 2022-2025 CERN.
|
|
3
3
|
|
|
4
4
|
Invenio RDM Records is free software; you can redistribute it and/or modify
|
|
5
5
|
it under the terms of the MIT License; see LICENSE file for more details.
|
|
@@ -17,7 +17,6 @@ it under the terms of the MIT License; see LICENSE file for more details.
|
|
|
17
17
|
data-is-draft="{{ is_draft | tojson }}"
|
|
18
18
|
data-is-preview-submission-request="{{ is_preview_submission_request | tojson }}"
|
|
19
19
|
data-current-user-id="{{ current_user.id }}"
|
|
20
|
-
data-record-owner-id='{{ record_owner_id }}'
|
|
21
20
|
data-groups-enabled='{{ config.USERS_RESOURCES_GROUPS_ENABLED | tojson }}'
|
|
22
21
|
{% if config.RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE %}
|
|
23
22
|
{% include config.RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE %}
|
|
@@ -358,7 +358,8 @@ def pass_draft_community(f):
|
|
|
358
358
|
comid = request.args.get("community")
|
|
359
359
|
if comid:
|
|
360
360
|
community = current_communities.service.read(id_=comid, identity=g.identity)
|
|
361
|
-
kwargs["community"] =
|
|
361
|
+
kwargs["community"] = community
|
|
362
|
+
kwargs["community_ui"] = UICommunityJSONSerializer().dump_obj(
|
|
362
363
|
community.to_dict()
|
|
363
364
|
)
|
|
364
365
|
|
|
@@ -15,6 +15,9 @@ from copy import deepcopy
|
|
|
15
15
|
|
|
16
16
|
from flask import current_app, g, redirect
|
|
17
17
|
from flask_login import login_required
|
|
18
|
+
from invenio_communities.communities.resources.serializer import (
|
|
19
|
+
UICommunityJSONSerializer,
|
|
20
|
+
)
|
|
18
21
|
from invenio_communities.errors import CommunityDeletedError
|
|
19
22
|
from invenio_communities.proxies import current_communities
|
|
20
23
|
from invenio_communities.views.communities import render_community_theme_template
|
|
@@ -446,7 +449,7 @@ def new_record():
|
|
|
446
449
|
@login_required
|
|
447
450
|
@no_cache_response
|
|
448
451
|
@pass_draft_community
|
|
449
|
-
def deposit_create(community=None):
|
|
452
|
+
def deposit_create(community=None, community_ui=None):
|
|
450
453
|
"""Create a new deposit."""
|
|
451
454
|
can_create = current_rdm_records.records_service.check_permission(
|
|
452
455
|
g.identity, "create"
|
|
@@ -456,7 +459,7 @@ def deposit_create(community=None):
|
|
|
456
459
|
|
|
457
460
|
community_theme = None
|
|
458
461
|
if community is not None:
|
|
459
|
-
community_theme =
|
|
462
|
+
community_theme = community_ui.get("theme", {})
|
|
460
463
|
|
|
461
464
|
community_use_jinja_header = bool(community_theme)
|
|
462
465
|
dashboard_routes = current_app.config["APP_RDM_USER_DASHBOARD_ROUTES"]
|
|
@@ -479,9 +482,10 @@ def deposit_create(community=None):
|
|
|
479
482
|
searchbar_config=dict(searchUrl=get_search_url()),
|
|
480
483
|
record=new_record(),
|
|
481
484
|
community=community,
|
|
485
|
+
community_ui=community_ui,
|
|
482
486
|
community_use_jinja_header=community_use_jinja_header,
|
|
483
487
|
files=dict(default_preview=None, entries=[], links={}),
|
|
484
|
-
preselectedCommunity=
|
|
488
|
+
preselectedCommunity=community_ui,
|
|
485
489
|
files_locked=False,
|
|
486
490
|
permissions=get_record_permissions(
|
|
487
491
|
[
|
|
@@ -517,6 +521,7 @@ def deposit_edit(pid_value, draft=None, draft_files=None, files_locked=True):
|
|
|
517
521
|
ui_serializer = UIJSONSerializer()
|
|
518
522
|
record = ui_serializer.dump_obj(draft.to_dict())
|
|
519
523
|
|
|
524
|
+
community_ui = None
|
|
520
525
|
community_theme = None
|
|
521
526
|
community = record.get("expanded", {}).get("parent", {}).get("review", {}).get(
|
|
522
527
|
"receiver"
|
|
@@ -531,6 +536,7 @@ def deposit_edit(pid_value, draft=None, draft_files=None, files_locked=True):
|
|
|
531
536
|
id_=community["id"], identity=g.identity
|
|
532
537
|
)
|
|
533
538
|
community_theme = community.to_dict().get("theme", {})
|
|
539
|
+
community_ui = UICommunityJSONSerializer().dump_obj(community.to_dict())
|
|
534
540
|
except CommunityDeletedError:
|
|
535
541
|
pass
|
|
536
542
|
|
|
@@ -573,6 +579,7 @@ def deposit_edit(pid_value, draft=None, draft_files=None, files_locked=True):
|
|
|
573
579
|
forms_config=form_config,
|
|
574
580
|
record=record,
|
|
575
581
|
community=community,
|
|
582
|
+
community_ui=community_ui,
|
|
576
583
|
community_use_jinja_header=community_use_jinja_header,
|
|
577
584
|
files=files_dict,
|
|
578
585
|
searchbar_config=dict(searchUrl=get_search_url()),
|
|
@@ -216,19 +216,13 @@ def record_detail(
|
|
|
216
216
|
if record is not None and emitter is not None:
|
|
217
217
|
emitter(current_app, record=record._record, via_api=False)
|
|
218
218
|
|
|
219
|
-
record_owner = (
|
|
220
|
-
record_ui.get("expanded", {})
|
|
221
|
-
.get("parent", {})
|
|
222
|
-
.get("access", {})
|
|
223
|
-
.get("owned_by", {})
|
|
224
|
-
)
|
|
225
219
|
resolved_community, _ = get_record_community(record_ui)
|
|
226
|
-
|
|
220
|
+
resolved_community_ui = (
|
|
227
221
|
UICommunityJSONSerializer().dump_obj(resolved_community.to_dict())
|
|
228
222
|
if resolved_community
|
|
229
223
|
else None
|
|
230
224
|
)
|
|
231
|
-
theme =
|
|
225
|
+
theme = resolved_community_ui.get("theme", {}) if resolved_community else None
|
|
232
226
|
|
|
233
227
|
return render_community_theme_template(
|
|
234
228
|
current_app.config.get("APP_RDM_RECORD_LANDING_PAGE_TEMPLATE"),
|
|
@@ -256,11 +250,9 @@ def record_detail(
|
|
|
256
250
|
include_deleted=include_deleted,
|
|
257
251
|
is_draft=is_draft,
|
|
258
252
|
community=resolved_community,
|
|
253
|
+
community_ui=resolved_community_ui,
|
|
259
254
|
external_resources=get_external_resources(record),
|
|
260
255
|
user_avatar=avatar,
|
|
261
|
-
record_owner_id=(
|
|
262
|
-
record_owner.get("id")
|
|
263
|
-
), # record created with system_identity have not owners e.g demo
|
|
264
256
|
)
|
|
265
257
|
|
|
266
258
|
|
|
@@ -24,6 +24,14 @@ export class ViewRecentChanges extends Component {
|
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
componentDidMount() {
|
|
28
|
+
this.fetchPreviousRevision();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
componentWillUnmount() {
|
|
32
|
+
this.cancellableAction && this.cancellableAction.cancel();
|
|
33
|
+
}
|
|
34
|
+
|
|
27
35
|
async fetchPreviousRevision() {
|
|
28
36
|
const { resource } = this.props;
|
|
29
37
|
const {
|
|
@@ -60,14 +68,6 @@ export class ViewRecentChanges extends Component {
|
|
|
60
68
|
}
|
|
61
69
|
}
|
|
62
70
|
|
|
63
|
-
componentDidMount() {
|
|
64
|
-
this.fetchPreviousRevision();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
componentWillUnmount() {
|
|
68
|
-
this.cancellableAction && this.cancellableAction.cancel();
|
|
69
|
-
}
|
|
70
|
-
|
|
71
71
|
handleModalClose = () => {
|
|
72
72
|
const { actionCancelCallback } = this.props;
|
|
73
73
|
actionCancelCallback();
|
|
@@ -24,20 +24,6 @@ export class RevisionsDiffViewer extends Component {
|
|
|
24
24
|
ignoreCaseForKey: false,
|
|
25
25
|
recursiveEqual: true,
|
|
26
26
|
});
|
|
27
|
-
|
|
28
|
-
this.viewerProps = {
|
|
29
|
-
indent: 4,
|
|
30
|
-
lineNumbers: true,
|
|
31
|
-
highlightInlineDiff: true,
|
|
32
|
-
inlineDiffOptions: {
|
|
33
|
-
mode: "word",
|
|
34
|
-
wordSeparator: " ",
|
|
35
|
-
},
|
|
36
|
-
hideUnchangedLines: true,
|
|
37
|
-
syntaxHighlight: false,
|
|
38
|
-
virtual: true,
|
|
39
|
-
};
|
|
40
|
-
|
|
41
27
|
this.state = {
|
|
42
28
|
currentDiff: undefined,
|
|
43
29
|
};
|
|
@@ -58,13 +44,13 @@ export class RevisionsDiffViewer extends Component {
|
|
|
58
44
|
};
|
|
59
45
|
|
|
60
46
|
render() {
|
|
61
|
-
const { currentDiff } = this.state;
|
|
47
|
+
const { currentDiff, viewerProps } = this.state;
|
|
62
48
|
|
|
63
49
|
return currentDiff ? (
|
|
64
50
|
<Grid>
|
|
65
51
|
<Grid.Column width={16}>
|
|
66
52
|
<Container fluid>
|
|
67
|
-
<Viewer diff={currentDiff} {...
|
|
53
|
+
<Viewer diff={currentDiff} {...viewerProps} />
|
|
68
54
|
</Container>
|
|
69
55
|
</Grid.Column>
|
|
70
56
|
</Grid>
|
|
@@ -79,4 +65,16 @@ RevisionsDiffViewer.propTypes = {
|
|
|
79
65
|
|
|
80
66
|
RevisionsDiffViewer.defaultProps = {
|
|
81
67
|
diff: {},
|
|
68
|
+
viewerProps: {
|
|
69
|
+
indent: 4,
|
|
70
|
+
lineNumbers: true,
|
|
71
|
+
highlightInlineDiff: true,
|
|
72
|
+
inlineDiffOptions: {
|
|
73
|
+
mode: "word",
|
|
74
|
+
wordSeparator: " ",
|
|
75
|
+
},
|
|
76
|
+
hideUnchangedLines: true,
|
|
77
|
+
syntaxHighlight: false,
|
|
78
|
+
virtual: true,
|
|
79
|
+
},
|
|
82
80
|
};
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* This file is part of Invenio.
|
|
3
|
-
* Copyright (C) 2023 CERN.
|
|
3
|
+
* Copyright (C) 2023-2025 CERN.
|
|
4
4
|
*
|
|
5
5
|
* Invenio is free software; you can redistribute it and/or modify it
|
|
6
6
|
* under the terms of the MIT License; see LICENSE file for more details.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { last } from "lodash";
|
|
10
9
|
import _get from "lodash/get";
|
|
11
10
|
|
|
12
11
|
const APIRoutesGenerators = {
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagement.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// This file is part of InvenioRDM
|
|
2
|
-
// Copyright (C) 2023-
|
|
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.
|
|
@@ -135,7 +135,7 @@ export class CommunitiesManagement extends Component {
|
|
|
135
135
|
successActionCallback={this.handleRefresh}
|
|
136
136
|
recordCommunityEndpoint={recordCommunityEndpoint}
|
|
137
137
|
permissions={permissions}
|
|
138
|
-
|
|
138
|
+
recordParent={record.parent}
|
|
139
139
|
/>
|
|
140
140
|
|
|
141
141
|
{!loading && communities?.length > MAX_COMMUNITIES && (
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCitationField.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// This file is part of InvenioRDM
|
|
2
|
-
// Copyright (C) 2021-
|
|
2
|
+
// Copyright (C) 2021-2025 CERN.
|
|
3
3
|
// Copyright (C) 2021 Graz University of Technology.
|
|
4
4
|
// Copyright (C) 2021 TU Wien
|
|
5
5
|
//
|
|
@@ -28,18 +28,18 @@ export class RecordCitationField extends Component {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
componentDidMount() {
|
|
31
|
-
const {
|
|
32
|
-
this.getCitation(
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
componentWillUnmount() {
|
|
36
|
-
this.cancellableFetchCitation?.cancel();
|
|
31
|
+
const { recordLinks, defaultStyle, includeDeleted } = this.props;
|
|
32
|
+
this.getCitation(recordLinks, defaultStyle, includeDeleted);
|
|
37
33
|
}
|
|
38
34
|
|
|
39
35
|
async componentDidUpdate() {
|
|
40
36
|
await window.MathJax?.typesetPromise();
|
|
41
37
|
}
|
|
42
38
|
|
|
39
|
+
componentWillUnmount() {
|
|
40
|
+
this.cancellableFetchCitation?.cancel();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
43
|
placeholderLoader = () => {
|
|
44
44
|
return (
|
|
45
45
|
<Placeholder>
|
|
@@ -56,9 +56,9 @@ export class RecordCitationField extends Component {
|
|
|
56
56
|
return <Message negative>{message}</Message>;
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
-
fetchCitation = async (
|
|
59
|
+
fetchCitation = async (recordLinks, style, includeDeleted) => {
|
|
60
60
|
const includeDeletedParam = includeDeleted === true ? "&include_deleted=1" : "";
|
|
61
|
-
const url = `${
|
|
61
|
+
const url = `${recordLinks.self}?locale=${navigator.language}&style=${style}${includeDeletedParam}`;
|
|
62
62
|
return await http.get(url, {
|
|
63
63
|
headers: {
|
|
64
64
|
Accept: "text/x-bibliography",
|
|
@@ -66,7 +66,7 @@ export class RecordCitationField extends Component {
|
|
|
66
66
|
});
|
|
67
67
|
};
|
|
68
68
|
|
|
69
|
-
getCitation = async (
|
|
69
|
+
getCitation = async (recordLinks, style, includeDeleted) => {
|
|
70
70
|
this.setState({
|
|
71
71
|
loading: true,
|
|
72
72
|
citation: "",
|
|
@@ -74,7 +74,7 @@ export class RecordCitationField extends Component {
|
|
|
74
74
|
});
|
|
75
75
|
|
|
76
76
|
this.cancellableFetchCitation = withCancel(
|
|
77
|
-
this.fetchCitation(
|
|
77
|
+
this.fetchCitation(recordLinks, style, includeDeleted)
|
|
78
78
|
);
|
|
79
79
|
|
|
80
80
|
try {
|
|
@@ -95,7 +95,7 @@ export class RecordCitationField extends Component {
|
|
|
95
95
|
};
|
|
96
96
|
|
|
97
97
|
render() {
|
|
98
|
-
const { styles,
|
|
98
|
+
const { styles, recordLinks, defaultStyle, includeDeleted } = this.props;
|
|
99
99
|
const { loading, citation, error } = this.state;
|
|
100
100
|
const citationOptions = styles.map((style) => {
|
|
101
101
|
return {
|
|
@@ -140,7 +140,8 @@ export class RecordCitationField extends Component {
|
|
|
140
140
|
options={citationOptions}
|
|
141
141
|
selection
|
|
142
142
|
onChange={_debounce(
|
|
143
|
-
(event, data) =>
|
|
143
|
+
(event, data) =>
|
|
144
|
+
this.getCitation(recordLinks, data.value, includeDeleted),
|
|
144
145
|
500
|
|
145
146
|
)}
|
|
146
147
|
/>
|
|
@@ -155,7 +156,7 @@ export class RecordCitationField extends Component {
|
|
|
155
156
|
|
|
156
157
|
RecordCitationField.propTypes = {
|
|
157
158
|
styles: PropTypes.array.isRequired,
|
|
158
|
-
|
|
159
|
+
recordLinks: PropTypes.object.isRequired,
|
|
159
160
|
defaultStyle: PropTypes.string.isRequired,
|
|
160
161
|
includeDeleted: PropTypes.bool.isRequired,
|
|
161
162
|
};
|
|
@@ -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
|
// InvenioRDM 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.
|
|
@@ -13,9 +13,9 @@ import { RecordCommunitiesSearch } from "./RecordCommunitiesSearch";
|
|
|
13
13
|
export class RecordCommunitiesListModal extends Component {
|
|
14
14
|
constructor(props) {
|
|
15
15
|
super(props);
|
|
16
|
-
const {
|
|
16
|
+
const { recordParent } = this.props;
|
|
17
17
|
this.state = {
|
|
18
|
-
recordParent:
|
|
18
|
+
recordParent: recordParent,
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -77,7 +77,7 @@ RecordCommunitiesListModal.propTypes = {
|
|
|
77
77
|
handleOnClose: PropTypes.func.isRequired,
|
|
78
78
|
handleOnOpen: PropTypes.func.isRequired,
|
|
79
79
|
permissions: PropTypes.object.isRequired,
|
|
80
|
-
|
|
80
|
+
recordParent: PropTypes.object.isRequired,
|
|
81
81
|
};
|
|
82
82
|
|
|
83
83
|
RecordCommunitiesListModal.defaultProps = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// This file is part of InvenioRDM
|
|
2
|
-
// Copyright (C) 2020-
|
|
2
|
+
// Copyright (C) 2020-2025 CERN.
|
|
3
3
|
// Copyright (C) 2020-2021 Northwestern University.
|
|
4
4
|
// Copyright (C) 2021 Graz University of Technology.
|
|
5
5
|
// Copyright (C) 2023 TU Wien.
|
|
@@ -16,35 +16,28 @@ import { ExportDropdown } from "./ExportDropdown";
|
|
|
16
16
|
import { CommunitiesManagement } from "./CommunitiesManagement";
|
|
17
17
|
import Overridable, { OverridableContext, overrideStore } from "react-overridable";
|
|
18
18
|
|
|
19
|
-
const recordManagementAppDiv = document.getElementById("recordManagement");
|
|
20
|
-
const recordManagementMobile = document.getElementById("recordManagementMobile");
|
|
21
|
-
|
|
22
|
-
const recordVersionsAppDiv = document.getElementById("recordVersions");
|
|
23
|
-
const recordCitationAppDiv = document.getElementById("recordCitation");
|
|
24
|
-
const recordExportDownloadDiv = document.getElementById("recordExportDownload");
|
|
25
|
-
const sidebarCommunitiesManageDiv = document.getElementById(
|
|
26
|
-
"sidebar-communities-manage"
|
|
27
|
-
);
|
|
28
|
-
|
|
29
19
|
const overriddenComponents = overrideStore.getAll();
|
|
30
20
|
|
|
21
|
+
const recordManagementAppDiv = document.getElementById("recordManagement");
|
|
22
|
+
const recordManagementMobile = document.getElementById("recordManagementMobile");
|
|
31
23
|
if (recordManagementAppDiv) {
|
|
32
24
|
renderRecordManagement(recordManagementAppDiv);
|
|
33
25
|
recordManagementMobile && renderRecordManagement(recordManagementMobile);
|
|
34
26
|
}
|
|
35
27
|
|
|
36
28
|
function renderRecordManagement(element) {
|
|
29
|
+
const record = JSON.parse(recordManagementAppDiv.dataset.record);
|
|
37
30
|
ReactDOM.render(
|
|
38
31
|
<OverridableContext.Provider value={overriddenComponents}>
|
|
39
32
|
<RecordManagement
|
|
40
|
-
record={
|
|
33
|
+
record={record}
|
|
41
34
|
permissions={JSON.parse(recordManagementAppDiv.dataset.permissions)}
|
|
42
35
|
isDraft={JSON.parse(recordManagementAppDiv.dataset.isDraft)}
|
|
43
36
|
isPreviewSubmissionRequest={JSON.parse(
|
|
44
37
|
recordManagementAppDiv.dataset.isPreviewSubmissionRequest
|
|
45
38
|
)}
|
|
46
39
|
currentUserId={recordManagementAppDiv.dataset.currentUserId}
|
|
47
|
-
recordOwnerID={
|
|
40
|
+
recordOwnerID={record.parent.access.owned_by.user}
|
|
48
41
|
groupsEnabled={JSON.parse(recordManagementAppDiv.dataset.groupsEnabled)}
|
|
49
42
|
/>
|
|
50
43
|
</OverridableContext.Provider>,
|
|
@@ -52,6 +45,7 @@ function renderRecordManagement(element) {
|
|
|
52
45
|
);
|
|
53
46
|
}
|
|
54
47
|
|
|
48
|
+
const recordVersionsAppDiv = document.getElementById("recordVersions");
|
|
55
49
|
if (recordVersionsAppDiv) {
|
|
56
50
|
ReactDOM.render(
|
|
57
51
|
<RecordVersionsList
|
|
@@ -62,10 +56,11 @@ if (recordVersionsAppDiv) {
|
|
|
62
56
|
);
|
|
63
57
|
}
|
|
64
58
|
|
|
59
|
+
const recordCitationAppDiv = document.getElementById("recordCitation");
|
|
65
60
|
if (recordCitationAppDiv) {
|
|
66
61
|
ReactDOM.render(
|
|
67
62
|
<RecordCitationField
|
|
68
|
-
|
|
63
|
+
recordLinks={JSON.parse(recordCitationAppDiv.dataset.recordLinks)}
|
|
69
64
|
styles={JSON.parse(recordCitationAppDiv.dataset.styles)}
|
|
70
65
|
defaultStyle={JSON.parse(recordCitationAppDiv.dataset.defaultstyle)}
|
|
71
66
|
includeDeleted={JSON.parse(recordCitationAppDiv.dataset.includeDeleted)}
|
|
@@ -74,6 +69,7 @@ if (recordCitationAppDiv) {
|
|
|
74
69
|
);
|
|
75
70
|
}
|
|
76
71
|
|
|
72
|
+
const recordExportDownloadDiv = document.getElementById("recordExportDownload");
|
|
77
73
|
if (recordExportDownloadDiv) {
|
|
78
74
|
ReactDOM.render(
|
|
79
75
|
<ExportDropdown formats={JSON.parse(recordExportDownloadDiv.dataset.formats)} />,
|
|
@@ -81,44 +77,46 @@ if (recordExportDownloadDiv) {
|
|
|
81
77
|
);
|
|
82
78
|
}
|
|
83
79
|
|
|
80
|
+
const sidebarCommunitiesManageDiv = document.getElementById(
|
|
81
|
+
"sidebar-communities-manage"
|
|
82
|
+
);
|
|
84
83
|
if (sidebarCommunitiesManageDiv) {
|
|
84
|
+
const userCommunitiesMemberships = JSON.parse(
|
|
85
|
+
sidebarCommunitiesManageDiv.dataset.userCommunitiesMemberships
|
|
86
|
+
);
|
|
87
|
+
const recordCommunityEndpoint =
|
|
88
|
+
sidebarCommunitiesManageDiv.dataset.recordCommunityEndpoint;
|
|
85
89
|
const recordCommunitySearchConfig = JSON.parse(
|
|
86
90
|
sidebarCommunitiesManageDiv.dataset.recordCommunitySearchConfig
|
|
87
91
|
);
|
|
88
|
-
const
|
|
89
|
-
sidebarCommunitiesManageDiv.dataset.
|
|
92
|
+
const recordUserCommunitySearchConfig = JSON.parse(
|
|
93
|
+
sidebarCommunitiesManageDiv.dataset.recordUserCommunitySearchConfig
|
|
94
|
+
);
|
|
95
|
+
const pendingCommunitiesSearchConfig = JSON.parse(
|
|
96
|
+
sidebarCommunitiesManageDiv.dataset.pendingCommunitiesSearchConfig
|
|
97
|
+
);
|
|
98
|
+
const permissions = JSON.parse(sidebarCommunitiesManageDiv.dataset.permissions);
|
|
99
|
+
const record = JSON.parse(sidebarCommunitiesManageDiv.dataset.record);
|
|
90
100
|
ReactDOM.render(
|
|
91
101
|
<OverridableContext.Provider value={overriddenComponents}>
|
|
92
102
|
<Overridable
|
|
93
103
|
id="InvenioAppRdm.RecordLandingPage.CommunitiesManagement.container"
|
|
94
|
-
userCommunitiesMemberships={
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
recordCommunityEndpoint={
|
|
98
|
-
sidebarCommunitiesManageDiv.dataset.recordCommunityEndpoint
|
|
99
|
-
}
|
|
100
|
-
recordUserCommunitySearchConfig={JSON.parse(
|
|
101
|
-
sidebarCommunitiesManageDiv.dataset.recordUserCommunitySearchConfig
|
|
102
|
-
)}
|
|
104
|
+
userCommunitiesMemberships={userCommunitiesMemberships}
|
|
105
|
+
recordCommunityEndpoint={recordCommunityEndpoint}
|
|
106
|
+
recordUserCommunitySearchConfig={recordUserCommunitySearchConfig}
|
|
103
107
|
recordCommunitySearchConfig={recordCommunitySearchConfig}
|
|
104
|
-
permissions={
|
|
105
|
-
searchConfig={
|
|
106
|
-
record={
|
|
108
|
+
permissions={permissions}
|
|
109
|
+
searchConfig={pendingCommunitiesSearchConfig}
|
|
110
|
+
record={record}
|
|
107
111
|
>
|
|
108
112
|
<CommunitiesManagement
|
|
109
|
-
userCommunitiesMemberships={
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
recordCommunityEndpoint={
|
|
113
|
-
sidebarCommunitiesManageDiv.dataset.recordCommunityEndpoint
|
|
114
|
-
}
|
|
115
|
-
recordUserCommunitySearchConfig={JSON.parse(
|
|
116
|
-
sidebarCommunitiesManageDiv.dataset.recordUserCommunitySearchConfig
|
|
117
|
-
)}
|
|
113
|
+
userCommunitiesMemberships={userCommunitiesMemberships}
|
|
114
|
+
recordCommunityEndpoint={recordCommunityEndpoint}
|
|
115
|
+
recordUserCommunitySearchConfig={recordUserCommunitySearchConfig}
|
|
118
116
|
recordCommunitySearchConfig={recordCommunitySearchConfig}
|
|
119
|
-
permissions={
|
|
120
|
-
searchConfig={
|
|
121
|
-
record={
|
|
117
|
+
permissions={permissions}
|
|
118
|
+
searchConfig={pendingCommunitiesSearchConfig}
|
|
119
|
+
record={record}
|
|
122
120
|
/>
|
|
123
121
|
</Overridable>
|
|
124
122
|
</OverridableContext.Provider>,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// This file is part of InvenioRDM
|
|
2
|
-
// Copyright (C) 2020-
|
|
2
|
+
// Copyright (C) 2020-2025 CERN.
|
|
3
3
|
// Copyright (C) 2020-2021 Northwestern University.
|
|
4
4
|
// Copyright (C) 2021 Graz University of Technology.
|
|
5
5
|
//
|
|
@@ -32,7 +32,7 @@ $(".dropdown.export").dropdown({
|
|
|
32
32
|
},
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
-
const $licensesPopup = $("#licenses
|
|
35
|
+
const $licensesPopup = $("#licenses .has-popup .license.clickable");
|
|
36
36
|
|
|
37
37
|
// Licenses description popup
|
|
38
38
|
$licensesPopup.popup({
|
|
@@ -49,18 +49,18 @@ $licensesPopup.popup({
|
|
|
49
49
|
|
|
50
50
|
$licensesPopup.on("keydown", function (event) {
|
|
51
51
|
if (event.key === "Enter") {
|
|
52
|
-
$
|
|
52
|
+
$licensesPopup.popup("hide");
|
|
53
53
|
$(event.target).popup("show");
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
57
57
|
$("#licenses .licenses-description .close.icon").on({
|
|
58
58
|
click: function () {
|
|
59
|
-
$
|
|
59
|
+
$licensesPopup.popup("hide");
|
|
60
60
|
},
|
|
61
61
|
keydown: function (event) {
|
|
62
62
|
if (event.key === "Enter") {
|
|
63
|
-
$
|
|
63
|
+
$licensesPopup.popup("hide");
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
66
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C) 2020-
|
|
2
|
+
* Copyright (C) 2020-2025 CERN.
|
|
3
3
|
* Copyright (C) 2020 Northwestern University.
|
|
4
4
|
* Copyright (C) 2021 Graz University of Technology.
|
|
5
5
|
* Copyright (C) 2021 New York University.
|
|
@@ -8,10 +8,12 @@
|
|
|
8
8
|
* it under the terms of the MIT License; see LICENSE file for more details.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
#licenses ul.details-list
|
|
11
|
+
#licenses ul.details-list,
|
|
12
|
+
#licenses dl.details-list {
|
|
12
13
|
list-style-type: none;
|
|
13
14
|
|
|
14
|
-
li
|
|
15
|
+
li,
|
|
16
|
+
dd {
|
|
15
17
|
margin: .5rem 0;
|
|
16
18
|
|
|
17
19
|
&:first-child {
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2023-
|
|
3
|
+
# Copyright (C) 2023-2025 CERN.
|
|
4
4
|
# Copyright (C) 2024-2025 Graz University of Technology.
|
|
5
|
+
# Copyright (C) 2025 Northwestern University.
|
|
5
6
|
#
|
|
6
7
|
# Invenio-App-RDM is free software; you can redistribute it and/or modify
|
|
7
8
|
# it under the terms of the MIT License; see LICENSE file for more details.
|
|
8
9
|
|
|
9
|
-
"""Record migration script from InvenioRDM
|
|
10
|
+
"""Record migration script from InvenioRDM 12.0 to 13.0.
|
|
10
11
|
|
|
11
12
|
Disclaimer: This script is intended to be executed *only once*, namely when
|
|
12
|
-
upgrading from InvenioRDM
|
|
13
|
+
upgrading from InvenioRDM 12.0 to 13.0!
|
|
13
14
|
If this script is executed at any other time, probably the best case scenario
|
|
14
15
|
is that nothing happens!
|
|
15
16
|
|
|
@@ -20,11 +21,17 @@ This script has been tested with following data:
|
|
|
20
21
|
- internal_notes
|
|
21
22
|
"""
|
|
22
23
|
|
|
24
|
+
import sys
|
|
25
|
+
import traceback
|
|
26
|
+
|
|
23
27
|
from click import secho
|
|
24
28
|
from invenio_access.permissions import system_identity
|
|
25
29
|
from invenio_db import db
|
|
26
30
|
from invenio_rdm_records.proxies import current_rdm_records_service as records_service
|
|
27
31
|
from invenio_search.engine import dsl
|
|
32
|
+
from invenio_vocabularies.contrib.affiliations.api import Affiliation
|
|
33
|
+
from invenio_vocabularies.contrib.names.api import Name
|
|
34
|
+
from sqlalchemy import select
|
|
28
35
|
|
|
29
36
|
|
|
30
37
|
def run_upgrade(has, migrate):
|
|
@@ -113,12 +120,75 @@ def run_upgrade_for_thesis():
|
|
|
113
120
|
secho("Thesis upgrade has finished.", fg="green")
|
|
114
121
|
|
|
115
122
|
|
|
123
|
+
def run_upgrade_for_affiliations():
|
|
124
|
+
"""Update affiliations entry so that they conform to new shape."""
|
|
125
|
+
secho("Affiliations upgrade has started.", fg="green")
|
|
126
|
+
|
|
127
|
+
error = False
|
|
128
|
+
# Batch intake to limit memory usage
|
|
129
|
+
stmt = select(Affiliation.model_cls).execution_options(yield_per=250)
|
|
130
|
+
|
|
131
|
+
for affiliation_model in db.session.scalars(stmt):
|
|
132
|
+
try:
|
|
133
|
+
data_for_affiliation = affiliation_model.data
|
|
134
|
+
data_for_affiliation.pop("id", None)
|
|
135
|
+
data_for_affiliation.pop("pid", None)
|
|
136
|
+
affiliation = Affiliation(data_for_affiliation, model=affiliation_model)
|
|
137
|
+
affiliation.commit()
|
|
138
|
+
except Exception as e:
|
|
139
|
+
secho(f"Migration failed with '{repr(e)}'.", fg="red")
|
|
140
|
+
secho(f"Affiliation {affiliation_model.pid} failed to update", fg="red")
|
|
141
|
+
trace = traceback.format_exc()
|
|
142
|
+
secho(f"Traceback {trace}", fg="red")
|
|
143
|
+
error = True
|
|
144
|
+
break
|
|
145
|
+
|
|
146
|
+
if error:
|
|
147
|
+
db.session.rollback()
|
|
148
|
+
secho("Affiliations upgrade failed.", fg="red")
|
|
149
|
+
sys.exit(1)
|
|
150
|
+
else:
|
|
151
|
+
db.session.commit()
|
|
152
|
+
secho("Affiliations upgrade succeeded.", fg="green")
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def run_upgrade_for_names():
|
|
156
|
+
"""Update names entry so that they conform to new shape."""
|
|
157
|
+
secho("Names upgrade has started.", fg="green")
|
|
158
|
+
|
|
159
|
+
error = False
|
|
160
|
+
# Batch intake to limit memory usage
|
|
161
|
+
stmt = select(Name.model_cls).execution_options(yield_per=250)
|
|
162
|
+
|
|
163
|
+
for name_model in db.session.scalars(stmt):
|
|
164
|
+
try:
|
|
165
|
+
data_for_name = name_model.data
|
|
166
|
+
data_for_name.pop("id", None)
|
|
167
|
+
data_for_name.pop("pid", None)
|
|
168
|
+
name = Name(data_for_name, model=name_model)
|
|
169
|
+
name.commit()
|
|
170
|
+
except Exception as e:
|
|
171
|
+
secho(f"Migration failed with '{repr(e)}'.", fg="red")
|
|
172
|
+
secho(f"Name {name_model.pid} failed to update", fg="red")
|
|
173
|
+
trace = traceback.format_exc()
|
|
174
|
+
secho(f"Traceback {trace}", fg="red")
|
|
175
|
+
error = True
|
|
176
|
+
break
|
|
177
|
+
|
|
178
|
+
if error:
|
|
179
|
+
db.session.rollback()
|
|
180
|
+
secho("Names upgrade failed.", fg="red")
|
|
181
|
+
sys.exit(1)
|
|
182
|
+
else:
|
|
183
|
+
db.session.commit()
|
|
184
|
+
secho("Names upgrade succeeded.", fg="green")
|
|
185
|
+
|
|
186
|
+
|
|
116
187
|
def execute_upgrade():
|
|
117
188
|
"""Execute the upgrade from InvenioRDM 12.0 to 13.0.0.
|
|
118
189
|
|
|
119
190
|
Please read the disclaimer on this module before thinking about executing
|
|
120
191
|
this function!
|
|
121
|
-
THIS MODULE IS WORK IN PROGRESS, UNTIL official v13 release
|
|
122
192
|
|
|
123
193
|
NOTE:
|
|
124
194
|
since the data upgrade steps are more selective now, the approach how to do
|
|
@@ -131,6 +201,8 @@ def execute_upgrade():
|
|
|
131
201
|
secho("Starting data migration...", fg="green")
|
|
132
202
|
|
|
133
203
|
run_upgrade_for_thesis()
|
|
204
|
+
run_upgrade_for_affiliations()
|
|
205
|
+
run_upgrade_for_names()
|
|
134
206
|
|
|
135
207
|
|
|
136
208
|
# if the script is executed on its own, perform the upgrade
|
{invenio_app_rdm-14.0.0b0.dev1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: invenio-app-rdm
|
|
3
|
-
Version: 14.0.0b0.
|
|
3
|
+
Version: 14.0.0b0.dev2
|
|
4
4
|
Summary: Invenio Research Data Management.
|
|
5
5
|
Home-page: https://github.com/inveniosoftware/invenio-app-rdm
|
|
6
6
|
Author: CERN
|
|
@@ -101,9 +101,28 @@ https://inveniordm.docs.cern.ch
|
|
|
101
101
|
Changes
|
|
102
102
|
=======
|
|
103
103
|
|
|
104
|
+
Version v14.0.0b0.dev2 (released 2025-08-08)
|
|
105
|
+
|
|
106
|
+
- fix(views): use correct community value
|
|
107
|
+
* After the change in 33f1b0d2, values passed to the UI or used for
|
|
108
|
+
accessing UI-related attributes (e.g. the "theme"), must come from
|
|
109
|
+
the community UI-serialized value instead of the service result item.
|
|
110
|
+
- fix(pages): add community base template as a valid option
|
|
111
|
+
- feat(fixtures): allow specifying `template_name` in page fixtures
|
|
112
|
+
- ui: refactor record injecting in JS components
|
|
113
|
+
- inject only record links in citations cmps
|
|
114
|
+
- remove dependency between citations and communities cmps which
|
|
115
|
+
they were sharing the same record injection
|
|
116
|
+
- fix(deposits): pass missing community_ui to community theme templates
|
|
117
|
+
* also introduce more explicit distinctions between community and
|
|
118
|
+
community_ui variables
|
|
119
|
+
- UI: set order of entries and rename category to deposits
|
|
120
|
+
- UI: make external resources section consistent with details
|
|
121
|
+
- UI: make rights section consistent with details
|
|
122
|
+
|
|
104
123
|
Version v14.0.0b0.dev1 (released 2025-08-01)
|
|
105
124
|
|
|
106
|
-
- setup: bump invenio-communities and invenio-rdm-records
|
|
125
|
+
- setup: bump invenio-communities and invenio-rdm-records
|
|
107
126
|
- theme: add search overrides for reviewers search results
|
|
108
127
|
- requests: add request action_accept permissions to UI
|
|
109
128
|
- theme: update package-lock.json for compiling catalog for frontend tests
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
invenio_app_rdm/__init__.py,sha256=
|
|
1
|
+
invenio_app_rdm/__init__.py,sha256=YnOgO6cbNQXzzkcAA2wTGVo9kayF70_p_V8fa9P3Dig,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=T5pTzoBAAsxyp4ACAnfIhHcMowVkAnk8fWXlHR2OrRA,52107
|
|
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
|
|
@@ -10,7 +10,7 @@ invenio_app_rdm/administration/audit_logs/audit_logs.py,sha256=6tZvqPKt54Hc8gL3L
|
|
|
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/records/__init__.py,sha256=WpNHBm_Mk9FF8GzvrXWjL79URMSgBhpqgxvrLXNooqg,434
|
|
13
|
-
invenio_app_rdm/administration/records/records.py,sha256=
|
|
13
|
+
invenio_app_rdm/administration/records/records.py,sha256=6nVyDwYLdipIDSnlXMRe6JuiIIo5CaVojeNJCOlTPjI,5371
|
|
14
14
|
invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/audit_logs.html,sha256=kLP3lfZiwLB8N-78_xINymnD8TIjGMzeJIO1a1zO130,346
|
|
15
15
|
invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/domains_search.html,sha256=NP8HPfOQPIR9psNDMFRXJH8fjok2AbXCentD_3Q1wWw,338
|
|
16
16
|
invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/user_moderation.html,sha256=koXd8lV_KBgAl1Wll7aM3xR0NgYcOl2PiFqD2Xkcp2w,348
|
|
@@ -36,7 +36,7 @@ invenio_app_rdm/communities_ui/views/communities.py,sha256=LPSe4ixyJvmO3auHJK3Y6
|
|
|
36
36
|
invenio_app_rdm/communities_ui/views/ui.py,sha256=YZ9yiZazEutwkpR4xEolLe6mUtiTJrxVdCOtQGAILOw,3007
|
|
37
37
|
invenio_app_rdm/fixtures/__init__.py,sha256=XwWy4U66FkpWOEBFfn5EnXfuTKlXnh3HWZNBMDX4Rgk,1512
|
|
38
38
|
invenio_app_rdm/fixtures/oai_sets.py,sha256=ZoS94FNkIsdEJWHihZRYvFAstp3GBrZ0viDml9mQXOI,621
|
|
39
|
-
invenio_app_rdm/fixtures/pages.py,sha256=
|
|
39
|
+
invenio_app_rdm/fixtures/pages.py,sha256=DF8DGQ_TPLHxr8PVb2ZVmnMDAc5m20pcVF2OjnTnNu4,2630
|
|
40
40
|
invenio_app_rdm/fixtures/data/oai_sets.yaml,sha256=NlkL0Y4AH_HxmO0mfwzOlF7ZYAT0D7EV6aOs-_OLl7Q,256
|
|
41
41
|
invenio_app_rdm/fixtures/data/pages.yaml,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
42
|
invenio_app_rdm/fixtures/pages/.gitkeep,sha256=1HVs32jZTGcMkk-dV9RHGPZm5FdydwFIZDW1epflLF8,68
|
|
@@ -55,7 +55,7 @@ invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/restric
|
|
|
55
55
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/search.html,sha256=MdDMzWNIqvZRH-7Blvb9lBdJCA-TK0MXdPpyVWjjBo8,606
|
|
56
56
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/tombstone.html,sha256=oXt0IHIF_AL3b0zLfBgl_meMBzDupNBwFaRGD2EIofY,1902
|
|
57
57
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/access-form.html,sha256=rLkoNmouAMV8S6fAU3_PtGuqDjFTACniyiosGAKjcN0,2317
|
|
58
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html,sha256=
|
|
58
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html,sha256=QBbRNCBBdE7JJirLrIdCWlhcmR37qh_2QXg7AnTtwdw,576
|
|
59
59
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/contact.html,sha256=czuC-Ec5zJaKzFOaqhz7JqhWiCS3U3NKaQmPw9-rzks,403
|
|
60
60
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/creatibutors.html,sha256=43fnhdtCdec6d3s9B__7biS4vp0opvcMYh-1_jncYbA,2231
|
|
61
61
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/description.html,sha256=UGUy-EOWggvBRCZT-H418yMW4PzYgn-5QFcmgZx1P8U,930
|
|
@@ -66,14 +66,14 @@ invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details
|
|
|
66
66
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/stats.html,sha256=T-J48dh0mtIZf1LmaEKjS4ki5sv5kxv38lSkU45Xz1g,4373
|
|
67
67
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/subjects.html,sha256=bYER2zAbf7XtM5sMXNzO1GwaLHpZQbdhhMZiMP5yRwU,1518
|
|
68
68
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/citations.html,sha256=5Sdg_gwGOgm0qLRv4-CUmDNx7PYlOsa5XPGjDdx7k20,258
|
|
69
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/communities.html,sha256=
|
|
69
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/communities.html,sha256=VsAa3NxRPHVOD-5hyMhIcIhK0P9Y2f0X1k4mr4Ghb0c,1644
|
|
70
70
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/details.html,sha256=J5z4zxhSZDcKE2ZEdyhcRMIKKVCyKGE6DTeGysijwRU,2123
|
|
71
71
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/export.html,sha256=RfPvs17eTUkWfWA6o9jRWqjUeDyTKL0XyreGR0UXLt4,1404
|
|
72
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/external_resources.html,sha256=
|
|
72
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/external_resources.html,sha256=bE1wqTkQdJkBHpO_9Rr2TZcf7CrRChdCjzcr0dK9UdE,1944
|
|
73
73
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/keywords_subjects.html,sha256=8FTUt6MVRvEsj89qDxP6eK2feyv2UI0fgICoT99cUIU,717
|
|
74
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/licenses.html,sha256=
|
|
74
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/licenses.html,sha256=8VfF1BJCvjc3MPPGDg5cm2M6_zbkz2HybJuRU5a2gXc,3172
|
|
75
75
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/locations.html,sha256=6o5nQyXP0V158KMBsOpKMeuLGcw_lAhnZIyGpaogbMk,721
|
|
76
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html,sha256=
|
|
76
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html,sha256=RZyotLNBXK9V2mMOhydcyjQ1S2lX-Az1fGPzXqAOCOA,1442
|
|
77
77
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/metrics.html,sha256=6aS28YC8U7VDWn2vI2ckYtzm9wVWacGZ4a7Pu5D3BBI,526
|
|
78
78
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/technical_metadata.html,sha256=ptS8h6orgDhFFGXeZBCNBltELy_g9fUtS1bMTzieCPk,676
|
|
79
79
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/versions.html,sha256=fIa8R0blN2rWkrP0K43qvSTye4Gt6-5yo3HN5FLdLTA,935
|
|
@@ -85,10 +85,10 @@ invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/
|
|
|
85
85
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/stats_popup.html,sha256=5SVzfIS15Aro2Itd2BiaLbMXm0cvvwk6ZCdYjuSwhBw,625
|
|
86
86
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/version.html,sha256=eA8-n81XUezkwPXvcG5v2sgLPQNTgr7hB36-_Gr-tVI,758
|
|
87
87
|
invenio_app_rdm/records_ui/views/__init__.py,sha256=9DaDls04IQv7fYttDjLofIWGsRRjk-FwUYnIfxV3OWk,5840
|
|
88
|
-
invenio_app_rdm/records_ui/views/decorators.py,sha256=
|
|
89
|
-
invenio_app_rdm/records_ui/views/deposits.py,sha256=
|
|
88
|
+
invenio_app_rdm/records_ui/views/decorators.py,sha256=JWiypClbUsTzpwKB0YuDGffowP_WaJfdjX_-Hm6sJl4,15930
|
|
89
|
+
invenio_app_rdm/records_ui/views/deposits.py,sha256=W5H6QxIcxAopDCt7IAQ--l2d0VaZPEv5uwwTEon8MyU,22790
|
|
90
90
|
invenio_app_rdm/records_ui/views/filters.py,sha256=zKuqjM_Yb9MmBmloStjasASYCwVG7mUe0eolI2MtPXg,6998
|
|
91
|
-
invenio_app_rdm/records_ui/views/records.py,sha256=
|
|
91
|
+
invenio_app_rdm/records_ui/views/records.py,sha256=8uA8JKhHU9UvpkqxZ9zcExyceOXibHIq4bMvtJ0DMBc,16220
|
|
92
92
|
invenio_app_rdm/redirector/__init__.py,sha256=AYCTGmfbmkHW3YJXMqXlWBXcBrUsta-QmL9ULX2bjwA,243
|
|
93
93
|
invenio_app_rdm/redirector/resource.py,sha256=XuH6ZK0HVE5LdXoorlm8aI3deizvnZ5gFa9d1ihYosk,3312
|
|
94
94
|
invenio_app_rdm/redirector/views.py,sha256=CTJ3EGEFKfc0lFwNb9pwH7MbMLiqaWnF8LA3xGIwahc,563
|
|
@@ -112,14 +112,14 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/theme.js,sha256=LIgn
|
|
|
112
112
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/utils.js,sha256=oTCQkmr7j6FwVsOfM6hsKrPHfadW7m9IurrqYVDgxDw,3628
|
|
113
113
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/AuditLogActions.js,sha256=ugQ-0b_6_O5rDeP7JUlNJ5SLGGlip_tP3OoTT4hRcak,3984
|
|
114
114
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewJson.js,sha256=UX4-c4gtXOih4T7GQ1c_9zvlAEa0ljTiz22GU8A05Ps,955
|
|
115
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewRecentChanges.js,sha256=
|
|
115
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewRecentChanges.js,sha256=M-vgjjroSGlo7TTTIW9UqCxRkMalCVmGBDTzOP2ZPSE,3279
|
|
116
116
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/index.js,sha256=Ruks4rwRBgtKrFop72ZoGNr4-BXoqqv7I-qiflZWzKg,1078
|
|
117
117
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/search/SearchResultItemLayout.js,sha256=CvH3a5Ws57x_FqZjK6vIz1AO4s6WmI0T-BkHNd8kOo0,3077
|
|
118
118
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/search/index.js,sha256=q1WaQ-kNNMvNdnsONMw2c4GWobizoPWsmIdWL2fRCPc,283
|
|
119
119
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/CompareRevisionsDropdown.js,sha256=BNdMxfFYPhlrGKPg47oc4X8ILllfCngN61L1b7Yt_8Q,2483
|
|
120
120
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUser.js,sha256=1tnHc9PaCQvVS1PVsDWtfpWzVxJJ5_eltn9WJEYygiY,2366
|
|
121
121
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUserForm.js,sha256=YWPZeI-vBr7GixhhzwYVS-epnbIw5frr8StsD81a5J8,6578
|
|
122
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/RevisionsDiffViewer.js,sha256=
|
|
122
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/RevisionsDiffViewer.js,sha256=dcRsIbD8k-l-139qXGk0y9s-eMQjA6GglhzkI5-H4io,1897
|
|
123
123
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/SetQuotaAction.js,sha256=SzJIoK64pt5h1B9bHH28MFcd29dLl_EXA74BNv9Bfbk,3036
|
|
124
124
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/SetQuotaForm.js,sha256=Ltr03KlCogkg2NjqWc1GkxJlYPWB2LDLHL04w6eJiRU,5749
|
|
125
125
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/index.js,sha256=soELMxc1jf_rL62CJ9wtWGVG13yk1PRY7JqseqnKkqU,297
|
|
@@ -136,7 +136,7 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/recor
|
|
|
136
136
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/index.js,sha256=kWIIp7kzH3oe4xbByiUC3SpgEjAt4R3mWH8vneGWhiU,1460
|
|
137
137
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/api.js,sha256=NxrBwrejTwqBq0LMVAuQeyFLIlwDAVHGbJi009TiLEQ,1181
|
|
138
138
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/index.js,sha256=8D199izj4qOxNVS1XrS3JutmuBYIjHkvshUdv1aU92U,261
|
|
139
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js,sha256=
|
|
139
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js,sha256=yodLKUXGnyq3XcO4-6cGQsa7PbXD74mzGe-otU8iNjc,894
|
|
140
140
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/AdministrationSearchLayout.js,sha256=3pRQVkFOnyqRFWmbE3vXMB75Vnrvf-Y5pzZF79iT9q0,1854
|
|
141
141
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/RecordSearchLayout.js,sha256=F3Ht0kMf6-cSmbTSRo-PnJLneCqoqh7d0ea1A2Lj2i8,2544
|
|
142
142
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/SearchResultItemLayout.js,sha256=CsbdG5fVx2hw1SenJ5wHVd468-n5qp2yhB5x3ceGCuE,5611
|
|
@@ -170,30 +170,30 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CopyButto
|
|
|
170
170
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayPartOfCommunities.js,sha256=bSmhuwSWk4CW80mqa4ZZbjfa-_NsiJ1IxQ9veDy6sAM,2751
|
|
171
171
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayVerifiedCommunity.js,sha256=m3rT8jJ3440ZX22zZog8bHatWltYXwvmw_tu6tJUM9k,1506
|
|
172
172
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordsResultsListItem.js,sha256=RTSQBlGQY7ww7fVGHDvDfWQNyJ07mnEoyboTGIcCgD4,6694
|
|
173
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js,sha256=
|
|
173
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js,sha256=TNV3iA-yEYipxvyFbBeiodyBcRQz-vqN4Bgu8R4n6Xg,33445
|
|
174
174
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/ShareDraftButton.js,sha256=ICMV4Ixe-nTe6q7COZ0oyAQf2nVp2cez_-iUZobwUD0,1998
|
|
175
175
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/config.js,sha256=rd2wqiwmYOkh4kWe8AiGWJar2kA8R8TkGMnX5XZvihs,1473
|
|
176
176
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/index.js,sha256=xdJtxsdo8_tlq3HdjXp_tb3I_wvHi65a7z-tdH4pcqE,1643
|
|
177
177
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/frontpage/RecordsList.js,sha256=PkLpiCl7sNSlQoCo7xxZ_H6QvWqK_TydoseIiKvtuMw,4176
|
|
178
178
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/frontpage/index.js,sha256=X0tsSvLwGPzSFQEf4J1zPZbFRCiYeJq5CnEXr_J5LsU,900
|
|
179
179
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/AccessRequestForm.js,sha256=5GRlVkJQpwrY9wk4KI5Tmqmll2d3cEls8isJZjvoA9Q,8798
|
|
180
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagement.js,sha256=
|
|
180
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagement.js,sha256=dG0-R9Ddb-RK8mxnfUYFifyx5R2Pzgqj0mvPq_8Zwwo,5712
|
|
181
181
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagementDropdown.js,sha256=qocsinvtbWEqAi8kgqNqx7c0X-_evRmCz2bPTaMQlcI,5953
|
|
182
182
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/EditButton.js,sha256=WJ5lNpbPcd_Kymn_TYklSTfkCJRPhpFeT6cWcR48mSQ,1452
|
|
183
183
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ExportDropdown.js,sha256=fDqs5sel6Zo1oPkJT1XbR3dtHXvvgVuDhe_sg_-D690,1969
|
|
184
184
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageButton.js,sha256=79DO4JKJDU0AI1uaLzE2AAQRxTPx2rFKNj-CJ_UKP54,2934
|
|
185
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCitationField.js,sha256=
|
|
185
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCitationField.js,sha256=XYfXsQejNeC1R0spndn0qDrqvz6w3bj5UlPEIgT4U24,4757
|
|
186
186
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesList.js,sha256=wORVCOjlyX2mIsDU9J0MwWFE4Zw9CCL5inWpV7m8lsM,4004
|
|
187
187
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordManagement.js,sha256=p49VyNWrYQw88xOxLdemHpBu0ty_4kVG_Bf69EZcl14,3875
|
|
188
188
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js,sha256=ZJaD4fW2z00tcektXVz0eLXu6oGLLW-NUjV86neuDjM,7141
|
|
189
189
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/access.js,sha256=FVcpKl22zMi1GssbLZAj1pO98c6Em_wg_yBIdfBJor0,938
|
|
190
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js,sha256=
|
|
191
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js,sha256=
|
|
190
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js,sha256=4Ma2oL0YsvBHCesuWuLSgVvjpM5IuBWgU2356hxVS0w,4977
|
|
191
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js,sha256=TieqbbmJrxVKlkD5Kvsw6F-sbpucxSV9dv30Y6pXKjI,3144
|
|
192
192
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageDefaultBrandingAction/ManageDefaultBrandingAction.js,sha256=qNWpe3KyZ8NDHKocG6XKJzb6w3fIQk3muWN126pUo9w,3529
|
|
193
193
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunitiesModal.js,sha256=G9OwLxKqX73w_7D1k7BHOzMeLmokowMfJQg5Km7J8RA,1797
|
|
194
194
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunitiesSearch.js,sha256=8kiiICVaJ0m2K_5cPbiHo8tN8Q_AweSmlBIkx-aJ-dA,2753
|
|
195
195
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunityRequestItem.js,sha256=dQH-Ec5btlFoXPf110IoswM_RYy19ia2onJr_iC5P78,1080
|
|
196
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesListModal.js,sha256=
|
|
196
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesListModal.js,sha256=2YsFRDs2eyLtm46jz91x17jVU2Y72i7e7OFas-2WsSo,2465
|
|
197
197
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearch.js,sha256=bNkexo7L1fz5rzaxoZCM4R9GRdnZcdTRr-djR4k2t5o,3079
|
|
198
198
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearchItem.js,sha256=7Mvz7C1_S_MfsJoN8-iyAaw9Y7aBPwBa6MH6O0gWhuw,1667
|
|
199
199
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/index.js,sha256=lf_UCmT3y3IPc47X6KESV4RGhTbjdXX8bQrn8ngJbqc,221
|
|
@@ -231,7 +231,7 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/uploa
|
|
|
231
231
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/uploads_items/MobileUploadsItem.js,sha256=7rwJz0nVwBk4bXOEcWymAZrPyL0pmekBcMeBwNt8OJc,5060
|
|
232
232
|
invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/file_uploader/uppy.less,sha256=HwHovPrcrhWjcFKglnhbre7UbKBuhJlPPgu_Bdjpntg,723
|
|
233
233
|
invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/creatibutors.less,sha256=X47WXPv66x2-T2XghG_ibq5vkX_3gxelK9O0mPxzFO8,1113
|
|
234
|
-
invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/licenses.less,sha256=
|
|
234
|
+
invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/licenses.less,sha256=I-sVY6xvkMIh-cew5zjqp7QAD_ZGhB3vkpoBneEEd-M,1385
|
|
235
235
|
invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/previewer/iiif_simple.less,sha256=EH1nrWuEFjfcrXrsbC82pTQqWQ2xAELSTtIkpRpar8I,326
|
|
236
236
|
invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/theme.less,sha256=Qf4srjQoY4uAw___JDsrMhLRHTY39e5DEFyE5QlfBTg,1959
|
|
237
237
|
invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/form.overrides,sha256=KQ4zXjP5z9-WAq4vn_lSQ6QunZf0jApC5GqU6-Mi2tY,3291
|
|
@@ -463,7 +463,7 @@ invenio_app_rdm/upgrade_scripts/fix_migrated_records_from_1_0_to_2_0.py,sha256=S
|
|
|
463
463
|
invenio_app_rdm/upgrade_scripts/fix_migrated_records_from_8_0_to_9_0.py,sha256=p6qTNjUMAJ-0tnrSwar7jtDX_sg6V9kFj7fzH-wrbkY,2769
|
|
464
464
|
invenio_app_rdm/upgrade_scripts/migrate_10_0_to_11_0.py,sha256=TX6FCWXY4qM4z7IYzDO5qaMTheo3zAjFrmR1sXaEf4U,1333
|
|
465
465
|
invenio_app_rdm/upgrade_scripts/migrate_11_0_to_12_0.py,sha256=Tp7jfT2JHrYCFzF2qIYqG7yr7k-GhX2zkw61CWJGA78,6941
|
|
466
|
-
invenio_app_rdm/upgrade_scripts/migrate_12_0_to_13_0.py,sha256=
|
|
466
|
+
invenio_app_rdm/upgrade_scripts/migrate_12_0_to_13_0.py,sha256=bN10r6gancomX6P-yBHtNjWImgSYltw1A5qtcXWjZz8,7038
|
|
467
467
|
invenio_app_rdm/upgrade_scripts/migrate_1_0_records_to_2_0.py,sha256=mRDv_Ao5zMgA6X0aogMfvhspO1CIApKtDW_ziJp5fjI,3325
|
|
468
468
|
invenio_app_rdm/upgrade_scripts/migrate_2_0_to_3_0.py,sha256=jL_2I61Q9qt3fjBzYYueeT4EMQ9FlNPxYE4nzDQbLEY,2698
|
|
469
469
|
invenio_app_rdm/upgrade_scripts/migrate_3_0_to_4_0.py,sha256=BNjGufwLBvLHnu0gz5b_Are-FuxYjXlCtkLgNQckV3U,4768
|
|
@@ -484,9 +484,9 @@ invenio_app_rdm/users_ui/views/__init__.py,sha256=SMdY2NJj9GICfr3Xuok7qdNYVtA2bJ
|
|
|
484
484
|
invenio_app_rdm/users_ui/views/dashboard.py,sha256=iUn2PrODAwb8ugmMosJKAjPhUzjCiWiAWoXQr9RUFuc,1793
|
|
485
485
|
invenio_app_rdm/users_ui/views/ui.py,sha256=W_eXM8dLVIrNHQB2UEh37C9BYoHauft6RyvcDNFHovA,1742
|
|
486
486
|
invenio_app_rdm/utils/files.py,sha256=CruDyO2gDVadSlWEJD-WHpWHeOQ0juh-Ei9jz3D9yjc,3923
|
|
487
|
-
invenio_app_rdm-14.0.0b0.
|
|
488
|
-
invenio_app_rdm-14.0.0b0.
|
|
489
|
-
invenio_app_rdm-14.0.0b0.
|
|
490
|
-
invenio_app_rdm-14.0.0b0.
|
|
491
|
-
invenio_app_rdm-14.0.0b0.
|
|
492
|
-
invenio_app_rdm-14.0.0b0.
|
|
487
|
+
invenio_app_rdm-14.0.0b0.dev2.dist-info/licenses/LICENSE,sha256=AZXFHRrZa5s4m9DV7zZr4bPGTMUvcEPCodeV_AmFI8k,1204
|
|
488
|
+
invenio_app_rdm-14.0.0b0.dev2.dist-info/METADATA,sha256=_xLGTs8NBJrJWkOXLQybqZ5XASNLulc5Juc4LZ0swAw,16697
|
|
489
|
+
invenio_app_rdm-14.0.0b0.dev2.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
|
490
|
+
invenio_app_rdm-14.0.0b0.dev2.dist-info/entry_points.txt,sha256=rfzEeOEdtGy99NlpWzeW-32CoO5XrEpBvlZwLD2Th88,2158
|
|
491
|
+
invenio_app_rdm-14.0.0b0.dev2.dist-info/top_level.txt,sha256=quZejDUw2vLfKQboNIuVLJ9fxZifdnCT_s2PNf1dfmk,16
|
|
492
|
+
invenio_app_rdm-14.0.0b0.dev2.dist-info/RECORD,,
|
|
File without changes
|
{invenio_app_rdm-14.0.0b0.dev1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{invenio_app_rdm-14.0.0b0.dev1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{invenio_app_rdm-14.0.0b0.dev1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/top_level.txt
RENAMED
|
File without changes
|