diff --git a/invenio_app_ils/documents/loaders/jsonschemas/document.py b/invenio_app_ils/documents/loaders/jsonschemas/document.py index b6e3941f7..c1456565c 100644 --- a/invenio_app_ils/documents/loaders/jsonschemas/document.py +++ b/invenio_app_ils/documents/loaders/jsonschemas/document.py @@ -19,19 +19,7 @@ from invenio_app_ils.records.loaders.schemas.preserve_cover_metadata import ( preserve_cover_metadata, ) - - -class IdentifierSchema(Schema): - """Identifier schema.""" - - class Meta: - """Meta attributes for the schema.""" - - unknown = EXCLUDE - - material = fields.Str() - scheme = fields.Str(required=True) - value = fields.Str(required=True) +from invenio_app_ils.records.loaders.schemas.identifiers import IdentifierSchema class AffiliationSchema(Schema): diff --git a/invenio_app_ils/eitems/loaders/jsonschemas/eitems.py b/invenio_app_ils/eitems/loaders/jsonschemas/eitems.py index 7dd64b320..ed36000d4 100644 --- a/invenio_app_ils/eitems/loaders/jsonschemas/eitems.py +++ b/invenio_app_ils/eitems/loaders/jsonschemas/eitems.py @@ -11,7 +11,7 @@ from marshmallow import EXCLUDE, Schema, fields, pre_load, validate from invenio_app_ils.eitems.api import EItem -from invenio_app_ils.documents.loaders.jsonschemas.document import IdentifierSchema +from invenio_app_ils.records.loaders.schemas.identifiers import IdentifierSchema from invenio_app_ils.records.loaders.schemas.changed_by import ( ChangedBySchema, set_changed_by, diff --git a/invenio_app_ils/items/loaders/jsonschemas/items.py b/invenio_app_ils/items/loaders/jsonschemas/items.py index f2ab222e4..c3bdc9b9a 100644 --- a/invenio_app_ils/items/loaders/jsonschemas/items.py +++ b/invenio_app_ils/items/loaders/jsonschemas/items.py @@ -16,7 +16,7 @@ set_changed_by, ) from invenio_app_ils.records.loaders.schemas.price import PriceSchema -from invenio_app_ils.documents.loaders.jsonschemas.document import IdentifierSchema +from invenio_app_ils.records.loaders.schemas.identifiers import IdentifierSchema class ISBNSchema(Schema): diff --git a/invenio_app_ils/records/loaders/schemas/identifiers.py b/invenio_app_ils/records/loaders/schemas/identifiers.py new file mode 100644 index 000000000..2d000c65a --- /dev/null +++ b/invenio_app_ils/records/loaders/schemas/identifiers.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2024 CERN. +# +# invenio-app-ils is free software; you can redistribute it and/or modify it +# under the terms of the MIT License; see LICENSE file for more details. + +"""Identifiers schema for marshmallow loader.""" + +from marshmallow import EXCLUDE, Schema, fields + + +class IdentifierSchema(Schema): + """Identifier schema.""" + + class Meta: + """Meta attributes for the schema.""" + + unknown = EXCLUDE + + material = fields.Str() + scheme = fields.Str(required=True) + value = fields.Str(required=True) diff --git a/invenio_app_ils/series/loaders/jsonschemas/series.py b/invenio_app_ils/series/loaders/jsonschemas/series.py index 3b8af3657..09849564e 100644 --- a/invenio_app_ils/series/loaders/jsonschemas/series.py +++ b/invenio_app_ils/series/loaders/jsonschemas/series.py @@ -13,7 +13,6 @@ from invenio_app_ils.documents.loaders.jsonschemas.document import ( AlternativeTitleSchema, - IdentifierSchema, InternalNoteSchema, KeywordSchema, UrlSchema, @@ -25,6 +24,7 @@ from invenio_app_ils.records.loaders.schemas.preserve_cover_metadata import ( preserve_cover_metadata, ) +from invenio_app_ils.records.loaders.schemas.identifiers import IdentifierSchema from invenio_app_ils.series.api import Series