invenio-app-ils 4.1.0__tar.gz → 4.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/CHANGES.rst +5 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/PKG-INFO +6 -2
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/__init__.py +1 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/loaders/schemas/json/loan_request.py +2 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/api.py +13 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/serializers/item.py +4 -4
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/permissions.py +43 -35
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/views.py +1 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records_relations/api.py +1 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/relations/api.py +6 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils.egg-info/PKG-INFO +6 -2
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils.egg-info/SOURCES.txt +0 -1
- invenio-app-ils-4.2.0/tests/api/ils/items/test_items_crud.py +99 -0
- invenio-app-ils-4.1.0/tests/api/ils/items/test_items_crud.py +0 -57
- invenio-app-ils-4.1.0/tests/api/ils/items/test_items_update.py +0 -40
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/.editorconfig +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/.git-blame-ignore-revs +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/AUTHORS.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/CONTRIBUTING.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/INSTALL.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/LICENSE +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/MANIFEST.in +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/README.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker/backend/Dockerfile +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker/frontend/Dockerfile +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker/frontend/conf.d/default.conf +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker/frontend/nginx.conf +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker/frontend/test.crt +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker/frontend/test.key +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker/lb/Dockerfile +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker/lb/haproxy.cfg +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker/lb/haproxy_cert.pem +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker-compose.full.yml +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker-compose.yml +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docker-services.yml +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/Makefile +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/authors.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/changes.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/conf.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/configuration.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/contributing.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/index.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/installation.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/license.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/make.bat +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/requirements.txt +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/docs/usage.rst +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/config.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/errors.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/ext.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/jsonresolvers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/jsonresolvers/order_order_lines.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/jsonresolvers/order_provider.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/loaders/jsonschemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/loaders/jsonschemas/order.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/mappings/os-v1/acq_orders/order-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/mappings/os-v2/acq_orders/order-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/mappings/v7/acq_orders/order-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/proxies.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/schemas/acq_orders/order-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/config.py +1 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/jsonresolvers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/jsonresolvers/loan.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/loaders/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/loaders/schemas/json/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/loaders/schemas/json/base.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/loaders/schemas/json/bulk_extend.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/loaders/schemas/json/loan_checkout.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/loaders/schemas/json/loan_update_dates.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/notifications/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/notifications/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/notifications/messages.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/notifications/tasks.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/receivers.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/serializers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/serializers/csv.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/serializers/custom_fields.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/serializers/json.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/serializers/response.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/stats/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/stats/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/stats/views.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/tasks.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/bulk_extend.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/cancel.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/checkin.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/checkout.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/extend.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/overdue_reminder.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/request.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/request_no_items.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/will_expire_in_reminder.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/transitions/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/transitions/transitions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/utils.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/circulation/views.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/cli.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/closures/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/closures/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/closures/tasks.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/config.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/demo_data/documents.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/demo_data/items.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/jsonresolvers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/jsonresolvers/document_request_document.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/jsonresolvers/document_request_patron.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/loaders/jsonschemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/loaders/jsonschemas/document_request.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/loaders/jsonschemas/document_request_decline.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/loaders/jsonschemas/document_request_document.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/loaders/jsonschemas/document_request_provider.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/mappings/os-v1/document_requests/document_request-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/mappings/os-v2/document_requests/document_request-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/mappings/v7/document_requests/document_request-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/notifications/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/notifications/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/notifications/messages.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/schemas/document_requests/document_request-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/templates/invenio_app_ils_document_requests/notifications/document_request_accept.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/templates/invenio_app_ils_document_requests/notifications/document_request_decline_in_catalog.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/templates/invenio_app_ils_document_requests/notifications/document_request_decline_not_found.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/templates/invenio_app_ils_document_requests/notifications/document_request_decline_other.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/templates/invenio_app_ils_document_requests/notifications/document_request_decline_user_cancel.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/document_requests/views.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/jsonresolvers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/jsonresolvers/document_circulation.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/jsonresolvers/document_eitem.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/jsonresolvers/document_item.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/jsonresolvers/document_relations.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/jsonresolvers/document_stock.py +1 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/loaders/jsonschemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/loaders/jsonschemas/document.py +1 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/mappings/os-v1/documents/document-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/mappings/os-v1/documents/document-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/mappings/os-v2/documents/document-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/mappings/os-v2/documents/document-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/mappings/v7/documents/document-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/mappings/v7/documents/document-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/schemas/documents/document-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/schemas/documents/document-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/documents/utils.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/jsonresolvers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/jsonresolvers/eitem_document.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/jsonresolvers/eitem_files.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/loaders/jsonschemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/loaders/jsonschemas/eitems.py +1 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/os-v1/eitems/eitem-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/os-v1/eitems/eitem-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/os-v1/eitems/eitem-v3.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/os-v2/eitems/eitem-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/os-v2/eitems/eitem-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/os-v2/eitems/eitem-v3.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/v7/eitems/eitem-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/v7/eitems/eitem-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/mappings/v7/eitems/eitem-v3.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/schemas/eitems/eitem-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/schemas/eitems/eitem-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/schemas/eitems/eitem-v3.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/eitems/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/errors.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ext.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/facets.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/fetchers.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/files/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/files/receivers.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/files/views.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/config.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/errors.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/ext.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/jsonresolvers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/jsonresolvers/borrowing_request_document.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/jsonresolvers/borrowing_request_patron.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/jsonresolvers/borrowing_request_provider.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/loaders/jsonschemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/loaders/jsonschemas/borrowing_request.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/loaders/jsonschemas/patron_loan_actions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/loaders/jsonschemas/patron_loan_extension_actions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/mappings/os-v1/ill_borrowing_requests/borrowing_request-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/mappings/os-v2/ill_borrowing_requests/borrowing_request-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/mappings/v7/ill_borrowing_requests/borrowing_request-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/notifications/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/notifications/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/notifications/messages.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/proxies.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/schemas/ill_borrowing_requests/borrowing_request-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/serializers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/serializers/csv.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/serializers/custom_fields.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/serializers/json.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/templates/invenio_app_ils_ill/notifications/patron_loan_extension_accept.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/templates/invenio_app_ils_ill/notifications/patron_loan_extension_decline.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/templates/invenio_app_ils_ill/notifications/patron_loan_extension_request.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/ill/views.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/jsonresolvers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/jsonresolvers/internal_location.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/loaders/jsonschemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/loaders/jsonschemas/internal_location.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/mappings/os-v1/internal_locations/internal_location-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/mappings/os-v2/internal_locations/internal_location-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/mappings/v7/internal_locations/internal_location-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/schemas/internal_locations/internal_location-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/internal_locations/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/jsonresolvers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/jsonresolvers/item_document.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/jsonresolvers/item_internal_location.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/jsonresolvers/item_loan.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/loaders/jsonschemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/loaders/jsonschemas/items.py +1 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/mappings/os-v1/items/item-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/mappings/os-v1/items/item-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/mappings/os-v2/items/item-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/mappings/os-v2/items/item-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/mappings/v7/items/item-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/mappings/v7/items/item-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/schemas/items/item-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/schemas/items/item-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/items/serializers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/literature/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/literature/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/literature/covers_builder.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/literature/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/literature/serializers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/literature/serializers/csv.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/literature/serializers/custom_fields.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/literature/serializers/json.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/loaders/jsonschemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/loaders/jsonschemas/location.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/mappings/os-v1/locations/location-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/mappings/os-v2/locations/location-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/mappings/v7/locations/location-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/receivers.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/schemas/locations/location-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/locations/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/minters.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/notifications/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/notifications/admin.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/notifications/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/notifications/backends/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/notifications/backends/mail.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/notifications/messages.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/notifications/models.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/notifications/tasks.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/notifications/views.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/anonymization.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/cli.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/mappings/os-v1/patrons/patron-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/mappings/os-v2/patrons/patron-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/mappings/v7/patrons/patron-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/patrons/views.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/config.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/errors.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/ext.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/loaders/jsonschemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/loaders/jsonschemas/provider.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/mappings/os-v1/providers/provider-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/mappings/os-v2/providers/provider-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/mappings/v7/providers/provider-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/proxies.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/schemas/providers/provider-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/providers/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/proxies.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/jsonresolvers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/jsonresolvers/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/listeners.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/loaders/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/loaders/schemas/changed_by.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/loaders/schemas/identifiers.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/loaders/schemas/preserve_cover_metadata.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/loaders/schemas/price.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/metadata_extensions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/receivers.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/schemas/json.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records/serializers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records_relations/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records_relations/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records_relations/retriever.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/records_relations/views.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/relations/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/relations/nodes.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/search_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/jsonresolvers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/jsonresolvers/series_relations.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/loaders/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/loaders/jsonschemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/loaders/jsonschemas/series.py +1 -1
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/mappings/os-v1/series/series-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/mappings/os-v1/series/series-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/mappings/os-v2/series/series-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/mappings/os-v2/series/series-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/mappings/v7/series/series-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/mappings/v7/series/series-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/schemas/series/series-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/schemas/series/series-v2.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/series/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/signals.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/static/images/placeholder.png +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/static_pages/search_guide.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/aggregations/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/aggregations/aggr_file_download/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/aggregations/aggr_file_download/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/aggregations/aggr_file_download/os-v1/aggr-file-download-v1.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/aggregations/aggr_file_download/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/aggregations/aggr_file_download/os-v2/aggr-file-download-v1.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/aggregations/aggr_file_download/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/aggregations/aggr_file_download/v7/aggr-file-download-v1.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/file_download/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/file_download/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/file_download/os-v1/file-download-v1.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/file_download/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/file_download/os-v2/file-download-v1.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/file_download/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/stats/file_download/v7/file-download-v1.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/templates/invenio_app_ils/mail/footer.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/templates/invenio_app_ils/notifications/footer.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/templates/logged_out.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/translations/.gitkeep +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/views.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/api.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/cli.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/acq_mediums.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/acq_order_line_payment_modes.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/acq_order_line_purchase_types.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/acq_payment_modes.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/acq_recipients.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/affiliation_identifier_schemes.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/alternative_identifier_schemes.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/alternative_title_types.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/author_identifier_schemes.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/author_roles.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/author_types.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/conference_identifier_schemes.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/countries.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/currencies.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/docreq_payment_method.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/docreq_request_type.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/document_identifiers_materials.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/document_requests_mediums.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/document_subjects.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/eitem_sources.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/identifier_schemes.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/ill_item_types.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/ill_payment_modes.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/item_mediums.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/provider_types.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/series_identifier_schemes.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/series_url_access_restrictions.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/data/tags.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/indexer.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/jsonresolvers/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/jsonresolvers/licenses.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/mappings/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/mappings/os-v1/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/mappings/os-v1/vocabularies/vocabulary-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/mappings/os-v2/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/mappings/os-v2/vocabularies/vocabulary-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/mappings/v7/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/mappings/v7/vocabularies/vocabulary-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/schemas/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/schemas/vocabularies/vocabulary-v1.0.0.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/search.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/sources/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/sources/base.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/sources/json.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/vocabularies/sources/opendefinition.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils.egg-info/dependency_links.txt +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils.egg-info/entry_points.txt +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils.egg-info/not-zip-safe +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils.egg-info/requires.txt +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils.egg-info/top_level.txt +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/pyproject.toml +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/run-tests.sh +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/scripts/bootstrap +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/scripts/build_assets +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/scripts/celery +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/scripts/console +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/scripts/server +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/scripts/setup +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/scripts/update +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/setup.cfg +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/setup.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/acquisition/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/acquisition/test_acq_orders_crud.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/acquisition/test_acq_orders_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/acquisition/test_acq_providers_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_expired_loans.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_loan_bulk_extend.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_loan_checkout.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_loan_default_durations.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_loan_document_resolver.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_loan_extend.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_loan_item_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_loan_item_resolver.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_loan_list_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_loan_patron_resolver.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_loan_request.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_loan_update.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/circulation/test_notifications.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/conftest.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/document_requests/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/document_requests/test_document_requests.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/document_requests/test_document_requests_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/document_requests/test_notifications_filter.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ill/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ill/test_ill_brw_crud.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ill/test_ill_brw_reqs_patron_loan_create_action.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ill/test_ill_brw_reqs_patron_loan_extension_actions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ill/test_ill_brw_reqs_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ill/test_ill_providers_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/documents/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/documents/test_document_crud.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/documents/test_document_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/documents/test_document_resolvers.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/eitems/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/eitems/test_eitems_crud.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/eitems/test_eitems_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/eitems/test_files.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/items/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/items/test_apis.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/items/test_items_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/records_relations/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/records_relations/helpers.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/records_relations/test_records_relations_parentchild.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/records_relations/test_records_relations_sequence.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/records_relations/test_records_relations_siblings.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/series/__init__.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/series/test_series_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_anonymization.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_apis.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_closures.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_errors.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_facets.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_internal_locations.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_loaders.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_metadata_extensions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_notifications.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_notifications_mails.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_notifications_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_patrons.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_record_delete.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_record_permissions.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_resolvers.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_stats.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_tasks.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/api/ils/test_vocabularies.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/conftest.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/acq_orders.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/acq_providers.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/document_requests.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/documents.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/eitems.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/ill_borrowing_requests.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/ill_providers.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/internal_locations.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/items.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/loans.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/loans_most_loaned.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/locations.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/data/series.json +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/helpers.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/templates/notifications/blank.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/templates/notifications/title_body.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/templates/notifications/title_body_html.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/templates/notifications/title_body_html_ctx.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/templates/notifications/title_only.html +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/test_post_logout_redirect.py +0 -0
- {invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/tests/test_version.py +0 -0
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
Changes
|
|
9
9
|
=======
|
|
10
10
|
|
|
11
|
+
Version 4.2.0 (released 2024-11-04)
|
|
12
|
+
|
|
13
|
+
- self-checkout: barcode is now always uppercased to make searches case-insensitive
|
|
14
|
+
|
|
11
15
|
Version 4.1.0 (released 2024-10-21)
|
|
12
16
|
|
|
13
17
|
- search: apply the same search analyzers to the fields that needs to be searchable.
|
|
@@ -55,7 +59,7 @@ Version 2.0.0rc9 (released 2024-04-25)
|
|
|
55
59
|
Version 2.0.0rc8 (released 2024-04-04)
|
|
56
60
|
|
|
57
61
|
- records_relation: Simplify sorting
|
|
58
|
-
- records_relations: Use sort_by
|
|
62
|
+
- records_relations: Use sort_by parameter from configs instead
|
|
59
63
|
- relations: Add functionality to sort json refs by relation_type
|
|
60
64
|
- tests: circulation: Add new location for testing closures
|
|
61
65
|
- circulation: loan_request: Fix dates comparison in get_offset_duration
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: invenio-app-ils
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.2.0
|
|
4
4
|
Summary: Invenio Integrated Library System.
|
|
5
5
|
Home-page: https://github.com/inveniosoftware/invenio-app-ils
|
|
6
6
|
Author: CERN
|
|
@@ -51,6 +51,10 @@ https://invenioils.docs.cern.ch
|
|
|
51
51
|
Changes
|
|
52
52
|
=======
|
|
53
53
|
|
|
54
|
+
Version 4.2.0 (released 2024-11-04)
|
|
55
|
+
|
|
56
|
+
- self-checkout: barcode is now always uppercased to make searches case-insensitive
|
|
57
|
+
|
|
54
58
|
Version 4.1.0 (released 2024-10-21)
|
|
55
59
|
|
|
56
60
|
- search: apply the same search analyzers to the fields that needs to be searchable.
|
|
@@ -98,7 +102,7 @@ Version 2.0.0rc9 (released 2024-04-25)
|
|
|
98
102
|
Version 2.0.0rc8 (released 2024-04-04)
|
|
99
103
|
|
|
100
104
|
- records_relation: Simplify sorting
|
|
101
|
-
- records_relations: Use sort_by
|
|
105
|
+
- records_relations: Use sort_by parameter from configs instead
|
|
102
106
|
- relations: Add functionality to sort json refs by relation_type
|
|
103
107
|
- tests: circulation: Add new location for testing closures
|
|
104
108
|
- circulation: loan_request: Fix dates comparison in get_offset_duration
|
|
@@ -12,7 +12,6 @@ from datetime import timedelta
|
|
|
12
12
|
import arrow
|
|
13
13
|
from flask import current_app
|
|
14
14
|
from invenio_circulation.records.loaders.schemas.json import DateString
|
|
15
|
-
from invenio_app_ils.proxies import current_app_ils
|
|
16
15
|
from marshmallow import (
|
|
17
16
|
Schema,
|
|
18
17
|
ValidationError,
|
|
@@ -22,6 +21,8 @@ from marshmallow import (
|
|
|
22
21
|
validates_schema,
|
|
23
22
|
)
|
|
24
23
|
|
|
24
|
+
from invenio_app_ils.proxies import current_app_ils
|
|
25
|
+
|
|
25
26
|
from .base import LoanBaseSchemaV1
|
|
26
27
|
|
|
27
28
|
|
|
@@ -160,15 +160,27 @@ class Item(IlsRecord):
|
|
|
160
160
|
)
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
+
@classmethod
|
|
164
|
+
def enforce_constraints(cls, data, **kwargs):
|
|
165
|
+
"""Enforce constraints.
|
|
166
|
+
|
|
167
|
+
:param data (dict): dict that can be mutated to enforce constraints.
|
|
168
|
+
"""
|
|
169
|
+
# barcode is a required field and it should be always uppercase
|
|
170
|
+
data["barcode"] = data["barcode"].upper()
|
|
171
|
+
|
|
163
172
|
@classmethod
|
|
164
173
|
def create(cls, data, id_=None, **kwargs):
|
|
165
174
|
"""Create Item record."""
|
|
166
175
|
cls.build_resolver_fields(data)
|
|
167
|
-
|
|
176
|
+
cls.enforce_constraints(data, **kwargs)
|
|
177
|
+
created = super().create(data, id_=id_, **kwargs)
|
|
178
|
+
return created
|
|
168
179
|
|
|
169
180
|
def update(self, *args, **kwargs):
|
|
170
181
|
"""Update Item record."""
|
|
171
182
|
super().update(*args, **kwargs)
|
|
183
|
+
self.enforce_constraints(self)
|
|
172
184
|
self.build_resolver_fields(self)
|
|
173
185
|
|
|
174
186
|
def delete(self, **kwargs):
|
|
@@ -49,7 +49,7 @@ class ItemCSVSerializer(CSVSerializer):
|
|
|
49
49
|
pid, record, links_factory=links_factory, **kwargs
|
|
50
50
|
)
|
|
51
51
|
filter_circulation(item)
|
|
52
|
-
field_cover_metadata(item.get(
|
|
52
|
+
field_cover_metadata(item.get("metadata", {}).get("document", {}))
|
|
53
53
|
return item
|
|
54
54
|
|
|
55
55
|
def transform_search_hit(self, pid, record_hit, links_factory=None, **kwargs):
|
|
@@ -58,7 +58,7 @@ class ItemCSVSerializer(CSVSerializer):
|
|
|
58
58
|
pid, record_hit, links_factory=links_factory, **kwargs
|
|
59
59
|
)
|
|
60
60
|
filter_circulation(hit)
|
|
61
|
-
field_cover_metadata(hit.get(
|
|
61
|
+
field_cover_metadata(hit.get("metadata", {}).get("document", {}))
|
|
62
62
|
return hit
|
|
63
63
|
|
|
64
64
|
|
|
@@ -71,7 +71,7 @@ class ItemJSONSerializer(JSONSerializer):
|
|
|
71
71
|
pid, record, links_factory=links_factory, **kwargs
|
|
72
72
|
)
|
|
73
73
|
filter_circulation(item)
|
|
74
|
-
field_cover_metadata(item.get(
|
|
74
|
+
field_cover_metadata(item.get("metadata", {}).get("document", {}))
|
|
75
75
|
return item
|
|
76
76
|
|
|
77
77
|
def transform_search_hit(self, pid, record_hit, links_factory=None, **kwargs):
|
|
@@ -80,5 +80,5 @@ class ItemJSONSerializer(JSONSerializer):
|
|
|
80
80
|
pid, record_hit, links_factory=links_factory, **kwargs
|
|
81
81
|
)
|
|
82
82
|
filter_circulation(hit)
|
|
83
|
-
field_cover_metadata(hit.get(
|
|
83
|
+
field_cover_metadata(hit.get("metadata", {}).get("document", {}))
|
|
84
84
|
return hit
|
|
@@ -134,25 +134,27 @@ def patron_owner_permission(record):
|
|
|
134
134
|
def loan_checkout_permission(*args, **kwargs):
|
|
135
135
|
"""Return permission to allow admins and librarians to checkout and patrons to self-checkout if enabled."""
|
|
136
136
|
if not has_request_context():
|
|
137
|
-
#
|
|
137
|
+
# CLI or Celery task
|
|
138
138
|
return backoffice_permission()
|
|
139
|
+
|
|
139
140
|
if current_user.is_anonymous:
|
|
140
141
|
abort(401)
|
|
141
142
|
|
|
142
143
|
is_admin_or_librarian = backoffice_permission().allows(g.identity)
|
|
143
144
|
if is_admin_or_librarian:
|
|
144
145
|
return backoffice_permission()
|
|
146
|
+
|
|
147
|
+
# ensure that only the loan's patron can do operations on this loan
|
|
145
148
|
if len(args):
|
|
146
149
|
loan = args[0]
|
|
147
150
|
else:
|
|
148
|
-
loan = kwargs
|
|
149
|
-
is_patron_current_user = current_user.id == int(loan
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
and is_patron_current_user
|
|
153
|
-
):
|
|
151
|
+
loan = kwargs["record"]
|
|
152
|
+
is_patron_current_user = current_user.id == int(loan["patron_pid"])
|
|
153
|
+
|
|
154
|
+
if current_app.config["ILS_SELF_CHECKOUT_ENABLED"] and is_patron_current_user:
|
|
154
155
|
return authenticated_user_permission()
|
|
155
|
-
|
|
156
|
+
|
|
157
|
+
raise LoanCheckoutByPatronForbidden(int(loan["patron_pid"]), current_user.id)
|
|
156
158
|
|
|
157
159
|
|
|
158
160
|
class PatronOwnerPermission(Permission):
|
|
@@ -163,36 +165,42 @@ class PatronOwnerPermission(Permission):
|
|
|
163
165
|
super().__init__(UserNeed(int(record["patron_pid"])), backoffice_access_action)
|
|
164
166
|
|
|
165
167
|
|
|
168
|
+
_is_authenticated_user = [
|
|
169
|
+
"circulation-loan-request",
|
|
170
|
+
"patron-loans",
|
|
171
|
+
"bulk-loan-extension",
|
|
172
|
+
]
|
|
173
|
+
_is_backoffice_permission = [
|
|
174
|
+
"circulation-loan-force-checkout",
|
|
175
|
+
"circulation-overdue-loan-notification",
|
|
176
|
+
"circulation-loan-update-dates",
|
|
177
|
+
"relations-create",
|
|
178
|
+
"relations-delete",
|
|
179
|
+
"stats-most-loaned",
|
|
180
|
+
"document-request-actions",
|
|
181
|
+
"bucket-create",
|
|
182
|
+
"ill-brwreq-patron-loan-create",
|
|
183
|
+
"ill-brwreq-patron-loan-extension-accept",
|
|
184
|
+
"ill-brwreq-patron-loan-extension-decline",
|
|
185
|
+
"send-notification-to-patron",
|
|
186
|
+
]
|
|
187
|
+
_is_patron_owner_permission = [
|
|
188
|
+
"document-request-decline",
|
|
189
|
+
"ill-brwreq-patron-loan-extension-request",
|
|
190
|
+
]
|
|
191
|
+
|
|
192
|
+
|
|
166
193
|
def views_permissions_factory(action):
|
|
167
194
|
"""Return ILS views permissions factory."""
|
|
168
|
-
|
|
169
|
-
"circulation-loan-request",
|
|
170
|
-
"patron-loans",
|
|
171
|
-
"bulk-loan-extension",
|
|
172
|
-
]
|
|
173
|
-
is_backoffice_permission = [
|
|
174
|
-
"circulation-loan-checkout",
|
|
175
|
-
"circulation-loan-force-checkout",
|
|
176
|
-
"circulation-overdue-loan-notification",
|
|
177
|
-
"circulation-loan-update-dates",
|
|
178
|
-
"relations-create",
|
|
179
|
-
"relations-delete",
|
|
180
|
-
"stats-most-loaned",
|
|
181
|
-
"document-request-actions",
|
|
182
|
-
"bucket-create",
|
|
183
|
-
"ill-brwreq-patron-loan-create",
|
|
184
|
-
"ill-brwreq-patron-loan-extension-accept",
|
|
185
|
-
"ill-brwreq-patron-loan-extension-decline",
|
|
186
|
-
"send-notification-to-patron",
|
|
187
|
-
]
|
|
188
|
-
is_patron_owner_permission = [
|
|
189
|
-
"document-request-decline",
|
|
190
|
-
"ill-brwreq-patron-loan-extension-request",
|
|
191
|
-
]
|
|
192
|
-
if action in is_authenticated_user:
|
|
195
|
+
if action in _is_authenticated_user:
|
|
193
196
|
return authenticated_user_permission()
|
|
194
|
-
elif action in
|
|
197
|
+
elif action in _is_backoffice_permission:
|
|
195
198
|
return backoffice_permission()
|
|
196
|
-
elif action in
|
|
199
|
+
elif action in _is_patron_owner_permission:
|
|
197
200
|
return PatronOwnerPermission
|
|
201
|
+
elif action == "circulation-loan-checkout":
|
|
202
|
+
if current_app.config["ILS_SELF_CHECKOUT_ENABLED"]:
|
|
203
|
+
return authenticated_user_permission()
|
|
204
|
+
else:
|
|
205
|
+
return backoffice_permission()
|
|
198
206
|
return deny_all()
|
|
@@ -20,7 +20,7 @@ from invenio_app_ils.errors import StatsError
|
|
|
20
20
|
from invenio_app_ils.permissions import backoffice_permission
|
|
21
21
|
from invenio_app_ils.records.permissions import RecordPermission
|
|
22
22
|
from invenio_app_ils.series.api import SERIES_PID_TYPE
|
|
23
|
-
from invenio_app_ils.signals import
|
|
23
|
+
from invenio_app_ils.signals import file_downloaded, record_viewed
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
def create_document_stats_blueprint(app):
|
|
@@ -17,7 +17,12 @@ from sqlalchemy import and_, or_
|
|
|
17
17
|
from invenio_app_ils.errors import RecordRelationsError
|
|
18
18
|
|
|
19
19
|
ILS_RELATION_TYPE = namedtuple(
|
|
20
|
-
"IlsRelationType",
|
|
20
|
+
"IlsRelationType",
|
|
21
|
+
RelationType._fields
|
|
22
|
+
+ (
|
|
23
|
+
"relation_class",
|
|
24
|
+
"sort_by",
|
|
25
|
+
),
|
|
21
26
|
)
|
|
22
27
|
|
|
23
28
|
LANGUAGE_RELATION = ILS_RELATION_TYPE(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: invenio-app-ils
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.2.0
|
|
4
4
|
Summary: Invenio Integrated Library System.
|
|
5
5
|
Home-page: https://github.com/inveniosoftware/invenio-app-ils
|
|
6
6
|
Author: CERN
|
|
@@ -51,6 +51,10 @@ https://invenioils.docs.cern.ch
|
|
|
51
51
|
Changes
|
|
52
52
|
=======
|
|
53
53
|
|
|
54
|
+
Version 4.2.0 (released 2024-11-04)
|
|
55
|
+
|
|
56
|
+
- self-checkout: barcode is now always uppercased to make searches case-insensitive
|
|
57
|
+
|
|
54
58
|
Version 4.1.0 (released 2024-10-21)
|
|
55
59
|
|
|
56
60
|
- search: apply the same search analyzers to the fields that needs to be searchable.
|
|
@@ -98,7 +102,7 @@ Version 2.0.0rc9 (released 2024-04-25)
|
|
|
98
102
|
Version 2.0.0rc8 (released 2024-04-04)
|
|
99
103
|
|
|
100
104
|
- records_relation: Simplify sorting
|
|
101
|
-
- records_relations: Use sort_by
|
|
105
|
+
- records_relations: Use sort_by parameter from configs instead
|
|
102
106
|
- relations: Add functionality to sort json refs by relation_type
|
|
103
107
|
- tests: circulation: Add new location for testing closures
|
|
104
108
|
- circulation: loan_request: Fix dates comparison in get_offset_duration
|
|
@@ -553,7 +553,6 @@ tests/api/ils/items/__init__.py
|
|
|
553
553
|
tests/api/ils/items/test_apis.py
|
|
554
554
|
tests/api/ils/items/test_items_crud.py
|
|
555
555
|
tests/api/ils/items/test_items_permissions.py
|
|
556
|
-
tests/api/ils/items/test_items_update.py
|
|
557
556
|
tests/api/ils/records_relations/__init__.py
|
|
558
557
|
tests/api/ils/records_relations/helpers.py
|
|
559
558
|
tests/api/ils/records_relations/test_records_relations_parentchild.py
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2021 CERN.
|
|
4
|
+
#
|
|
5
|
+
# Invenio-Circulation is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the MIT License; see LICENSE file for more details.
|
|
7
|
+
|
|
8
|
+
"""Tests items CRUD."""
|
|
9
|
+
|
|
10
|
+
from copy import deepcopy
|
|
11
|
+
|
|
12
|
+
import pytest
|
|
13
|
+
|
|
14
|
+
from invenio_app_ils.circulation.search import get_active_loan_by_item_pid
|
|
15
|
+
from invenio_app_ils.errors import (
|
|
16
|
+
DocumentNotFoundError,
|
|
17
|
+
InternalLocationNotFoundError,
|
|
18
|
+
ItemHasPastLoansError,
|
|
19
|
+
)
|
|
20
|
+
from invenio_app_ils.items.api import ITEM_PID_TYPE, Item
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def test_item_create(app, testdata):
|
|
24
|
+
"""Test creation of an item."""
|
|
25
|
+
item = Item.create(
|
|
26
|
+
dict(
|
|
27
|
+
pid="itemid-99",
|
|
28
|
+
document_pid="docid-1",
|
|
29
|
+
internal_location_pid="ilocid-4",
|
|
30
|
+
created_by=dict(type="script", value="demo"),
|
|
31
|
+
barcode="cm-348048",
|
|
32
|
+
status="CAN_CIRCULATE",
|
|
33
|
+
circulation_restriction="NO_RESTRICTION",
|
|
34
|
+
medium="PAPER",
|
|
35
|
+
)
|
|
36
|
+
)
|
|
37
|
+
assert "$schema" in item
|
|
38
|
+
assert "document" in item and "$ref" in item["document"]
|
|
39
|
+
assert item["barcode"] == "CM-348048"
|
|
40
|
+
assert "internal_location" in item and "$ref" in item["internal_location"]
|
|
41
|
+
|
|
42
|
+
item = Item.get_record_by_pid("itemid-1")
|
|
43
|
+
item = item.replace_refs()
|
|
44
|
+
assert "document" in item and item["document"]["title"]
|
|
45
|
+
assert "internal_location" in item and item["internal_location"]["name"]
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def test_item_update(app, db, testdata):
|
|
49
|
+
"""Test update of an item."""
|
|
50
|
+
item = Item.get_record_by_pid("itemid-1")
|
|
51
|
+
item.update(dict(barcode="cm-348048"))
|
|
52
|
+
item.commit()
|
|
53
|
+
db.session.commit()
|
|
54
|
+
|
|
55
|
+
assert Item.get_record_by_pid("itemid-1")["barcode"] == "CM-348048"
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def test_item_validation(db, testdata):
|
|
59
|
+
"""Test validation when updating an item."""
|
|
60
|
+
item_pid = testdata["items"][0]["pid"]
|
|
61
|
+
orginal_item = Item.get_record_by_pid(item_pid)
|
|
62
|
+
|
|
63
|
+
# change document pid
|
|
64
|
+
item = deepcopy(orginal_item)
|
|
65
|
+
item["document_pid"] = "not_found_doc"
|
|
66
|
+
with pytest.raises(DocumentNotFoundError):
|
|
67
|
+
item.commit()
|
|
68
|
+
|
|
69
|
+
# change internal location pid
|
|
70
|
+
item = deepcopy(orginal_item)
|
|
71
|
+
item["internal_location_pid"] = "not_found_pid"
|
|
72
|
+
with pytest.raises(InternalLocationNotFoundError):
|
|
73
|
+
item.commit()
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def test_item_references(db, testdata):
|
|
77
|
+
"""Test references when updating an item."""
|
|
78
|
+
|
|
79
|
+
def get_active_loan_pid_and_item_pid():
|
|
80
|
+
for t in testdata["items"]:
|
|
81
|
+
if t["status"] == "CAN_CIRCULATE":
|
|
82
|
+
item_pid = dict(type=ITEM_PID_TYPE, value=t["pid"])
|
|
83
|
+
active_loan = get_active_loan_by_item_pid(item_pid).execute().hits
|
|
84
|
+
total = active_loan.total.value
|
|
85
|
+
if total > 0:
|
|
86
|
+
return t["pid"], active_loan[0]["pid"]
|
|
87
|
+
|
|
88
|
+
# change document pid while is on loan
|
|
89
|
+
item_pid, loan_pid = get_active_loan_pid_and_item_pid()
|
|
90
|
+
item = Item.get_record_by_pid(item_pid)
|
|
91
|
+
item["document_pid"] = "docid-1"
|
|
92
|
+
with pytest.raises(ItemHasPastLoansError):
|
|
93
|
+
item.commit()
|
|
94
|
+
|
|
95
|
+
# change document to one that does not exist
|
|
96
|
+
item = Item.get_record_by_pid("itemid-1")
|
|
97
|
+
item["document_pid"] = "not_found_doc"
|
|
98
|
+
with pytest.raises(DocumentNotFoundError):
|
|
99
|
+
item.commit()
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
#
|
|
3
|
-
# Copyright (C) 2021 CERN.
|
|
4
|
-
#
|
|
5
|
-
# Invenio-Circulation is free software; you can redistribute it and/or modify
|
|
6
|
-
# it under the terms of the MIT License; see LICENSE file for more details.
|
|
7
|
-
|
|
8
|
-
"""Tests items CRUD."""
|
|
9
|
-
|
|
10
|
-
from copy import deepcopy
|
|
11
|
-
|
|
12
|
-
import pytest
|
|
13
|
-
|
|
14
|
-
from invenio_app_ils.errors import DocumentNotFoundError, InternalLocationNotFoundError
|
|
15
|
-
from invenio_app_ils.items.api import Item
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def test_item_refs(app, testdata):
|
|
19
|
-
"""Test creation of an item."""
|
|
20
|
-
item = Item.create(
|
|
21
|
-
dict(
|
|
22
|
-
pid="itemid-99",
|
|
23
|
-
document_pid="docid-1",
|
|
24
|
-
internal_location_pid="ilocid-4",
|
|
25
|
-
created_by=dict(type="script", value="demo"),
|
|
26
|
-
barcode="348048",
|
|
27
|
-
status="CAN_CIRCULATE",
|
|
28
|
-
circulation_restriction="NO_RESTRICTION",
|
|
29
|
-
medium="PAPER",
|
|
30
|
-
)
|
|
31
|
-
)
|
|
32
|
-
assert "$schema" in item
|
|
33
|
-
assert "document" in item and "$ref" in item["document"]
|
|
34
|
-
assert "internal_location" in item and "$ref" in item["internal_location"]
|
|
35
|
-
|
|
36
|
-
item = Item.get_record_by_pid("itemid-1")
|
|
37
|
-
item = item.replace_refs()
|
|
38
|
-
assert "document" in item and item["document"]["title"]
|
|
39
|
-
assert "internal_location" in item and item["internal_location"]["name"]
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
def test_item_validation(db, testdata):
|
|
43
|
-
"""Test validation when updating an item."""
|
|
44
|
-
item_pid = testdata["items"][0]["pid"]
|
|
45
|
-
orginal_item = Item.get_record_by_pid(item_pid)
|
|
46
|
-
|
|
47
|
-
# change document pid
|
|
48
|
-
item = deepcopy(orginal_item)
|
|
49
|
-
item["document_pid"] = "not_found_doc"
|
|
50
|
-
with pytest.raises(DocumentNotFoundError):
|
|
51
|
-
item.commit()
|
|
52
|
-
|
|
53
|
-
# change internal location pid
|
|
54
|
-
item = deepcopy(orginal_item)
|
|
55
|
-
item["internal_location_pid"] = "not_found_pid"
|
|
56
|
-
with pytest.raises(InternalLocationNotFoundError):
|
|
57
|
-
item.commit()
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
#
|
|
3
|
-
# Copyright (C) 2018-2020 CERN.
|
|
4
|
-
#
|
|
5
|
-
# invenio-app-ils is free software; you can redistribute it and/or modify it
|
|
6
|
-
# under the terms of the MIT License; see LICENSE file for more details.
|
|
7
|
-
|
|
8
|
-
"""Test record delete."""
|
|
9
|
-
|
|
10
|
-
import pytest
|
|
11
|
-
|
|
12
|
-
from invenio_app_ils.circulation.search import get_active_loan_by_item_pid
|
|
13
|
-
from invenio_app_ils.errors import DocumentNotFoundError, ItemHasPastLoansError
|
|
14
|
-
from invenio_app_ils.items.api import ITEM_PID_TYPE, Item
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def test_update_item(db, testdata):
|
|
18
|
-
"""Test update item status."""
|
|
19
|
-
|
|
20
|
-
def get_active_loan_pid_and_item_pid():
|
|
21
|
-
for t in testdata["items"]:
|
|
22
|
-
if t["status"] == "CAN_CIRCULATE":
|
|
23
|
-
item_pid = dict(type=ITEM_PID_TYPE, value=t["pid"])
|
|
24
|
-
active_loan = get_active_loan_by_item_pid(item_pid).execute().hits
|
|
25
|
-
total = active_loan.total.value
|
|
26
|
-
if total > 0:
|
|
27
|
-
return t["pid"], active_loan[0]["pid"]
|
|
28
|
-
|
|
29
|
-
# change document pid while is on loan
|
|
30
|
-
item_pid, loan_pid = get_active_loan_pid_and_item_pid()
|
|
31
|
-
item = Item.get_record_by_pid(item_pid)
|
|
32
|
-
item["document_pid"] = "docid-1"
|
|
33
|
-
with pytest.raises(ItemHasPastLoansError):
|
|
34
|
-
item.commit()
|
|
35
|
-
|
|
36
|
-
# change document to one that does not exist
|
|
37
|
-
item = Item.get_record_by_pid("itemid-1")
|
|
38
|
-
item["document_pid"] = "not_found_doc"
|
|
39
|
-
with pytest.raises(DocumentNotFoundError):
|
|
40
|
-
item.commit()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/loaders/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/mappings/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/mappings/v7/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{invenio-app-ils-4.1.0 → invenio-app-ils-4.2.0}/invenio_app_ils/acquisition/schemas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|