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

This version

2.1.6

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

Uploaded Source

Built Distribution

oarepo_vocabularies-2.1.6-py3-none-any.whl (151.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: oarepo_vocabularies-2.1.6.tar.gz
  • Upload date:
  • Size: 79.1 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.6.tar.gz
Algorithm Hash digest
SHA256 0ebaa026fdf4be39018f5ac573d784e9552cbacfc03cac36cee48a61b05cb3cd
MD5 16aeeff841c0a8453f4a6a9f56809041
BLAKE2b-256 b055ad5a6d4c57fbac4182c62b0507fd69a97e18364719e6620b3b4f7f3f0d5f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oarepo_vocabularies-2.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 7a0ed520dac4d2b412d42b9962b41093f2bdeaeb2f7406124eab5a17b6ad25d8
MD5 ef1986bbe54dbe77555b9a1ddb8af6f9
BLAKE2b-256 e42fbd36f225c5429ebcc217aad00c3eb162de826e240730a3c13e2d6be5572e

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