invenio-app-rdm 12.0.0.dev8__py2.py3-none-any.whl → 14.0.0b1.dev8__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 +3 -2
- invenio_app_rdm/{stats/templates/events/record_view/v7 → administration}/__init__.py +1 -3
- invenio_app_rdm/{stats/templates/events/record_view → administration/audit_logs}/__init__.py +6 -4
- 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 +91 -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/{stats/templates/aggregations/aggr_record_view/v7 → administration/user_moderation}/__init__.py +4 -3
- 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/{stats/templates/events/file_download/v7 → administration/views}/__init__.py +4 -3
- invenio_app_rdm/administration/views/ui.py +21 -0
- invenio_app_rdm/cli.py +37 -14
- invenio_app_rdm/communities_ui/searchapp.py +1 -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/{details → records}/index.html +1 -1
- invenio_app_rdm/communities_ui/views/communities.py +183 -8
- invenio_app_rdm/communities_ui/views/ui.py +52 -42
- invenio_app_rdm/config.py +586 -90
- invenio_app_rdm/ext.py +157 -0
- invenio_app_rdm/fixtures/__init__.py +2 -2
- invenio_app_rdm/fixtures/pages.py +34 -12
- invenio_app_rdm/records_ui/searchapp.py +43 -0
- invenio_app_rdm/records_ui/sitemap.py +44 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/deposit.html +59 -16
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html +236 -141
- 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 +290 -230
- 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 +30 -22
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/details.html +20 -19
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/export.html +19 -16
- 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 +24 -4
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/metrics.html +2 -2
- 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 +93 -79
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/subjects.html +1 -1
- 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 +2 -1
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/creatibutors.html +54 -39
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/detail.html +182 -93
- 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 +152 -79
- 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/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/tombstone.html +55 -12
- invenio_app_rdm/records_ui/utils.py +126 -1
- invenio_app_rdm/records_ui/views/__init__.py +75 -17
- invenio_app_rdm/records_ui/views/decorators.py +309 -38
- invenio_app_rdm/records_ui/views/deposits.py +302 -51
- invenio_app_rdm/records_ui/views/filters.py +74 -7
- invenio_app_rdm/records_ui/views/records.py +256 -90
- invenio_app_rdm/redirector/resource.py +1 -0
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-submission/index.html +34 -8
- 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 +5 -3
- 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/requests.py +221 -42
- invenio_app_rdm/requests_ui/views/ui.py +17 -4
- invenio_app_rdm/tasks.py +6 -2
- 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 +81 -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/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 +2 -2
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/CommunityRecordsSearchBarElement.js +1 -1
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/CommunityRecordsSingleSearchBarElement.js +1 -1
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/index.js +8 -3
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CompactStats.js +51 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CopyButton.js +38 -19
- 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 +61 -31
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js +680 -486
- 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 +14 -2
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/frontpage/RecordsList.js +61 -21
- 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 +171 -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 +10 -1
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ExportDropdown.js +7 -2
- 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 +55 -51
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesList.js +87 -89
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesListModal.js +44 -30
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearch.js +39 -20
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearchItem.js +44 -17
- 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 +111 -62
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js +99 -61
- 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 +98 -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 +216 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/LinksTab.js +104 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessRequests/AccessRequestsTab.js +230 -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} +13 -4
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/ShareModal.js +238 -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 +72 -25
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js +10 -6
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/overridableRegistry/mapping.js +6 -1
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/AccessRequestExpiration.js +56 -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 +15 -13
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/search/index.js +1 -1
- 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 +77 -9
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/base.js +122 -74
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/communities.js +1 -11
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/requests.js +27 -412
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/uploads.js +15 -14
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/uploads_items/ComputerTabletUploadsItem.js +47 -27
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/uploads_items/MobileUploadsItem.js +43 -27
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/utils.js +32 -7
- 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 +15 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/licenses.less +5 -3
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/form.overrides +15 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/grid.overrides +24 -33
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/menu.overrides +18 -3
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/message.overrides +19 -3
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/message.variables +2 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/table.overrides +78 -6
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/button.overrides +21 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/container.overrides +30 -7
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/header.overrides +17 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/icon.overrides +2 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/image.overrides +34 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/input.overrides +10 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/label.overrides +48 -4
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/list.overrides +10 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/segment.overrides +16 -13
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/site.overrides +156 -97
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/site.variables +7 -3
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/accordion.overrides +35 -9
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/dropdown.overrides +28 -6
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/dropdown.variables +1 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/modal.overrides +40 -11
- 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/transition.overrides +8 -8
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/theme.less +2 -5
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/card.overrides +4 -2
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/item.overrides +20 -33
- 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 +805 -138
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ar/translations.json +306 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/bg/messages.po +690 -71
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/bg/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ca/messages.po +700 -81
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ca/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/cs/messages.po +822 -139
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/cs/translations.json +294 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/da/messages.po +692 -67
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/da/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/de/messages.po +819 -139
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/de/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/el/messages.po +699 -79
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/el/translations.json +282 -86
- 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 +315 -2
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/es/messages.po +811 -138
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/es/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et/messages.po +747 -134
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fa/messages.po +689 -70
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fa/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fr/messages.po +810 -127
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fr/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hr/messages.po +696 -71
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hr/translations.json +288 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hu/messages.po +804 -137
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hu/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/index.js +17 -66
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/it/messages.po +715 -88
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/it/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ja/messages.po +684 -71
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ja/translations.json +276 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ka/messages.po +690 -71
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ka/translations.json +282 -86
- 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 +703 -72
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/lt/translations.json +294 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/no/messages.po +690 -71
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/no/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pl/messages.po +705 -71
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pl/translations.json +294 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pt/messages.po +695 -70
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pt/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ro/messages.po +718 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ro/translations.json +288 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ru/messages.po +807 -125
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ru/translations.json +294 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sk/messages.po +714 -83
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sk/translations.json +294 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sv/messages.po +809 -142
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sv/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/tr/messages.po +800 -129
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/tr/translations.json +282 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/uk/messages.po +717 -83
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/uk/translations.json +294 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_CN/messages.po +737 -124
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_CN/translations.json +276 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_TW/messages.po +684 -71
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_TW/translations.json +276 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/package.json +5 -38
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/translations.pot +863 -127
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/administration_page.html +15 -0
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/default_static_page.html +8 -8
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/files_integrity_report/email/files_integrity_report.html +12 -12
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/footer.html +33 -75
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/header.html +42 -27
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/header_frontpage.html +4 -2
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/header_login.html +144 -113
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/search.de.html +2 -2
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/search.en.html +11 -6
- 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.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 +15 -16
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/macros/records_list.html +33 -3
- 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 +43 -15
- 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/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 +80 -28
- invenio_app_rdm/theme/webpack.py +38 -7
- invenio_app_rdm/translations/ar/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ar/LC_MESSAGES/messages.po +975 -378
- invenio_app_rdm/translations/bg/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/bg/LC_MESSAGES/messages.po +908 -279
- invenio_app_rdm/translations/ca/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ca/LC_MESSAGES/messages.po +913 -284
- invenio_app_rdm/translations/cs/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/cs/LC_MESSAGES/messages.po +1070 -406
- invenio_app_rdm/translations/da/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/da/LC_MESSAGES/messages.po +909 -274
- invenio_app_rdm/translations/de/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/de/LC_MESSAGES/messages.po +1018 -407
- invenio_app_rdm/translations/el/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/el/LC_MESSAGES/messages.po +916 -287
- invenio_app_rdm/translations/es/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/es/LC_MESSAGES/messages.po +964 -372
- invenio_app_rdm/translations/et/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/et/LC_MESSAGES/messages.po +939 -363
- invenio_app_rdm/translations/fa/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/fa/LC_MESSAGES/messages.po +907 -278
- invenio_app_rdm/translations/fr/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/fr/LC_MESSAGES/messages.po +1033 -376
- invenio_app_rdm/translations/hr/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/hr/LC_MESSAGES/messages.po +908 -279
- invenio_app_rdm/translations/hu/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/hu/LC_MESSAGES/messages.po +989 -372
- invenio_app_rdm/translations/it/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/it/LC_MESSAGES/messages.po +970 -337
- invenio_app_rdm/translations/ja/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ja/LC_MESSAGES/messages.po +908 -279
- invenio_app_rdm/translations/ka/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ka/LC_MESSAGES/messages.po +910 -281
- 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 +911 -282
- invenio_app_rdm/translations/messages.pot +982 -289
- invenio_app_rdm/translations/no/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/no/LC_MESSAGES/messages.po +908 -279
- invenio_app_rdm/translations/pl/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/pl/LC_MESSAGES/messages.po +908 -279
- invenio_app_rdm/translations/pt/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/pt/LC_MESSAGES/messages.po +907 -278
- invenio_app_rdm/translations/ro/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ro/LC_MESSAGES/messages.po +1041 -382
- invenio_app_rdm/translations/ru/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ru/LC_MESSAGES/messages.po +1023 -371
- invenio_app_rdm/translations/sk/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/sk/LC_MESSAGES/messages.po +917 -288
- invenio_app_rdm/translations/sv/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/sv/LC_MESSAGES/messages.po +1007 -398
- invenio_app_rdm/translations/tr/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/tr/LC_MESSAGES/messages.po +993 -342
- invenio_app_rdm/translations/uk/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/uk/LC_MESSAGES/messages.po +984 -353
- invenio_app_rdm/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/zh_CN/LC_MESSAGES/messages.po +940 -348
- invenio_app_rdm/translations/zh_TW/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/zh_TW/LC_MESSAGES/messages.po +908 -279
- invenio_app_rdm/upgrade_scripts/fix_migrated_records_from_8_0_to_9_0.py +2 -2
- invenio_app_rdm/upgrade_scripts/migrate_10_0_to_11_0.py +1 -1
- 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_2_0_to_3_0.py +1 -1
- invenio_app_rdm/upgrade_scripts/migrate_4_0_to_6_0.py +2 -3
- invenio_app_rdm/upgrade_scripts/migrate_6_0_to_7_0.py +0 -2
- invenio_app_rdm/upgrade_scripts/migrate_8_0_to_9_0.py +2 -2
- invenio_app_rdm/upgrade_scripts/migrate_9_0_to_10_0.py +1 -1
- invenio_app_rdm/users/schemas.py +27 -0
- invenio_app_rdm/users_ui/searchapp.py +9 -1
- invenio_app_rdm/users_ui/templates/semantic-ui/invenio_app_rdm/users/communities.html +1 -0
- invenio_app_rdm/users_ui/templates/semantic-ui/invenio_app_rdm/users/header.html +23 -9
- invenio_app_rdm/users_ui/views/__init__.py +1 -1
- invenio_app_rdm/users_ui/views/dashboard.py +6 -1
- invenio_app_rdm/users_ui/views/ui.py +5 -28
- invenio_app_rdm/utils/files.py +1 -1
- invenio_app_rdm/views.py +21 -0
- invenio_app_rdm-14.0.0b1.dev8.dist-info/METADATA +552 -0
- invenio_app_rdm-14.0.0b1.dev8.dist-info/RECORD +505 -0
- {invenio_app_rdm-12.0.0.dev8.dist-info → invenio_app_rdm-14.0.0b1.dev8.dist-info}/WHEEL +1 -1
- invenio_app_rdm-14.0.0b1.dev8.dist-info/entry_points.txt +44 -0
- invenio_app_rdm/admin.py +0 -36
- invenio_app_rdm/stats/__init__.py +0 -24
- invenio_app_rdm/stats/event_builders.py +0 -112
- invenio_app_rdm/stats/permissions.py +0 -33
- invenio_app_rdm/stats/templates/aggregations/__init__.py +0 -10
- invenio_app_rdm/stats/templates/aggregations/aggr_file_download/__init__.py +0 -10
- invenio_app_rdm/stats/templates/aggregations/aggr_file_download/os-v1/__init__.py +0 -10
- invenio_app_rdm/stats/templates/aggregations/aggr_file_download/os-v1/aggr-file-download-v1.0.0.json +0 -69
- invenio_app_rdm/stats/templates/aggregations/aggr_file_download/os-v2/__init__.py +0 -10
- invenio_app_rdm/stats/templates/aggregations/aggr_file_download/os-v2/aggr-file-download-v1.0.0.json +0 -69
- invenio_app_rdm/stats/templates/aggregations/aggr_file_download/v7/__init__.py +0 -10
- invenio_app_rdm/stats/templates/aggregations/aggr_file_download/v7/aggr-file-download-v1.0.0.json +0 -69
- invenio_app_rdm/stats/templates/aggregations/aggr_record_view/__init__.py +0 -10
- invenio_app_rdm/stats/templates/aggregations/aggr_record_view/os-v1/__init__.py +0 -10
- invenio_app_rdm/stats/templates/aggregations/aggr_record_view/os-v1/aggr-record-view-v1.0.0.json +0 -46
- invenio_app_rdm/stats/templates/aggregations/aggr_record_view/os-v2/__init__.py +0 -10
- invenio_app_rdm/stats/templates/aggregations/aggr_record_view/os-v2/aggr-record-view-v1.0.0.json +0 -46
- invenio_app_rdm/stats/templates/aggregations/aggr_record_view/v7/aggr-record-view-v1.0.0.json +0 -46
- invenio_app_rdm/stats/templates/events/__init__.py +0 -10
- invenio_app_rdm/stats/templates/events/file_download/__init__.py +0 -10
- invenio_app_rdm/stats/templates/events/file_download/os-v1/__init__.py +0 -10
- invenio_app_rdm/stats/templates/events/file_download/os-v1/file-download-v1.0.0.json +0 -93
- invenio_app_rdm/stats/templates/events/file_download/os-v2/__init__.py +0 -10
- invenio_app_rdm/stats/templates/events/file_download/os-v2/file-download-v1.0.0.json +0 -93
- invenio_app_rdm/stats/templates/events/file_download/v7/file-download-v1.0.0.json +0 -93
- invenio_app_rdm/stats/templates/events/record_view/os-v1/__init__.py +0 -10
- invenio_app_rdm/stats/templates/events/record_view/os-v1/record-view-v1.0.0.json +0 -70
- invenio_app_rdm/stats/templates/events/record_view/os-v2/__init__.py +0 -10
- invenio_app_rdm/stats/templates/events/record_view/os-v2/record-view-v1.0.0.json +0 -70
- invenio_app_rdm/stats/templates/events/record_view/v7/record-view-v1.0.0.json +0 -70
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareModal.js +0 -262
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/requests_items/ComputerTabletRequestsItem.js +0 -74
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/requests_items/MobileRequestsItem.js +0 -70
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/i18next-scanner.config.js +0 -64
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/af/messages.po +0 -272
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/af/translations.json +0 -87
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et_EE/messages.po +0 -272
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et_EE/translations.json +0 -87
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/gl/messages.po +0 -272
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/gl/translations.json +0 -87
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/rw/messages.po +0 -272
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/rw/translations.json +0 -87
- 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 -40
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/scripts/initCatalog.js +0 -20
- invenio_app_rdm/theme/static/robots.txt +0 -5
- invenio_app_rdm/translations/af/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/af/LC_MESSAGES/messages.po +0 -728
- invenio_app_rdm/translations/et_EE/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/et_EE/LC_MESSAGES/messages.po +0 -728
- invenio_app_rdm/translations/gl/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/gl/LC_MESSAGES/messages.po +0 -728
- invenio_app_rdm/translations/rw/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/rw/LC_MESSAGES/messages.po +0 -728
- invenio_app_rdm-12.0.0.dev8.dist-info/AUTHORS.rst +0 -11
- invenio_app_rdm-12.0.0.dev8.dist-info/METADATA +0 -103
- invenio_app_rdm-12.0.0.dev8.dist-info/RECORD +0 -402
- invenio_app_rdm-12.0.0.dev8.dist-info/entry_points.txt +0 -26
- /invenio_app_rdm/{translations/.gitkeep → theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/search/UserModerationBulkActions.js} +0 -0
- {invenio_app_rdm-12.0.0.dev8.dist-info → invenio_app_rdm-14.0.0b1.dev8.dist-info/licenses}/LICENSE +0 -0
- {invenio_app_rdm-12.0.0.dev8.dist-info → invenio_app_rdm-14.0.0b1.dev8.dist-info}/top_level.txt +0 -0
invenio_app_rdm/config.py
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2019-
|
|
3
|
+
# Copyright (C) 2019-2025 CERN.
|
|
4
4
|
# Copyright (C) 2019-2020 Northwestern University.
|
|
5
|
-
# Copyright (C) 2021 Graz University of Technology.
|
|
6
|
-
# Copyright (C) 2022 KTH Royal Institute of Technology
|
|
7
|
-
# Copyright (C) 2023
|
|
5
|
+
# Copyright (C) 2021-2025 Graz University of Technology.
|
|
6
|
+
# Copyright (C) 2022-2024 KTH Royal Institute of Technology.
|
|
7
|
+
# Copyright (C) 2023 TU Wien
|
|
8
8
|
#
|
|
9
9
|
# Invenio App RDM is free software; you can redistribute it and/or modify it
|
|
10
10
|
# under the terms of the MIT License; see LICENSE file for more details.
|
|
@@ -33,30 +33,117 @@ WARNING: An instance should NOT install multiple flavour extensions since
|
|
|
33
33
|
|
|
34
34
|
from datetime import datetime, timedelta
|
|
35
35
|
|
|
36
|
+
import invenio_communities.notifications.builders as community_notifications
|
|
36
37
|
from celery.schedules import crontab
|
|
37
38
|
from flask_principal import Denial
|
|
38
39
|
from flask_resources import HTTPJSONException, create_error_handler
|
|
39
40
|
from invenio_access.permissions import any_user
|
|
40
41
|
from invenio_communities.communities.resources.config import community_error_handlers
|
|
42
|
+
from invenio_communities.notifications.builders import (
|
|
43
|
+
CommunityInvitationAcceptNotificationBuilder,
|
|
44
|
+
CommunityInvitationCancelNotificationBuilder,
|
|
45
|
+
CommunityInvitationDeclineNotificationBuilder,
|
|
46
|
+
CommunityInvitationExpireNotificationBuilder,
|
|
47
|
+
CommunityInvitationSubmittedNotificationBuilder,
|
|
48
|
+
)
|
|
49
|
+
from invenio_notifications.backends import EmailNotificationBackend
|
|
50
|
+
from invenio_rdm_records.notifications.builders import (
|
|
51
|
+
CommunityInclusionAcceptNotificationBuilder,
|
|
52
|
+
CommunityInclusionCancelNotificationBuilder,
|
|
53
|
+
CommunityInclusionDeclineNotificationBuilder,
|
|
54
|
+
CommunityInclusionExpireNotificationBuilder,
|
|
55
|
+
CommunityInclusionSubmittedNotificationBuilder,
|
|
56
|
+
GrantUserAccessNotificationBuilder,
|
|
57
|
+
GuestAccessRequestAcceptNotificationBuilder,
|
|
58
|
+
GuestAccessRequestCancelNotificationBuilder,
|
|
59
|
+
GuestAccessRequestDeclineNotificationBuilder,
|
|
60
|
+
GuestAccessRequestSubmitNotificationBuilder,
|
|
61
|
+
GuestAccessRequestSubmittedNotificationBuilder,
|
|
62
|
+
GuestAccessRequestTokenCreateNotificationBuilder,
|
|
63
|
+
RecordDeletionAcceptNotificationBuilder,
|
|
64
|
+
RecordDeletionDeclineNotificationBuilder,
|
|
65
|
+
UserAccessRequestAcceptNotificationBuilder,
|
|
66
|
+
UserAccessRequestCancelNotificationBuilder,
|
|
67
|
+
UserAccessRequestDeclineNotificationBuilder,
|
|
68
|
+
UserAccessRequestSubmitNotificationBuilder,
|
|
69
|
+
)
|
|
70
|
+
from invenio_rdm_records.proxies import current_rdm_records_service
|
|
71
|
+
from invenio_rdm_records.requests.entity_resolvers import (
|
|
72
|
+
EmailResolver,
|
|
73
|
+
RDMRecordServiceResultResolver,
|
|
74
|
+
)
|
|
75
|
+
from invenio_rdm_records.resources.stats.event_builders import build_record_unique_id
|
|
41
76
|
from invenio_rdm_records.services.communities.components import (
|
|
42
77
|
CommunityServiceComponents,
|
|
43
78
|
)
|
|
44
|
-
from invenio_rdm_records.services.errors import
|
|
79
|
+
from invenio_rdm_records.services.errors import (
|
|
80
|
+
InvalidAccessRestrictions,
|
|
81
|
+
InvalidCommunityVisibility,
|
|
82
|
+
)
|
|
83
|
+
from invenio_rdm_records.services.github.release import RDMGithubRelease
|
|
84
|
+
from invenio_rdm_records.services.permissions import RDMRequestsPermissionPolicy
|
|
85
|
+
from invenio_rdm_records.services.stats import permissions_policy_lookup_factory
|
|
86
|
+
from invenio_rdm_records.services.tasks import StatsRDMReindexTask
|
|
87
|
+
from invenio_records_resources.references.entity_resolvers import ServiceResultResolver
|
|
88
|
+
from invenio_requests.notifications.builders import (
|
|
89
|
+
CommentRequestEventCreateNotificationBuilder,
|
|
90
|
+
)
|
|
91
|
+
from invenio_requests.resources.requests.config import request_error_handlers
|
|
92
|
+
from invenio_requests.services.requests import facets
|
|
45
93
|
from invenio_stats.aggregations import StatAggregator
|
|
46
94
|
from invenio_stats.contrib.event_builders import build_file_unique_id
|
|
47
|
-
from invenio_stats.processors import
|
|
95
|
+
from invenio_stats.processors import (
|
|
96
|
+
EventsIndexer,
|
|
97
|
+
anonymize_user,
|
|
98
|
+
filter_robots,
|
|
99
|
+
flag_machines,
|
|
100
|
+
)
|
|
48
101
|
from invenio_stats.queries import TermsQuery
|
|
102
|
+
from invenio_stats.tasks import StatsAggregationTask, StatsEventTask
|
|
49
103
|
from invenio_vocabularies.config import (
|
|
50
104
|
VOCABULARIES_DATASTREAM_READERS,
|
|
51
105
|
VOCABULARIES_DATASTREAM_TRANSFORMERS,
|
|
52
106
|
VOCABULARIES_DATASTREAM_WRITERS,
|
|
53
107
|
)
|
|
108
|
+
from invenio_vocabularies.contrib.affiliations.datastreams import (
|
|
109
|
+
VOCABULARIES_DATASTREAM_READERS as AFFILIATIONS_READERS,
|
|
110
|
+
)
|
|
111
|
+
from invenio_vocabularies.contrib.affiliations.datastreams import (
|
|
112
|
+
VOCABULARIES_DATASTREAM_TRANSFORMERS as AFFILIATIONS_TRANSFORMERS,
|
|
113
|
+
)
|
|
114
|
+
from invenio_vocabularies.contrib.affiliations.datastreams import (
|
|
115
|
+
VOCABULARIES_DATASTREAM_WRITERS as AFFILIATIONS_WRITERS,
|
|
116
|
+
)
|
|
117
|
+
from invenio_vocabularies.contrib.awards.datastreams import (
|
|
118
|
+
VOCABULARIES_DATASTREAM_READERS as AWARDS_READERS,
|
|
119
|
+
)
|
|
54
120
|
from invenio_vocabularies.contrib.awards.datastreams import (
|
|
55
121
|
VOCABULARIES_DATASTREAM_TRANSFORMERS as AWARDS_TRANSFORMERS,
|
|
56
122
|
)
|
|
57
123
|
from invenio_vocabularies.contrib.awards.datastreams import (
|
|
58
124
|
VOCABULARIES_DATASTREAM_WRITERS as AWARDS_WRITERS,
|
|
59
125
|
)
|
|
126
|
+
from invenio_vocabularies.contrib.common.openaire.datastreams import (
|
|
127
|
+
VOCABULARIES_DATASTREAM_READERS as COMMON_OPENAIRE_READERS,
|
|
128
|
+
)
|
|
129
|
+
from invenio_vocabularies.contrib.common.openaire.datastreams import (
|
|
130
|
+
VOCABULARIES_DATASTREAM_TRANSFORMERS as COMMON_OPENAIRE_TRANSFORMERS,
|
|
131
|
+
)
|
|
132
|
+
from invenio_vocabularies.contrib.common.openaire.datastreams import (
|
|
133
|
+
VOCABULARIES_DATASTREAM_WRITERS as COMMON_OPENAIRE_WRITERS,
|
|
134
|
+
)
|
|
135
|
+
from invenio_vocabularies.contrib.common.ror.datastreams import (
|
|
136
|
+
VOCABULARIES_DATASTREAM_READERS as COMMON_ROR_READERS,
|
|
137
|
+
)
|
|
138
|
+
from invenio_vocabularies.contrib.common.ror.datastreams import (
|
|
139
|
+
VOCABULARIES_DATASTREAM_TRANSFORMERS as COMMON_ROR_TRANSFORMERS,
|
|
140
|
+
)
|
|
141
|
+
from invenio_vocabularies.contrib.common.ror.datastreams import (
|
|
142
|
+
VOCABULARIES_DATASTREAM_WRITERS as COMMON_ROR_WRITERS,
|
|
143
|
+
)
|
|
144
|
+
from invenio_vocabularies.contrib.funders.datastreams import (
|
|
145
|
+
VOCABULARIES_DATASTREAM_READERS as FUNDERS_READERS,
|
|
146
|
+
)
|
|
60
147
|
from invenio_vocabularies.contrib.funders.datastreams import (
|
|
61
148
|
VOCABULARIES_DATASTREAM_TRANSFORMERS as FUNDERS_TRANSFORMERS,
|
|
62
149
|
)
|
|
@@ -72,9 +159,21 @@ from invenio_vocabularies.contrib.names.datastreams import (
|
|
|
72
159
|
from invenio_vocabularies.contrib.names.datastreams import (
|
|
73
160
|
VOCABULARIES_DATASTREAM_WRITERS as NAMES_WRITERS,
|
|
74
161
|
)
|
|
162
|
+
from invenio_vocabularies.contrib.subjects.datastreams import (
|
|
163
|
+
VOCABULARIES_DATASTREAM_READERS as SUBJECTS_READERS,
|
|
164
|
+
)
|
|
165
|
+
from invenio_vocabularies.contrib.subjects.datastreams import (
|
|
166
|
+
VOCABULARIES_DATASTREAM_TRANSFORMERS as SUBJECTS_TRANSFORMERS,
|
|
167
|
+
)
|
|
168
|
+
from invenio_vocabularies.contrib.subjects.datastreams import (
|
|
169
|
+
VOCABULARIES_DATASTREAM_WRITERS as SUBJECTS_WRITERS,
|
|
170
|
+
)
|
|
171
|
+
from werkzeug.local import LocalProxy
|
|
75
172
|
|
|
76
|
-
from .
|
|
77
|
-
from .
|
|
173
|
+
from .communities_ui.sitemap import SitemapSectionOfCommunities
|
|
174
|
+
from .records_ui.sitemap import SitemapSectionOfRDMRecords
|
|
175
|
+
from .theme.views import notification_settings
|
|
176
|
+
from .users.schemas import NotificationsUserSchema, UserPreferencesNotificationsSchema
|
|
78
177
|
|
|
79
178
|
# TODO: Remove when records-rest is out of communities and files
|
|
80
179
|
RECORDS_REST_ENDPOINTS = {}
|
|
@@ -90,7 +189,7 @@ def _(x):
|
|
|
90
189
|
# =====
|
|
91
190
|
# See https://flask.palletsprojects.com/en/1.1.x/config/
|
|
92
191
|
|
|
93
|
-
|
|
192
|
+
TRUSTED_HOSTS = ["0.0.0.0", "localhost", "127.0.0.1"]
|
|
94
193
|
"""Allowed hosts.
|
|
95
194
|
|
|
96
195
|
Since HAProxy and Nginx route all requests no matter the host header
|
|
@@ -120,7 +219,7 @@ SESSION_COOKIE_SAMESITE = "Lax"
|
|
|
120
219
|
# =============
|
|
121
220
|
# https://flask-limiter.readthedocs.io/en/stable/#configuration
|
|
122
221
|
|
|
123
|
-
|
|
222
|
+
RATELIMIT_STORAGE_URI = "redis://localhost:6379/3"
|
|
124
223
|
"""Storage for ratelimiter."""
|
|
125
224
|
|
|
126
225
|
# Increase defaults
|
|
@@ -155,10 +254,10 @@ BABEL_DEFAULT_TIMEZONE = "Europe/Zurich"
|
|
|
155
254
|
APP_THEME = ["semantic-ui"]
|
|
156
255
|
"""Application theme."""
|
|
157
256
|
|
|
158
|
-
BASE_TEMPLATE = "
|
|
257
|
+
BASE_TEMPLATE = "invenio_app_rdm/page.html"
|
|
159
258
|
"""Global base template."""
|
|
160
259
|
|
|
161
|
-
COVER_TEMPLATE = "
|
|
260
|
+
COVER_TEMPLATE = "invenio_app_rdm/page_cover.html"
|
|
162
261
|
"""Cover page base template (used for e.g. login/sign-up)."""
|
|
163
262
|
|
|
164
263
|
SETTINGS_TEMPLATE = "invenio_theme/page_settings.html"
|
|
@@ -182,12 +281,39 @@ THEME_FRONTPAGE_TEMPLATE = "invenio_app_rdm/frontpage.html"
|
|
|
182
281
|
THEME_HEADER_LOGIN_TEMPLATE = "invenio_app_rdm/header_login.html"
|
|
183
282
|
"""Header login base template."""
|
|
184
283
|
|
|
284
|
+
|
|
285
|
+
def _get_package_version():
|
|
286
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
287
|
+
|
|
288
|
+
from packaging.version import Version
|
|
289
|
+
|
|
290
|
+
try:
|
|
291
|
+
package_version = version("invenio-app-rdm")
|
|
292
|
+
parsed_version = Version(package_version)
|
|
293
|
+
major_minor_version = (
|
|
294
|
+
f"InvenioRDM {parsed_version.major}.{parsed_version.minor}"
|
|
295
|
+
)
|
|
296
|
+
return major_minor_version
|
|
297
|
+
except PackageNotFoundError:
|
|
298
|
+
# default without any version
|
|
299
|
+
return "InvenioRDM"
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
THEME_GENERATOR = _get_package_version()
|
|
303
|
+
"""Generator meta tag to identify the software that generated the page.
|
|
304
|
+
|
|
305
|
+
Set it to `None` to disable the tag.
|
|
306
|
+
"""
|
|
307
|
+
|
|
185
308
|
THEME_LOGO = "images/invenio-rdm.svg"
|
|
186
309
|
"""Theme logo."""
|
|
187
310
|
|
|
188
311
|
THEME_SITENAME = _("InvenioRDM")
|
|
189
312
|
"""Site name."""
|
|
190
313
|
|
|
314
|
+
THEME_TWITTERHANDLE = ""
|
|
315
|
+
"""Twitter handle."""
|
|
316
|
+
|
|
191
317
|
THEME_SHOW_FRONTPAGE_INTRO_SECTION = True
|
|
192
318
|
"""Front page intro section visibility"""
|
|
193
319
|
|
|
@@ -218,6 +344,12 @@ FILES_REST_STORAGE_CLASS_LIST = {
|
|
|
218
344
|
|
|
219
345
|
FILES_REST_DEFAULT_STORAGE_CLASS = "L"
|
|
220
346
|
|
|
347
|
+
FILES_REST_DEFAULT_QUOTA_SIZE = 10**10
|
|
348
|
+
"""Default quota size is 10Gb."""
|
|
349
|
+
|
|
350
|
+
FILES_REST_DEFAULT_MAX_FILE_SIZE = FILES_REST_DEFAULT_QUOTA_SIZE
|
|
351
|
+
"""Default maximum file size for a bucket in bytes."""
|
|
352
|
+
|
|
221
353
|
# Invenio-Formatter
|
|
222
354
|
# =================
|
|
223
355
|
|
|
@@ -264,6 +396,10 @@ MUST ensure that NGINX (or other proxies) removes these headers again before
|
|
|
264
396
|
sending the response to the client. Set to False, in case of doubt.
|
|
265
397
|
"""
|
|
266
398
|
|
|
399
|
+
|
|
400
|
+
ACCOUNTS_USER_PREFERENCES_SCHEMA = UserPreferencesNotificationsSchema()
|
|
401
|
+
"""The schema to use for validation of the user preferences."""
|
|
402
|
+
|
|
267
403
|
# Invenio-Security-Invenio
|
|
268
404
|
# ========================
|
|
269
405
|
|
|
@@ -298,6 +434,10 @@ CELERY_BEAT_SCHEDULE = {
|
|
|
298
434
|
"task": "invenio_accounts.tasks.delete_ips",
|
|
299
435
|
"schedule": timedelta(hours=6),
|
|
300
436
|
},
|
|
437
|
+
"update_domain_status": {
|
|
438
|
+
"task": "invenio_accounts.tasks.update_domain_status",
|
|
439
|
+
"schedule": timedelta(hours=4),
|
|
440
|
+
},
|
|
301
441
|
"draft_resources": {
|
|
302
442
|
"task": ("invenio_drafts_resources.services.records.tasks.cleanup_drafts"),
|
|
303
443
|
"schedule": timedelta(minutes=60),
|
|
@@ -328,19 +468,35 @@ CELERY_BEAT_SCHEDULE = {
|
|
|
328
468
|
},
|
|
329
469
|
# indexing of statistics events & aggregations
|
|
330
470
|
"stats-process-events": {
|
|
331
|
-
|
|
332
|
-
"schedule":
|
|
333
|
-
"args": [("record-view", "file-download")],
|
|
471
|
+
**StatsEventTask,
|
|
472
|
+
"schedule": crontab(minute="25,55"), # Every hour at minute 25 and 55
|
|
334
473
|
},
|
|
335
474
|
"stats-aggregate-events": {
|
|
336
|
-
|
|
475
|
+
**StatsAggregationTask,
|
|
476
|
+
"schedule": crontab(minute=0), # Every hour at minute 0
|
|
477
|
+
},
|
|
478
|
+
"reindex-stats": StatsRDMReindexTask, # Every hour at minute 10
|
|
479
|
+
# Invenio communities provides some caching that has the potential to be never removed,
|
|
480
|
+
# therefore, we need a cronjob to ensure that at least once per day we clear the cache
|
|
481
|
+
"clear-cache": {
|
|
482
|
+
"task": "invenio_communities.tasks.clear_cache",
|
|
483
|
+
"schedule": crontab(minute=0, hour=1), # Every day at 01:00 UTC
|
|
484
|
+
},
|
|
485
|
+
"clean-access-request-tokens": {
|
|
486
|
+
"task": "invenio_rdm_records.requests.access.tasks.clean_expired_request_access_tokens",
|
|
487
|
+
"schedule": crontab(minute=4, hour=0),
|
|
488
|
+
},
|
|
489
|
+
"delete-job-logs": {
|
|
490
|
+
"task": "invenio_jobs.logging.tasks.delete_logs",
|
|
491
|
+
"schedule": crontab(minute=5, hour=0),
|
|
492
|
+
},
|
|
493
|
+
"update_sitemap": {
|
|
494
|
+
"task": "invenio_sitemap.tasks.update_sitemap_cache",
|
|
495
|
+
"schedule": crontab(minute=0, hour=2),
|
|
496
|
+
},
|
|
497
|
+
"update-collections-size": {
|
|
498
|
+
"task": "invenio_collections.tasks.update_collections_size",
|
|
337
499
|
"schedule": timedelta(hours=1),
|
|
338
|
-
"args": [
|
|
339
|
-
(
|
|
340
|
-
"record-view-agg",
|
|
341
|
-
"file-download-agg",
|
|
342
|
-
)
|
|
343
|
-
],
|
|
344
500
|
},
|
|
345
501
|
}
|
|
346
502
|
"""Scheduled tasks configuration (aka cronjobs)."""
|
|
@@ -473,30 +629,45 @@ OAISERVER_ID_FETCHER = "invenio_rdm_records.oai:oaiid_fetcher"
|
|
|
473
629
|
"""OAI ID fetcher function."""
|
|
474
630
|
|
|
475
631
|
OAISERVER_METADATA_FORMATS = {
|
|
632
|
+
"marcxml": {
|
|
633
|
+
"serializer": "invenio_rdm_records.oai:marcxml_etree",
|
|
634
|
+
"schema": "https://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd",
|
|
635
|
+
"namespace": "https://www.loc.gov/standards/marcxml/",
|
|
636
|
+
},
|
|
476
637
|
"oai_dc": {
|
|
477
|
-
"serializer":
|
|
638
|
+
"serializer": "invenio_rdm_records.oai:dublincore_etree",
|
|
478
639
|
"schema": "http://www.openarchives.org/OAI/2.0/oai_dc.xsd",
|
|
479
640
|
"namespace": "http://www.openarchives.org/OAI/2.0/oai_dc/",
|
|
480
641
|
},
|
|
642
|
+
"dcat": {
|
|
643
|
+
"serializer": "invenio_rdm_records.oai:dcat_etree",
|
|
644
|
+
"schema": "http://schema.datacite.org/meta/kernel-4/metadata.xsd",
|
|
645
|
+
"namespace": "https://www.w3.org/ns/dcat",
|
|
646
|
+
},
|
|
647
|
+
"marc21": {
|
|
648
|
+
"serializer": "invenio_rdm_records.oai:marcxml_etree",
|
|
649
|
+
"schema": "https://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd",
|
|
650
|
+
"namespace": "https://www.loc.gov/standards/marcxml/",
|
|
651
|
+
},
|
|
481
652
|
"datacite": {
|
|
482
653
|
"serializer": "invenio_rdm_records.oai:datacite_etree",
|
|
483
|
-
"schema": "http://schema.datacite.org/meta/
|
|
484
|
-
"namespace": "http://datacite.org/schema/
|
|
654
|
+
"schema": "http://schema.datacite.org/meta/kernel-4.3/metadata.xsd",
|
|
655
|
+
"namespace": "http://datacite.org/schema/kernel-4",
|
|
485
656
|
},
|
|
486
657
|
"oai_datacite": {
|
|
487
|
-
"serializer":
|
|
658
|
+
"serializer": "invenio_rdm_records.oai:oai_datacite_etree",
|
|
488
659
|
"schema": "http://schema.datacite.org/oai/oai-1.1/oai.xsd",
|
|
489
660
|
"namespace": "http://schema.datacite.org/oai/oai-1.1/",
|
|
490
661
|
},
|
|
491
|
-
"
|
|
492
|
-
"serializer": "invenio_rdm_records.oai:
|
|
493
|
-
"schema": "
|
|
494
|
-
"namespace": "
|
|
662
|
+
"datacite4": {
|
|
663
|
+
"serializer": "invenio_rdm_records.oai:datacite_etree",
|
|
664
|
+
"schema": "http://schema.datacite.org/meta/kernel-4.3/metadata.xsd",
|
|
665
|
+
"namespace": "http://datacite.org/schema/kernel-4",
|
|
495
666
|
},
|
|
496
|
-
"
|
|
497
|
-
"serializer": "invenio_rdm_records.oai:
|
|
498
|
-
"schema": "http://schema.datacite.org/
|
|
499
|
-
"namespace": "
|
|
667
|
+
"oai_datacite4": {
|
|
668
|
+
"serializer": ("invenio_rdm_records.oai:oai_datacite_etree"),
|
|
669
|
+
"schema": "http://schema.datacite.org/oai/oai-1.1/oai.xsd",
|
|
670
|
+
"namespace": "http://schema.datacite.org/oai/oai-1.1/",
|
|
500
671
|
},
|
|
501
672
|
}
|
|
502
673
|
|
|
@@ -509,10 +680,13 @@ OAISERVER_CREATED_KEY = "created"
|
|
|
509
680
|
OAISERVER_RECORD_CLS = "invenio_rdm_records.records.api:RDMRecord"
|
|
510
681
|
"""Record retrieval class."""
|
|
511
682
|
|
|
512
|
-
OAISERVER_RECORD_SETS_FETCHER = "invenio_oaiserver.
|
|
683
|
+
OAISERVER_RECORD_SETS_FETCHER = "invenio_oaiserver.percolator:find_sets_for_record"
|
|
513
684
|
"""Record's OAI sets function."""
|
|
514
685
|
|
|
515
|
-
OAISERVER_RECORD_INDEX =
|
|
686
|
+
OAISERVER_RECORD_INDEX = LocalProxy(
|
|
687
|
+
lambda: current_rdm_records_service.record_cls.index._name
|
|
688
|
+
)
|
|
689
|
+
|
|
516
690
|
"""Specify a search index with records that should be exposed via OAI-PMH."""
|
|
517
691
|
|
|
518
692
|
OAISERVER_GETRECORD_FETCHER = "invenio_rdm_records.oai:getrecord_fetcher"
|
|
@@ -551,13 +725,6 @@ ACCESS_CACHE = "invenio_cache:current_cache"
|
|
|
551
725
|
SEARCH_HOSTS = [{"host": "localhost", "port": 9200}]
|
|
552
726
|
"""Search hosts."""
|
|
553
727
|
|
|
554
|
-
# Invenio-Indexer
|
|
555
|
-
# ===============
|
|
556
|
-
# See https://invenio-indexer.readthedocs.io/en/latest/configuration.html
|
|
557
|
-
|
|
558
|
-
INDEXER_DEFAULT_INDEX = "rdmrecords-records-record-v5.0.0"
|
|
559
|
-
"""Default index to use if no schema is defined."""
|
|
560
|
-
|
|
561
728
|
# Invenio-Base
|
|
562
729
|
# ============
|
|
563
730
|
# See https://invenio-base.readthedocs.io/en/latest/api.html#invenio_base.wsgi.wsgi_proxyfix # noqa
|
|
@@ -565,12 +732,6 @@ INDEXER_DEFAULT_INDEX = "rdmrecords-records-record-v5.0.0"
|
|
|
565
732
|
WSGI_PROXIES = 2
|
|
566
733
|
"""Correct number of proxies in front of your application."""
|
|
567
734
|
|
|
568
|
-
# Invenio-Admin
|
|
569
|
-
# =============
|
|
570
|
-
|
|
571
|
-
# Admin interface is deprecated and should not be used.
|
|
572
|
-
ADMIN_PERMISSION_FACTORY = "invenio_app_rdm.admin.permission_factory"
|
|
573
|
-
|
|
574
735
|
# Invenio-REST
|
|
575
736
|
# ============
|
|
576
737
|
|
|
@@ -582,14 +743,24 @@ REST_CSRF_ENABLED = True
|
|
|
582
743
|
VOCABULARIES_DATASTREAM_READERS = {
|
|
583
744
|
**VOCABULARIES_DATASTREAM_READERS,
|
|
584
745
|
**NAMES_READERS,
|
|
746
|
+
**COMMON_OPENAIRE_READERS,
|
|
747
|
+
**COMMON_ROR_READERS,
|
|
748
|
+
**AWARDS_READERS,
|
|
749
|
+
**FUNDERS_READERS,
|
|
750
|
+
**AFFILIATIONS_READERS,
|
|
751
|
+
**SUBJECTS_READERS,
|
|
585
752
|
}
|
|
586
753
|
"""Data Streams readers."""
|
|
587
754
|
|
|
588
755
|
VOCABULARIES_DATASTREAM_TRANSFORMERS = {
|
|
589
756
|
**VOCABULARIES_DATASTREAM_TRANSFORMERS,
|
|
590
757
|
**NAMES_TRANSFORMERS,
|
|
591
|
-
**
|
|
758
|
+
**COMMON_OPENAIRE_TRANSFORMERS,
|
|
759
|
+
**COMMON_ROR_TRANSFORMERS,
|
|
592
760
|
**AWARDS_TRANSFORMERS,
|
|
761
|
+
**FUNDERS_TRANSFORMERS,
|
|
762
|
+
**AFFILIATIONS_TRANSFORMERS,
|
|
763
|
+
**SUBJECTS_TRANSFORMERS,
|
|
593
764
|
}
|
|
594
765
|
"""Data Streams transformers."""
|
|
595
766
|
|
|
@@ -598,6 +769,10 @@ VOCABULARIES_DATASTREAM_WRITERS = {
|
|
|
598
769
|
**NAMES_WRITERS,
|
|
599
770
|
**FUNDERS_WRITERS,
|
|
600
771
|
**AWARDS_WRITERS,
|
|
772
|
+
**AFFILIATIONS_WRITERS,
|
|
773
|
+
**COMMON_OPENAIRE_WRITERS,
|
|
774
|
+
**COMMON_ROR_WRITERS,
|
|
775
|
+
**SUBJECTS_WRITERS,
|
|
601
776
|
}
|
|
602
777
|
"""Data Streams writers."""
|
|
603
778
|
|
|
@@ -624,11 +799,14 @@ APP_RDM_ROUTES = {
|
|
|
624
799
|
"robots": "/robots.txt",
|
|
625
800
|
"help_search": "/help/search",
|
|
626
801
|
"help_statistics": "/help/statistics",
|
|
802
|
+
"help_versioning": "/help/versioning",
|
|
627
803
|
"record_search": "/search",
|
|
628
804
|
"record_detail": "/records/<pid_value>",
|
|
629
805
|
"record_export": "/records/<pid_value>/export/<export_format>",
|
|
630
806
|
"record_file_preview": "/records/<pid_value>/preview/<path:filename>",
|
|
631
807
|
"record_file_download": "/records/<pid_value>/files/<path:filename>",
|
|
808
|
+
"record_thumbnail": "/records/<pid_value>/thumb<int:size>",
|
|
809
|
+
"record_media_file_download": "/records/<pid_value>/media-files/<path:filename>",
|
|
632
810
|
"record_from_pid": "/<any({schemes}):pid_scheme>/<path:pid_value>",
|
|
633
811
|
"record_latest": "/records/<pid_value>/latest",
|
|
634
812
|
"dashboard_home": "/me",
|
|
@@ -640,12 +818,22 @@ APP_RDM_RECORD_EXPORTERS = {
|
|
|
640
818
|
"json": {
|
|
641
819
|
"name": _("JSON"),
|
|
642
820
|
"serializer": ("flask_resources.serializers:JSONSerializer"),
|
|
821
|
+
"params": {"options": {"indent": 2, "sort_keys": True}},
|
|
643
822
|
"content-type": "application/json",
|
|
644
823
|
"filename": "{id}.json",
|
|
645
824
|
},
|
|
825
|
+
"json-ld": {
|
|
826
|
+
"name": _("JSON-LD"),
|
|
827
|
+
"serializer": (
|
|
828
|
+
"invenio_rdm_records.resources.serializers:SchemaorgJSONLDSerializer"
|
|
829
|
+
),
|
|
830
|
+
"content-type": "application/ld+json",
|
|
831
|
+
"filename": "{id}.json",
|
|
832
|
+
},
|
|
646
833
|
"csl": {
|
|
647
834
|
"name": _("CSL"),
|
|
648
835
|
"serializer": ("invenio_rdm_records.resources.serializers:CSLJSONSerializer"),
|
|
836
|
+
"params": {"options": {"indent": 2, "sort_keys": True}},
|
|
649
837
|
"content-type": "application/vnd.citationstyles.csl+json",
|
|
650
838
|
"filename": "{id}.json",
|
|
651
839
|
},
|
|
@@ -654,6 +842,7 @@ APP_RDM_RECORD_EXPORTERS = {
|
|
|
654
842
|
"serializer": (
|
|
655
843
|
"invenio_rdm_records.resources.serializers:DataCite43JSONSerializer"
|
|
656
844
|
),
|
|
845
|
+
"params": {"options": {"indent": 2, "sort_keys": True}},
|
|
657
846
|
"content-type": "application/vnd.datacite.datacite+json",
|
|
658
847
|
"filename": "{id}.json",
|
|
659
848
|
},
|
|
@@ -662,6 +851,7 @@ APP_RDM_RECORD_EXPORTERS = {
|
|
|
662
851
|
"serializer": (
|
|
663
852
|
"invenio_rdm_records.resources.serializers:DataCite43XMLSerializer"
|
|
664
853
|
),
|
|
854
|
+
"params": {},
|
|
665
855
|
"content-type": "application/vnd.datacite.datacite+xml",
|
|
666
856
|
"filename": "{id}.xml",
|
|
667
857
|
},
|
|
@@ -670,37 +860,91 @@ APP_RDM_RECORD_EXPORTERS = {
|
|
|
670
860
|
"serializer": (
|
|
671
861
|
"invenio_rdm_records.resources.serializers:DublinCoreXMLSerializer"
|
|
672
862
|
),
|
|
863
|
+
"params": {},
|
|
673
864
|
"content-type": "application/x-dc+xml",
|
|
674
865
|
"filename": "{id}.xml",
|
|
675
866
|
},
|
|
676
867
|
"marcxml": {
|
|
677
868
|
"name": _("MARCXML"),
|
|
678
869
|
"serializer": ("invenio_rdm_records.resources.serializers:MARCXMLSerializer"),
|
|
870
|
+
"params": {},
|
|
679
871
|
"content-type": "application/marcxml+xml",
|
|
680
872
|
"filename": "{id}.xml",
|
|
681
873
|
},
|
|
682
874
|
"bibtex": {
|
|
683
875
|
"name": _("BibTeX"),
|
|
684
|
-
"serializer": ("invenio_rdm_records.resources.serializers:
|
|
876
|
+
"serializer": ("invenio_rdm_records.resources.serializers:BibtexSerializer"),
|
|
877
|
+
"params": {},
|
|
685
878
|
"content-type": "application/x-bibtex",
|
|
686
879
|
"filename": "{id}.bib",
|
|
687
880
|
},
|
|
688
|
-
"
|
|
881
|
+
"geojson": {
|
|
689
882
|
"name": _("GeoJSON"),
|
|
690
883
|
"serializer": ("invenio_rdm_records.resources.serializers:GeoJSONSerializer"),
|
|
691
|
-
"
|
|
884
|
+
"params": {"options": {"indent": 2, "sort_keys": True}},
|
|
885
|
+
"content-type": "application/vnd.geo+json",
|
|
692
886
|
"filename": "{id}.geojson",
|
|
693
887
|
},
|
|
694
|
-
"
|
|
888
|
+
"dcat-ap": {
|
|
695
889
|
"name": _("DCAT"),
|
|
696
890
|
"serializer": "invenio_rdm_records.resources.serializers:DCATSerializer",
|
|
891
|
+
"params": {},
|
|
697
892
|
"content-type": "application/dcat+xml",
|
|
698
893
|
"filename": "{id}.xml",
|
|
699
894
|
},
|
|
895
|
+
"codemeta": {
|
|
896
|
+
"name": _("Codemeta"),
|
|
897
|
+
"serializer": "invenio_rdm_records.resources.serializers:CodemetaSerializer",
|
|
898
|
+
"params": {},
|
|
899
|
+
"content-type": "application/ld+json",
|
|
900
|
+
"filename": "{id}.json",
|
|
901
|
+
},
|
|
902
|
+
"cff": {
|
|
903
|
+
"name": _("Citation File Format"),
|
|
904
|
+
"serializer": "invenio_rdm_records.resources.serializers:CFFSerializer",
|
|
905
|
+
"params": {},
|
|
906
|
+
"content-type": "application/x-yaml",
|
|
907
|
+
"filename": "{id}.yaml",
|
|
908
|
+
},
|
|
909
|
+
"datapackage": {
|
|
910
|
+
"name": _("Data Package JSON"),
|
|
911
|
+
"serializer": "invenio_rdm_records.resources.serializers:DataPackageSerializer",
|
|
912
|
+
"params": {},
|
|
913
|
+
"content-type": "application/ld+json",
|
|
914
|
+
"filename": "{id}.json",
|
|
915
|
+
},
|
|
700
916
|
}
|
|
701
917
|
|
|
918
|
+
APP_RDM_RECORD_LANDING_PAGE_EXTERNAL_LINKS = []
|
|
919
|
+
""" Default format used for adding badges to a record.
|
|
920
|
+
|
|
921
|
+
Make sure the 'render' field points to a valid render function in invenio_app_rdm.records_ui.utils.
|
|
922
|
+
Example implementation can also be found in invenio_app_rdm.records_ui.utils.
|
|
923
|
+
|
|
924
|
+
APP_RDM_RECORD_LANDING_PAGE_EXTERNAL_LINKS = [
|
|
925
|
+
{
|
|
926
|
+
"id": "github",
|
|
927
|
+
"render": github_link_render,
|
|
928
|
+
},
|
|
929
|
+
{
|
|
930
|
+
"id": "openaire",
|
|
931
|
+
"render": openaire_link_render,
|
|
932
|
+
},
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
def github_link_render(record):
|
|
936
|
+
...
|
|
937
|
+
"""
|
|
938
|
+
|
|
702
939
|
APP_RDM_RECORDS_EXPORT_URL = "/records/<pid_value>/export/<export_format>"
|
|
703
940
|
|
|
941
|
+
APP_RDM_DEPOSIT_NG_FILES_UI_ENABLED = False
|
|
942
|
+
"""
|
|
943
|
+
Feature toggle to enable the next-generation (NG) file uploader UI in the deposit form.
|
|
944
|
+
|
|
945
|
+
When enabled, the deposit form will use the new Uppy.io-based file uploader, replacing the current file upload interface.
|
|
946
|
+
"""
|
|
947
|
+
|
|
704
948
|
APP_RDM_DEPOSIT_FORM_DEFAULTS = {
|
|
705
949
|
"publication_date": lambda: datetime.now().strftime("%Y-%m-%d"),
|
|
706
950
|
"rights": [
|
|
@@ -739,7 +983,7 @@ Available options:
|
|
|
739
983
|
|
|
740
984
|
APP_RDM_DEPOSIT_FORM_QUOTA = {
|
|
741
985
|
"maxFiles": 100,
|
|
742
|
-
"maxStorage":
|
|
986
|
+
"maxStorage": FILES_REST_DEFAULT_QUOTA_SIZE,
|
|
743
987
|
}
|
|
744
988
|
"""Deposit file upload quota """
|
|
745
989
|
|
|
@@ -751,15 +995,24 @@ APP_RDM_DEPOSIT_FORM_PUBLISH_MODAL_EXTRA = ""
|
|
|
751
995
|
|
|
752
996
|
APP_RDM_RECORD_LANDING_PAGE_TEMPLATE = "invenio_app_rdm/records/detail.html"
|
|
753
997
|
|
|
998
|
+
APP_RDM_RECORD_LANDING_PAGE_FAIR_SIGNPOSTING_LEVEL_1_ENABLED = False
|
|
999
|
+
|
|
1000
|
+
APP_RDM_RECORD_THUMBNAIL_SIZES = [10, 50, 100, 250, 750, 1200]
|
|
1001
|
+
"""Allowed record thumbnail sizes."""
|
|
1002
|
+
|
|
754
1003
|
APP_RDM_DETAIL_SIDE_BAR_TEMPLATES = [
|
|
755
1004
|
"invenio_app_rdm/records/details/side_bar/manage_menu.html",
|
|
756
1005
|
"invenio_app_rdm/records/details/side_bar/metrics.html",
|
|
757
1006
|
"invenio_app_rdm/records/details/side_bar/versions.html",
|
|
1007
|
+
"invenio_app_rdm/records/details/side_bar/external_resources.html",
|
|
758
1008
|
"invenio_app_rdm/records/details/side_bar/communities.html",
|
|
759
1009
|
"invenio_app_rdm/records/details/side_bar/keywords_subjects.html",
|
|
760
1010
|
"invenio_app_rdm/records/details/side_bar/details.html",
|
|
1011
|
+
"invenio_app_rdm/records/details/side_bar/locations.html",
|
|
761
1012
|
"invenio_app_rdm/records/details/side_bar/licenses.html",
|
|
1013
|
+
"invenio_app_rdm/records/details/side_bar/citations.html",
|
|
762
1014
|
"invenio_app_rdm/records/details/side_bar/export.html",
|
|
1015
|
+
"invenio_app_rdm/records/details/side_bar/technical_metadata.html",
|
|
763
1016
|
]
|
|
764
1017
|
"""Template names for detail view sidebar components"""
|
|
765
1018
|
|
|
@@ -774,6 +1027,25 @@ APP_RDM_FILES_INTEGRITY_REPORT_SUBJECT = "Files integrity report"
|
|
|
774
1027
|
APP_RDM_ADMIN_EMAIL_RECIPIENT = "info@inveniosoftware.org"
|
|
775
1028
|
"""Admin e-mail"""
|
|
776
1029
|
|
|
1030
|
+
APP_RDM_IDENTIFIER_SCHEMES_UI = {
|
|
1031
|
+
"orcid": {
|
|
1032
|
+
"url_prefix": "http://orcid.org/",
|
|
1033
|
+
"icon": "images/orcid.svg",
|
|
1034
|
+
"label": "ORCID",
|
|
1035
|
+
},
|
|
1036
|
+
"ror": {
|
|
1037
|
+
"url_prefix": "https://ror.org/",
|
|
1038
|
+
"icon": "images/ror-icon.svg",
|
|
1039
|
+
"label": "ROR",
|
|
1040
|
+
},
|
|
1041
|
+
"gnd": {
|
|
1042
|
+
"url_prefix": "http://d-nb.info/gnd/",
|
|
1043
|
+
"icon": "images/gnd-icon.svg",
|
|
1044
|
+
"label": "GND",
|
|
1045
|
+
},
|
|
1046
|
+
}
|
|
1047
|
+
"""Identifier Schemes UI config"""
|
|
1048
|
+
|
|
777
1049
|
# Invenio-Communities
|
|
778
1050
|
# ===================
|
|
779
1051
|
|
|
@@ -784,7 +1056,7 @@ COMMUNITIES_ERROR_HANDLERS = {
|
|
|
784
1056
|
InvalidCommunityVisibility: create_error_handler(
|
|
785
1057
|
lambda e: HTTPJSONException(
|
|
786
1058
|
code=400,
|
|
787
|
-
description=
|
|
1059
|
+
description=e.reason,
|
|
788
1060
|
)
|
|
789
1061
|
),
|
|
790
1062
|
}
|
|
@@ -795,6 +1067,9 @@ COMMUNITIES_RECORDS_SEARCH = {
|
|
|
795
1067
|
}
|
|
796
1068
|
"""Community requests search configuration (i.e list of community requests)"""
|
|
797
1069
|
|
|
1070
|
+
COMMUNITIES_SHOW_BROWSE_MENU_ENTRY = False
|
|
1071
|
+
"""Toggle to show or hide the 'Browse' menu entry for communities."""
|
|
1072
|
+
|
|
798
1073
|
# Invenio-RDM-Records
|
|
799
1074
|
# ===================
|
|
800
1075
|
|
|
@@ -805,7 +1080,11 @@ RDM_REQUESTS_ROUTES = {
|
|
|
805
1080
|
}
|
|
806
1081
|
|
|
807
1082
|
RDM_COMMUNITIES_ROUTES = {
|
|
808
|
-
"community-detail": "/communities/<pid_value
|
|
1083
|
+
"community-detail": "/communities/<pid_value>/records",
|
|
1084
|
+
"community-home": "/communities/<pid_value>/",
|
|
1085
|
+
"community-browse": "/communities/<pid_value>/browse",
|
|
1086
|
+
"community-static-page": "/communities/<pid_value>/pages/<path:page_slug>",
|
|
1087
|
+
"community-collection": "/communities/<pid_value>/collections/<tree_slug>/<collection_slug>",
|
|
809
1088
|
}
|
|
810
1089
|
|
|
811
1090
|
RDM_SEARCH_USER_COMMUNITIES = {
|
|
@@ -816,7 +1095,7 @@ RDM_SEARCH_USER_COMMUNITIES = {
|
|
|
816
1095
|
|
|
817
1096
|
RDM_SEARCH_USER_REQUESTS = {
|
|
818
1097
|
"facets": ["type", "status"],
|
|
819
|
-
"sort": ["bestmatch", "newest", "oldest"],
|
|
1098
|
+
"sort": ["bestmatch", "newest", "oldest", "newestactivity", "oldestactivity"],
|
|
820
1099
|
}
|
|
821
1100
|
"""User requests search configuration (i.e list of user requests)"""
|
|
822
1101
|
|
|
@@ -844,25 +1123,6 @@ IIIF_PREVIEW_TEMPLATE = "invenio_app_rdm/records/iiif_preview.html"
|
|
|
844
1123
|
|
|
845
1124
|
IIIF_API_DECORATOR_HANDLER = None
|
|
846
1125
|
|
|
847
|
-
# Invenio-Previewer
|
|
848
|
-
# =================
|
|
849
|
-
# See https://github.com/inveniosoftware/invenio-previewer/blob/master/invenio_previewer/config.py # noqa
|
|
850
|
-
|
|
851
|
-
PREVIEWER_PREFERENCE = [
|
|
852
|
-
"csv_dthreejs",
|
|
853
|
-
"iiif_simple",
|
|
854
|
-
"simple_image",
|
|
855
|
-
"json_prismjs",
|
|
856
|
-
"xml_prismjs",
|
|
857
|
-
"mistune",
|
|
858
|
-
"pdfjs",
|
|
859
|
-
"ipynb",
|
|
860
|
-
"zip",
|
|
861
|
-
"txt",
|
|
862
|
-
]
|
|
863
|
-
"""Preferred previewers."""
|
|
864
|
-
|
|
865
|
-
|
|
866
1126
|
IIIF_SIMPLE_PREVIEWER_NATIVE_EXTENSIONS = ["gif", "png"]
|
|
867
1127
|
"""Images are converted to JPEG for preview, unless listed here."""
|
|
868
1128
|
|
|
@@ -870,6 +1130,7 @@ IIIF_SIMPLE_PREVIEWER_SIZE = "!800,800"
|
|
|
870
1130
|
"""Size of image in IIIF preview window. Must be a valid IIIF Image API size parameter."""
|
|
871
1131
|
|
|
872
1132
|
IIIF_FORMATS = {
|
|
1133
|
+
"pdf": "application/pdf",
|
|
873
1134
|
"gif": "image/gif",
|
|
874
1135
|
"jp2": "image/jp2",
|
|
875
1136
|
"jpeg": "image/jpeg",
|
|
@@ -878,16 +1139,41 @@ IIIF_FORMATS = {
|
|
|
878
1139
|
"tif": "image/tiff",
|
|
879
1140
|
"tiff": "image/tiff",
|
|
880
1141
|
}
|
|
1142
|
+
"""Controls which formats are supported by the Flask-IIIF server."""
|
|
1143
|
+
|
|
881
1144
|
IIIF_FORMATS_PIL_MAP = {
|
|
882
1145
|
"gif": "gif",
|
|
883
1146
|
"jp2": "jpeg2000",
|
|
884
1147
|
"jpeg": "jpeg",
|
|
885
1148
|
"jpg": "jpeg",
|
|
886
|
-
"pdf": "pdf",
|
|
887
1149
|
"png": "png",
|
|
888
1150
|
"tif": "tiff",
|
|
889
1151
|
"tiff": "tiff",
|
|
890
1152
|
}
|
|
1153
|
+
"""Mapping of IIIF formats to PIL-compatible formats."""
|
|
1154
|
+
|
|
1155
|
+
# Invenio-Previewer
|
|
1156
|
+
# =================
|
|
1157
|
+
# See https://github.com/inveniosoftware/invenio-previewer/blob/master/invenio_previewer/config.py # noqa
|
|
1158
|
+
|
|
1159
|
+
PREVIEWER_PREFERENCE = [
|
|
1160
|
+
"csv_papaparsejs",
|
|
1161
|
+
"pdfjs",
|
|
1162
|
+
"iiif_simple",
|
|
1163
|
+
"simple_image",
|
|
1164
|
+
"json_prismjs",
|
|
1165
|
+
"xml_prismjs",
|
|
1166
|
+
"mistune",
|
|
1167
|
+
"video_videojs",
|
|
1168
|
+
"audio_videojs",
|
|
1169
|
+
"ipynb",
|
|
1170
|
+
"zip",
|
|
1171
|
+
"txt",
|
|
1172
|
+
]
|
|
1173
|
+
"""Preferred previewers."""
|
|
1174
|
+
|
|
1175
|
+
RECORDS_RESOURCES_IMAGE_FORMATS = ["." + ext for ext in IIIF_FORMATS.keys()]
|
|
1176
|
+
"""RECORDS_RESOURCES_IMAGE_FORMATS must contain all possible IIIF formats to ensure their metadata is extracted."""
|
|
891
1177
|
|
|
892
1178
|
# Invenio-Pages
|
|
893
1179
|
# =============
|
|
@@ -898,42 +1184,65 @@ PAGES_DEFAULT_TEMPLATE = "invenio_app_rdm/default_static_page.html"
|
|
|
898
1184
|
|
|
899
1185
|
PAGES_TEMPLATES = [
|
|
900
1186
|
("invenio_app_rdm/default_static_page.html", "Default"),
|
|
1187
|
+
("invenio_communities/default_static_page.html", "Community"),
|
|
901
1188
|
]
|
|
902
1189
|
"""List of available templates for pages."""
|
|
903
1190
|
|
|
1191
|
+
APP_RDM_PAGES = {}
|
|
1192
|
+
"""Register static pages with predefined initial content from 'pages.yaml' file.
|
|
1193
|
+
|
|
1194
|
+
Example:
|
|
1195
|
+
{
|
|
1196
|
+
"about": "/about",
|
|
1197
|
+
"terms": "/terms",
|
|
1198
|
+
"privacy-policy": "/privacy-policy",
|
|
1199
|
+
}
|
|
1200
|
+
"""
|
|
1201
|
+
|
|
904
1202
|
# Invenio-Stats
|
|
905
1203
|
# =============
|
|
906
1204
|
# See https://invenio-stats.readthedocs.io/en/latest/configuration.html
|
|
907
1205
|
|
|
1206
|
+
|
|
908
1207
|
STATS_EVENTS = {
|
|
909
1208
|
"file-download": {
|
|
910
|
-
"templates": "
|
|
1209
|
+
"templates": "invenio_rdm_records.records.stats.templates.events.file_download",
|
|
911
1210
|
"event_builders": [
|
|
912
|
-
"
|
|
913
|
-
"
|
|
1211
|
+
"invenio_rdm_records.resources.stats.file_download_event_builder",
|
|
1212
|
+
"invenio_rdm_records.resources.stats.check_if_via_api",
|
|
914
1213
|
],
|
|
915
1214
|
"cls": EventsIndexer,
|
|
916
1215
|
"params": {
|
|
917
|
-
"preprocessors": [
|
|
1216
|
+
"preprocessors": [
|
|
1217
|
+
filter_robots,
|
|
1218
|
+
flag_machines,
|
|
1219
|
+
anonymize_user,
|
|
1220
|
+
build_file_unique_id,
|
|
1221
|
+
]
|
|
918
1222
|
},
|
|
919
1223
|
},
|
|
920
1224
|
"record-view": {
|
|
921
|
-
"templates": "
|
|
1225
|
+
"templates": "invenio_rdm_records.records.stats.templates.events.record_view",
|
|
922
1226
|
"event_builders": [
|
|
923
|
-
"
|
|
924
|
-
"
|
|
925
|
-
"
|
|
1227
|
+
"invenio_rdm_records.resources.stats.record_view_event_builder",
|
|
1228
|
+
"invenio_rdm_records.resources.stats.check_if_via_api",
|
|
1229
|
+
"invenio_rdm_records.resources.stats.drop_if_via_api",
|
|
926
1230
|
],
|
|
927
1231
|
"cls": EventsIndexer,
|
|
928
1232
|
"params": {
|
|
929
|
-
"preprocessors": [
|
|
1233
|
+
"preprocessors": [
|
|
1234
|
+
filter_robots,
|
|
1235
|
+
flag_machines,
|
|
1236
|
+
anonymize_user,
|
|
1237
|
+
build_record_unique_id,
|
|
1238
|
+
],
|
|
930
1239
|
},
|
|
931
1240
|
},
|
|
932
1241
|
}
|
|
933
1242
|
|
|
934
1243
|
STATS_AGGREGATIONS = {
|
|
935
1244
|
"file-download-agg": {
|
|
936
|
-
"templates": "
|
|
1245
|
+
"templates": "invenio_rdm_records.records.stats.templates.aggregations.aggr_file_download",
|
|
937
1246
|
"cls": StatAggregator,
|
|
938
1247
|
"params": {
|
|
939
1248
|
"event": "file-download",
|
|
@@ -958,7 +1267,7 @@ STATS_AGGREGATIONS = {
|
|
|
958
1267
|
},
|
|
959
1268
|
},
|
|
960
1269
|
"record-view-agg": {
|
|
961
|
-
"templates": "
|
|
1270
|
+
"templates": "invenio_rdm_records.records.stats.templates.aggregations.aggr_record_view",
|
|
962
1271
|
"cls": StatAggregator,
|
|
963
1272
|
"params": {
|
|
964
1273
|
"event": "record-view",
|
|
@@ -1065,4 +1374,191 @@ STATS_QUERIES = {
|
|
|
1065
1374
|
},
|
|
1066
1375
|
}
|
|
1067
1376
|
|
|
1068
|
-
STATS_PERMISSION_FACTORY =
|
|
1377
|
+
STATS_PERMISSION_FACTORY = permissions_policy_lookup_factory
|
|
1378
|
+
|
|
1379
|
+
|
|
1380
|
+
# Invenio-Notifications
|
|
1381
|
+
# =================
|
|
1382
|
+
# See https://github.com/inveniosoftware/invenio-notifications/blob/master/invenio_notifications/config.py # noqa
|
|
1383
|
+
|
|
1384
|
+
|
|
1385
|
+
NOTIFICATIONS_BACKENDS = {
|
|
1386
|
+
EmailNotificationBackend.id: EmailNotificationBackend(),
|
|
1387
|
+
}
|
|
1388
|
+
"""Notification backends."""
|
|
1389
|
+
|
|
1390
|
+
|
|
1391
|
+
NOTIFICATIONS_BUILDERS = {
|
|
1392
|
+
# Access request
|
|
1393
|
+
GuestAccessRequestTokenCreateNotificationBuilder.type: GuestAccessRequestTokenCreateNotificationBuilder,
|
|
1394
|
+
GuestAccessRequestAcceptNotificationBuilder.type: GuestAccessRequestAcceptNotificationBuilder,
|
|
1395
|
+
GuestAccessRequestSubmitNotificationBuilder.type: GuestAccessRequestSubmitNotificationBuilder,
|
|
1396
|
+
GuestAccessRequestSubmittedNotificationBuilder.type: GuestAccessRequestSubmittedNotificationBuilder,
|
|
1397
|
+
GuestAccessRequestCancelNotificationBuilder.type: GuestAccessRequestCancelNotificationBuilder,
|
|
1398
|
+
GuestAccessRequestDeclineNotificationBuilder.type: GuestAccessRequestDeclineNotificationBuilder,
|
|
1399
|
+
UserAccessRequestAcceptNotificationBuilder.type: UserAccessRequestAcceptNotificationBuilder,
|
|
1400
|
+
UserAccessRequestSubmitNotificationBuilder.type: UserAccessRequestSubmitNotificationBuilder,
|
|
1401
|
+
UserAccessRequestDeclineNotificationBuilder.type: UserAccessRequestDeclineNotificationBuilder,
|
|
1402
|
+
UserAccessRequestCancelNotificationBuilder.type: UserAccessRequestCancelNotificationBuilder,
|
|
1403
|
+
# Grant user access
|
|
1404
|
+
GrantUserAccessNotificationBuilder.type: GrantUserAccessNotificationBuilder,
|
|
1405
|
+
# Comment request event
|
|
1406
|
+
CommentRequestEventCreateNotificationBuilder.type: CommentRequestEventCreateNotificationBuilder,
|
|
1407
|
+
community_notifications.SubComReqCommentNotificationBuilder.type: community_notifications.SubComReqCommentNotificationBuilder,
|
|
1408
|
+
community_notifications.SubComInvCommentNotificationBuilder.type: community_notifications.SubComInvCommentNotificationBuilder,
|
|
1409
|
+
# Community inclusion
|
|
1410
|
+
CommunityInclusionAcceptNotificationBuilder.type: CommunityInclusionAcceptNotificationBuilder,
|
|
1411
|
+
CommunityInclusionCancelNotificationBuilder.type: CommunityInclusionCancelNotificationBuilder,
|
|
1412
|
+
CommunityInclusionDeclineNotificationBuilder.type: CommunityInclusionDeclineNotificationBuilder,
|
|
1413
|
+
CommunityInclusionExpireNotificationBuilder.type: CommunityInclusionExpireNotificationBuilder,
|
|
1414
|
+
CommunityInclusionSubmittedNotificationBuilder.type: CommunityInclusionSubmittedNotificationBuilder,
|
|
1415
|
+
# Community invitation
|
|
1416
|
+
CommunityInvitationAcceptNotificationBuilder.type: CommunityInvitationAcceptNotificationBuilder,
|
|
1417
|
+
CommunityInvitationCancelNotificationBuilder.type: CommunityInvitationCancelNotificationBuilder,
|
|
1418
|
+
CommunityInvitationDeclineNotificationBuilder.type: CommunityInvitationDeclineNotificationBuilder,
|
|
1419
|
+
CommunityInvitationExpireNotificationBuilder.type: CommunityInvitationExpireNotificationBuilder,
|
|
1420
|
+
CommunityInvitationSubmittedNotificationBuilder.type: CommunityInvitationSubmittedNotificationBuilder,
|
|
1421
|
+
# Subcommunity request
|
|
1422
|
+
community_notifications.SubCommunityCreate.type: community_notifications.SubCommunityCreate,
|
|
1423
|
+
community_notifications.SubCommunityAccept.type: community_notifications.SubCommunityAccept,
|
|
1424
|
+
community_notifications.SubCommunityDecline.type: community_notifications.SubCommunityDecline,
|
|
1425
|
+
# Subcommunity invitation request
|
|
1426
|
+
community_notifications.SubComInvitationCreate.type: community_notifications.SubComInvitationCreate,
|
|
1427
|
+
community_notifications.SubComInvitationAccept.type: community_notifications.SubComInvitationAccept,
|
|
1428
|
+
community_notifications.SubComInvitationDecline.type: community_notifications.SubComInvitationDecline,
|
|
1429
|
+
community_notifications.SubComInvitationExpire.type: community_notifications.SubComInvitationExpire,
|
|
1430
|
+
# Record deletion
|
|
1431
|
+
RecordDeletionAcceptNotificationBuilder.type: RecordDeletionAcceptNotificationBuilder,
|
|
1432
|
+
RecordDeletionDeclineNotificationBuilder.type: RecordDeletionDeclineNotificationBuilder,
|
|
1433
|
+
}
|
|
1434
|
+
"""Notification builders."""
|
|
1435
|
+
|
|
1436
|
+
|
|
1437
|
+
NOTIFICATIONS_ENTITY_RESOLVERS = [
|
|
1438
|
+
EmailResolver(),
|
|
1439
|
+
RDMRecordServiceResultResolver(),
|
|
1440
|
+
ServiceResultResolver(service_id="users", type_key="user"),
|
|
1441
|
+
ServiceResultResolver(service_id="communities", type_key="community"),
|
|
1442
|
+
ServiceResultResolver(service_id="requests", type_key="request"),
|
|
1443
|
+
ServiceResultResolver(service_id="request_events", type_key="request_event"),
|
|
1444
|
+
ServiceResultResolver(service_id="groups", type_key="group"),
|
|
1445
|
+
]
|
|
1446
|
+
"""List of entity resolvers used by notification builders."""
|
|
1447
|
+
|
|
1448
|
+
NOTIFICATIONS_SETTINGS_VIEW_FUNCTION = notification_settings
|
|
1449
|
+
"""View function for notification settings."""
|
|
1450
|
+
|
|
1451
|
+
|
|
1452
|
+
# Invenio-Users-Resources
|
|
1453
|
+
# =================
|
|
1454
|
+
# See https://github.com/inveniosoftware/invenio-users-resources/blob/master/invenio_users_resources/config.py # noqa
|
|
1455
|
+
|
|
1456
|
+
|
|
1457
|
+
USERS_RESOURCES_SERVICE_SCHEMA = NotificationsUserSchema
|
|
1458
|
+
"""Schema used by the users service."""
|
|
1459
|
+
|
|
1460
|
+
|
|
1461
|
+
# Invenio-Requests
|
|
1462
|
+
# =================
|
|
1463
|
+
# See https://github.com/inveniosoftware/invenio-requests/blob/master/invenio_requests/config.py # noqa
|
|
1464
|
+
|
|
1465
|
+
|
|
1466
|
+
REQUESTS_PERMISSION_POLICY = RDMRequestsPermissionPolicy
|
|
1467
|
+
"""The requests permission policy, extended to work with guest access requests."""
|
|
1468
|
+
|
|
1469
|
+
|
|
1470
|
+
REQUESTS_ERROR_HANDLERS = {
|
|
1471
|
+
**request_error_handlers,
|
|
1472
|
+
InvalidAccessRestrictions: create_error_handler(
|
|
1473
|
+
lambda e: HTTPJSONException(
|
|
1474
|
+
code=400,
|
|
1475
|
+
description=e.description,
|
|
1476
|
+
)
|
|
1477
|
+
),
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
|
|
1481
|
+
# Invenio-Github
|
|
1482
|
+
# =================
|
|
1483
|
+
#
|
|
1484
|
+
GITHUB_RELEASE_CLASS = RDMGithubRelease
|
|
1485
|
+
"""Default RDM release class."""
|
|
1486
|
+
|
|
1487
|
+
|
|
1488
|
+
# Flask-Menu
|
|
1489
|
+
# ==========
|
|
1490
|
+
#
|
|
1491
|
+
USER_DASHBOARD_MENU_OVERRIDES = {}
|
|
1492
|
+
"""Overrides for "dashboard" menu."""
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
# Invenio-Administration
|
|
1496
|
+
# ======================
|
|
1497
|
+
#
|
|
1498
|
+
from invenio_app_rdm import __version__
|
|
1499
|
+
|
|
1500
|
+
ADMINISTRATION_DISPLAY_VERSIONS = [("invenio-app-rdm", f"v{__version__}")]
|
|
1501
|
+
"""Show the InvenioRDM version in the administration panel."""
|
|
1502
|
+
|
|
1503
|
+
ADMINISTRATION_THEME_BASE_TEMPLATE = "invenio_app_rdm/administration_page.html"
|
|
1504
|
+
"""Administration base template."""
|
|
1505
|
+
|
|
1506
|
+
|
|
1507
|
+
APP_RDM_SUBCOMMUNITIES_LABEL = "Subcommunities"
|
|
1508
|
+
"""Label for the subcommunities in the community browse page."""
|
|
1509
|
+
|
|
1510
|
+
RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE = None
|
|
1511
|
+
"""Side bar manage attributes extension template."""
|
|
1512
|
+
|
|
1513
|
+
# Invenio-Sitemap
|
|
1514
|
+
# ===============
|
|
1515
|
+
# See https://github.com/inveniosoftware/invenio-sitemap/blob/master/invenio_sitemap/config.py # noqa
|
|
1516
|
+
SITEMAP_SECTIONS = [
|
|
1517
|
+
SitemapSectionOfRDMRecords(),
|
|
1518
|
+
SitemapSectionOfCommunities(),
|
|
1519
|
+
]
|
|
1520
|
+
|
|
1521
|
+
|
|
1522
|
+
# Moderation requests search configuration
|
|
1523
|
+
# ========================================
|
|
1524
|
+
APP_RDM_MODERATION_REQUEST_SEARCH = {
|
|
1525
|
+
"facets": ["status", "is_open"],
|
|
1526
|
+
"sort": ["bestmatch", "newest", "oldest", "newestactivity", "oldestactivity"],
|
|
1527
|
+
}
|
|
1528
|
+
"""Moderation requests search configuration."""
|
|
1529
|
+
|
|
1530
|
+
APP_RDM_MODERATION_REQUEST_SORT_OPTIONS = {
|
|
1531
|
+
"bestmatch": dict(
|
|
1532
|
+
title=_("Best match"),
|
|
1533
|
+
fields=["_score"],
|
|
1534
|
+
),
|
|
1535
|
+
"newest": dict(
|
|
1536
|
+
title=_("Newest"),
|
|
1537
|
+
fields=["-created"],
|
|
1538
|
+
),
|
|
1539
|
+
"oldest": dict(
|
|
1540
|
+
title=_("Oldest"),
|
|
1541
|
+
fields=["created"],
|
|
1542
|
+
),
|
|
1543
|
+
"newestactivity": dict(
|
|
1544
|
+
title=_("Newest activity"),
|
|
1545
|
+
fields=["-last_activity_at"],
|
|
1546
|
+
),
|
|
1547
|
+
"oldestactivity": dict(
|
|
1548
|
+
title=_("Oldest activity"),
|
|
1549
|
+
fields=["last_activity_at"],
|
|
1550
|
+
),
|
|
1551
|
+
}
|
|
1552
|
+
"""Definitions of available record sort options."""
|
|
1553
|
+
|
|
1554
|
+
|
|
1555
|
+
APP_RDM_MODERATION_REQUEST_FACETS = {
|
|
1556
|
+
"status": {
|
|
1557
|
+
"facet": facets.status,
|
|
1558
|
+
"ui": {
|
|
1559
|
+
"field": "status",
|
|
1560
|
+
},
|
|
1561
|
+
},
|
|
1562
|
+
"is_open": {"facet": facets.is_open, "ui": {"field": "is_open"}},
|
|
1563
|
+
}
|
|
1564
|
+
"""Available facets defined for this module."""
|