Skip to main content

Support for custom fields and hierarchy on Invenio vocabularies

Project description

OARepo vocabularies

This is an extension of invenio vocabularies that allows:

  • Use the vocabularies with custom fields
  • Treat vocabulary items as hierarchy

Installation

Add oarepo-runtime, oarepo-vocabularies to your virtualenv an set up the following in your invenio.cfg:

from oarepo_vocabularies.services.config import VocabulariesConfig
from oarepo_vocabularies.resources.config import VocabulariesResourceConfig

VOCABULARIES_SERVICE_CONFIG = VocabulariesConfig
VOCABULARIES_RESOURCE_CONFIG = VocabulariesResourceConfig

Documentation

See NRP documentation for more details.

Authorities

It is possible to provide authority sources for vocabularies. Configuration:

VOCABULARY_TYPE_METADATA = {
    "funding": {    # vocabulary of funding
        "name": {
            "en": "Funding"
        },
        "authority": FundingService
    }
}

where:

from oarepo_vocabularies.authorities import AuthorityService

class FundingService(AuthorityService):
    def search(self, query=None, page=1, size=10, **kwargs):
        # performs an API and returns a listing 
        # of serialized vocabulary items, for example:
        return {
            'hits': {
                'total': 2,
                'hits': [
                    {"id": "03zsq2967", "title": {"en": "Funding 1"}},
                    {"id": "a4gfhtt56", "title": {"en": "Funding 2"}}
                ]
            },
            # optional pagination links here
        }
    def get(self, item_id, *, uow, value, **kwargs):
        # performs lookup by id and returns vocabulary metadata
        
        # in this example:
        return next(x for x in self.search()['hits']['hits'] if x['id'] == item_id)

Ordering

This extension supports ordering and suggestion in different languages. It is enabled by default and enables all languages in I18N_LANGUAGES, BABEL_DEFAULT_LOCALE. Sorting by title sorts by the title in the current language, suggestion suggests in id and title in the default language.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oarepo_vocabularies-2.1.8.tar.gz (80.7 kB view details)

Uploaded Source

Built Distribution

oarepo_vocabularies-2.1.8-py3-none-any.whl (153.6 kB view details)

Uploaded Python 3

File details

Details for the file oarepo_vocabularies-2.1.8.tar.gz.

File metadata

  • Download URL: oarepo_vocabularies-2.1.8.tar.gz
  • Upload date:
  • Size: 80.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for oarepo_vocabularies-2.1.8.tar.gz
Algorithm Hash digest
SHA256 09251a9d1866ae0d647436a8fe2302b5d975ac570f85ec284e706d14660ec7b5
MD5 b93cada5784333860cfa126c6348d67c
BLAKE2b-256 6676f4f380a30a2312a1276dfd14da7c35c098925d37591a82ee86dd8af3977e

See more details on using hashes here.

File details

Details for the file oarepo_vocabularies-2.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for oarepo_vocabularies-2.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 0a8f072cf4c6ddfa1a8fba2a14a7c252dd730a91d6485bde6f5dfd88de15d8e1
MD5 75ae7a821a61c715b6d6316341e7b0aa
BLAKE2b-256 6a111d413c009e66d8c543a71b01068251097a8ee06daea57e70f220c8016208

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page