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.2.6.tar.gz (97.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oarepo_vocabularies-2.2.6-py3-none-any.whl (183.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: oarepo_vocabularies-2.2.6.tar.gz
  • Upload date:
  • Size: 97.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for oarepo_vocabularies-2.2.6.tar.gz
Algorithm Hash digest
SHA256 73b08de4e0cd268eae9e5768b83c5ccb3f1b18b2f38398f2f3dc4a44def85a36
MD5 7007eb930e1cb7f4513764b34e7d1599
BLAKE2b-256 4fbbfe6c0f5c0d88c554b822b4e27c517bfb020496d568a4ab66a1ec269932a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oarepo_vocabularies-2.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 242a51f28e53155172ef9dbb2755508dfa6ff433a93776bc52b1a3fafd9e0163
MD5 f9431c4839b4140400cbc7e70bc2d636
BLAKE2b-256 2490f823e1c7ce427b2e387e8afae3153cb5b98393a377d5073cdd7644fbd109

See more details on using hashes here.

Supported by

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