invenio-app-rdm 8.0.0.dev9__py2.py3-none-any.whl → 14.0.0b4.dev4__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 +13 -4
- invenio_app_rdm/administration/__init__.py +8 -0
- invenio_app_rdm/administration/audit_logs/__init__.py +12 -0
- invenio_app_rdm/administration/audit_logs/audit_logs.py +81 -0
- invenio_app_rdm/administration/domains/__init__.py +22 -0
- invenio_app_rdm/administration/domains/domains.py +159 -0
- invenio_app_rdm/administration/moderation/__init__.py +11 -0
- invenio_app_rdm/administration/moderation/requests.py +175 -0
- invenio_app_rdm/administration/records/__init__.py +15 -0
- invenio_app_rdm/administration/records/records.py +163 -0
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/audit_logs.html +14 -0
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/domains_search.html +13 -0
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/records/drafts.html +14 -0
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/records/records.html +14 -0
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/requests.html +14 -0
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/requests_details.html +93 -0
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/user_moderation.html +14 -0
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/user_moderation_details.html +14 -0
- invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/users_search.html +14 -0
- invenio_app_rdm/administration/user_moderation/__init__.py +11 -0
- invenio_app_rdm/administration/user_moderation/user_moderation.py +175 -0
- invenio_app_rdm/administration/users/__init__.py +12 -0
- invenio_app_rdm/administration/users/users.py +130 -0
- invenio_app_rdm/administration/views/__init__.py +11 -0
- invenio_app_rdm/administration/views/ui.py +21 -0
- invenio_app_rdm/cli.py +95 -0
- invenio_app_rdm/communities_ui/__init__.py +9 -0
- invenio_app_rdm/communities_ui/searchapp.py +27 -0
- invenio_app_rdm/communities_ui/sitemap.py +63 -0
- invenio_app_rdm/communities_ui/templates/semantic-ui/invenio_communities/collections/collection.html +60 -0
- invenio_app_rdm/communities_ui/templates/semantic-ui/invenio_communities/collections/macros.html +43 -0
- invenio_app_rdm/communities_ui/templates/semantic-ui/invenio_communities/details/browse/index.html +59 -0
- invenio_app_rdm/communities_ui/templates/semantic-ui/invenio_communities/records/index.html +24 -0
- invenio_app_rdm/communities_ui/views/__init__.py +13 -0
- invenio_app_rdm/communities_ui/views/communities.py +206 -0
- invenio_app_rdm/communities_ui/views/ui.py +93 -0
- invenio_app_rdm/config.py +1072 -182
- invenio_app_rdm/ext.py +157 -0
- invenio_app_rdm/fixtures/__init__.py +56 -0
- invenio_app_rdm/fixtures/data/oai_sets.yaml +6 -0
- invenio_app_rdm/fixtures/oai_sets.py +20 -0
- invenio_app_rdm/fixtures/pages/.gitkeep +1 -0
- invenio_app_rdm/fixtures/pages.py +76 -0
- invenio_app_rdm/records_ui/previewer/__init__.py +9 -0
- invenio_app_rdm/records_ui/previewer/iiif_simple.py +51 -0
- invenio_app_rdm/records_ui/searchapp.py +46 -232
- invenio_app_rdm/records_ui/sitemap.py +44 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/deposit.html +63 -18
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html +316 -169
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/access-form.html +64 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html +4 -3
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/contact.html +2 -1
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/creatibutors.html +22 -20
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/description.html +7 -5
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/details.html +299 -167
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/doi.html +3 -24
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/meta.html +36 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/citations.html +6 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/communities.html +34 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/details.html +20 -15
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/export.html +18 -41
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/external_resources.html +55 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/keywords_subjects.html +9 -5
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/licenses.html +62 -49
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/locations.html +23 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html +33 -6
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/metrics.html +5 -9
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/technical_metadata.html +21 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/versions.html +15 -5
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/stats.html +112 -90
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/subjects.html +21 -19
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/draft_not_found.html +17 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/export.html +3 -2
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/iiif_preview.html +3 -7
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/creatibutors.html +69 -48
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/detail.html +234 -49
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/doi.html +36 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/files.html +170 -71
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/locations.html +62 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/stats_popup.html +21 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/version.html +3 -2
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/restricted_with_doi_tombstone.html +33 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/search.html +3 -1
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/tombstone.html +55 -12
- invenio_app_rdm/records_ui/utils.py +127 -2
- invenio_app_rdm/records_ui/views/__init__.py +114 -38
- invenio_app_rdm/records_ui/views/decorators.py +395 -117
- invenio_app_rdm/records_ui/views/deposits.py +414 -104
- invenio_app_rdm/records_ui/views/filters.py +118 -11
- invenio_app_rdm/records_ui/views/records.py +395 -66
- invenio_app_rdm/redirector/__init__.py +8 -0
- invenio_app_rdm/redirector/resource.py +106 -0
- invenio_app_rdm/redirector/views.py +18 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-inclusion/index.html +14 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-invitation/community_dashboard.html +38 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-invitation/user_dashboard.html +26 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-submission/index.html +129 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/file-modification/index.html +88 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/guest-access-request/index.html +66 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/macros/request_header.html +78 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/record-deletion/index.html +95 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/subcommunity/index.html +49 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/subcommunity-invitation/index.html +49 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/user-access-request/index.html +59 -0
- invenio_app_rdm/requests_ui/views/__init__.py +1 -3
- invenio_app_rdm/requests_ui/views/requests.py +345 -53
- invenio_app_rdm/requests_ui/views/ui.py +38 -9
- invenio_app_rdm/tasks.py +45 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/AuditLogActions.js +136 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewJson.js +35 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewRecentChanges.js +119 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/index.js +31 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/search/SearchResultItemLayout.js +87 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/search/index.js +9 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/CompareRevisionsDropdown.js +89 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUser.js +92 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUserForm.js +199 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/RevisionsDiffViewer.js +80 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/SetQuotaAction.js +109 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/SetQuotaForm.js +196 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/index.js +9 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/domains/index.js +27 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/domains/search/SearchResultItemLayout.js +185 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/domains/search/index.js +9 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/drafts/index.js +32 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/CompareRevisions.js +129 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RecordActions.js +75 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RecordResourceActions.js +185 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RemovalReasonsSelect.js +85 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RestoreConfirmation.js +108 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/TombstoneForm.js +212 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/api.js +38 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/index.js +9 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js +30 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/index.js +40 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/AdministrationSearchLayout.js +56 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/RecordSearchLayout.js +84 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/SearchResultItemLayout.js +171 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/filters/DeletionStatusFilter.js +121 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/filters/index.js +9 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/index.js +10 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/requests/RequestsSearchResultItem.js +79 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/requests/RequestsSearchbarLayout.js +48 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/requests/index.js +22 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/ModerationActions.js +103 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/index.js +29 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/search/SearchResultItemLayout.js +151 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/search/UserModerationBulkActions.js +0 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/search/UserModerationSearchLayout.js +56 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/search/index.js +10 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/UserActions.js +263 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/api/api.js +42 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/api/index.js +8 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/api/routes.js +38 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/index.js +30 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/search/SearchResultItemLayout.js +202 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/search/UserSearchLayout.js +81 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/search/filters/UserStatusFilterComponent.js +114 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/search/filters/index.js +1 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/search/index.js +10 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/collectionRecordsSearch/index.js +61 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/CommunityRecordsSearchAppLayout.js +84 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/CommunityRecordsSearchBarElement.js +44 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/CommunityRecordsSingleSearchBarElement.js +46 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/components.js +3 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/index.js +66 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CompactStats.js +52 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CopyButton.js +61 -39
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayPartOfCommunities.js +78 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayVerifiedCommunity.js +54 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/FileModificationUntil.js +45 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion/DeletionModal.js +354 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion/DeletionRadioGroup.js +44 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion.js +81 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordsResultsListItem.js +189 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js +788 -307
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/ShareDraftButton.js +65 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/config.js +48 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/index.js +27 -13
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/frontpage/RecordsList.js +165 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/frontpage/index.js +23 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/AccessRequestForm.js +254 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagement.js +179 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagementDropdown.js +186 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/EditButton.js +30 -16
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ExportDropdown.js +68 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageButton.js +140 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageDefaultBrandingAction/ManageDefaultBrandingAction.js +129 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunitiesModal.js +63 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunitiesSearch.js +89 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunityRequestItem.js +33 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCitationField.js +68 -73
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesList.js +150 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesListModal.js +90 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearch.js +109 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearchItem.js +58 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/index.js +3 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitySubmission/RecordCommunitySubmissionModal.js +171 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordManagement.js +123 -43
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js +143 -79
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RemoveFromCommunity/RemoveFromCommunityAction.js +188 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/AccessDropdown.js +93 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/CreateAccessLink.js +111 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/LinksSearchItem.js +170 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/LinksSearchResultContainer.js +236 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/LinksTab.js +106 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessRequests/AccessRequestsTab.js +239 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessUsersGroups/AccessUsersGroups.js +178 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessUsersGroups/AddUserGroupAccessModal.js +172 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessUsersGroups/GroupsTab.js +88 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessUsersGroups/PeopleTab.js +88 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessUsersGroups/UserGroupAccessSearchResultItem.js +158 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/{ShareButton.js → ShareOptions/ShareButton.js} +23 -6
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/ShareModal.js +252 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/api/api.js +39 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/access.js +24 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js +92 -124
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js +131 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/overridableRegistry/index.js +13 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/overridableRegistry/mapping.js +12 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/AccessRequestExpiration.js +61 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/index.js +1 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/AccessRequestTimelineEdit.js +177 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/AccessRequestTimelineRead.js +50 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/overrides/TimelineFeedHeader.js +34 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/search/components.js +165 -299
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/search/index.js +48 -20
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/subcommunity/browse.js +28 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/theme.js +164 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/base.js +210 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/communities.js +56 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/requests.js +78 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/uploads.js +210 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/uploads_items/ComputerTabletUploadsItem.js +155 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/uploads_items/MobileUploadsItem.js +154 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/utils.js +85 -74
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/file_uploader/uppy.less +37 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/creatibutors.less +26 -70
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/licenses.less +5 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/previewer/iiif_simple.less +16 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/form.overrides +170 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/form.variables +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/grid.overrides +110 -17
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/grid.variables +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/menu.overrides +395 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/menu.variables +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/message.overrides +34 -8
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/message.variables +6 -9
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/table.overrides +185 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/table.variables +1 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/button.overrides +103 -15
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/button.variables +5 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/container.overrides +121 -13
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/container.variables +6 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/header.overrides +61 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/header.variables +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/icon.overrides +29 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/icon.variables +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/image.overrides +115 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/image.variables +4 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/input.overrides +50 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/input.variables +5 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/label.overrides +116 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/label.variables +0 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/list.overrides +68 -37
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/list.variables +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/segment.overrides +80 -7
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/segment.variables +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/reset.overrides +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/reset.variables +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/site.overrides +557 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/site.variables +142 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/accordion.overrides +161 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/accordion.variables +9 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/checkbox.overrides +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/checkbox.variables +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/dropdown.overrides +116 -12
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/dropdown.variables +4 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/modal.overrides +151 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/modal.variables +5 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/search.overrides +7 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/search.variables +0 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/tab.overrides +3 -23
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/tab.variables +3 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/transition.overrides +67 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/transition.variables +3 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/theme.less +71 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/card.overrides +168 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/card.variables +2 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/feed.overrides +463 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/feed.variables +1 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/item.overrides +164 -10
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/item.variables +0 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/i18next.js +1 -1
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/_generatedTranslations.js +66 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ar/messages.po +951 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ar/translations.json +307 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/bg/messages.po +895 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/bg/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ca/messages.po +896 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ca/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/cs/messages.po +961 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/cs/translations.json +295 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/da/messages.po +897 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/da/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/de/messages.po +830 -160
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/de/translations.json +282 -88
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/el/messages.po +883 -4
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/el/translations.json +259 -65
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/en/messages.po +1000 -5
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/en/translations.json +290 -63
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/es/messages.po +960 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/es/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et/messages.po +896 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fa/messages.po +895 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fa/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fr/messages.po +960 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fr/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hr/messages.po +901 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hr/translations.json +289 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hu/messages.po +952 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hu/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/index.js +17 -6
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/it/messages.po +905 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/it/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ja/messages.po +889 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ja/translations.json +277 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ka/messages.po +895 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ka/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ko/messages.po +889 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ko/translations.json +277 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/lt/messages.po +907 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/lt/translations.json +295 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/no/messages.po +895 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/no/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pl/messages.po +910 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pl/translations.json +295 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pt/messages.po +901 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pt/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ro/messages.po +908 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ro/translations.json +289 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ru/messages.po +958 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ru/translations.json +295 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sk/messages.po +908 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sk/translations.json +295 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sv/messages.po +951 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sv/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/tr/messages.po +952 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/tr/translations.json +283 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/uk/messages.po +910 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/uk/translations.json +295 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_CN/messages.po +891 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_CN/translations.json +277 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_TW/messages.po +889 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_TW/translations.json +277 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/package.json +5 -8
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/translations.pot +872 -142
- invenio_app_rdm/theme/static/images/gnd-icon.svg +27 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/administration_page.html +19 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/default_static_page.html +33 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/files_integrity_report/email/files_integrity_report.html +31 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/footer.html +32 -79
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/frontpage.html +40 -57
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/header.html +114 -76
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/header_frontpage.html +16 -13
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/header_login.html +151 -61
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/search.de.html +3 -3
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/search.en.html +12 -7
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/search.sv.html +254 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/statistics.en.html +197 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/statistics.sv.html +196 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/versioning.en.html +149 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/versioning.sv.html +143 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/intro_section.html +98 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/javascript.html +12 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/macros/records_list.html +50 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/page.html +36 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/page_cover.html +13 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/robots.txt +15 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/searchbar.html +63 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/settings/notifications.html +17 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/site_footer.html +29 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_communities/default_static_page.html +26 -0
- 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/theme/templates/themes/default/invenio_app_rdm/header.html +147 -0
- invenio_app_rdm/theme/templates/themes/default/invenio_app_rdm/site_footer.html +42 -0
- invenio_app_rdm/theme/views.py +106 -37
- invenio_app_rdm/theme/webpack.py +72 -36
- invenio_app_rdm/translations/ar/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ar/LC_MESSAGES/messages.po +1389 -0
- invenio_app_rdm/translations/bg/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/bg/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/translations/ca/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ca/LC_MESSAGES/messages.po +1362 -0
- invenio_app_rdm/translations/cs/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/cs/LC_MESSAGES/messages.po +1398 -0
- invenio_app_rdm/translations/da/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/da/LC_MESSAGES/messages.po +1363 -0
- invenio_app_rdm/translations/de/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/de/LC_MESSAGES/messages.po +1085 -372
- invenio_app_rdm/translations/el/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/el/LC_MESSAGES/messages.po +987 -367
- invenio_app_rdm/translations/es/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/es/LC_MESSAGES/messages.po +1389 -0
- invenio_app_rdm/translations/et/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/et/LC_MESSAGES/messages.po +1364 -0
- invenio_app_rdm/translations/fa/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/fa/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/translations/fr/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/fr/LC_MESSAGES/messages.po +1390 -0
- invenio_app_rdm/translations/hr/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/hr/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/translations/hu/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/hu/LC_MESSAGES/messages.po +1402 -0
- invenio_app_rdm/translations/it/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/it/LC_MESSAGES/messages.po +1366 -0
- invenio_app_rdm/translations/ja/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ja/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/translations/ka/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ka/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/translations/ko/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ko/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/translations/lt/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/lt/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/translations/messages.pot +1046 -271
- invenio_app_rdm/translations/no/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/no/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/translations/pl/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/pl/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/translations/pt/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/pt/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/translations/ro/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ro/LC_MESSAGES/messages.po +1391 -0
- invenio_app_rdm/translations/ru/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ru/LC_MESSAGES/messages.po +1384 -0
- invenio_app_rdm/translations/sk/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/sk/LC_MESSAGES/messages.po +1362 -0
- invenio_app_rdm/translations/sv/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/sv/LC_MESSAGES/messages.po +1400 -0
- invenio_app_rdm/translations/tr/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/tr/LC_MESSAGES/messages.po +1340 -63
- invenio_app_rdm/translations/uk/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/uk/LC_MESSAGES/messages.po +1363 -0
- invenio_app_rdm/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/zh_CN/LC_MESSAGES/messages.po +1363 -0
- invenio_app_rdm/translations/zh_TW/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/zh_TW/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/upgrade_scripts/fix_migrated_records_from_1_0_to_2_0.py +1 -0
- invenio_app_rdm/upgrade_scripts/fix_migrated_records_from_8_0_to_9_0.py +90 -0
- invenio_app_rdm/upgrade_scripts/migrate_10_0_to_11_0.py +47 -0
- invenio_app_rdm/upgrade_scripts/migrate_11_0_to_12_0.py +205 -0
- invenio_app_rdm/upgrade_scripts/migrate_12_0_to_13_0.py +235 -0
- invenio_app_rdm/upgrade_scripts/migrate_13_0_to_14_0.py +268 -0
- invenio_app_rdm/upgrade_scripts/migrate_2_0_to_3_0.py +7 -3
- invenio_app_rdm/upgrade_scripts/migrate_3_0_to_4_0.py +4 -6
- invenio_app_rdm/upgrade_scripts/migrate_4_0_to_6_0.py +30 -43
- invenio_app_rdm/upgrade_scripts/migrate_6_0_to_7_0.py +1 -5
- invenio_app_rdm/upgrade_scripts/migrate_7_0_to_8_0.py +7 -11
- invenio_app_rdm/upgrade_scripts/migrate_8_0_to_9_0.py +98 -0
- invenio_app_rdm/upgrade_scripts/migrate_9_0_to_10_0.py +43 -0
- invenio_app_rdm/users/schemas.py +27 -0
- invenio_app_rdm/users_ui/__init__.py +9 -0
- invenio_app_rdm/users_ui/searchapp.py +53 -0
- invenio_app_rdm/users_ui/templates/semantic-ui/invenio_app_rdm/users/base.html +21 -0
- invenio_app_rdm/users_ui/templates/semantic-ui/invenio_app_rdm/users/communities.html +25 -0
- invenio_app_rdm/users_ui/templates/semantic-ui/invenio_app_rdm/users/header.html +46 -0
- invenio_app_rdm/users_ui/templates/semantic-ui/invenio_app_rdm/users/requests.html +24 -0
- invenio_app_rdm/users_ui/templates/semantic-ui/invenio_app_rdm/users/uploads.html +25 -0
- invenio_app_rdm/users_ui/views/__init__.py +14 -0
- invenio_app_rdm/users_ui/views/dashboard.py +59 -0
- invenio_app_rdm/users_ui/views/ui.py +68 -0
- invenio_app_rdm/utils/files.py +120 -0
- invenio_app_rdm/views.py +21 -0
- invenio_app_rdm-14.0.0b4.dev4.dist-info/METADATA +627 -0
- invenio_app_rdm-14.0.0b4.dev4.dist-info/RECORD +508 -0
- {invenio_app_rdm-8.0.0.dev9.dist-info → invenio_app_rdm-14.0.0b4.dev4.dist-info}/WHEEL +1 -1
- invenio_app_rdm-14.0.0b4.dev4.dist-info/entry_points.txt +44 -0
- invenio_app_rdm/admin.py +0 -36
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/dashboard.html +0 -47
- invenio_app_rdm/records_ui/views/utils.py +0 -27
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/Image.js +0 -36
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareModal.js +0 -257
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/components/base.js +0 -140
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/components/communities.js +0 -200
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/components/requests.js +0 -394
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/components/uploads.js +0 -287
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/index.js +0 -155
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm_requests/menuTabInit.js +0 -24
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/deposit.less +0 -158
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/export_page.less +0 -20
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/footer.less +0 -88
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/frontpage.less +0 -97
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/details.less +0 -53
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/sidebar.less +0 -47
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page.less +0 -423
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/navbar.less +0 -305
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/search.less +0 -52
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme.less +0 -492
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/variables.less +0 -60
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm_requests/theme.less +0 -22
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/i18next-scanner.config.js +0 -63
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/package-lock.json +0 -1512
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/scripts/compileCatalog.js +0 -39
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/scripts/initCatalog.js +0 -20
- invenio_app_rdm/theme/templates/semantic-ui/invenio_requests/community-submission/index.html +0 -67
- invenio_app_rdm/version.py +0 -23
- invenio_app_rdm-8.0.0.dev9.dist-info/AUTHORS.rst +0 -11
- invenio_app_rdm-8.0.0.dev9.dist-info/METADATA +0 -74
- invenio_app_rdm-8.0.0.dev9.dist-info/RECORD +0 -179
- invenio_app_rdm-8.0.0.dev9.dist-info/entry_points.txt +0 -14
- /invenio_app_rdm/{translations/.gitkeep → fixtures/data/pages.yaml} +0 -0
- {invenio_app_rdm-8.0.0.dev9.dist-info → invenio_app_rdm-14.0.0b4.dev4.dist-info/licenses}/LICENSE +0 -0
- {invenio_app_rdm-8.0.0.dev9.dist-info → invenio_app_rdm-14.0.0b4.dev4.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2022 CERN.
|
|
4
|
+
# Copyright (C) 2022 TU Wien.
|
|
5
|
+
# Copyright (C) 2022 Graz University of Technology.
|
|
6
|
+
#
|
|
7
|
+
# Invenio-App-RDM is free software; you can redistribute it and/or modify
|
|
8
|
+
# it under the terms of the MIT License; see LICENSE file for more details.
|
|
9
|
+
|
|
10
|
+
"""Record migration fix script from InvenioRDM 8.0 to 9.0."""
|
|
11
|
+
|
|
12
|
+
from click import secho
|
|
13
|
+
from invenio_db import db
|
|
14
|
+
from invenio_rdm_records.records.api import RDMDraft, RDMRecord
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def execute_upgrade_fix():
|
|
18
|
+
"""Execute the upgrade fix from InvenioRDM 8.0 to 9.0."""
|
|
19
|
+
|
|
20
|
+
def update_parent(record):
|
|
21
|
+
"""Update parent schema and parent communities for older records."""
|
|
22
|
+
new_parent_schema = "local://records/parent-v2.0.0.json"
|
|
23
|
+
record.parent["$schema"] = new_parent_schema
|
|
24
|
+
record.parent.setdefault("communities", {})
|
|
25
|
+
|
|
26
|
+
def update_record(record):
|
|
27
|
+
# skipping deleted records because can't be committed
|
|
28
|
+
if record.is_deleted:
|
|
29
|
+
return
|
|
30
|
+
|
|
31
|
+
try:
|
|
32
|
+
secho(f"Updating record : {record.pid.pid_value}", fg="yellow")
|
|
33
|
+
|
|
34
|
+
update_parent(record)
|
|
35
|
+
|
|
36
|
+
record.parent.commit()
|
|
37
|
+
record.commit()
|
|
38
|
+
|
|
39
|
+
secho(f"> Updated parent: {record.parent.pid.pid_value}", fg="green")
|
|
40
|
+
secho(f"> Updated record: {record.pid.pid_value}\n", fg="green")
|
|
41
|
+
return None
|
|
42
|
+
except Exception as e:
|
|
43
|
+
secho("> Error {}".format(repr(e)), fg="red")
|
|
44
|
+
error = "Record {} failed to update".format(record.pid.pid_value)
|
|
45
|
+
return error
|
|
46
|
+
|
|
47
|
+
errors = []
|
|
48
|
+
for record_metadata in RDMRecord.model_cls.query.all():
|
|
49
|
+
record = RDMRecord(record_metadata.data, model=record_metadata)
|
|
50
|
+
error = update_record(record)
|
|
51
|
+
if error:
|
|
52
|
+
errors.append(error)
|
|
53
|
+
|
|
54
|
+
for draft_metadata in RDMDraft.model_cls.query.all():
|
|
55
|
+
draft = RDMDraft(draft_metadata.data, model=draft_metadata)
|
|
56
|
+
error = update_record(draft)
|
|
57
|
+
if error:
|
|
58
|
+
errors.append(error)
|
|
59
|
+
|
|
60
|
+
success = not errors
|
|
61
|
+
|
|
62
|
+
if success:
|
|
63
|
+
secho("Committing to DB", nl=True)
|
|
64
|
+
db.session.commit()
|
|
65
|
+
secho(
|
|
66
|
+
"Data migration completed, please rebuild the search indices now.",
|
|
67
|
+
fg="green",
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
else:
|
|
71
|
+
secho("Rollback", nl=True)
|
|
72
|
+
db.session.rollback()
|
|
73
|
+
secho(
|
|
74
|
+
"Upgrade aborted due to the following errors:",
|
|
75
|
+
fg="red",
|
|
76
|
+
err=True,
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
for error in errors:
|
|
80
|
+
secho(error, fg="red", err=True)
|
|
81
|
+
|
|
82
|
+
msg = (
|
|
83
|
+
"The changes have been rolled back. "
|
|
84
|
+
"Please fix the above listed errors and try the upgrade again",
|
|
85
|
+
)
|
|
86
|
+
secho(msg, fg="yellow", err=True)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
if __name__ == "__main__":
|
|
90
|
+
execute_upgrade_fix()
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2023 CERN.
|
|
4
|
+
#
|
|
5
|
+
# Invenio-App-RDM is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the MIT License; see LICENSE file for more details.
|
|
7
|
+
|
|
8
|
+
"""Record migration script from InvenioRDM 10.0 to 11.0.
|
|
9
|
+
|
|
10
|
+
Disclaimer: This script is intended to be executed *only once*, namely when
|
|
11
|
+
upgrading from InvenioRDM 10.0 to 11.0!
|
|
12
|
+
If this script is executed at any other time, probably the best case scenario
|
|
13
|
+
is that nothing happens!
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
from click import secho
|
|
17
|
+
from invenio_db import db
|
|
18
|
+
from invenio_files_rest.models import Bucket, FileInstance
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def execute_upgrade():
|
|
22
|
+
"""Execute the upgrade from InvenioRDM 10.0 to 11.0.
|
|
23
|
+
|
|
24
|
+
Please read the disclaimer on this module before thinking about executing
|
|
25
|
+
this function!
|
|
26
|
+
"""
|
|
27
|
+
secho("Starting data migration...", fg="green")
|
|
28
|
+
buckets = Bucket.query.all()
|
|
29
|
+
|
|
30
|
+
for bucket in buckets:
|
|
31
|
+
bucket.default_storage_class = "L"
|
|
32
|
+
db.session.add(bucket)
|
|
33
|
+
|
|
34
|
+
file_instances = FileInstance.query.all()
|
|
35
|
+
|
|
36
|
+
for fi in file_instances:
|
|
37
|
+
fi.storage_class = "L"
|
|
38
|
+
db.session.add(fi)
|
|
39
|
+
|
|
40
|
+
secho("Committing to DB", fg="green")
|
|
41
|
+
db.session.commit()
|
|
42
|
+
secho("Data migration completed.", fg="green")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# if the script is executed on its own, perform the upgrade
|
|
46
|
+
if __name__ == "__main__":
|
|
47
|
+
execute_upgrade()
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2023-2024 CERN.
|
|
4
|
+
# Copyright (C) 2024 Graz University of Technology.
|
|
5
|
+
#
|
|
6
|
+
# Invenio-App-RDM is free software; you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the MIT License; see LICENSE file for more details.
|
|
8
|
+
|
|
9
|
+
"""Record migration script from InvenioRDM 11.0 to 12.0.
|
|
10
|
+
|
|
11
|
+
Disclaimer: This script is intended to be executed *only once*, namely when
|
|
12
|
+
upgrading from InvenioRDM 11.0 to 12.0!
|
|
13
|
+
If this script is executed at any other time, probably the best case scenario
|
|
14
|
+
is that nothing happens!
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
This script has been tested with following data:
|
|
18
|
+
|
|
19
|
+
- user
|
|
20
|
+
- demo records of v11
|
|
21
|
+
- demo communities of v11
|
|
22
|
+
- cli created user of v11
|
|
23
|
+
- ui created community (com_a)
|
|
24
|
+
- ui created community private (com_b)
|
|
25
|
+
- ui created record (rec_a.v1)
|
|
26
|
+
- ui created v2 of record (rec_a.v1)
|
|
27
|
+
- ui created record (rec_b.v1) added to community (com_a)
|
|
28
|
+
- ui created draft (dra_a)
|
|
29
|
+
- ui created draft (dra_b) added to community (com_b)
|
|
30
|
+
- repository with records without managed doi
|
|
31
|
+
- repository with records with managed doi
|
|
32
|
+
- repository with records with managed doi without parent doi after migration
|
|
33
|
+
- base vocabularies (no customized) usable after migration
|
|
34
|
+
- record (rec_a.v1, rec_a.v2) findable after migration and rebuild of index
|
|
35
|
+
|
|
36
|
+
- administration
|
|
37
|
+
- user panel list of users visible
|
|
38
|
+
- drafts visible
|
|
39
|
+
- records visible
|
|
40
|
+
"""
|
|
41
|
+
import sys
|
|
42
|
+
|
|
43
|
+
from click import secho
|
|
44
|
+
from flask import current_app
|
|
45
|
+
from invenio_access.permissions import system_identity
|
|
46
|
+
from invenio_communities.communities.records.api import Community
|
|
47
|
+
from invenio_communities.communities.records.systemfields.access import ReviewPolicyEnum
|
|
48
|
+
from invenio_db import db
|
|
49
|
+
from invenio_rdm_records.fixtures import PrioritizedVocabulariesFixtures
|
|
50
|
+
from invenio_rdm_records.proxies import current_rdm_records
|
|
51
|
+
from invenio_rdm_records.records.api import RDMDraft, RDMRecord
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def execute_upgrade():
|
|
55
|
+
"""Execute the upgrade from InvenioRDM 11.0 to 12.0.0.
|
|
56
|
+
|
|
57
|
+
Please read the disclaimer on this module before thinking about executing
|
|
58
|
+
this function!
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
def migrate_review_policy(community_record):
|
|
62
|
+
if community_record.is_deleted:
|
|
63
|
+
return
|
|
64
|
+
|
|
65
|
+
community_record["access"].setdefault(
|
|
66
|
+
"review_policy", ReviewPolicyEnum.CLOSED.value
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
def update_parent(record):
|
|
70
|
+
"""Update parent schema and parent communities for older records."""
|
|
71
|
+
new_parent_schema = "local://records/parent-v3.0.0.json"
|
|
72
|
+
record.parent["$schema"] = new_parent_schema
|
|
73
|
+
|
|
74
|
+
if (
|
|
75
|
+
isinstance(record.parent["access"]["owned_by"], list)
|
|
76
|
+
and len(record.parent["access"]["owned_by"]) > 0
|
|
77
|
+
):
|
|
78
|
+
record.parent.access.owned_by = {
|
|
79
|
+
"user": record.parent["access"]["owned_by"][0]["user"]
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if "pids" not in record.parent:
|
|
83
|
+
record.parent["pids"] = {}
|
|
84
|
+
|
|
85
|
+
if (
|
|
86
|
+
current_app.config["DATACITE_ENABLED"]
|
|
87
|
+
and "doi" in current_app.config["RDM_PARENT_PERSISTENT_IDENTIFIERS"]
|
|
88
|
+
and current_app.config["RDM_PARENT_PERSISTENT_IDENTIFIERS"]["doi"][
|
|
89
|
+
"is_enabled"
|
|
90
|
+
]
|
|
91
|
+
):
|
|
92
|
+
pids = current_rdm_records.records_service.pids.parent_pid_manager.create_all(
|
|
93
|
+
record.parent, pids={}, schemes={"doi"}
|
|
94
|
+
)
|
|
95
|
+
current_rdm_records.records_service.pids.parent_pid_manager.reserve_all(
|
|
96
|
+
record.parent, pids
|
|
97
|
+
)
|
|
98
|
+
record.parent["pids"] = pids
|
|
99
|
+
# Have to commit here otherwise register_or_update won't get
|
|
100
|
+
# the above data
|
|
101
|
+
record.parent.commit()
|
|
102
|
+
|
|
103
|
+
if isinstance(record, RDMRecord):
|
|
104
|
+
current_rdm_records.records_service.pids.register_or_update(
|
|
105
|
+
id_=record["id"],
|
|
106
|
+
identity=system_identity,
|
|
107
|
+
scheme="doi",
|
|
108
|
+
parent=True,
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
def update_record(record):
|
|
112
|
+
# skipping deleted records because can't be committed
|
|
113
|
+
if record.is_deleted:
|
|
114
|
+
return
|
|
115
|
+
|
|
116
|
+
try:
|
|
117
|
+
secho(f"Updating record : {record.pid.pid_value}", fg="yellow")
|
|
118
|
+
|
|
119
|
+
# otherwise the save would not work, due to new attributes
|
|
120
|
+
# (media_files, parent_doi) used
|
|
121
|
+
record["$schema"] = "local://records/record-v6.0.0.json"
|
|
122
|
+
|
|
123
|
+
# Initialize media files as disabled if not any
|
|
124
|
+
record.setdefault("media_files", {"enabled": False})
|
|
125
|
+
if record.media_files.bucket is None:
|
|
126
|
+
record.media_files.create_bucket()
|
|
127
|
+
|
|
128
|
+
update_parent(record)
|
|
129
|
+
|
|
130
|
+
record.commit()
|
|
131
|
+
|
|
132
|
+
secho(f"> Updated parent: {record.parent.pid.pid_value}", fg="green")
|
|
133
|
+
secho(f"> Updated record: {record.pid.pid_value}\n", fg="green")
|
|
134
|
+
return None
|
|
135
|
+
except Exception as e:
|
|
136
|
+
secho(f"> Error {repr(e)}", fg="red")
|
|
137
|
+
error = f"Record {record.pid.pid_value} failed to update"
|
|
138
|
+
return error
|
|
139
|
+
|
|
140
|
+
secho("Starting data migration...", fg="green")
|
|
141
|
+
|
|
142
|
+
# upgrading vocabularies
|
|
143
|
+
pvf = PrioritizedVocabulariesFixtures(system_identity)
|
|
144
|
+
pvf.load()
|
|
145
|
+
|
|
146
|
+
# Migrating communities
|
|
147
|
+
communities = Community.model_cls.query.all()
|
|
148
|
+
|
|
149
|
+
for community_data in communities:
|
|
150
|
+
community = Community(community_data.data, model=community_data)
|
|
151
|
+
|
|
152
|
+
# production data could have problems without it
|
|
153
|
+
if community:
|
|
154
|
+
migrate_review_policy(community)
|
|
155
|
+
community.commit()
|
|
156
|
+
|
|
157
|
+
# Migrating records and drafts
|
|
158
|
+
errors = []
|
|
159
|
+
for record_metadata in RDMRecord.model_cls.query.all():
|
|
160
|
+
record = RDMRecord(record_metadata.data, model=record_metadata)
|
|
161
|
+
error = update_record(record)
|
|
162
|
+
|
|
163
|
+
if error:
|
|
164
|
+
errors.append(error)
|
|
165
|
+
|
|
166
|
+
for draft_metadata in RDMDraft.model_cls.query.all():
|
|
167
|
+
draft = RDMDraft(draft_metadata.data, model=draft_metadata)
|
|
168
|
+
error = update_record(draft)
|
|
169
|
+
if error:
|
|
170
|
+
errors.append(error)
|
|
171
|
+
|
|
172
|
+
success = not errors
|
|
173
|
+
|
|
174
|
+
if success:
|
|
175
|
+
secho("Commiting to DB", nl=True)
|
|
176
|
+
db.session.commit()
|
|
177
|
+
secho(
|
|
178
|
+
"Data migration completed, please rebuild the search indices now.",
|
|
179
|
+
fg="green",
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
else:
|
|
183
|
+
secho("Rollback", nl=True)
|
|
184
|
+
db.session.rollback()
|
|
185
|
+
secho(
|
|
186
|
+
"Upgrade aborted due to the following errors:",
|
|
187
|
+
fg="red",
|
|
188
|
+
err=True,
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
for error in errors:
|
|
192
|
+
secho(error, fg="red", err=True)
|
|
193
|
+
|
|
194
|
+
msg = (
|
|
195
|
+
"The changes have been rolled back. "
|
|
196
|
+
"Please fix the above listed errors and try the upgrade again",
|
|
197
|
+
)
|
|
198
|
+
secho(msg, fg="yellow", err=True)
|
|
199
|
+
|
|
200
|
+
sys.exit(1)
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
# if the script is executed on its own, perform the upgrade
|
|
204
|
+
if __name__ == "__main__":
|
|
205
|
+
execute_upgrade()
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2023-2025 CERN.
|
|
4
|
+
# Copyright (C) 2024-2025 Graz University of Technology.
|
|
5
|
+
# Copyright (C) 2025 Northwestern University.
|
|
6
|
+
#
|
|
7
|
+
# Invenio-App-RDM is free software; you can redistribute it and/or modify
|
|
8
|
+
# it under the terms of the MIT License; see LICENSE file for more details.
|
|
9
|
+
|
|
10
|
+
"""Record migration script from InvenioRDM 12.0 to 13.0.
|
|
11
|
+
|
|
12
|
+
Disclaimer: This script is intended to be executed *only once*, namely when
|
|
13
|
+
upgrading from InvenioRDM 12.0 to 13.0!
|
|
14
|
+
If this script is executed at any other time, probably the best case scenario
|
|
15
|
+
is that nothing happens!
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
This script has been tested with following data:
|
|
19
|
+
|
|
20
|
+
- record
|
|
21
|
+
- internal_notes
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
import sys
|
|
25
|
+
import traceback
|
|
26
|
+
|
|
27
|
+
from click import secho
|
|
28
|
+
from invenio_access.permissions import system_identity
|
|
29
|
+
from invenio_db import db
|
|
30
|
+
from invenio_rdm_records.proxies import current_rdm_records_service as records_service
|
|
31
|
+
from invenio_search import current_search_client as search_client
|
|
32
|
+
from invenio_search.engine import dsl
|
|
33
|
+
from invenio_search.utils import prefix_index
|
|
34
|
+
from invenio_vocabularies.contrib.affiliations.api import Affiliation
|
|
35
|
+
from invenio_vocabularies.contrib.names.api import Name
|
|
36
|
+
from sqlalchemy import select
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def run_upgrade(has, migrate):
|
|
40
|
+
"""Run upgrade."""
|
|
41
|
+
record_success_counter = 0
|
|
42
|
+
record_error_counter = 0
|
|
43
|
+
draft_success_counter = 0
|
|
44
|
+
draft_error_counter = 0
|
|
45
|
+
|
|
46
|
+
# Handle published records
|
|
47
|
+
published_records = records_service.search(
|
|
48
|
+
system_identity,
|
|
49
|
+
params={"allversions": True, "include_deleted": True},
|
|
50
|
+
extra_filter=has,
|
|
51
|
+
)
|
|
52
|
+
for result in published_records.hits:
|
|
53
|
+
record = records_service.record_cls.pid.resolve(result["id"])
|
|
54
|
+
try:
|
|
55
|
+
migrate(record)
|
|
56
|
+
record_success_counter += 1
|
|
57
|
+
except Exception as error:
|
|
58
|
+
secho(f"> Error {repr(error)}", fg="red")
|
|
59
|
+
error = f"Record {record.pid.pid_value} failed to update"
|
|
60
|
+
record_error_counter += 1
|
|
61
|
+
|
|
62
|
+
# Handle draft records
|
|
63
|
+
draft_records = records_service.search_drafts(
|
|
64
|
+
system_identity,
|
|
65
|
+
params={"allversions": True},
|
|
66
|
+
extra_filter=has,
|
|
67
|
+
)
|
|
68
|
+
for result in draft_records.hits:
|
|
69
|
+
draft = records_service.draft_cls.pid.resolve(
|
|
70
|
+
result["id"],
|
|
71
|
+
registered_only=False,
|
|
72
|
+
)
|
|
73
|
+
try:
|
|
74
|
+
migrate(draft)
|
|
75
|
+
draft_success_counter += 1
|
|
76
|
+
except Exception as error:
|
|
77
|
+
secho(f"> Error {repr(error)}", fg="red")
|
|
78
|
+
error = f"Draft {draft.pid.pid_value} failed to update"
|
|
79
|
+
draft_error_counter += 1
|
|
80
|
+
|
|
81
|
+
if draft_error_counter > 0 or record_error_counter > 0:
|
|
82
|
+
db.session.rollback()
|
|
83
|
+
secho(
|
|
84
|
+
f"Migration failed: {record_error_counter} records had failures and {draft_error_counter} drafts had failures",
|
|
85
|
+
fg="red",
|
|
86
|
+
)
|
|
87
|
+
secho(
|
|
88
|
+
"The changes have been rolled back. Please fix the above listed errors and try the upgrade again",
|
|
89
|
+
fg="yellow",
|
|
90
|
+
err=True,
|
|
91
|
+
)
|
|
92
|
+
elif draft_success_counter > 0 or record_success_counter > 0:
|
|
93
|
+
db.session.commit()
|
|
94
|
+
secho(
|
|
95
|
+
f"Migration completed: {record_success_counter} records have been updated and {draft_success_counter} drafts have been updated",
|
|
96
|
+
fg="green",
|
|
97
|
+
)
|
|
98
|
+
else:
|
|
99
|
+
secho(
|
|
100
|
+
"Migration completed: no records or drafts required updating.", fg="green"
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def run_upgrade_for_thesis():
|
|
105
|
+
"""Run upgrade for thesis."""
|
|
106
|
+
|
|
107
|
+
def migrate_thesis_university(record_or_draft):
|
|
108
|
+
custom_fields = record_or_draft.get("custom_fields", {})
|
|
109
|
+
university = custom_fields.get("thesis:university")
|
|
110
|
+
if university and "thesis:thesis" not in custom_fields:
|
|
111
|
+
custom_fields["thesis:thesis"] = {"university": university}
|
|
112
|
+
|
|
113
|
+
record_or_draft.commit()
|
|
114
|
+
|
|
115
|
+
# Common query filter
|
|
116
|
+
has_thesis = dsl.Q("exists", field="custom_fields.thesis:university")
|
|
117
|
+
|
|
118
|
+
secho("Thesis upgrade has started.", fg="green")
|
|
119
|
+
|
|
120
|
+
run_upgrade(has_thesis, migrate_thesis_university)
|
|
121
|
+
|
|
122
|
+
secho("Thesis upgrade has finished.", fg="green")
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def run_upgrade_for_affiliations():
|
|
126
|
+
"""Update affiliations entry so that they conform to new shape."""
|
|
127
|
+
secho("Affiliations upgrade has started.", fg="green")
|
|
128
|
+
|
|
129
|
+
error = False
|
|
130
|
+
# Batch intake to limit memory usage
|
|
131
|
+
stmt = select(Affiliation.model_cls).execution_options(yield_per=250)
|
|
132
|
+
|
|
133
|
+
for affiliation_model in db.session.scalars(stmt):
|
|
134
|
+
try:
|
|
135
|
+
data_for_affiliation = affiliation_model.data
|
|
136
|
+
data_for_affiliation.pop("id", None)
|
|
137
|
+
data_for_affiliation.pop("pid", None)
|
|
138
|
+
affiliation = Affiliation(data_for_affiliation, model=affiliation_model)
|
|
139
|
+
affiliation.commit()
|
|
140
|
+
except Exception as e:
|
|
141
|
+
secho(f"Migration failed with '{repr(e)}'.", fg="red")
|
|
142
|
+
secho(f"Affiliation {affiliation_model.pid} failed to update", fg="red")
|
|
143
|
+
trace = traceback.format_exc()
|
|
144
|
+
secho(f"Traceback {trace}", fg="red")
|
|
145
|
+
error = True
|
|
146
|
+
break
|
|
147
|
+
|
|
148
|
+
if error:
|
|
149
|
+
db.session.rollback()
|
|
150
|
+
secho("Affiliations upgrade failed.", fg="red")
|
|
151
|
+
sys.exit(1)
|
|
152
|
+
else:
|
|
153
|
+
db.session.commit()
|
|
154
|
+
secho("Affiliations upgrade succeeded.", fg="green")
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
def run_upgrade_for_names():
|
|
158
|
+
"""Update names entry so that they conform to new shape."""
|
|
159
|
+
secho("Names upgrade has started.", fg="green")
|
|
160
|
+
|
|
161
|
+
error = False
|
|
162
|
+
# Batch intake to limit memory usage
|
|
163
|
+
stmt = select(Name.model_cls).execution_options(yield_per=250)
|
|
164
|
+
|
|
165
|
+
for name_model in db.session.scalars(stmt):
|
|
166
|
+
try:
|
|
167
|
+
data_for_name = name_model.data
|
|
168
|
+
data_for_name.pop("id", None)
|
|
169
|
+
data_for_name.pop("pid", None)
|
|
170
|
+
name = Name(data_for_name, model=name_model)
|
|
171
|
+
name.commit()
|
|
172
|
+
except Exception as e:
|
|
173
|
+
secho(f"Migration failed with '{repr(e)}'.", fg="red")
|
|
174
|
+
secho(f"Name {name_model.pid} failed to update", fg="red")
|
|
175
|
+
trace = traceback.format_exc()
|
|
176
|
+
secho(f"Traceback {trace}", fg="red")
|
|
177
|
+
error = True
|
|
178
|
+
break
|
|
179
|
+
|
|
180
|
+
if error:
|
|
181
|
+
db.session.rollback()
|
|
182
|
+
secho("Names upgrade failed.", fg="red")
|
|
183
|
+
sys.exit(1)
|
|
184
|
+
else:
|
|
185
|
+
db.session.commit()
|
|
186
|
+
secho("Names upgrade succeeded.", fg="green")
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
def run_upgrade_for_event_stats_mappings():
|
|
190
|
+
"""Update the live event stats mappings to add missing fields."""
|
|
191
|
+
secho("Event stats mappings upgrade has started.", fg="green")
|
|
192
|
+
|
|
193
|
+
# Find the latest mappings for views and download stats events
|
|
194
|
+
for event_type in ("record-view", "file-download"):
|
|
195
|
+
try:
|
|
196
|
+
events_index = prefix_index(f"events-stats-{event_type}-*")
|
|
197
|
+
res = search_client.indices.get(events_index)
|
|
198
|
+
last_two_indices = sorted(res.keys())[-2:]
|
|
199
|
+
for index in last_two_indices:
|
|
200
|
+
res = search_client.indices.put_mapping(
|
|
201
|
+
index=index,
|
|
202
|
+
body={"properties": {"is_machine": {"type": "boolean"}}},
|
|
203
|
+
)
|
|
204
|
+
except Exception as e:
|
|
205
|
+
secho(f"Mapping update for {event_type} failed with '{repr(e)}'.", fg="red")
|
|
206
|
+
trace = traceback.format_exc()
|
|
207
|
+
secho(f"Traceback {trace}", fg="red")
|
|
208
|
+
secho("Event stats mappings upgrade succeeded.", fg="green")
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
def execute_upgrade():
|
|
212
|
+
"""Execute the upgrade from InvenioRDM 12.0 to 13.0.0.
|
|
213
|
+
|
|
214
|
+
Please read the disclaimer on this module before thinking about executing
|
|
215
|
+
this function!
|
|
216
|
+
|
|
217
|
+
NOTE:
|
|
218
|
+
since the data upgrade steps are more selective now, the approach how to do
|
|
219
|
+
it has been changed. now the records/drafts which should be updated are
|
|
220
|
+
searched by a filter and then the updates are applied to those
|
|
221
|
+
records/drafts explicitly. this should improve speed and should make it
|
|
222
|
+
easier to upgrade large instances
|
|
223
|
+
|
|
224
|
+
"""
|
|
225
|
+
secho("Starting data migration...", fg="green")
|
|
226
|
+
|
|
227
|
+
run_upgrade_for_thesis()
|
|
228
|
+
run_upgrade_for_affiliations()
|
|
229
|
+
run_upgrade_for_names()
|
|
230
|
+
run_upgrade_for_event_stats_mappings()
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
# if the script is executed on its own, perform the upgrade
|
|
234
|
+
if __name__ == "__main__":
|
|
235
|
+
execute_upgrade()
|