Skip to content

Commit

Permalink
custom fields: added custom field for subjects
Browse files Browse the repository at this point in the history
* added custom field for subjects

* removed COMMUNITY_NAMESPACES
  • Loading branch information
alejandromumo committed Feb 23, 2024
1 parent 78cef55 commit 3eb1ccc
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 12 deletions.
4 changes: 1 addition & 3 deletions invenio.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +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, COMMUNITY_NAMESPACES,COMMUNITY_FIELDS, COMMUNITY_FIELDS_UI
from zenodo_rdm.custom_fields import CUSTOM_FIELDS_UI, CUSTOM_FIELDS, CUSTOM_FIELDS_FACETS, 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
Expand Down Expand Up @@ -645,8 +645,6 @@ COMMUNITIES_CUSTOM_FIELDS_UI = COMMUNITY_FIELDS_UI

COMMUNITIES_CUSTOM_FIELDS = COMMUNITY_FIELDS

COMMUNITIES_NAMESPACES = COMMUNITY_NAMESPACES

# Invenio-Communities
# ==============
COMMUNITIES_GROUPS_ENABLED = False
Expand Down
1 change: 0 additions & 1 deletion site/zenodo_rdm/custom_fields/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
from .community_fields import (
COMMUNITY_FIELDS,
COMMUNITY_FIELDS_UI,
COMMUNITY_NAMESPACES,
)
from .domain_fields import (
AUDIOVIS_FIELDS,
Expand Down
44 changes: 36 additions & 8 deletions site/zenodo_rdm/custom_fields/community_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,39 @@
"""Custom fields."""
from invenio_i18n import lazy_gettext as _
from invenio_vocabularies.services.custom_fields import VocabularyCF
from invenio_vocabularies.contrib.subjects.schema import SubjectRelationSchema
from invenio_vocabularies.contrib.subjects.api import Subject


class SubjectCF(VocabularyCF):
"""Custom field for subjects."""

field_keys = ["id", "subject"]

def __init__(self, **kwargs):
"""Constructor."""
super().__init__(
vocabulary_id="subjects",
schema=SubjectRelationSchema,
ui_schema=SubjectRelationSchema,
**kwargs
)
self.pid_field = Subject.pid

@property
def mapping(self):
"""Return the mapping."""
_mapping = {
"type": "object",
"properties": {
"@v": {"type": "keyword"},
"id": {"type": "keyword"},
"subject": {"type": "keyword"},
},
}

return _mapping


COMMUNITY_FIELDS_UI = [
{
Expand All @@ -21,11 +54,12 @@
icon="tag",
description="The subjects related to the community",
placeholder="Search for a subject by name e.g. Psychology ...",
autocompleteFrom="api/vocabularies/subjects",
autocompleteFrom="api/subjects",
autocompleteFromAcceptHeader="application/vnd.inveniordm.v1+json",
required=False,
multiple=True,
clearable=True,
allowAdditions=False,
),
)
],
Expand All @@ -34,15 +68,9 @@


COMMUNITY_FIELDS = {
VocabularyCF(
SubjectCF(
name="subjects",
vocabulary_id="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",
}

0 comments on commit 3eb1ccc

Please sign in to comment.