From c9fb2db68314559ac6d7ce96ce97b09fadc82e7a Mon Sep 17 00:00:00 2001 From: Fatimah Date: Thu, 22 Feb 2024 16:33:03 +0100 Subject: [PATCH] custom_field: added subject field to community --- invenio.cfg | 9 +++- site/zenodo_rdm/custom_fields/__init__.py | 5 ++ .../custom_fields/community_fields.py | 48 +++++++++++++++++++ 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 site/zenodo_rdm/custom_fields/community_fields.py diff --git a/invenio.cfg b/invenio.cfg index 04f18851..0b6936c7 100644 --- a/invenio.cfg +++ b/invenio.cfg @@ -42,8 +42,7 @@ from invenio_rdm_records.services.components import DefaultRecordsComponents from invenio_oauthclient.views.client import auto_redirect_login from invenio_communities.communities.services import facets as community_facets - -from zenodo_rdm.custom_fields import CUSTOM_FIELDS_UI, CUSTOM_FIELDS, CUSTOM_FIELDS_FACETS, NAMESPACES +from zenodo_rdm.custom_fields import CUSTOM_FIELDS_UI, CUSTOM_FIELDS, CUSTOM_FIELDS_FACETS, NAMESPACES, COMMUNITY_NAMESPACES,COMMUNITY_FIELDS, COMMUNITY_FIELDS_UI from zenodo_rdm.views import frontpage_view_function from zenodo_rdm.permissions import ZenodoCommunityPermissionPolicy, ZenodoRDMRecordPermissionPolicy from zenodo_rdm.api import ZenodoRDMRecord, ZenodoRDMDraft @@ -642,6 +641,12 @@ RDM_CUSTOM_FIELDS = CUSTOM_FIELDS RDM_CUSTOM_FIELDS_UI = CUSTOM_FIELDS_UI # UI components +COMMUNITIES_CUSTOM_FIELDS_UI = COMMUNITY_FIELDS_UI + +COMMUNITIES_CUSTOM_FIELDS = COMMUNITY_FIELDS + +COMMUNITIES_NAMESPACES = COMMUNITY_NAMESPACES + # Invenio-Communities # ============== COMMUNITIES_GROUPS_ENABLED = False diff --git a/site/zenodo_rdm/custom_fields/__init__.py b/site/zenodo_rdm/custom_fields/__init__.py index c8ab2964..84d9f559 100644 --- a/site/zenodo_rdm/custom_fields/__init__.py +++ b/site/zenodo_rdm/custom_fields/__init__.py @@ -34,6 +34,11 @@ THESIS_NAMESPACE, ) +from .community_fields import ( + COMMUNITY_FIELDS, + COMMUNITY_FIELDS_UI, + COMMUNITY_NAMESPACES, +) from .domain_fields import ( AUDIOVIS_FIELDS, AUDIOVIS_FIELDS_UI, diff --git a/site/zenodo_rdm/custom_fields/community_fields.py b/site/zenodo_rdm/custom_fields/community_fields.py new file mode 100644 index 00000000..d70c0a2e --- /dev/null +++ b/site/zenodo_rdm/custom_fields/community_fields.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2023 CERN. +# +# ZenodoRDM is free software; you can redistribute it and/or modify it +# under the terms of the MIT License; see LICENSE file for more details. + +"""Custom fields.""" +from invenio_i18n import lazy_gettext as _ +from invenio_vocabularies.services.custom_fields import VocabularyCF + +COMMUNITY_FIELDS_UI = [ + { + "section": _("Subjects"), + "fields": [ + dict( + field="es:subjects", + ui_widget="AutocompleteDropdown", + props=dict( + label="Keywords and subjects", + icon="tag", + description="The subjects related to the community", + placeholder="Search for a subject by name e.g. Psychology ...", + autocompleteFrom="/api/vocabularies/languages", + autocompleteFromAcceptHeader="application/vnd.inveniordm.v1+json", + required=False, + multiple=True, + clearable=True, + ), + ) + ], + } +] + + +COMMUNITY_FIELDS = { + VocabularyCF( + name="es:subjects", + vocabulary_id="es:subjects", + multiple=True, + dump_options=False, + ) +} + + +COMMUNITY_NAMESPACES = { + "es": "https://op.europa.eu/en/web/eu-vocabularies/dataset/-/resource?uri=http://publications.europa.eu/resource/dataset/euroscivoc", +}