diff --git a/rero_ils/modules/acq_accounts/api.py b/rero_ils/modules/acq_accounts/api.py index 4e5e0afb50..78ce07c760 100644 --- a/rero_ils/modules/acq_accounts/api.py +++ b/rero_ils/modules/acq_accounts/api.py @@ -21,7 +21,7 @@ from flask import current_app -from .models import AcqAccountIdentifier +from .models import AcqAccountIdentifier, AcqAccountMetadata from ..acq_order_lines.api import AcqOrderLinesSearch from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher @@ -57,6 +57,7 @@ class AcqAccount(IlsRecord): minter = acq_account_id_minter fetcher = acq_account_id_fetcher provider = AcqAccountProvider + model_cls = AcqAccountMetadata @classmethod def create(cls, data, id_=None, delete_pid=False, diff --git a/rero_ils/modules/acq_accounts/models.py b/rero_ils/modules/acq_accounts/models.py index 681b67312a..06171ed604 100644 --- a/rero_ils/modules/acq_accounts/models.py +++ b/rero_ils/modules/acq_accounts/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class AcqAccountIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class AcqAccountIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class AcqAccountMetadata(db.Model, RecordMetadataBase): + """AcqAccount record metadata.""" + + __tablename__ = 'acq_account_metadata' diff --git a/rero_ils/modules/acq_invoices/api.py b/rero_ils/modules/acq_invoices/api.py index 27a32a0b9d..59944a06dd 100644 --- a/rero_ils/modules/acq_invoices/api.py +++ b/rero_ils/modules/acq_invoices/api.py @@ -21,7 +21,7 @@ from flask import current_app -from .models import AcquisitionInvoiceIdentifier +from .models import AcquisitionInvoiceIdentifier, AcquisitionInvoiceMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher from ..libraries.api import Library @@ -57,6 +57,7 @@ class AcquisitionInvoice(IlsRecord): minter = acq_invoice_id_minter fetcher = acq_invoice_id_fetcher provider = AcquisitionInvoiceProvider + model_cls = AcquisitionInvoiceMetadata @classmethod def create(cls, data, id_=None, delete_pid=False, diff --git a/rero_ils/modules/acq_invoices/models.py b/rero_ils/modules/acq_invoices/models.py index 4963e151c3..70959ae021 100644 --- a/rero_ils/modules/acq_invoices/models.py +++ b/rero_ils/modules/acq_invoices/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class AcquisitionInvoiceIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class AcquisitionInvoiceIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class AcquisitionInvoiceMetadata(db.Model, RecordMetadataBase): + """AcquisitionInvoice record metadata.""" + + __tablename__ = 'acq_invoice_metadata' diff --git a/rero_ils/modules/acq_order_lines/api.py b/rero_ils/modules/acq_order_lines/api.py index db11eb1b23..c3077524c7 100644 --- a/rero_ils/modules/acq_order_lines/api.py +++ b/rero_ils/modules/acq_order_lines/api.py @@ -21,7 +21,7 @@ from flask import current_app -from .models import AcqOrderLineIdentifier +from .models import AcqOrderLineIdentifier, AcqOrderLineMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher from ..minters import id_minter @@ -55,6 +55,7 @@ class AcqOrderLine(IlsRecord): minter = acq_order_line_id_minter fetcher = acq_order_line_id_fetcher provider = AcqOrderLineProvider + model_cls = AcqOrderLineMetadata @classmethod def create(cls, data, id_=None, delete_pid=False, diff --git a/rero_ils/modules/acq_order_lines/models.py b/rero_ils/modules/acq_order_lines/models.py index 99cc02e355..fcf645069c 100644 --- a/rero_ils/modules/acq_order_lines/models.py +++ b/rero_ils/modules/acq_order_lines/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class AcqOrderLineIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class AcqOrderLineIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class AcqOrderLineMetadata(db.Model, RecordMetadataBase): + """AcqOrderLine record metadata.""" + + __tablename__ = 'acq_order_line_metadata' diff --git a/rero_ils/modules/acq_orders/api.py b/rero_ils/modules/acq_orders/api.py index 9317e1f114..1ef82dbe35 100644 --- a/rero_ils/modules/acq_orders/api.py +++ b/rero_ils/modules/acq_orders/api.py @@ -21,7 +21,7 @@ from flask import current_app -from .models import AcqOrderIdentifier +from .models import AcqOrderIdentifier, AcqOrderMetadata from ..acq_order_lines.api import AcqOrderLinesSearch from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher @@ -57,6 +57,7 @@ class AcqOrder(IlsRecord): minter = acq_order_id_minter fetcher = acq_order_id_fetcher provider = AcqOrderProvider + model_cls = AcqOrderMetadata @classmethod def create(cls, data, id_=None, delete_pid=False, diff --git a/rero_ils/modules/acq_orders/models.py b/rero_ils/modules/acq_orders/models.py index c98f867d7f..865b41d3c1 100644 --- a/rero_ils/modules/acq_orders/models.py +++ b/rero_ils/modules/acq_orders/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class AcqOrderIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class AcqOrderIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class AcqOrderMetadata(db.Model, RecordMetadataBase): + """AcqOrder record metadata.""" + + __tablename__ = 'acq_order_metadata' diff --git a/rero_ils/modules/budgets/api.py b/rero_ils/modules/budgets/api.py index 745fd62791..9d4f407dd1 100644 --- a/rero_ils/modules/budgets/api.py +++ b/rero_ils/modules/budgets/api.py @@ -19,7 +19,7 @@ from functools import partial -from .models import BudgetIdentifier +from .models import BudgetIdentifier, BudgetMetadata from ..acq_accounts.api import AcqAccountsSearch from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher @@ -55,6 +55,7 @@ class Budget(IlsRecord): minter = budget_id_minter fetcher = budget_id_fetcher provider = BudgetProvider + model_cls = BudgetMetadata def get_number_of_acq_accounts(self): """Get number of acq accounts.""" diff --git a/rero_ils/modules/budgets/models.py b/rero_ils/modules/budgets/models.py index 9c7b16c9b4..ed9e5e70cf 100644 --- a/rero_ils/modules/budgets/models.py +++ b/rero_ils/modules/budgets/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class BudgetIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class BudgetIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class BudgetMetadata(db.Model, RecordMetadataBase): + """Budget record metadata.""" + + __tablename__ = 'budget_metadata' diff --git a/rero_ils/modules/circ_policies/api.py b/rero_ils/modules/circ_policies/api.py index 8a3e7bf49c..867cfdf364 100644 --- a/rero_ils/modules/circ_policies/api.py +++ b/rero_ils/modules/circ_policies/api.py @@ -23,7 +23,7 @@ from elasticsearch_dsl import Q -from .models import CircPolicyIdentifier +from .models import CircPolicyIdentifier, CircPolicyMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher from ..libraries.api import Library @@ -58,6 +58,7 @@ class CircPolicy(IlsRecord): minter = circ_policy_id_minter fetcher = circ_policy_id_fetcher provider = CircPolicyProvider + model_cls = CircPolicyMetadata def extended_validation(self, **kwargs): """Validate record against schema. diff --git a/rero_ils/modules/circ_policies/models.py b/rero_ils/modules/circ_policies/models.py index 61637b01a4..2efa36c7d7 100644 --- a/rero_ils/modules/circ_policies/models.py +++ b/rero_ils/modules/circ_policies/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class CircPolicyIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class CircPolicyIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class CircPolicyMetadata(db.Model, RecordMetadataBase): + """CircPolicy record metadata.""" + + __tablename__ = 'circ_policy_metadata' diff --git a/rero_ils/modules/documents/api.py b/rero_ils/modules/documents/api.py index 3082577e29..2babd0fa2b 100644 --- a/rero_ils/modules/documents/api.py +++ b/rero_ils/modules/documents/api.py @@ -24,7 +24,7 @@ from invenio_circulation.search.api import search_by_pid from invenio_search.api import RecordsSearch -from .models import DocumentIdentifier +from .models import DocumentIdentifier, DocumentMetadata from .utils import edition_format_text, publication_statement_text, \ series_format_text, title_format_text_head from ..acq_order_lines.api import AcqOrderLinesSearch @@ -62,6 +62,7 @@ class Document(IlsRecord): minter = document_id_minter fetcher = document_id_fetcher provider = DocumentProvider + model_cls = DocumentMetadata def is_available(self, view_code): """Get availability for document.""" diff --git a/rero_ils/modules/documents/models.py b/rero_ils/modules/documents/models.py index aa7a3959dc..49c69121f9 100644 --- a/rero_ils/modules/documents/models.py +++ b/rero_ils/modules/documents/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class DocumentIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class DocumentIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class DocumentMetadata(db.Model, RecordMetadataBase): + """Document record metadata.""" + + __tablename__ = 'document_metadata' diff --git a/rero_ils/modules/holdings/api.py b/rero_ils/modules/holdings/api.py index 13e1121980..c3b9bbaaea 100644 --- a/rero_ils/modules/holdings/api.py +++ b/rero_ils/modules/holdings/api.py @@ -30,7 +30,7 @@ from invenio_search.api import RecordsSearch from jinja2 import Template -from .models import HoldingIdentifier +from .models import HoldingIdentifier, HoldingMetadata from ..api import IlsRecord, IlsRecordsIndexer from ..documents.api import Document from ..errors import MissingRequiredParameterError @@ -74,7 +74,7 @@ class Holding(IlsRecord): minter = holding_id_minter fetcher = holding_id_fetcher provider = HoldingProvider - # model_cls = HoldingMetadata + model_cls = HoldingMetadata def delete_from_index(self): """Delete record from index.""" diff --git a/rero_ils/modules/holdings/models.py b/rero_ils/modules/holdings/models.py index a9086dd40e..8bb27790c7 100644 --- a/rero_ils/modules/holdings/models.py +++ b/rero_ils/modules/holdings/models.py @@ -21,8 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier - -# from invenio_records.models import RecordMetadataBase +from invenio_records.models import RecordMetadataBase class HoldingIdentifier(RecordIdentifier): @@ -37,7 +36,7 @@ class HoldingIdentifier(RecordIdentifier): ) -# class HoldingMetadata(db.Model, RecordMetadataBase): -# """Holding record metadata.""" +class HoldingMetadata(db.Model, RecordMetadataBase): + """Holding record metadata.""" -# __tablename__ = 'holdings_metadata' + __tablename__ = 'holding_metadata' diff --git a/rero_ils/modules/item_types/api.py b/rero_ils/modules/item_types/api.py index 1cef40e34a..aab2f0ae60 100644 --- a/rero_ils/modules/item_types/api.py +++ b/rero_ils/modules/item_types/api.py @@ -24,7 +24,7 @@ from elasticsearch_dsl import Q from flask_babelex import gettext as _ -from .models import ItemTypeIdentifier +from .models import ItemTypeIdentifier, ItemTypeMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..circ_policies.api import CircPoliciesSearch from ..fetchers import id_fetcher @@ -59,6 +59,7 @@ class ItemType(IlsRecord): minter = item_type_id_minter fetcher = item_type_id_fetcher provider = ItemTypeProvider + model_cls = ItemTypeMetadata def extended_validation(self, **kwargs): """Validate record against schema. diff --git a/rero_ils/modules/item_types/models.py b/rero_ils/modules/item_types/models.py index c1c7de5bb2..321db67f28 100644 --- a/rero_ils/modules/item_types/models.py +++ b/rero_ils/modules/item_types/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class ItemTypeIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class ItemTypeIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class ItemTypeMetadata(db.Model, RecordMetadataBase): + """ItemType record metadata.""" + + __tablename__ = 'item_type_metadata' diff --git a/rero_ils/modules/items/api.py b/rero_ils/modules/items/api.py index bb88338902..78597c798d 100644 --- a/rero_ils/modules/items/api.py +++ b/rero_ils/modules/items/api.py @@ -31,7 +31,7 @@ from invenio_i18n.ext import current_i18n from invenio_search import current_search -from .models import ItemIdentifier, ItemStatus +from .models import ItemIdentifier, ItemMetadata, ItemStatus from ..api import IlsRecord, IlsRecordError, IlsRecordsIndexer, \ IlsRecordsSearch from ..circ_policies.api import CircPolicy @@ -156,6 +156,7 @@ class Item(IlsRecord): minter = item_id_minter fetcher = item_id_fetcher provider = ItemProvider + model_cls = ItemMetadata statuses = { 'ITEM_ON_LOAN': 'on_loan', diff --git a/rero_ils/modules/items/models.py b/rero_ils/modules/items/models.py index 3b4b665d74..9813ac5eea 100644 --- a/rero_ils/modules/items/models.py +++ b/rero_ils/modules/items/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class ItemIdentifier(RecordIdentifier): @@ -36,6 +37,12 @@ class ItemIdentifier(RecordIdentifier): ) +class ItemMetadata(db.Model, RecordMetadataBase): + """Item record metadata.""" + + __tablename__ = 'item_metadata' + + class ItemStatus(object): """Class holding all availabe circulation item statuses.""" diff --git a/rero_ils/modules/libraries/api.py b/rero_ils/modules/libraries/api.py index f9acfd0f3d..cbc46e0069 100644 --- a/rero_ils/modules/libraries/api.py +++ b/rero_ils/modules/libraries/api.py @@ -24,7 +24,7 @@ from dateutil import parser from dateutil.rrule import FREQNAMES, rrule -from .models import LibraryIdentifier +from .models import LibraryIdentifier, LibraryMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher from ..locations.api import LocationsSearch @@ -65,6 +65,7 @@ class Library(IlsRecord): minter = library_id_minter fetcher = library_id_fetcher provider = LibraryProvider + model_cls = LibraryMetadata @property def online_location(self): diff --git a/rero_ils/modules/libraries/models.py b/rero_ils/modules/libraries/models.py index 4a571bc7c3..2d8797e1c9 100644 --- a/rero_ils/modules/libraries/models.py +++ b/rero_ils/modules/libraries/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class LibraryIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class LibraryIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class LibraryMetadata(db.Model, RecordMetadataBase): + """Library record metadata.""" + + __tablename__ = 'library_metadata' diff --git a/rero_ils/modules/locations/api.py b/rero_ils/modules/locations/api.py index 0f61c0788d..d7e744f118 100644 --- a/rero_ils/modules/locations/api.py +++ b/rero_ils/modules/locations/api.py @@ -21,7 +21,7 @@ from flask_babelex import gettext as _ -from .models import LocationIdentifier +from .models import LocationIdentifier, LocationMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher from ..minters import id_minter @@ -55,6 +55,7 @@ class Location(IlsRecord): minter = location_id_minter fetcher = location_id_fetcher provider = LocationProvider + model_cls = LocationMetadata def extended_validation(self, **kwargs): """Validate record against schema. diff --git a/rero_ils/modules/locations/models.py b/rero_ils/modules/locations/models.py index ddac92e524..ab17031afd 100644 --- a/rero_ils/modules/locations/models.py +++ b/rero_ils/modules/locations/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class LocationIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class LocationIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class LocationMetadata(db.Model, RecordMetadataBase): + """Location record metadata.""" + + __tablename__ = 'location_metadata' diff --git a/rero_ils/modules/organisations/api.py b/rero_ils/modules/organisations/api.py index dba97d8fe4..eeb1f90a49 100644 --- a/rero_ils/modules/organisations/api.py +++ b/rero_ils/modules/organisations/api.py @@ -20,7 +20,7 @@ from functools import partial -from .models import OrganisationIdentifier +from .models import OrganisationIdentifier, OrganisationMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher from ..item_types.api import ItemTypesSearch @@ -56,6 +56,7 @@ class Organisation(IlsRecord): minter = organisation_id_minter fetcher = organisation_id_fetcher provider = OrganisationProvider + model_cls = OrganisationMetadata def get_libraries_pids(self): """Get all libraries pids related to the organisation.""" diff --git a/rero_ils/modules/organisations/models.py b/rero_ils/modules/organisations/models.py index 7b316db333..a422f28730 100644 --- a/rero_ils/modules/organisations/models.py +++ b/rero_ils/modules/organisations/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class OrganisationIdentifier(RecordIdentifier): @@ -34,3 +35,9 @@ class OrganisationIdentifier(RecordIdentifier): primary_key=True, autoincrement=True, ) + + +class OrganisationMetadata(db.Model, RecordMetadataBase): + """Organisation record metadata.""" + + __tablename__ = 'organisation_metadata' diff --git a/rero_ils/modules/patron_transaction_events/api.py b/rero_ils/modules/patron_transaction_events/api.py index 973bf89e63..e7be8fadb6 100644 --- a/rero_ils/modules/patron_transaction_events/api.py +++ b/rero_ils/modules/patron_transaction_events/api.py @@ -22,7 +22,8 @@ from flask_babelex import gettext as _ -from .models import PatronTransactionEventIdentifier +from .models import PatronTransactionEventIdentifier, \ + PatronTransactionEventMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher from ..minters import id_minter @@ -59,6 +60,7 @@ class PatronTransactionEvent(IlsRecord): minter = patron_transaction_event_id_minter fetcher = patron_transaction_event_id_fetcher provider = PatronTransactionEventProvider + model_cls = PatronTransactionEventMetadata @classmethod def create(cls, data, id_=None, delete_pid=False, diff --git a/rero_ils/modules/patron_transaction_events/models.py b/rero_ils/modules/patron_transaction_events/models.py index 74ca96e057..b372164ffa 100644 --- a/rero_ils/modules/patron_transaction_events/models.py +++ b/rero_ils/modules/patron_transaction_events/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class PatronTransactionEventIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class PatronTransactionEventIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class PatronTransactionEventMetadata(db.Model, RecordMetadataBase): + """PatronTransactionEvent record metadata.""" + + __tablename__ = 'patron_transaction_event_metadata' diff --git a/rero_ils/modules/patron_transactions/api.py b/rero_ils/modules/patron_transactions/api.py index cbf9b9a3e9..bce7373729 100644 --- a/rero_ils/modules/patron_transactions/api.py +++ b/rero_ils/modules/patron_transactions/api.py @@ -22,7 +22,7 @@ from flask_babelex import gettext as _ -from .models import PatronTransactionIdentifier +from .models import PatronTransactionIdentifier, PatronTransactionMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher from ..minters import id_minter @@ -62,6 +62,7 @@ class PatronTransaction(IlsRecord): minter = patron_transaction_id_minter fetcher = patron_transaction_id_fetcher provider = PatronTransactionProvider + model_cls = PatronTransactionMetadata @classmethod def create(cls, data, id_=None, delete_pid=False, diff --git a/rero_ils/modules/patron_transactions/models.py b/rero_ils/modules/patron_transactions/models.py index 7e50d3ca5e..64773af2fe 100644 --- a/rero_ils/modules/patron_transactions/models.py +++ b/rero_ils/modules/patron_transactions/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class PatronTransactionIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class PatronTransactionIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class PatronTransactionMetadata(db.Model, RecordMetadataBase): + """PatronTransaction record metadata.""" + + __tablename__ = 'patron_transaction_metadata' diff --git a/rero_ils/modules/patron_types/api.py b/rero_ils/modules/patron_types/api.py index 1c3288641b..5688bdb22f 100644 --- a/rero_ils/modules/patron_types/api.py +++ b/rero_ils/modules/patron_types/api.py @@ -23,7 +23,7 @@ from elasticsearch_dsl import Q -from .models import PatronTypeIdentifier +from .models import PatronTypeIdentifier, PatronTypeMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..circ_policies.api import CircPoliciesSearch from ..fetchers import id_fetcher @@ -59,6 +59,7 @@ class PatronType(IlsRecord): minter = patron_type_id_minter fetcher = patron_type_id_fetcher provider = PatronTypeProvider + model_cls = PatronTypeMetadata @classmethod def exist_name_and_organisation_pid(cls, name, organisation_pid): diff --git a/rero_ils/modules/patron_types/models.py b/rero_ils/modules/patron_types/models.py index 1856ce1be0..74a4edafe0 100644 --- a/rero_ils/modules/patron_types/models.py +++ b/rero_ils/modules/patron_types/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class PatronTypeIdentifier(RecordIdentifier): @@ -34,3 +35,9 @@ class PatronTypeIdentifier(RecordIdentifier): primary_key=True, autoincrement=True, ) + + +class PatronTypeMetadata(db.Model, RecordMetadataBase): + """PatronType record metadata.""" + + __tablename__ = 'patron_type_metadata' diff --git a/rero_ils/modules/patrons/api.py b/rero_ils/modules/patrons/api.py index d9878c9715..ffe90a39c3 100644 --- a/rero_ils/modules/patrons/api.py +++ b/rero_ils/modules/patrons/api.py @@ -29,7 +29,7 @@ from werkzeug.local import LocalProxy from werkzeug.utils import cached_property -from .models import PatronIdentifier +from .models import PatronIdentifier, PatronMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..fetchers import id_fetcher from ..libraries.api import Library @@ -72,6 +72,7 @@ class Patron(IlsRecord): minter = patron_id_minter fetcher = patron_id_fetcher provider = PatronProvider + model_cls = PatronMetadata available_roles = ['system_librarian', 'librarian', 'patron'] @classmethod diff --git a/rero_ils/modules/patrons/models.py b/rero_ils/modules/patrons/models.py index ee580e9346..63559ed35c 100644 --- a/rero_ils/modules/patrons/models.py +++ b/rero_ils/modules/patrons/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class PatronIdentifier(RecordIdentifier): @@ -34,3 +35,9 @@ class PatronIdentifier(RecordIdentifier): primary_key=True, autoincrement=True, ) + + +class PatronMetadata(db.Model, RecordMetadataBase): + """Patron record metadata.""" + + __tablename__ = 'patron_metadata' diff --git a/rero_ils/modules/persons/api.py b/rero_ils/modules/persons/api.py index 960e1da13f..107b813f3a 100644 --- a/rero_ils/modules/persons/api.py +++ b/rero_ils/modules/persons/api.py @@ -25,7 +25,7 @@ from requests import codes as requests_codes from requests import get as requests_get -from .models import PersonIdentifier +from .models import PersonIdentifier, PersonMetadata from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch from ..documents.api import DocumentsSearch from ..fetchers import id_fetcher @@ -61,6 +61,7 @@ class Person(IlsRecord): minter = person_id_minter fetcher = person_id_fetcher provider = PersonProvider + model_cls = PersonMetadata @classmethod def get_record_by_mef_pid(cls, pid): diff --git a/rero_ils/modules/persons/models.py b/rero_ils/modules/persons/models.py index 23e71a22b0..d19f2ed150 100644 --- a/rero_ils/modules/persons/models.py +++ b/rero_ils/modules/persons/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class PersonIdentifier(RecordIdentifier): @@ -34,3 +35,9 @@ class PersonIdentifier(RecordIdentifier): primary_key=True, autoincrement=True, ) + + +class PersonMetadata(db.Model, RecordMetadataBase): + """Person record metadata.""" + + __tablename__ = 'person_metadata' diff --git a/rero_ils/modules/vendors/api.py b/rero_ils/modules/vendors/api.py index 06f2eda7b3..f0e360572c 100644 --- a/rero_ils/modules/vendors/api.py +++ b/rero_ils/modules/vendors/api.py @@ -19,7 +19,7 @@ from functools import partial -from .models import VendorIdentifier +from .models import VendorIdentifier, VendorMetadata from ..acq_invoices.api import AcquisitionInvoicesSearch from ..acq_orders.api import AcqOrdersSearch from ..api import IlsRecord, IlsRecordsIndexer, IlsRecordsSearch @@ -55,6 +55,7 @@ class Vendor(IlsRecord): minter = vendor_id_minter fetcher = vendor_id_fetcher provider = VendorProvider + model_cls = VendorMetadata def get_number_of_acq_orders(self): """Get number of acquisition orders.""" diff --git a/rero_ils/modules/vendors/models.py b/rero_ils/modules/vendors/models.py index d01c995315..741acf909d 100644 --- a/rero_ils/modules/vendors/models.py +++ b/rero_ils/modules/vendors/models.py @@ -21,6 +21,7 @@ from invenio_db import db from invenio_pidstore.models import RecordIdentifier +from invenio_records.models import RecordMetadataBase class VendorIdentifier(RecordIdentifier): @@ -33,3 +34,9 @@ class VendorIdentifier(RecordIdentifier): db.BigInteger().with_variant(db.Integer, 'sqlite'), primary_key=True, autoincrement=True, ) + + +class VendorMetadata(db.Model, RecordMetadataBase): + """Vendor record metadata.""" + + __tablename__ = 'vendor_metadata'