invenio-app-ils 4.2.0__tar.gz → 4.3.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.
Files changed (583) hide show
  1. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/CHANGES.rst +9 -0
  2. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/PKG-INFO +62 -5
  3. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/__init__.py +1 -1
  4. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/api.py +123 -26
  5. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/config.py +14 -2
  6. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/loaders/__init__.py +2 -0
  7. invenio_app_ils-4.3.0/invenio_app_ils/circulation/loaders/schemas/json/loan_self_checkout.py +19 -0
  8. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/notifications/messages.py +1 -0
  9. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/serializers/__init__.py +1 -0
  10. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/serializers/response.py +1 -0
  11. invenio_app_ils-4.3.0/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/self_checkout.html +19 -0
  12. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/views.py +100 -12
  13. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/errors.py +103 -4
  14. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/search.py +13 -0
  15. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/anonymization.py +39 -9
  16. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/permissions.py +10 -5
  17. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils.egg-info/PKG-INFO +62 -5
  18. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils.egg-info/SOURCES.txt +2 -0
  19. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils.egg-info/entry_points.txt +0 -1
  20. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils.egg-info/requires.txt +1 -1
  21. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/setup.cfg +1 -1
  22. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_loan_checkout.py +171 -66
  23. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/items.json +49 -27
  24. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/.editorconfig +0 -0
  25. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/.git-blame-ignore-revs +0 -0
  26. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/AUTHORS.rst +0 -0
  27. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/CONTRIBUTING.rst +0 -0
  28. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/INSTALL.rst +0 -0
  29. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/LICENSE +0 -0
  30. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/MANIFEST.in +0 -0
  31. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/README.rst +0 -0
  32. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker/backend/Dockerfile +0 -0
  33. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker/frontend/Dockerfile +0 -0
  34. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker/frontend/conf.d/default.conf +0 -0
  35. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker/frontend/nginx.conf +0 -0
  36. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker/frontend/test.crt +0 -0
  37. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker/frontend/test.key +0 -0
  38. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker/lb/Dockerfile +0 -0
  39. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker/lb/haproxy.cfg +0 -0
  40. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker/lb/haproxy_cert.pem +0 -0
  41. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker-compose.full.yml +0 -0
  42. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker-compose.yml +0 -0
  43. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docker-services.yml +0 -0
  44. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/Makefile +0 -0
  45. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/authors.rst +0 -0
  46. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/changes.rst +0 -0
  47. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/conf.py +0 -0
  48. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/configuration.rst +0 -0
  49. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/contributing.rst +0 -0
  50. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/index.rst +0 -0
  51. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/installation.rst +0 -0
  52. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/license.rst +0 -0
  53. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/make.bat +0 -0
  54. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/requirements.txt +0 -0
  55. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/docs/usage.rst +0 -0
  56. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/__init__.py +0 -0
  57. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/api.py +0 -0
  58. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/config.py +0 -0
  59. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/errors.py +0 -0
  60. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/ext.py +0 -0
  61. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/jsonresolvers/__init__.py +0 -0
  62. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/jsonresolvers/order_order_lines.py +0 -0
  63. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/jsonresolvers/order_provider.py +0 -0
  64. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/loaders/__init__.py +0 -0
  65. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/loaders/jsonschemas/__init__.py +0 -0
  66. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/loaders/jsonschemas/order.py +0 -0
  67. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/mappings/__init__.py +0 -0
  68. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/mappings/os-v1/__init__.py +0 -0
  69. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/mappings/os-v1/acq_orders/order-v1.0.0.json +0 -0
  70. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/mappings/os-v2/__init__.py +0 -0
  71. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/mappings/os-v2/acq_orders/order-v1.0.0.json +0 -0
  72. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/mappings/v7/__init__.py +0 -0
  73. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/mappings/v7/acq_orders/order-v1.0.0.json +0 -0
  74. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/proxies.py +0 -0
  75. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/schemas/__init__.py +0 -0
  76. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/schemas/acq_orders/order-v1.0.0.json +0 -0
  77. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/acquisition/search.py +0 -0
  78. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/__init__.py +0 -0
  79. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/indexer.py +0 -0
  80. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/jsonresolvers/__init__.py +0 -0
  81. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/jsonresolvers/loan.py +0 -0
  82. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/loaders/schemas/__init__.py +0 -0
  83. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/loaders/schemas/json/__init__.py +0 -0
  84. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/loaders/schemas/json/base.py +0 -0
  85. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/loaders/schemas/json/bulk_extend.py +0 -0
  86. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/loaders/schemas/json/loan_checkout.py +0 -0
  87. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/loaders/schemas/json/loan_request.py +0 -0
  88. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/loaders/schemas/json/loan_update_dates.py +0 -0
  89. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/notifications/__init__.py +0 -0
  90. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/notifications/api.py +0 -0
  91. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/notifications/tasks.py +0 -0
  92. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/receivers.py +0 -0
  93. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/search.py +0 -0
  94. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/serializers/csv.py +0 -0
  95. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/serializers/custom_fields.py +0 -0
  96. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/serializers/json.py +0 -0
  97. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/stats/__init__.py +0 -0
  98. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/stats/api.py +0 -0
  99. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/stats/views.py +0 -0
  100. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/tasks.py +0 -0
  101. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/bulk_extend.html +0 -0
  102. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/cancel.html +0 -0
  103. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/checkin.html +0 -0
  104. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/checkout.html +0 -0
  105. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/extend.html +0 -0
  106. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/overdue_reminder.html +0 -0
  107. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/request.html +0 -0
  108. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/request_no_items.html +0 -0
  109. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/will_expire_in_reminder.html +0 -0
  110. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/transitions/__init__.py +0 -0
  111. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/transitions/transitions.py +0 -0
  112. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/circulation/utils.py +0 -0
  113. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/cli.py +0 -0
  114. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/closures/__init__.py +0 -0
  115. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/closures/api.py +0 -0
  116. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/closures/tasks.py +0 -0
  117. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/config.py +0 -0
  118. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/demo_data/documents.json +0 -0
  119. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/demo_data/items.json +0 -0
  120. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/__init__.py +0 -0
  121. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/api.py +0 -0
  122. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/indexer.py +0 -0
  123. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/jsonresolvers/__init__.py +0 -0
  124. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/jsonresolvers/document_request_document.py +0 -0
  125. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/jsonresolvers/document_request_patron.py +0 -0
  126. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/loaders/__init__.py +0 -0
  127. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/loaders/jsonschemas/__init__.py +0 -0
  128. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/loaders/jsonschemas/document_request.py +0 -0
  129. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/loaders/jsonschemas/document_request_decline.py +0 -0
  130. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/loaders/jsonschemas/document_request_document.py +0 -0
  131. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/loaders/jsonschemas/document_request_provider.py +0 -0
  132. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/mappings/__init__.py +0 -0
  133. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/mappings/os-v1/__init__.py +0 -0
  134. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/mappings/os-v1/document_requests/document_request-v1.0.0.json +0 -0
  135. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/mappings/os-v2/__init__.py +0 -0
  136. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/mappings/os-v2/document_requests/document_request-v1.0.0.json +0 -0
  137. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/mappings/v7/__init__.py +0 -0
  138. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/mappings/v7/document_requests/document_request-v1.0.0.json +0 -0
  139. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/notifications/__init__.py +0 -0
  140. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/notifications/api.py +0 -0
  141. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/notifications/messages.py +0 -0
  142. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/schemas/__init__.py +0 -0
  143. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/schemas/document_requests/document_request-v1.0.0.json +0 -0
  144. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/search.py +0 -0
  145. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/templates/invenio_app_ils_document_requests/notifications/document_request_accept.html +0 -0
  146. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/templates/invenio_app_ils_document_requests/notifications/document_request_decline_in_catalog.html +0 -0
  147. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/templates/invenio_app_ils_document_requests/notifications/document_request_decline_not_found.html +0 -0
  148. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/templates/invenio_app_ils_document_requests/notifications/document_request_decline_other.html +0 -0
  149. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/templates/invenio_app_ils_document_requests/notifications/document_request_decline_user_cancel.html +0 -0
  150. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/document_requests/views.py +0 -0
  151. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/__init__.py +0 -0
  152. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/api.py +0 -0
  153. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/indexer.py +0 -0
  154. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/jsonresolvers/__init__.py +0 -0
  155. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/jsonresolvers/document_circulation.py +0 -0
  156. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/jsonresolvers/document_eitem.py +0 -0
  157. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/jsonresolvers/document_item.py +0 -0
  158. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/jsonresolvers/document_relations.py +0 -0
  159. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/jsonresolvers/document_stock.py +0 -0
  160. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/loaders/__init__.py +0 -0
  161. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/loaders/jsonschemas/__init__.py +0 -0
  162. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/loaders/jsonschemas/document.py +0 -0
  163. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/mappings/__init__.py +0 -0
  164. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/mappings/os-v1/__init__.py +0 -0
  165. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/mappings/os-v1/documents/document-v1.0.0.json +0 -0
  166. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/mappings/os-v1/documents/document-v2.0.0.json +0 -0
  167. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/mappings/os-v2/__init__.py +0 -0
  168. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/mappings/os-v2/documents/document-v1.0.0.json +0 -0
  169. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/mappings/os-v2/documents/document-v2.0.0.json +0 -0
  170. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/mappings/v7/__init__.py +0 -0
  171. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/mappings/v7/documents/document-v1.0.0.json +0 -0
  172. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/mappings/v7/documents/document-v2.0.0.json +0 -0
  173. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/schemas/__init__.py +0 -0
  174. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/schemas/documents/document-v1.0.0.json +0 -0
  175. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/schemas/documents/document-v2.0.0.json +0 -0
  176. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/search.py +0 -0
  177. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/documents/utils.py +0 -0
  178. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/__init__.py +0 -0
  179. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/api.py +0 -0
  180. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/indexer.py +0 -0
  181. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/jsonresolvers/__init__.py +0 -0
  182. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/jsonresolvers/eitem_document.py +0 -0
  183. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/jsonresolvers/eitem_files.py +0 -0
  184. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/loaders/__init__.py +0 -0
  185. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/loaders/jsonschemas/__init__.py +0 -0
  186. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/loaders/jsonschemas/eitems.py +0 -0
  187. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/__init__.py +0 -0
  188. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/os-v1/__init__.py +0 -0
  189. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/os-v1/eitems/eitem-v1.0.0.json +0 -0
  190. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/os-v1/eitems/eitem-v2.0.0.json +0 -0
  191. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/os-v1/eitems/eitem-v3.0.0.json +0 -0
  192. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/os-v2/__init__.py +0 -0
  193. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/os-v2/eitems/eitem-v1.0.0.json +0 -0
  194. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/os-v2/eitems/eitem-v2.0.0.json +0 -0
  195. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/os-v2/eitems/eitem-v3.0.0.json +0 -0
  196. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/v7/__init__.py +0 -0
  197. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/v7/eitems/eitem-v1.0.0.json +0 -0
  198. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/v7/eitems/eitem-v2.0.0.json +0 -0
  199. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/mappings/v7/eitems/eitem-v3.0.0.json +0 -0
  200. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/schemas/__init__.py +0 -0
  201. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/schemas/eitems/eitem-v1.0.0.json +0 -0
  202. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/schemas/eitems/eitem-v2.0.0.json +0 -0
  203. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/schemas/eitems/eitem-v3.0.0.json +0 -0
  204. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/eitems/search.py +0 -0
  205. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ext.py +0 -0
  206. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/facets.py +0 -0
  207. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/fetchers.py +0 -0
  208. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/files/__init__.py +0 -0
  209. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/files/receivers.py +0 -0
  210. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/files/views.py +0 -0
  211. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/__init__.py +0 -0
  212. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/api.py +0 -0
  213. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/config.py +0 -0
  214. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/errors.py +0 -0
  215. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/ext.py +0 -0
  216. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/jsonresolvers/__init__.py +0 -0
  217. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/jsonresolvers/borrowing_request_document.py +0 -0
  218. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/jsonresolvers/borrowing_request_patron.py +0 -0
  219. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/jsonresolvers/borrowing_request_provider.py +0 -0
  220. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/loaders/__init__.py +0 -0
  221. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/loaders/jsonschemas/__init__.py +0 -0
  222. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/loaders/jsonschemas/borrowing_request.py +0 -0
  223. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/loaders/jsonschemas/patron_loan_actions.py +0 -0
  224. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/loaders/jsonschemas/patron_loan_extension_actions.py +0 -0
  225. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/mappings/__init__.py +0 -0
  226. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/mappings/os-v1/__init__.py +0 -0
  227. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/mappings/os-v1/ill_borrowing_requests/borrowing_request-v1.0.0.json +0 -0
  228. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/mappings/os-v2/__init__.py +0 -0
  229. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/mappings/os-v2/ill_borrowing_requests/borrowing_request-v1.0.0.json +0 -0
  230. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/mappings/v7/__init__.py +0 -0
  231. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/mappings/v7/ill_borrowing_requests/borrowing_request-v1.0.0.json +0 -0
  232. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/notifications/__init__.py +0 -0
  233. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/notifications/api.py +0 -0
  234. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/notifications/messages.py +0 -0
  235. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/proxies.py +0 -0
  236. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/schemas/__init__.py +0 -0
  237. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/schemas/ill_borrowing_requests/borrowing_request-v1.0.0.json +0 -0
  238. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/search.py +0 -0
  239. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/serializers/__init__.py +0 -0
  240. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/serializers/csv.py +0 -0
  241. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/serializers/custom_fields.py +0 -0
  242. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/serializers/json.py +0 -0
  243. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/templates/invenio_app_ils_ill/notifications/patron_loan_extension_accept.html +0 -0
  244. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/templates/invenio_app_ils_ill/notifications/patron_loan_extension_decline.html +0 -0
  245. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/templates/invenio_app_ils_ill/notifications/patron_loan_extension_request.html +0 -0
  246. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/ill/views.py +0 -0
  247. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/indexer.py +0 -0
  248. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/__init__.py +0 -0
  249. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/api.py +0 -0
  250. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/indexer.py +0 -0
  251. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/jsonresolvers/__init__.py +0 -0
  252. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/jsonresolvers/internal_location.py +0 -0
  253. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/loaders/__init__.py +0 -0
  254. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/loaders/jsonschemas/__init__.py +0 -0
  255. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/loaders/jsonschemas/internal_location.py +0 -0
  256. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/mappings/__init__.py +0 -0
  257. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/mappings/os-v1/__init__.py +0 -0
  258. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/mappings/os-v1/internal_locations/internal_location-v1.0.0.json +0 -0
  259. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/mappings/os-v2/__init__.py +0 -0
  260. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/mappings/os-v2/internal_locations/internal_location-v1.0.0.json +0 -0
  261. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/mappings/v7/__init__.py +0 -0
  262. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/mappings/v7/internal_locations/internal_location-v1.0.0.json +0 -0
  263. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/schemas/__init__.py +0 -0
  264. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/schemas/internal_locations/internal_location-v1.0.0.json +0 -0
  265. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/internal_locations/search.py +0 -0
  266. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/__init__.py +0 -0
  267. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/api.py +0 -0
  268. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/indexer.py +0 -0
  269. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/jsonresolvers/__init__.py +0 -0
  270. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/jsonresolvers/item_document.py +0 -0
  271. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/jsonresolvers/item_internal_location.py +0 -0
  272. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/jsonresolvers/item_loan.py +0 -0
  273. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/loaders/__init__.py +0 -0
  274. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/loaders/jsonschemas/__init__.py +0 -0
  275. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/loaders/jsonschemas/items.py +0 -0
  276. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/mappings/__init__.py +0 -0
  277. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/mappings/os-v1/__init__.py +0 -0
  278. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/mappings/os-v1/items/item-v1.0.0.json +0 -0
  279. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/mappings/os-v1/items/item-v2.0.0.json +0 -0
  280. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/mappings/os-v2/__init__.py +0 -0
  281. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/mappings/os-v2/items/item-v1.0.0.json +0 -0
  282. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/mappings/os-v2/items/item-v2.0.0.json +0 -0
  283. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/mappings/v7/__init__.py +0 -0
  284. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/mappings/v7/items/item-v1.0.0.json +0 -0
  285. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/mappings/v7/items/item-v2.0.0.json +0 -0
  286. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/schemas/__init__.py +0 -0
  287. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/schemas/items/item-v1.0.0.json +0 -0
  288. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/schemas/items/item-v2.0.0.json +0 -0
  289. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/serializers/__init__.py +0 -0
  290. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/items/serializers/item.py +0 -0
  291. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/literature/__init__.py +0 -0
  292. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/literature/api.py +0 -0
  293. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/literature/covers_builder.py +0 -0
  294. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/literature/search.py +0 -0
  295. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/literature/serializers/__init__.py +0 -0
  296. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/literature/serializers/csv.py +0 -0
  297. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/literature/serializers/custom_fields.py +0 -0
  298. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/literature/serializers/json.py +0 -0
  299. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/__init__.py +0 -0
  300. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/api.py +0 -0
  301. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/indexer.py +0 -0
  302. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/loaders/__init__.py +0 -0
  303. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/loaders/jsonschemas/__init__.py +0 -0
  304. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/loaders/jsonschemas/location.py +0 -0
  305. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/mappings/__init__.py +0 -0
  306. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/mappings/os-v1/__init__.py +0 -0
  307. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/mappings/os-v1/locations/location-v1.0.0.json +0 -0
  308. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/mappings/os-v2/__init__.py +0 -0
  309. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/mappings/os-v2/locations/location-v1.0.0.json +0 -0
  310. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/mappings/v7/__init__.py +0 -0
  311. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/mappings/v7/locations/location-v1.0.0.json +0 -0
  312. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/receivers.py +0 -0
  313. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/schemas/__init__.py +0 -0
  314. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/schemas/locations/location-v1.0.0.json +0 -0
  315. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/locations/search.py +0 -0
  316. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/minters.py +0 -0
  317. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/notifications/__init__.py +0 -0
  318. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/notifications/admin.py +0 -0
  319. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/notifications/api.py +0 -0
  320. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/notifications/backends/__init__.py +0 -0
  321. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/notifications/backends/mail.py +0 -0
  322. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/notifications/messages.py +0 -0
  323. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/notifications/models.py +0 -0
  324. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/notifications/tasks.py +0 -0
  325. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/notifications/views.py +0 -0
  326. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/__init__.py +0 -0
  327. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/api.py +0 -0
  328. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/cli.py +0 -0
  329. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/indexer.py +0 -0
  330. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/mappings/__init__.py +0 -0
  331. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/mappings/os-v1/__init__.py +0 -0
  332. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/mappings/os-v1/patrons/patron-v1.0.0.json +0 -0
  333. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/mappings/os-v2/__init__.py +0 -0
  334. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/mappings/os-v2/patrons/patron-v1.0.0.json +0 -0
  335. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/mappings/v7/__init__.py +0 -0
  336. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/mappings/v7/patrons/patron-v1.0.0.json +0 -0
  337. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/search.py +0 -0
  338. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/patrons/views.py +0 -0
  339. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/__init__.py +0 -0
  340. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/api.py +0 -0
  341. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/config.py +0 -0
  342. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/errors.py +0 -0
  343. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/ext.py +0 -0
  344. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/indexer.py +0 -0
  345. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/loaders/__init__.py +0 -0
  346. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/loaders/jsonschemas/__init__.py +0 -0
  347. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/loaders/jsonschemas/provider.py +0 -0
  348. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/mappings/__init__.py +0 -0
  349. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/mappings/os-v1/__init__.py +0 -0
  350. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/mappings/os-v1/providers/provider-v1.0.0.json +0 -0
  351. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/mappings/os-v2/__init__.py +0 -0
  352. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/mappings/os-v2/providers/provider-v1.0.0.json +0 -0
  353. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/mappings/v7/__init__.py +0 -0
  354. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/mappings/v7/providers/provider-v1.0.0.json +0 -0
  355. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/proxies.py +0 -0
  356. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/schemas/__init__.py +0 -0
  357. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/schemas/providers/provider-v1.0.0.json +0 -0
  358. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/providers/search.py +0 -0
  359. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/proxies.py +0 -0
  360. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/__init__.py +0 -0
  361. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/api.py +0 -0
  362. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/jsonresolvers/__init__.py +0 -0
  363. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/jsonresolvers/api.py +0 -0
  364. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/listeners.py +0 -0
  365. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/loaders/__init__.py +0 -0
  366. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/loaders/schemas/__init__.py +0 -0
  367. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/loaders/schemas/changed_by.py +0 -0
  368. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/loaders/schemas/identifiers.py +0 -0
  369. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/loaders/schemas/preserve_cover_metadata.py +0 -0
  370. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/loaders/schemas/price.py +0 -0
  371. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/metadata_extensions.py +0 -0
  372. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/permissions.py +0 -0
  373. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/receivers.py +0 -0
  374. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/schemas/__init__.py +0 -0
  375. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/schemas/json.py +0 -0
  376. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/serializers/__init__.py +0 -0
  377. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records/views.py +0 -0
  378. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records_relations/__init__.py +0 -0
  379. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records_relations/api.py +0 -0
  380. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records_relations/indexer.py +0 -0
  381. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records_relations/retriever.py +0 -0
  382. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/records_relations/views.py +0 -0
  383. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/relations/__init__.py +0 -0
  384. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/relations/api.py +0 -0
  385. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/relations/nodes.py +0 -0
  386. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/search_permissions.py +0 -0
  387. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/__init__.py +0 -0
  388. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/api.py +0 -0
  389. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/indexer.py +0 -0
  390. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/jsonresolvers/__init__.py +0 -0
  391. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/jsonresolvers/series_relations.py +0 -0
  392. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/loaders/__init__.py +0 -0
  393. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/loaders/jsonschemas/__init__.py +0 -0
  394. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/loaders/jsonschemas/series.py +0 -0
  395. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/mappings/__init__.py +0 -0
  396. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/mappings/os-v1/__init__.py +0 -0
  397. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/mappings/os-v1/series/series-v1.0.0.json +0 -0
  398. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/mappings/os-v1/series/series-v2.0.0.json +0 -0
  399. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/mappings/os-v2/__init__.py +0 -0
  400. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/mappings/os-v2/series/series-v1.0.0.json +0 -0
  401. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/mappings/os-v2/series/series-v2.0.0.json +0 -0
  402. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/mappings/v7/__init__.py +0 -0
  403. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/mappings/v7/series/series-v1.0.0.json +0 -0
  404. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/mappings/v7/series/series-v2.0.0.json +0 -0
  405. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/schemas/__init__.py +0 -0
  406. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/schemas/series/series-v1.0.0.json +0 -0
  407. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/schemas/series/series-v2.0.0.json +0 -0
  408. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/series/search.py +0 -0
  409. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/signals.py +0 -0
  410. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/static/images/placeholder.png +0 -0
  411. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/static_pages/search_guide.html +0 -0
  412. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/__init__.py +0 -0
  413. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/aggregations/__init__.py +0 -0
  414. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/aggregations/aggr_file_download/__init__.py +0 -0
  415. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/aggregations/aggr_file_download/os-v1/__init__.py +0 -0
  416. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/aggregations/aggr_file_download/os-v1/aggr-file-download-v1.json +0 -0
  417. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/aggregations/aggr_file_download/os-v2/__init__.py +0 -0
  418. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/aggregations/aggr_file_download/os-v2/aggr-file-download-v1.json +0 -0
  419. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/aggregations/aggr_file_download/v7/__init__.py +0 -0
  420. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/aggregations/aggr_file_download/v7/aggr-file-download-v1.json +0 -0
  421. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/file_download/__init__.py +0 -0
  422. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/file_download/os-v1/__init__.py +0 -0
  423. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/file_download/os-v1/file-download-v1.json +0 -0
  424. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/file_download/os-v2/__init__.py +0 -0
  425. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/file_download/os-v2/file-download-v1.json +0 -0
  426. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/file_download/v7/__init__.py +0 -0
  427. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/stats/file_download/v7/file-download-v1.json +0 -0
  428. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/templates/invenio_app_ils/mail/footer.html +0 -0
  429. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/templates/invenio_app_ils/notifications/footer.html +0 -0
  430. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/templates/logged_out.html +0 -0
  431. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/translations/.gitkeep +0 -0
  432. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/views.py +0 -0
  433. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/__init__.py +0 -0
  434. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/api.py +0 -0
  435. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/cli.py +0 -0
  436. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/__init__.py +0 -0
  437. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/acq_mediums.json +0 -0
  438. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/acq_order_line_payment_modes.json +0 -0
  439. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/acq_order_line_purchase_types.json +0 -0
  440. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/acq_payment_modes.json +0 -0
  441. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/acq_recipients.json +0 -0
  442. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/affiliation_identifier_schemes.json +0 -0
  443. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/alternative_identifier_schemes.json +0 -0
  444. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/alternative_title_types.json +0 -0
  445. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/author_identifier_schemes.json +0 -0
  446. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/author_roles.json +0 -0
  447. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/author_types.json +0 -0
  448. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/conference_identifier_schemes.json +0 -0
  449. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/countries.json +0 -0
  450. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/currencies.json +0 -0
  451. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/docreq_payment_method.json +0 -0
  452. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/docreq_request_type.json +0 -0
  453. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/document_identifiers_materials.json +0 -0
  454. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/document_requests_mediums.json +0 -0
  455. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/document_subjects.json +0 -0
  456. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/eitem_sources.json +0 -0
  457. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/identifier_schemes.json +0 -0
  458. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/ill_item_types.json +0 -0
  459. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/ill_payment_modes.json +0 -0
  460. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/item_mediums.json +0 -0
  461. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/provider_types.json +0 -0
  462. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/series_identifier_schemes.json +0 -0
  463. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/series_url_access_restrictions.json +0 -0
  464. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/data/tags.json +0 -0
  465. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/indexer.py +0 -0
  466. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/jsonresolvers/__init__.py +0 -0
  467. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/jsonresolvers/licenses.py +0 -0
  468. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/mappings/__init__.py +0 -0
  469. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/mappings/os-v1/__init__.py +0 -0
  470. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/mappings/os-v1/vocabularies/vocabulary-v1.0.0.json +0 -0
  471. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/mappings/os-v2/__init__.py +0 -0
  472. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/mappings/os-v2/vocabularies/vocabulary-v1.0.0.json +0 -0
  473. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/mappings/v7/__init__.py +0 -0
  474. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/mappings/v7/vocabularies/vocabulary-v1.0.0.json +0 -0
  475. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/schemas/__init__.py +0 -0
  476. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/schemas/vocabularies/vocabulary-v1.0.0.json +0 -0
  477. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/search.py +0 -0
  478. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/sources/__init__.py +0 -0
  479. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/sources/base.py +0 -0
  480. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/sources/json.py +0 -0
  481. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils/vocabularies/sources/opendefinition.py +0 -0
  482. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils.egg-info/dependency_links.txt +0 -0
  483. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils.egg-info/not-zip-safe +0 -0
  484. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/invenio_app_ils.egg-info/top_level.txt +0 -0
  485. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/pyproject.toml +0 -0
  486. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/run-tests.sh +0 -0
  487. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/scripts/bootstrap +0 -0
  488. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/scripts/build_assets +0 -0
  489. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/scripts/celery +0 -0
  490. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/scripts/console +0 -0
  491. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/scripts/server +0 -0
  492. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/scripts/setup +0 -0
  493. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/scripts/update +0 -0
  494. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/setup.py +0 -0
  495. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/__init__.py +0 -0
  496. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/__init__.py +0 -0
  497. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/acquisition/__init__.py +0 -0
  498. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/acquisition/test_acq_orders_crud.py +0 -0
  499. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/acquisition/test_acq_orders_permissions.py +0 -0
  500. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/acquisition/test_acq_providers_permissions.py +0 -0
  501. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/__init__.py +0 -0
  502. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_expired_loans.py +0 -0
  503. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_loan_bulk_extend.py +0 -0
  504. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_loan_default_durations.py +0 -0
  505. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_loan_document_resolver.py +0 -0
  506. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_loan_extend.py +0 -0
  507. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_loan_item_permissions.py +0 -0
  508. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_loan_item_resolver.py +0 -0
  509. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_loan_list_permissions.py +0 -0
  510. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_loan_patron_resolver.py +0 -0
  511. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_loan_request.py +0 -0
  512. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_loan_update.py +0 -0
  513. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/circulation/test_notifications.py +0 -0
  514. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/conftest.py +0 -0
  515. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/document_requests/__init__.py +0 -0
  516. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/document_requests/test_document_requests.py +0 -0
  517. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/document_requests/test_document_requests_permissions.py +0 -0
  518. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/document_requests/test_notifications_filter.py +0 -0
  519. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ill/__init__.py +0 -0
  520. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ill/test_ill_brw_crud.py +0 -0
  521. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ill/test_ill_brw_reqs_patron_loan_create_action.py +0 -0
  522. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ill/test_ill_brw_reqs_patron_loan_extension_actions.py +0 -0
  523. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ill/test_ill_brw_reqs_permissions.py +0 -0
  524. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ill/test_ill_providers_permissions.py +0 -0
  525. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/__init__.py +0 -0
  526. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/documents/__init__.py +0 -0
  527. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/documents/test_document_crud.py +0 -0
  528. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/documents/test_document_permissions.py +0 -0
  529. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/documents/test_document_resolvers.py +0 -0
  530. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/eitems/__init__.py +0 -0
  531. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/eitems/test_eitems_crud.py +0 -0
  532. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/eitems/test_eitems_permissions.py +0 -0
  533. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/eitems/test_files.py +0 -0
  534. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/items/__init__.py +0 -0
  535. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/items/test_apis.py +0 -0
  536. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/items/test_items_crud.py +0 -0
  537. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/items/test_items_permissions.py +0 -0
  538. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/records_relations/__init__.py +0 -0
  539. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/records_relations/helpers.py +0 -0
  540. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/records_relations/test_records_relations_parentchild.py +0 -0
  541. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/records_relations/test_records_relations_sequence.py +0 -0
  542. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/records_relations/test_records_relations_siblings.py +0 -0
  543. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/series/__init__.py +0 -0
  544. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/series/test_series_permissions.py +0 -0
  545. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_anonymization.py +0 -0
  546. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_apis.py +0 -0
  547. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_closures.py +0 -0
  548. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_errors.py +0 -0
  549. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_facets.py +0 -0
  550. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_internal_locations.py +0 -0
  551. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_loaders.py +0 -0
  552. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_metadata_extensions.py +0 -0
  553. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_notifications.py +0 -0
  554. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_notifications_mails.py +0 -0
  555. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_notifications_permissions.py +0 -0
  556. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_patrons.py +0 -0
  557. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_record_delete.py +0 -0
  558. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_record_permissions.py +0 -0
  559. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_resolvers.py +0 -0
  560. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_stats.py +0 -0
  561. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_tasks.py +0 -0
  562. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/api/ils/test_vocabularies.py +0 -0
  563. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/conftest.py +0 -0
  564. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/acq_orders.json +0 -0
  565. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/acq_providers.json +0 -0
  566. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/document_requests.json +0 -0
  567. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/documents.json +0 -0
  568. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/eitems.json +0 -0
  569. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/ill_borrowing_requests.json +0 -0
  570. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/ill_providers.json +0 -0
  571. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/internal_locations.json +0 -0
  572. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/loans.json +0 -0
  573. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/loans_most_loaned.json +0 -0
  574. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/locations.json +0 -0
  575. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/data/series.json +0 -0
  576. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/helpers.py +0 -0
  577. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/templates/notifications/blank.html +0 -0
  578. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/templates/notifications/title_body.html +0 -0
  579. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/templates/notifications/title_body_html.html +0 -0
  580. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/templates/notifications/title_body_html_ctx.html +0 -0
  581. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/templates/notifications/title_only.html +0 -0
  582. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/test_post_logout_redirect.py +0 -0
  583. {invenio-app-ils-4.2.0 → invenio_app_ils-4.3.0}/tests/test_version.py +0 -0
@@ -8,6 +8,15 @@
8
8
  Changes
9
9
  =======
10
10
 
11
+ Version 4.3.0 (released 2024-11-19)
12
+
13
+ - self-checkout: use dedicated endpoints for the entire workflow for better
14
+ permissions check and error handling.
15
+ Add a new loan transition and delivery method for self-checkout.
16
+ - anonymization: ensure that re-indexing is happening after the commit to the db,
17
+ to avoid premature re-indexing (and therefore index conflict version)
18
+ when db rollback happens.
19
+
11
20
  Version 4.2.0 (released 2024-11-04)
12
21
 
13
22
  - self-checkout: barcode is now always uppercased to make searches case-insensitive
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: invenio-app-ils
3
- Version: 4.2.0
3
+ Version: 4.3.0
4
4
  Summary: Invenio Integrated Library System.
5
5
  Home-page: https://github.com/inveniosoftware/invenio-app-ils
6
6
  Author: CERN
@@ -10,12 +10,62 @@ Keywords: invenio-app-ils Invenio
10
10
  Platform: any
11
11
  Classifier: Development Status :: 4 - Beta
12
12
  Requires-Python: >=3.8
13
+ License-File: LICENSE
14
+ License-File: AUTHORS.rst
15
+ Requires-Dist: invenio-app<1.4.0,>=1.3.4
16
+ Requires-Dist: invenio-db[mysql,postgresql]<2.0.0,>=1.0.14
17
+ Requires-Dist: invenio-base<1.3.0,>=1.2.11
18
+ Requires-Dist: invenio-cache<2.0.0,>=1.1.1
19
+ Requires-Dist: invenio-celery<2.0.0,>=1.2.4
20
+ Requires-Dist: invenio-config<1.1.0,>=1.0.3
21
+ Requires-Dist: invenio-i18n<3.0.0,>=2.0.0
22
+ Requires-Dist: invenio-admin<1.5.0,>=1.4.0
23
+ Requires-Dist: invenio-assets<4.0.0,>=3.0.0
24
+ Requires-Dist: invenio-formatter<3.0.0,>=2.0.0
25
+ Requires-Dist: invenio-logging[sentry_sdk]<3.0.0,>=2.0.0
26
+ Requires-Dist: invenio-mail<3.0.0,>=2.0.0
27
+ Requires-Dist: invenio-rest<1.4.0,>=1.3.0
28
+ Requires-Dist: invenio-theme<3.0.0,>=2.0.0
29
+ Requires-Dist: invenio-access<3.0.0,>=2.0.0
30
+ Requires-Dist: invenio-accounts<4.0.0,>=3.0.0
31
+ Requires-Dist: invenio-oauth2server<3.0.0,>=2.0.0
32
+ Requires-Dist: invenio-oauthclient<4.0.0,>=3.0.0
33
+ Requires-Dist: invenio-userprofiles<1.3.0,>=1.2.4
34
+ Requires-Dist: invenio-indexer<3.0.0,>=2.2.0
35
+ Requires-Dist: invenio-jsonschemas<1.2.0,>=1.1.4
36
+ Requires-Dist: invenio-oaiserver<2.3.0,>=2.2.0
37
+ Requires-Dist: invenio-pidstore<1.4.0,>=1.3.0
38
+ Requires-Dist: invenio-records-rest<3.0.0,>=2.2.0
39
+ Requires-Dist: invenio-records<3.0.0,>=2.2.1
40
+ Requires-Dist: invenio-files-rest<3.0.0,>=2.0.0
41
+ Requires-Dist: invenio-banners<1.1.0,>=1.0.0a1
42
+ Requires-Dist: invenio-pages<1.1.0,>=1.0.0a5
43
+ Requires-Dist: invenio-circulation<4.0.0,>=3.0.0a1
44
+ Requires-Dist: invenio-opendefinition<3.0.0,>=2.0.0a1
45
+ Requires-Dist: invenio-pidrelations<1.1.0,>=0.2.0
46
+ Requires-Dist: invenio-stats<5.0.0,>=4.0.0
47
+ Requires-Dist: Flask-Debugtoolbar<1.0.0,>=0.10.1
48
+ Requires-Dist: pycountry<23.0.0,>=20.0.0
49
+ Requires-Dist: simplejson<4.0.0,>=3.8.1
50
+ Requires-Dist: pluggy<1.0.0,>=0.13.1
51
+ Requires-Dist: jsonschema<5.0.0,>=4.3.0
52
+ Requires-Dist: itsdangerous<2.1,>=1.1
53
+ Requires-Dist: SQLAlchemy<2.0.0,>=1.3.0
54
+ Requires-Dist: Flask<2.3.0,>=2.2.0
55
+ Requires-Dist: Werkzeug<2.3.0,>=2.2.0
13
56
  Provides-Extra: tests
57
+ Requires-Dist: pytest-black>=0.3.0; extra == "tests"
58
+ Requires-Dist: mock>=2.0.0; extra == "tests"
59
+ Requires-Dist: pytest-invenio<3.0.0,>=2.0.0; extra == "tests"
60
+ Requires-Dist: docker-services-cli>=0.6.0; extra == "tests"
61
+ Requires-Dist: pydocstyle==6.1.1; extra == "tests"
62
+ Requires-Dist: pytest-mock>=1.6.0; extra == "tests"
63
+ Requires-Dist: sphinx>=5; extra == "tests"
14
64
  Provides-Extra: lorem
65
+ Requires-Dist: lorem>=0.1.1; extra == "lorem"
15
66
  Provides-Extra: opensearch2
67
+ Requires-Dist: invenio-search[opensearch2]<3.0.0,>=2.0.0; extra == "opensearch2"
16
68
  Provides-Extra: docs
17
- License-File: LICENSE
18
- License-File: AUTHORS.rst
19
69
 
20
70
  ..
21
71
  Copyright (C) 2018-2020 CERN.
@@ -51,6 +101,15 @@ https://invenioils.docs.cern.ch
51
101
  Changes
52
102
  =======
53
103
 
104
+ Version 4.3.0 (released 2024-11-19)
105
+
106
+ - self-checkout: use dedicated endpoints for the entire workflow for better
107
+ permissions check and error handling.
108
+ Add a new loan transition and delivery method for self-checkout.
109
+ - anonymization: ensure that re-indexing is happening after the commit to the db,
110
+ to avoid premature re-indexing (and therefore index conflict version)
111
+ when db rollback happens.
112
+
54
113
  Version 4.2.0 (released 2024-11-04)
55
114
 
56
115
  - self-checkout: barcode is now always uppercased to make searches case-insensitive
@@ -517,5 +576,3 @@ Version 1.0.0a4 (released 2020-06-19)
517
576
  Version 1.0.0a0 (released 2020-06-05)
518
577
 
519
578
  - Initial public release.
520
-
521
-
@@ -7,6 +7,6 @@
7
7
 
8
8
  """invenio-app-ils."""
9
9
 
10
- __version__ = "4.2.0"
10
+ __version__ = "4.3.0"
11
11
 
12
12
  __all__ = ("__version__",)
@@ -30,10 +30,15 @@ from invenio_app_ils.circulation.search import (
30
30
  get_all_expiring_or_overdue_loans_by_patron_pid,
31
31
  )
32
32
  from invenio_app_ils.errors import (
33
+ DocumentOverbookedError,
33
34
  IlsException,
34
35
  InvalidLoanExtendError,
35
36
  InvalidParameterError,
37
+ ItemCannotCirculateError,
38
+ ItemHasActiveLoanError,
39
+ ItemNotFoundError,
36
40
  MissingRequiredParameterError,
41
+ MultipleItemsBarcodeFoundError,
37
42
  PatronHasLoanOnDocumentError,
38
43
  PatronHasLoanOnItemError,
39
44
  PatronHasRequestOnDocumentError,
@@ -119,7 +124,7 @@ def request_loan(
119
124
  patron_pid,
120
125
  transaction_location_pid,
121
126
  transaction_user_pid=None,
122
- **kwargs
127
+ **kwargs,
123
128
  ):
124
129
  """Create a new loan and trigger the first transition to PENDING."""
125
130
  loan_cls = current_circulation.loan_record_cls
@@ -170,13 +175,54 @@ def patron_has_active_loan_on_item(patron_pid, item_pid):
170
175
  return search_result.hits.total.value > 0
171
176
 
172
177
 
178
+ def _checkout_loan(
179
+ item_pid,
180
+ patron_pid,
181
+ transaction_location_pid,
182
+ trigger="checkout",
183
+ transaction_user_pid=None,
184
+ delivery=None,
185
+ **kwargs,
186
+ ):
187
+ """Checkout a loan."""
188
+ transaction_user_pid = transaction_user_pid or str(current_user.id)
189
+ loan_cls = current_circulation.loan_record_cls
190
+ # create a new loan
191
+ record_uuid = uuid.uuid4()
192
+ new_loan = dict(
193
+ patron_pid=patron_pid,
194
+ transaction_location_pid=transaction_location_pid,
195
+ transaction_user_pid=transaction_user_pid,
196
+ )
197
+
198
+ if delivery:
199
+ new_loan["delivery"] = delivery
200
+ # check if there is an existing request
201
+ loan = patron_has_request_on_document(patron_pid, kwargs.get("document_pid"))
202
+ if loan:
203
+ loan = loan_cls.get_record_by_pid(loan.pid)
204
+ pid = IlsCirculationLoanIdProvider.get(loan["pid"]).pid
205
+ loan.update(new_loan)
206
+ else:
207
+ pid = ils_circulation_loan_pid_minter(record_uuid, data=new_loan)
208
+ loan = loan_cls.create(data=new_loan, id_=record_uuid)
209
+
210
+ params = deepcopy(loan)
211
+ params.update(item_pid=item_pid, **kwargs)
212
+
213
+ loan = current_circulation.circulation.trigger(
214
+ loan, **dict(params, trigger=trigger)
215
+ )
216
+ return pid, loan
217
+
218
+
173
219
  def checkout_loan(
174
220
  item_pid,
175
221
  patron_pid,
176
222
  transaction_location_pid,
177
223
  transaction_user_pid=None,
178
224
  force=False,
179
- **kwargs
225
+ **kwargs,
180
226
  ):
181
227
  """Create a new loan and trigger the first transition to ITEM_ON_LOAN.
182
228
 
@@ -191,7 +237,7 @@ def checkout_loan(
191
237
  the checkout. If False, the checkout will fail when the item cannot
192
238
  circulate.
193
239
  """
194
- loan_cls = current_circulation.loan_record_cls
240
+
195
241
  if patron_has_active_loan_on_item(patron_pid=patron_pid, item_pid=item_pid):
196
242
  raise PatronHasLoanOnItemError(patron_pid, item_pid)
197
243
  optional_delivery = kwargs.get("delivery")
@@ -201,35 +247,86 @@ def checkout_loan(
201
247
  if force:
202
248
  _set_item_to_can_circulate(item_pid)
203
249
 
204
- transaction_user_pid = transaction_user_pid or str(current_user.id)
205
-
206
- # create a new loan
207
- record_uuid = uuid.uuid4()
208
- new_loan = dict(
209
- patron_pid=patron_pid,
210
- transaction_location_pid=transaction_location_pid,
250
+ return _checkout_loan(
251
+ item_pid,
252
+ patron_pid,
253
+ transaction_location_pid,
211
254
  transaction_user_pid=transaction_user_pid,
255
+ **kwargs,
212
256
  )
213
257
 
214
- # check if there is an existing request
215
- loan = patron_has_request_on_document(patron_pid, kwargs.get("document_pid"))
216
- if loan:
217
- loan = loan_cls.get_record_by_pid(loan.pid)
218
- pid = IlsCirculationLoanIdProvider.get(loan["pid"]).pid
219
- loan.update(new_loan)
220
- else:
221
- pid = ils_circulation_loan_pid_minter(record_uuid, data=new_loan)
222
- loan = loan_cls.create(data=new_loan, id_=record_uuid)
223
258
 
224
- params = deepcopy(loan)
225
- params.update(item_pid=item_pid, **kwargs)
259
+ def _ensure_item_loanable_via_self_checkout(item_pid):
260
+ """Self-checkout: return loanable item or raise when not loanable.
226
261
 
227
- # trigger the transition to request
228
- loan = current_circulation.circulation.trigger(
229
- loan, **dict(params, trigger="checkout")
262
+ Implements the self-checkout rules to loan an item.
263
+ """
264
+ item = current_app_ils.item_record_cls.get_record_by_pid(item_pid)
265
+ item_dict = item.replace_refs()
266
+
267
+ if item_dict["status"] != "CAN_CIRCULATE":
268
+ raise ItemCannotCirculateError()
269
+
270
+ circulation_state = item_dict["circulation"].get("state")
271
+ has_active_loan = (
272
+ circulation_state and circulation_state in CIRCULATION_STATES_LOAN_ACTIVE
230
273
  )
274
+ if has_active_loan:
275
+ raise ItemHasActiveLoanError(loan_pid=item_dict["circulation"]["loan_pid"])
231
276
 
232
- return pid, loan
277
+ document = current_app_ils.document_record_cls.get_record_by_pid(
278
+ item_dict["document_pid"]
279
+ )
280
+ document_dict = document.replace_refs()
281
+ if document_dict["circulation"].get("overbooked", False):
282
+ raise DocumentOverbookedError(
283
+ f"Cannot self-checkout the overbooked document {item_dict['document_pid']}"
284
+ )
285
+
286
+ return item
287
+
288
+
289
+ def self_checkout_get_item_by_barcode(barcode):
290
+ """Search for an item by barcode.
291
+
292
+ :param barcode: the barcode of the item to search for
293
+ :return item: the item that was found, or raise in case of errors
294
+ """
295
+ item_search = current_app_ils.item_search_cls()
296
+ items = item_search.search_by_barcode(barcode).execute()
297
+ if items.hits.total.value == 0:
298
+ raise ItemNotFoundError(barcode=barcode)
299
+ if items.hits.total.value > 1:
300
+ raise MultipleItemsBarcodeFoundError(barcode)
301
+
302
+ item_pid = items.hits[0].pid
303
+ item = _ensure_item_loanable_via_self_checkout(item_pid)
304
+ return item_pid, item
305
+
306
+
307
+ def self_checkout(
308
+ item_pid, patron_pid, transaction_location_pid, transaction_user_pid=None, **kwargs
309
+ ):
310
+ """Perform self-checkout.
311
+
312
+ :param item_pid: a dict containing `value` and `type` fields to
313
+ uniquely identify the item.
314
+ :param patron_pid: the PID value of the patron
315
+ :param transaction_location_pid: the PID value of the location where the
316
+ checkout is performed
317
+ :param transaction_user_pid: the PID value of the user that performed the
318
+ checkout
319
+ """
320
+ _ensure_item_loanable_via_self_checkout(item_pid["value"])
321
+ return _checkout_loan(
322
+ item_pid,
323
+ patron_pid,
324
+ transaction_location_pid,
325
+ transaction_user_pid=transaction_user_pid,
326
+ trigger="self_checkout",
327
+ delivery=dict(method="SELF-CHECKOUT"),
328
+ **kwargs,
329
+ )
233
330
 
234
331
 
235
332
  def bulk_extend_loans(patron_pid, **kwargs):
@@ -253,7 +350,7 @@ def bulk_extend_loans(patron_pid, **kwargs):
253
350
  params,
254
351
  trigger="extend",
255
352
  transition_kwargs=dict(send_notification=False),
256
- )
353
+ ),
257
354
  )
258
355
  extended_loans.append(extended_loan)
259
356
  except (CirculationException, InvalidLoanExtendError):
@@ -44,7 +44,6 @@ from invenio_app_ils.permissions import (
44
44
  PatronOwnerPermission,
45
45
  authenticated_user_permission,
46
46
  backoffice_permission,
47
- loan_checkout_permission,
48
47
  loan_extend_circulation_permission,
49
48
  patron_owner_permission,
50
49
  superuser_permission,
@@ -84,6 +83,7 @@ ILS_CIRCULATION_LOAN_WILL_EXPIRE_DAYS = 7
84
83
  ILS_CIRCULATION_DELIVERY_METHODS = {
85
84
  "PICKUP": "Pick it up at the library desk",
86
85
  "DELIVERY": "Have it delivered to my office",
86
+ "SELF-CHECKOUT": "Self-checkout",
87
87
  }
88
88
 
89
89
  # Notification message creator for loan notifications
@@ -162,7 +162,13 @@ CIRCULATION_LOAN_TRANSITIONS = {
162
162
  dest="ITEM_ON_LOAN",
163
163
  trigger="checkout",
164
164
  transition=ILSToItemOnLoan,
165
- permission_factory=loan_checkout_permission,
165
+ permission_factory=backoffice_permission,
166
+ ),
167
+ dict(
168
+ dest="ITEM_ON_LOAN",
169
+ trigger="self_checkout",
170
+ transition=ILSToItemOnLoan,
171
+ permission_factory=authenticated_user_permission,
166
172
  ),
167
173
  ],
168
174
  "PENDING": [
@@ -172,6 +178,12 @@ CIRCULATION_LOAN_TRANSITIONS = {
172
178
  transition=ILSToItemOnLoan,
173
179
  permission_factory=backoffice_permission,
174
180
  ),
181
+ dict(
182
+ dest="ITEM_ON_LOAN",
183
+ trigger="self_checkout",
184
+ transition=ILSToItemOnLoan,
185
+ permission_factory=authenticated_user_permission,
186
+ ),
175
187
  dict(
176
188
  dest="CANCELLED",
177
189
  trigger="cancel",
@@ -12,9 +12,11 @@ from invenio_app_ils.records.loaders import ils_marshmallow_loader
12
12
  from .schemas.json.bulk_extend import BulkExtendLoansSchemaV1
13
13
  from .schemas.json.loan_checkout import LoanCheckoutSchemaV1
14
14
  from .schemas.json.loan_request import LoanRequestSchemaV1
15
+ from .schemas.json.loan_self_checkout import LoanSelfCheckoutSchemaV1
15
16
  from .schemas.json.loan_update_dates import LoanUpdateDatesSchemaV1
16
17
 
17
18
  loan_request_loader = ils_marshmallow_loader(LoanRequestSchemaV1)
18
19
  loan_checkout_loader = ils_marshmallow_loader(LoanCheckoutSchemaV1)
20
+ loan_self_checkout_loader = ils_marshmallow_loader(LoanSelfCheckoutSchemaV1)
19
21
  loan_update_dates_loader = ils_marshmallow_loader(LoanUpdateDatesSchemaV1)
20
22
  loans_bulk_update_loader = ils_marshmallow_loader(BulkExtendLoansSchemaV1)
@@ -0,0 +1,19 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2019 CERN.
4
+ #
5
+ # invenio-app-ils 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
+ """Invenio App ILS circulation Loan Checkout loader JSON schema."""
9
+
10
+ from invenio_circulation.records.loaders.schemas.json import LoanItemPIDSchemaV1
11
+ from marshmallow import fields
12
+
13
+ from .base import LoanBaseSchemaV1
14
+
15
+
16
+ class LoanSelfCheckoutSchemaV1(LoanBaseSchemaV1):
17
+ """Loan self-checkout schema."""
18
+
19
+ item_pid = fields.Nested(LoanItemPIDSchemaV1, required=True)
@@ -25,6 +25,7 @@ class NotificationLoanMsg(NotificationMsg):
25
25
  request="request.html",
26
26
  request_no_items="request_no_items.html",
27
27
  checkout="checkout.html",
28
+ self_checkout="self_checkout.html",
28
29
  checkin="checkin.html",
29
30
  extend="extend.html",
30
31
  cancel="cancel.html",
@@ -6,6 +6,7 @@
6
6
  # under the terms of the MIT License; see LICENSE file for more details.
7
7
 
8
8
  """Loan serializers."""
9
+
9
10
  from invenio_records_rest.serializers.response import search_responsify
10
11
 
11
12
  from invenio_app_ils.records.schemas.json import ILSRecordSchemaJSONV1
@@ -6,6 +6,7 @@
6
6
  # under the terms of the MIT License; see LICENSE file for more details.
7
7
 
8
8
  """Response serializers for circulation module."""
9
+
9
10
  import json
10
11
 
11
12
  from flask import current_app
@@ -0,0 +1,19 @@
1
+ {% block title %}
2
+ InvenioILS: loan started for "{{ document.title|safe }}"
3
+ {% endblock %}
4
+
5
+ {% block body_plain %}
6
+ Dear {{ patron.name }},
7
+
8
+ your self-checkout loan for "{{ document.full_title }}" <{{ spa_routes.HOST }}{{ spa_routes.PATHS['literature']|format(pid=document.pid) }}> has started.
9
+
10
+ The due date is {{ loan.end_date }}.
11
+ {% endblock %}
12
+
13
+ {% block body_html %}
14
+ Dear {{ patron.name }}, <br/><br/>
15
+
16
+ your self-checkout loan for <a href="{{ spa_routes.HOST }}{{ spa_routes.PATHS['literature']|format(pid=document.pid) }}">"{{ document.full_title }}"</a> has <b>started</b>. <br/><br/>
17
+
18
+ <b>The due date is {{ loan.end_date }}</b>.<br/>
19
+ {% endblock %}
@@ -7,7 +7,7 @@
7
7
 
8
8
  """Invenio App ILS Circulation views."""
9
9
 
10
- from flask import Blueprint, abort
10
+ from flask import Blueprint, abort, request
11
11
  from flask_login import current_user
12
12
  from invenio_circulation.links import loan_links_factory
13
13
  from invenio_circulation.pidstore.pids import CIRCULATION_LOAN_PID_TYPE
@@ -18,15 +18,35 @@ from invenio_rest import ContentNegotiatedMethodView
18
18
  from invenio_app_ils.circulation.loaders import (
19
19
  loan_checkout_loader,
20
20
  loan_request_loader,
21
+ loan_self_checkout_loader,
21
22
  loan_update_dates_loader,
22
23
  loans_bulk_update_loader,
23
24
  )
24
25
  from invenio_app_ils.circulation.utils import circulation_overdue_loan_days
25
- from invenio_app_ils.errors import OverdueLoansNotificationError
26
+ from invenio_app_ils.errors import (
27
+ DocumentOverbookedError,
28
+ ItemCannotCirculateError,
29
+ ItemHasActiveLoanError,
30
+ ItemNotFoundError,
31
+ LoanSelfCheckoutDocumentOverbooked,
32
+ LoanSelfCheckoutItemActiveLoan,
33
+ LoanSelfCheckoutItemInvalidStatus,
34
+ LoanSelfCheckoutItemNotFound,
35
+ MissingRequiredParameterError,
36
+ OverdueLoansNotificationError,
37
+ )
38
+ from invenio_app_ils.items.api import ITEM_PID_TYPE
26
39
  from invenio_app_ils.permissions import need_permissions
27
40
 
28
41
  from ..patrons.api import patron_exists
29
- from .api import bulk_extend_loans, checkout_loan, request_loan, update_dates_loan
42
+ from .api import (
43
+ bulk_extend_loans,
44
+ checkout_loan,
45
+ request_loan,
46
+ self_checkout,
47
+ self_checkout_get_item_by_barcode,
48
+ update_dates_loan,
49
+ )
30
50
  from .notifications.api import (
31
51
  send_bulk_extend_notification,
32
52
  send_loan_overdue_reminder_notification,
@@ -43,73 +63,97 @@ def create_circulation_blueprint(app):
43
63
  url_prefix="",
44
64
  )
45
65
 
46
- endpoints = app.config.get("RECORDS_REST_ENDPOINTS", [])
47
- options = endpoints.get(CIRCULATION_LOAN_PID_TYPE, {})
66
+ options = app.config["RECORDS_REST_ENDPOINTS"][CIRCULATION_LOAN_PID_TYPE]
48
67
  default_media_type = options.get("default_media_type", "")
49
68
  rec_serializers = options.get("record_serializers", {})
50
69
  serializers = {
51
70
  mime: obj_or_import_string(func) for mime, func in rec_serializers.items()
52
71
  }
53
72
 
54
- bulk_loan_extension_serializers = {"application/json": bulk_extend_v1_response}
55
-
73
+ # /request
56
74
  loan_request = LoanRequestResource.as_view(
57
75
  LoanRequestResource.view_name,
58
76
  serializers=serializers,
59
77
  default_media_type=default_media_type,
60
78
  ctx=dict(links_factory=loan_links_factory, loader=loan_request_loader),
61
79
  )
62
-
63
80
  blueprint.add_url_rule(
64
81
  "/circulation/loans/request", view_func=loan_request, methods=["POST"]
65
82
  )
66
83
 
84
+ # /checkout
67
85
  loan_checkout = LoanCheckoutResource.as_view(
68
86
  LoanCheckoutResource.view_name,
69
87
  serializers=serializers,
70
88
  default_media_type=default_media_type,
71
89
  ctx=dict(links_factory=loan_links_factory, loader=loan_checkout_loader),
72
90
  )
73
-
74
91
  blueprint.add_url_rule(
75
92
  "/circulation/loans/checkout",
76
93
  view_func=loan_checkout,
77
94
  methods=["POST"],
78
95
  )
79
96
 
97
+ # /self-checkout
98
+ item_rec_serializers = app.config["RECORDS_REST_ENDPOINTS"][ITEM_PID_TYPE].get(
99
+ "record_serializers", {}
100
+ )
101
+ item_serializers = {
102
+ mime: obj_or_import_string(func) for mime, func in item_rec_serializers.items()
103
+ }
104
+ loan_self_checkout_item = LoanSelfCheckoutResource.as_view(
105
+ LoanSelfCheckoutResource.view_name,
106
+ serializers={}, # required, even if `method_serializers` will override it
107
+ method_serializers={
108
+ "GET": item_serializers,
109
+ "POST": serializers, # default loan serializers
110
+ },
111
+ default_media_type=default_media_type,
112
+ ctx=dict(
113
+ loan_links_factory=loan_links_factory, loader=loan_self_checkout_loader
114
+ ),
115
+ )
116
+ blueprint.add_url_rule(
117
+ "/circulation/loans/self-checkout",
118
+ view_func=loan_self_checkout_item,
119
+ methods=["GET", "POST"],
120
+ )
121
+
122
+ # /notification-overdue
80
123
  loan_notification_overdue = LoanNotificationResource.as_view(
81
124
  LoanNotificationResource.view_name.format(CIRCULATION_LOAN_PID_TYPE),
82
125
  serializers=serializers,
83
126
  default_media_type=default_media_type,
84
127
  ctx=dict(links_factory=loan_links_factory),
85
128
  )
86
-
87
129
  blueprint.add_url_rule(
88
130
  "{0}/notification-overdue".format(options["item_route"]),
89
131
  view_func=loan_notification_overdue,
90
132
  methods=["POST"],
91
133
  )
92
134
 
135
+ # /bulk-extend
136
+ bulk_loan_extension_serializers = {"application/json": bulk_extend_v1_response}
137
+
93
138
  bulk_loan_extension = BulkLoanExtensionResource.as_view(
94
139
  BulkLoanExtensionResource.view_name,
95
140
  serializers=bulk_loan_extension_serializers,
96
141
  default_media_type=default_media_type,
97
142
  ctx=dict(loader=loans_bulk_update_loader),
98
143
  )
99
-
100
144
  blueprint.add_url_rule(
101
145
  "/circulation/bulk-extend",
102
146
  view_func=bulk_loan_extension,
103
147
  methods=["POST"],
104
148
  )
105
149
 
150
+ # /update-dates
106
151
  loan_update = LoanUpdateDatesResource.as_view(
107
152
  LoanUpdateDatesResource.view_name.format(CIRCULATION_LOAN_PID_TYPE),
108
153
  serializers=serializers,
109
154
  default_media_type=default_media_type,
110
155
  ctx=dict(links_factory=loan_links_factory, loader=loan_update_dates_loader),
111
156
  )
112
-
113
157
  blueprint.add_url_rule(
114
158
  "{0}/update-dates".format(options["item_route"]),
115
159
  view_func=loan_update,
@@ -157,6 +201,50 @@ class LoanCheckoutResource(IlsCirculationResource):
157
201
  return self.make_response(pid, loan, 202, links_factory=self.links_factory)
158
202
 
159
203
 
204
+ class LoanSelfCheckoutResource(IlsCirculationResource):
205
+ """Loan self-checkout action resource."""
206
+
207
+ view_name = "loan_self_checkout"
208
+
209
+ @need_permissions("circulation-loan-self-checkout")
210
+ def get(self, **kwargs):
211
+ """Loan self-checkout GET method to retrieve items."""
212
+ try:
213
+ barcode = request.args["barcode"].upper()
214
+ assert barcode
215
+ except (KeyError, AssertionError):
216
+ msg = "Parameter `barcode` is missing"
217
+ raise MissingRequiredParameterError(description=msg)
218
+
219
+ try:
220
+ pid, item = self_checkout_get_item_by_barcode(barcode)
221
+ except ItemCannotCirculateError:
222
+ raise LoanSelfCheckoutItemInvalidStatus()
223
+ except ItemHasActiveLoanError:
224
+ raise LoanSelfCheckoutItemActiveLoan()
225
+ except DocumentOverbookedError:
226
+ raise LoanSelfCheckoutDocumentOverbooked()
227
+ except ItemNotFoundError:
228
+ raise LoanSelfCheckoutItemNotFound()
229
+
230
+ return self.make_response(pid, item, 200)
231
+
232
+ @need_permissions("circulation-loan-self-checkout")
233
+ def post(self, **kwargs):
234
+ """Loan self-checkout POST method to perform the checkout."""
235
+ data = self.loader()
236
+ try:
237
+ pid, loan = self_checkout(**data)
238
+ except ItemCannotCirculateError:
239
+ raise LoanSelfCheckoutItemInvalidStatus()
240
+ except ItemHasActiveLoanError:
241
+ raise LoanSelfCheckoutItemActiveLoan()
242
+ except DocumentOverbookedError:
243
+ raise LoanSelfCheckoutDocumentOverbooked()
244
+
245
+ return self.make_response(pid, loan, 202, links_factory=self.loan_links_factory)
246
+
247
+
160
248
  class BulkLoanExtensionResource(IlsCirculationResource):
161
249
  """Bulk loan extension resource."""
162
250