invenio-app-ils 1.0.0a54__py2.py3-none-any.whl → 6.1.0__py2.py3-none-any.whl

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 (331) hide show
  1. invenio_app_ils/__init__.py +2 -2
  2. invenio_app_ils/acquisition/api.py +3 -1
  3. invenio_app_ils/acquisition/config.py +10 -21
  4. invenio_app_ils/acquisition/jsonresolvers/order_order_lines.py +1 -0
  5. invenio_app_ils/acquisition/mappings/os-v1/acq_orders/order-v1.0.0.json +364 -0
  6. invenio_app_ils/acquisition/mappings/os-v2/__init__.py +0 -0
  7. invenio_app_ils/acquisition/mappings/os-v2/acq_orders/order-v1.0.0.json +364 -0
  8. invenio_app_ils/acquisition/mappings/v7/acq_orders/order-v1.0.0.json +14 -0
  9. invenio_app_ils/acquisition/search.py +5 -15
  10. invenio_app_ils/assets/semantic-ui/less/theme.config +103 -0
  11. invenio_app_ils/assets/semantic-ui/templates/.gitkeep +0 -0
  12. invenio_app_ils/circulation/api.py +153 -67
  13. invenio_app_ils/circulation/config.py +29 -25
  14. invenio_app_ils/circulation/indexer.py +14 -19
  15. invenio_app_ils/circulation/loaders/__init__.py +2 -0
  16. invenio_app_ils/circulation/loaders/schemas/json/loan_checkout.py +2 -3
  17. invenio_app_ils/circulation/loaders/schemas/json/loan_request.py +82 -16
  18. invenio_app_ils/circulation/loaders/schemas/json/loan_self_checkout.py +19 -0
  19. invenio_app_ils/circulation/notifications/api.py +23 -19
  20. invenio_app_ils/circulation/notifications/messages.py +6 -6
  21. invenio_app_ils/circulation/notifications/tasks.py +1 -2
  22. invenio_app_ils/circulation/receivers.py +2 -5
  23. invenio_app_ils/circulation/search.py +23 -22
  24. invenio_app_ils/circulation/serializers/__init__.py +2 -2
  25. invenio_app_ils/circulation/serializers/csv.py +1 -3
  26. invenio_app_ils/circulation/serializers/custom_fields.py +5 -9
  27. invenio_app_ils/circulation/serializers/json.py +2 -6
  28. invenio_app_ils/circulation/serializers/response.py +12 -12
  29. invenio_app_ils/circulation/stats/views.py +5 -15
  30. invenio_app_ils/circulation/tasks.py +2 -6
  31. invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/self_checkout.html +19 -0
  32. invenio_app_ils/circulation/templates/invenio_app_ils_circulation/notifications/update_dates.html +19 -0
  33. invenio_app_ils/circulation/utils.py +23 -17
  34. invenio_app_ils/circulation/views.py +103 -39
  35. invenio_app_ils/cli.py +220 -260
  36. invenio_app_ils/closures/api.py +72 -7
  37. invenio_app_ils/closures/serializers/__init__.py +16 -0
  38. invenio_app_ils/closures/serializers/response.py +35 -0
  39. invenio_app_ils/closures/serializers/schema.py +28 -0
  40. invenio_app_ils/closures/tasks.py +4 -11
  41. invenio_app_ils/closures/views.py +66 -0
  42. invenio_app_ils/config.py +207 -150
  43. invenio_app_ils/document_requests/api.py +6 -21
  44. invenio_app_ils/document_requests/loaders/__init__.py +4 -12
  45. invenio_app_ils/document_requests/mappings/{v6 → os-v1}/__init__.py +2 -2
  46. invenio_app_ils/document_requests/mappings/os-v1/document_requests/document_request-v1.0.0.json +196 -0
  47. invenio_app_ils/document_requests/mappings/os-v2/__init__.py +8 -0
  48. invenio_app_ils/document_requests/mappings/os-v2/document_requests/document_request-v1.0.0.json +196 -0
  49. invenio_app_ils/document_requests/notifications/api.py +2 -7
  50. invenio_app_ils/document_requests/notifications/messages.py +3 -7
  51. invenio_app_ils/document_requests/search.py +2 -6
  52. invenio_app_ils/document_requests/views.py +4 -10
  53. invenio_app_ils/documents/api.py +19 -25
  54. invenio_app_ils/documents/indexer.py +13 -20
  55. invenio_app_ils/documents/jsonresolvers/document_circulation.py +11 -33
  56. invenio_app_ils/documents/jsonresolvers/document_eitem.py +1 -0
  57. invenio_app_ils/documents/jsonresolvers/document_item.py +8 -9
  58. invenio_app_ils/documents/jsonresolvers/document_stock.py +7 -7
  59. invenio_app_ils/documents/loaders/jsonschemas/document.py +3 -14
  60. invenio_app_ils/documents/mappings/{v6 → os-v1}/__init__.py +1 -1
  61. invenio_app_ils/documents/mappings/os-v1/documents/document-v1.0.0.json +932 -0
  62. invenio_app_ils/documents/mappings/os-v1/documents/document-v2.0.0.json +1066 -0
  63. invenio_app_ils/documents/mappings/os-v2/__init__.py +8 -0
  64. invenio_app_ils/documents/mappings/os-v2/documents/document-v1.0.0.json +932 -0
  65. invenio_app_ils/documents/mappings/os-v2/documents/document-v2.0.0.json +1066 -0
  66. invenio_app_ils/documents/mappings/v7/documents/document-v1.0.0.json +102 -11
  67. invenio_app_ils/documents/mappings/v7/documents/document-v2.0.0.json +1066 -0
  68. invenio_app_ils/documents/schemas/documents/document-v2.0.0.json +732 -0
  69. invenio_app_ils/eitems/api.py +41 -7
  70. invenio_app_ils/eitems/loaders/jsonschemas/eitems.py +6 -6
  71. invenio_app_ils/eitems/mappings/{v6 → os-v1}/__init__.py +1 -1
  72. invenio_app_ils/eitems/mappings/os-v1/eitems/eitem-v1.0.0.json +139 -0
  73. invenio_app_ils/eitems/mappings/os-v1/eitems/eitem-v2.0.0.json +142 -0
  74. invenio_app_ils/eitems/mappings/os-v1/eitems/eitem-v3.0.0.json +179 -0
  75. invenio_app_ils/{series/mappings/v6 → eitems/mappings/os-v2}/__init__.py +1 -1
  76. invenio_app_ils/eitems/mappings/os-v2/eitems/eitem-v1.0.0.json +139 -0
  77. invenio_app_ils/eitems/mappings/os-v2/eitems/eitem-v2.0.0.json +142 -0
  78. invenio_app_ils/eitems/mappings/os-v2/eitems/eitem-v3.0.0.json +179 -0
  79. invenio_app_ils/eitems/mappings/v7/eitems/eitem-v1.0.0.json +12 -2
  80. invenio_app_ils/eitems/mappings/v7/eitems/eitem-v2.0.0.json +142 -0
  81. invenio_app_ils/eitems/mappings/v7/eitems/eitem-v3.0.0.json +179 -0
  82. invenio_app_ils/eitems/schemas/eitems/eitem-v2.0.0.json +120 -0
  83. invenio_app_ils/eitems/schemas/eitems/eitem-v3.0.0.json +120 -0
  84. invenio_app_ils/eitems/search.py +3 -9
  85. invenio_app_ils/errors.py +119 -6
  86. invenio_app_ils/ext.py +15 -18
  87. invenio_app_ils/facets.py +13 -15
  88. invenio_app_ils/files/receivers.py +1 -1
  89. invenio_app_ils/files/views.py +1 -2
  90. invenio_app_ils/ill/api.py +1 -2
  91. invenio_app_ils/ill/config.py +10 -16
  92. invenio_app_ils/ill/jsonresolvers/borrowing_request_document.py +2 -3
  93. invenio_app_ils/ill/jsonresolvers/borrowing_request_patron.py +1 -3
  94. invenio_app_ils/ill/jsonresolvers/borrowing_request_provider.py +1 -3
  95. invenio_app_ils/ill/loaders/__init__.py +3 -9
  96. invenio_app_ils/ill/loaders/jsonschemas/patron_loan_actions.py +1 -8
  97. invenio_app_ils/ill/loaders/jsonschemas/patron_loan_extension_actions.py +3 -8
  98. invenio_app_ils/ill/mappings/{v6 → os-v1}/__init__.py +1 -1
  99. invenio_app_ils/ill/mappings/os-v1/ill_borrowing_requests/borrowing_request-v1.0.0.json +254 -0
  100. invenio_app_ils/{acquisition/mappings/v6 → ill/mappings/os-v2}/__init__.py +1 -1
  101. invenio_app_ils/ill/mappings/os-v2/ill_borrowing_requests/borrowing_request-v1.0.0.json +254 -0
  102. invenio_app_ils/ill/mappings/v7/ill_borrowing_requests/borrowing_request-v1.0.0.json +14 -0
  103. invenio_app_ils/ill/notifications/api.py +1 -4
  104. invenio_app_ils/ill/search.py +3 -9
  105. invenio_app_ils/ill/serializers/__init__.py +1 -3
  106. invenio_app_ils/ill/views.py +2 -4
  107. invenio_app_ils/internal_locations/api.py +1 -4
  108. invenio_app_ils/internal_locations/mappings/{v6 → os-v1}/__init__.py +1 -1
  109. invenio_app_ils/internal_locations/mappings/os-v1/internal_locations/internal_location-v1.0.0.json +108 -0
  110. invenio_app_ils/internal_locations/mappings/os-v2/__init__.py +8 -0
  111. invenio_app_ils/internal_locations/mappings/os-v2/internal_locations/internal_location-v1.0.0.json +108 -0
  112. invenio_app_ils/internal_locations/search.py +1 -3
  113. invenio_app_ils/items/api.py +18 -15
  114. invenio_app_ils/items/indexer.py +1 -3
  115. invenio_app_ils/items/jsonresolvers/item_document.py +1 -1
  116. invenio_app_ils/items/jsonresolvers/item_internal_location.py +2 -6
  117. invenio_app_ils/items/loaders/jsonschemas/items.py +2 -0
  118. {tests/api/circulation → invenio_app_ils/items/mappings/os-v1}/__init__.py +1 -1
  119. invenio_app_ils/items/mappings/os-v1/items/item-v1.0.0.json +285 -0
  120. invenio_app_ils/items/mappings/os-v1/items/item-v2.0.0.json +326 -0
  121. {tests/api/ill → invenio_app_ils/items/mappings/os-v2}/__init__.py +1 -1
  122. invenio_app_ils/items/mappings/os-v2/items/item-v1.0.0.json +285 -0
  123. invenio_app_ils/items/mappings/os-v2/items/item-v2.0.0.json +326 -0
  124. invenio_app_ils/items/mappings/v7/items/item-v1.0.0.json +11 -0
  125. invenio_app_ils/items/mappings/v7/items/item-v2.0.0.json +326 -0
  126. invenio_app_ils/items/schemas/items/item-v1.0.0.json +22 -0
  127. invenio_app_ils/items/schemas/items/item-v2.0.0.json +172 -0
  128. invenio_app_ils/items/search.py +18 -11
  129. invenio_app_ils/items/serializers/item.py +7 -6
  130. invenio_app_ils/literature/api.py +1 -3
  131. invenio_app_ils/literature/search.py +3 -5
  132. invenio_app_ils/literature/serializers/csv.py +1 -3
  133. invenio_app_ils/literature/serializers/json.py +1 -3
  134. invenio_app_ils/locations/api.py +2 -4
  135. invenio_app_ils/locations/indexer.py +3 -9
  136. invenio_app_ils/locations/loaders/__init__.py +1 -3
  137. invenio_app_ils/locations/loaders/jsonschemas/location.py +4 -11
  138. invenio_app_ils/locations/mappings/{v6 → os-v1}/__init__.py +1 -1
  139. invenio_app_ils/locations/mappings/os-v1/locations/location-v1.0.0.json +90 -0
  140. invenio_app_ils/locations/mappings/os-v2/__init__.py +8 -0
  141. invenio_app_ils/locations/mappings/os-v2/locations/location-v1.0.0.json +90 -0
  142. invenio_app_ils/notifications/messages.py +4 -3
  143. invenio_app_ils/notifications/tasks.py +1 -3
  144. invenio_app_ils/notifications/views.py +2 -2
  145. invenio_app_ils/patrons/anonymization.py +53 -32
  146. invenio_app_ils/patrons/api.py +3 -5
  147. invenio_app_ils/patrons/cli.py +1 -2
  148. invenio_app_ils/patrons/indexer.py +4 -13
  149. invenio_app_ils/patrons/mappings/os-v1/__init__.py +8 -0
  150. invenio_app_ils/patrons/mappings/os-v1/patrons/patron-v1.0.0.json +42 -0
  151. invenio_app_ils/patrons/mappings/os-v2/__init__.py +8 -0
  152. invenio_app_ils/patrons/mappings/os-v2/patrons/patron-v1.0.0.json +42 -0
  153. invenio_app_ils/patrons/views.py +4 -14
  154. invenio_app_ils/permissions.py +93 -35
  155. invenio_app_ils/providers/api.py +2 -6
  156. invenio_app_ils/providers/config.py +11 -19
  157. invenio_app_ils/providers/indexer.py +2 -6
  158. invenio_app_ils/providers/mappings/{v6 → os-v1}/__init__.py +1 -1
  159. invenio_app_ils/providers/mappings/os-v1/providers/provider-v1.0.0.json +57 -0
  160. invenio_app_ils/providers/mappings/os-v2/__init__.py +8 -0
  161. invenio_app_ils/providers/mappings/os-v2/providers/provider-v1.0.0.json +57 -0
  162. invenio_app_ils/providers/mappings/v7/__init__.py +1 -1
  163. invenio_app_ils/providers/proxies.py +1 -3
  164. invenio_app_ils/records/api.py +3 -9
  165. invenio_app_ils/records/loaders/schemas/changed_by.py +1 -3
  166. invenio_app_ils/records/loaders/schemas/identifiers.py +23 -0
  167. invenio_app_ils/records/metadata_extensions.py +1 -4
  168. invenio_app_ils/records/permissions.py +8 -2
  169. invenio_app_ils/records/serializers/__init__.py +1 -4
  170. invenio_app_ils/records/views.py +4 -7
  171. invenio_app_ils/records_relations/api.py +11 -34
  172. invenio_app_ils/records_relations/indexer.py +1 -3
  173. invenio_app_ils/records_relations/retriever.py +14 -9
  174. invenio_app_ils/records_relations/views.py +16 -50
  175. invenio_app_ils/relations/api.py +17 -16
  176. invenio_app_ils/search_permissions.py +24 -24
  177. invenio_app_ils/series/api.py +10 -12
  178. invenio_app_ils/series/loaders/jsonschemas/series.py +3 -2
  179. invenio_app_ils/{items/mappings/v6 → series/mappings/os-v1}/__init__.py +1 -1
  180. invenio_app_ils/series/mappings/os-v1/series/series-v1.0.0.json +324 -0
  181. invenio_app_ils/series/mappings/os-v1/series/series-v2.0.0.json +396 -0
  182. {tests/api/acquisition → invenio_app_ils/series/mappings/os-v2}/__init__.py +1 -1
  183. invenio_app_ils/series/mappings/os-v2/series/series-v1.0.0.json +324 -0
  184. invenio_app_ils/series/mappings/os-v2/series/series-v2.0.0.json +396 -0
  185. invenio_app_ils/series/mappings/v7/series/series-v1.0.0.json +35 -3
  186. invenio_app_ils/series/mappings/v7/series/series-v2.0.0.json +396 -0
  187. invenio_app_ils/series/schemas/series/series-v2.0.0.json +354 -0
  188. invenio_app_ils/stats/aggregations/aggr_file_download/os-v1/aggr-file-download-v1.json +60 -0
  189. invenio_app_ils/stats/aggregations/aggr_file_download/os-v2/__init__.py +9 -0
  190. invenio_app_ils/stats/aggregations/aggr_file_download/os-v2/aggr-file-download-v1.json +60 -0
  191. invenio_app_ils/stats/event_builders.py +73 -0
  192. invenio_app_ils/stats/file_download/os-v1/file-download-v1.json +72 -0
  193. invenio_app_ils/stats/file_download/os-v2/__init__.py +9 -0
  194. invenio_app_ils/stats/file_download/os-v2/file-download-v1.json +72 -0
  195. invenio_app_ils/stats/processors.py +30 -0
  196. invenio_app_ils/stats/templates/aggregations/__init__.py +8 -0
  197. invenio_app_ils/stats/templates/aggregations/ils_record_changes/__init__.py +8 -0
  198. invenio_app_ils/stats/templates/aggregations/ils_record_changes/os-v2/__init__.py +8 -0
  199. invenio_app_ils/stats/templates/aggregations/ils_record_changes/os-v2/aggr-ils-record-changes-v1.json +41 -0
  200. {tests → invenio_app_ils/stats/templates/events}/__init__.py +2 -2
  201. invenio_app_ils/stats/templates/events/ils_record_changes/__init__.py +8 -0
  202. invenio_app_ils/stats/templates/events/ils_record_changes/os-v2/__init__.py +8 -0
  203. invenio_app_ils/stats/templates/events/ils_record_changes/os-v2/ils-record-changes-v1.json +41 -0
  204. invenio_app_ils/templates/logged_out.html +12 -0
  205. invenio_app_ils/views.py +18 -4
  206. invenio_app_ils/vocabularies/api.py +1 -1
  207. invenio_app_ils/vocabularies/cli.py +6 -18
  208. invenio_app_ils/vocabularies/data/acq_order_line_payment_modes.json +5 -0
  209. invenio_app_ils/vocabularies/data/identifier_schemes.json +5 -0
  210. invenio_app_ils/vocabularies/indexer.py +1 -4
  211. invenio_app_ils/vocabularies/jsonresolvers/licenses.py +2 -11
  212. invenio_app_ils/vocabularies/mappings/os-v1/__init__.py +8 -0
  213. invenio_app_ils/vocabularies/mappings/os-v1/vocabularies/vocabulary-v1.0.0.json +23 -0
  214. invenio_app_ils/vocabularies/mappings/os-v2/__init__.py +8 -0
  215. invenio_app_ils/vocabularies/mappings/os-v2/vocabularies/vocabulary-v1.0.0.json +23 -0
  216. invenio_app_ils/vocabularies/sources/base.py +1 -3
  217. invenio_app_ils/webpack.py +27 -0
  218. invenio_app_ils-6.1.0.dist-info/METADATA +627 -0
  219. {invenio_app_ils-1.0.0a54.dist-info → invenio_app_ils-6.1.0.dist-info}/RECORD +227 -249
  220. {invenio_app_ils-1.0.0a54.dist-info → invenio_app_ils-6.1.0.dist-info}/WHEEL +1 -1
  221. {invenio_app_ils-1.0.0a54.dist-info → invenio_app_ils-6.1.0.dist-info}/entry_points.txt +9 -5
  222. {invenio_app_ils-1.0.0a54.dist-info → invenio_app_ils-6.1.0.dist-info}/top_level.txt +0 -1
  223. invenio_app_ils/acquisition/mappings/v6/acq_orders/order-v1.0.0.json +0 -352
  224. invenio_app_ils/document_requests/mappings/v6/document_requests/document_request-v1.0.0.json +0 -199
  225. invenio_app_ils/documents/mappings/v6/documents/document-v1.0.0.json +0 -843
  226. invenio_app_ils/eitems/mappings/v6/eitems/eitem-v1.0.0.json +0 -131
  227. invenio_app_ils/ill/mappings/v6/ill_borrowing_requests/borrowing_request-v1.0.0.json +0 -242
  228. invenio_app_ils/internal_locations/mappings/v6/internal_locations/internal_location-v1.0.0.json +0 -110
  229. invenio_app_ils/items/mappings/v6/items/item-v1.0.0.json +0 -276
  230. invenio_app_ils/locations/mappings/v6/locations/location-v1.0.0.json +0 -92
  231. invenio_app_ils/notifications/admin.py +0 -57
  232. invenio_app_ils/patrons/mappings/v6/__init__.py +0 -8
  233. invenio_app_ils/patrons/mappings/v6/patrons/patron-v1.0.0.json +0 -44
  234. invenio_app_ils/providers/mappings/v6/providers/provider-v1.0.0.json +0 -59
  235. invenio_app_ils/series/mappings/v6/series/series-v1.0.0.json +0 -298
  236. invenio_app_ils/stats/aggregations/aggr_file_download/v6/aggr-file-download-v1.json +0 -59
  237. invenio_app_ils/stats/file_download/v6/file-download-v1.json +0 -74
  238. invenio_app_ils/version.py +0 -14
  239. invenio_app_ils/vocabularies/mappings/v6/__init__.py +0 -8
  240. invenio_app_ils/vocabularies/mappings/v6/vocabularies/vocabulary-v1.0.0.json +0 -25
  241. invenio_app_ils-1.0.0a54.dist-info/METADATA +0 -95
  242. tests/api/__init__.py +0 -8
  243. tests/api/acquisition/test_acq_orders_crud.py +0 -102
  244. tests/api/acquisition/test_acq_orders_permissions.py +0 -104
  245. tests/api/acquisition/test_acq_providers_permissions.py +0 -83
  246. tests/api/circulation/test_expired_loans.py +0 -88
  247. tests/api/circulation/test_loan_checkout.py +0 -216
  248. tests/api/circulation/test_loan_default_durations.py +0 -57
  249. tests/api/circulation/test_loan_document_resolver.py +0 -18
  250. tests/api/circulation/test_loan_extend.py +0 -132
  251. tests/api/circulation/test_loan_item_permissions.py +0 -139
  252. tests/api/circulation/test_loan_item_resolver.py +0 -26
  253. tests/api/circulation/test_loan_list_permissions.py +0 -104
  254. tests/api/circulation/test_loan_patron_resolver.py +0 -38
  255. tests/api/circulation/test_loan_request.py +0 -234
  256. tests/api/circulation/test_loan_update.py +0 -150
  257. tests/api/circulation/test_notifications.py +0 -229
  258. tests/api/conftest.py +0 -236
  259. tests/api/document_requests/__init__.py +0 -8
  260. tests/api/document_requests/test_document_requests.py +0 -131
  261. tests/api/document_requests/test_document_requests_permissions.py +0 -177
  262. tests/api/document_requests/test_notifications_filter.py +0 -36
  263. tests/api/ill/test_ill_brw_crud.py +0 -84
  264. tests/api/ill/test_ill_brw_reqs_patron_loan_create_action.py +0 -207
  265. tests/api/ill/test_ill_brw_reqs_patron_loan_extension_actions.py +0 -298
  266. tests/api/ill/test_ill_brw_reqs_permissions.py +0 -169
  267. tests/api/ill/test_ill_providers_permissions.py +0 -82
  268. tests/api/ils/__init__.py +0 -8
  269. tests/api/ils/documents/__init__.py +0 -8
  270. tests/api/ils/documents/test_document_crud.py +0 -57
  271. tests/api/ils/documents/test_document_permissions.py +0 -106
  272. tests/api/ils/documents/test_document_resolvers.py +0 -35
  273. tests/api/ils/eitems/__init__.py +0 -8
  274. tests/api/ils/eitems/test_eitems_crud.py +0 -41
  275. tests/api/ils/eitems/test_eitems_permissions.py +0 -84
  276. tests/api/ils/eitems/test_files.py +0 -172
  277. tests/api/ils/items/__init__.py +0 -8
  278. tests/api/ils/items/test_apis.py +0 -43
  279. tests/api/ils/items/test_items_crud.py +0 -60
  280. tests/api/ils/items/test_items_permissions.py +0 -107
  281. tests/api/ils/items/test_items_update.py +0 -47
  282. tests/api/ils/records_relations/__init__.py +0 -8
  283. tests/api/ils/records_relations/helpers.py +0 -115
  284. tests/api/ils/records_relations/test_records_relations_parentchild.py +0 -560
  285. tests/api/ils/records_relations/test_records_relations_sequence.py +0 -302
  286. tests/api/ils/records_relations/test_records_relations_siblings.py +0 -678
  287. tests/api/ils/series/__init__.py +0 -8
  288. tests/api/ils/series/test_series_permissions.py +0 -95
  289. tests/api/ils/test_anonymization.py +0 -189
  290. tests/api/ils/test_apis.py +0 -76
  291. tests/api/ils/test_closures.py +0 -324
  292. tests/api/ils/test_errors.py +0 -126
  293. tests/api/ils/test_facets.py +0 -84
  294. tests/api/ils/test_internal_locations.py +0 -96
  295. tests/api/ils/test_loaders.py +0 -55
  296. tests/api/ils/test_metadata_extensions.py +0 -205
  297. tests/api/ils/test_notifications.py +0 -183
  298. tests/api/ils/test_notifications_mails.py +0 -39
  299. tests/api/ils/test_notifications_permissions.py +0 -55
  300. tests/api/ils/test_patrons.py +0 -106
  301. tests/api/ils/test_record_delete.py +0 -46
  302. tests/api/ils/test_record_permissions.py +0 -135
  303. tests/api/ils/test_resolvers.py +0 -207
  304. tests/api/ils/test_stats.py +0 -160
  305. tests/api/ils/test_tasks.py +0 -211
  306. tests/api/ils/test_vocabularies.py +0 -35
  307. tests/conftest.py +0 -123
  308. tests/data/acq_orders.json +0 -89
  309. tests/data/acq_providers.json +0 -12
  310. tests/data/document_requests.json +0 -77
  311. tests/data/documents.json +0 -237
  312. tests/data/eitems.json +0 -66
  313. tests/data/ill_borrowing_requests.json +0 -77
  314. tests/data/ill_providers.json +0 -12
  315. tests/data/internal_locations.json +0 -22
  316. tests/data/items.json +0 -271
  317. tests/data/loans.json +0 -133
  318. tests/data/loans_most_loaned.json +0 -128
  319. tests/data/locations.json +0 -20
  320. tests/data/series.json +0 -33
  321. tests/helpers.py +0 -104
  322. tests/templates/notifications/title_body.html +0 -8
  323. tests/templates/notifications/title_body_html.html +0 -13
  324. tests/templates/notifications/title_body_html_ctx.html +0 -13
  325. tests/templates/notifications/title_only.html +0 -3
  326. tests/test_version.py +0 -17
  327. /tests/templates/notifications/blank.html → /invenio_app_ils/acquisition/mappings/os-v1/__init__.py +0 -0
  328. /invenio_app_ils/stats/aggregations/aggr_file_download/{v6 → os-v1}/__init__.py +0 -0
  329. /invenio_app_ils/stats/file_download/{v6 → os-v1}/__init__.py +0 -0
  330. {invenio_app_ils-1.0.0a54.dist-info → invenio_app_ils-6.1.0.dist-info/licenses}/AUTHORS.rst +0 -0
  331. {invenio_app_ils-1.0.0a54.dist-info → invenio_app_ils-6.1.0.dist-info/licenses}/LICENSE +0 -0
@@ -31,9 +31,7 @@ DOCUMENT_REQUEST_PID_FETCHER = "dreqid"
31
31
  DocumentRequestIdProvider = type(
32
32
  "DocumentRequestIdProvider",
33
33
  (RecordIdProviderV2,),
34
- dict(
35
- pid_type=DOCUMENT_REQUEST_PID_TYPE, default_status=PIDStatus.REGISTERED
36
- ),
34
+ dict(pid_type=DOCUMENT_REQUEST_PID_TYPE, default_status=PIDStatus.REGISTERED),
37
35
  )
38
36
  document_request_pid_minter = partial(
39
37
  pid_minter, provider_cls=DocumentRequestIdProvider
@@ -59,15 +57,12 @@ class DocumentRequestValidator(RecordValidator):
59
57
  Document.get_record_by_pid(document_pid)
60
58
  except PIDDoesNotExistError:
61
59
  raise DocumentRequestError(
62
- "The document with PID {} doesn't exist".format(
63
- document_pid
64
- )
60
+ "The document with PID {} doesn't exist".format(document_pid)
65
61
  )
66
62
 
67
63
  def validate_physical_item_provider(self, physical_item_provider):
68
64
  """Validate physical_item_provider existence."""
69
65
  if physical_item_provider:
70
-
71
66
  pid = physical_item_provider.get("pid", None)
72
67
  pid_type = physical_item_provider.get("pid_type", None)
73
68
  if not pid or not pid_type:
@@ -81,17 +76,13 @@ class DocumentRequestValidator(RecordValidator):
81
76
  elif pid_type == BORROWING_REQUEST_PID_TYPE:
82
77
  Provider = current_ils_ill.borrowing_request_record_cls
83
78
  else:
84
- raise DocumentRequestError(
85
- "Unknown pid_type {}".format(pid_type)
86
- )
79
+ raise DocumentRequestError("Unknown pid_type {}".format(pid_type))
87
80
 
88
81
  try:
89
82
  Provider.get_record_by_pid(pid)
90
83
  except PIDDoesNotExistError:
91
84
  raise DocumentRequestError(
92
- "Record with PID {0}:{1} doesn't exist".format(
93
- pid_type, pid
94
- )
85
+ "Record with PID {0}:{1} doesn't exist".format(pid_type, pid)
95
86
  )
96
87
 
97
88
  def validate_decline(self, document_pid, state, decline_reason):
@@ -101,11 +92,7 @@ class DocumentRequestValidator(RecordValidator):
101
92
  "You have to provide a reason when declining a request"
102
93
  )
103
94
 
104
- if (
105
- state == "DECLINING"
106
- and decline_reason == "IN_CATALOG"
107
- and not document_pid
108
- ):
95
+ if state == "DECLINING" and decline_reason == "IN_CATALOG" and not document_pid:
109
96
  raise DocumentRequestError(
110
97
  "Document Request cannot be declined with reason IN_CATALOG "
111
98
  "without providing a document_pid."
@@ -113,9 +100,7 @@ class DocumentRequestValidator(RecordValidator):
113
100
 
114
101
  def validate_accept(self, document_pid, physical_item_provider, state):
115
102
  """Validate accept is correct."""
116
- if state == "ACCEPTED" and (
117
- not document_pid or not physical_item_provider
118
- ):
103
+ if state == "ACCEPTED" and (not document_pid or not physical_item_provider):
119
104
  raise DocumentRequestError(
120
105
  "Need to provide a document_pid and a physical_item_provider "
121
106
  "when accepting a request"
@@ -10,15 +10,9 @@
10
10
  from invenio_app_ils.records.loaders import ils_marshmallow_loader
11
11
 
12
12
  from .jsonschemas.document_request import DocumentRequestSchemaV1
13
- from .jsonschemas.document_request_decline import (
14
- DocumentRequestDeclineSchemaV1,
15
- )
16
- from .jsonschemas.document_request_document import (
17
- DocumentRequestDocumentSchemaV1,
18
- )
19
- from .jsonschemas.document_request_provider import (
20
- DocumentRequestProviderSchemaV1,
21
- )
13
+ from .jsonschemas.document_request_decline import DocumentRequestDeclineSchemaV1
14
+ from .jsonschemas.document_request_document import DocumentRequestDocumentSchemaV1
15
+ from .jsonschemas.document_request_provider import DocumentRequestProviderSchemaV1
22
16
 
23
17
  document_request_loader = ils_marshmallow_loader(DocumentRequestSchemaV1)
24
18
  document_request_document_loader = ils_marshmallow_loader(
@@ -27,6 +21,4 @@ document_request_document_loader = ils_marshmallow_loader(
27
21
  document_request_provider_loader = ils_marshmallow_loader(
28
22
  DocumentRequestProviderSchemaV1
29
23
  )
30
- document_request_decline_loader = ils_marshmallow_loader(
31
- DocumentRequestDeclineSchemaV1
32
- )
24
+ document_request_decline_loader = ils_marshmallow_loader(DocumentRequestDeclineSchemaV1)
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
- # Copyright (C) 2018 CERN.
3
+ # Copyright (C) 2019 CERN.
4
4
  #
5
5
  # invenio-app-ils is free software; you can redistribute it and/or modify it
6
6
  # under the terms of the MIT License; see LICENSE file for more details.
7
7
 
8
- """Invenio App ILS Document Requests ES v6 mappings."""
8
+ """Invenio App ILS Document Requests ES v7 mappings."""
@@ -0,0 +1,196 @@
1
+ {
2
+ "mappings": {
3
+ "date_detection": false,
4
+ "numeric_detection": false,
5
+ "properties": {
6
+ "$schema": {
7
+ "type": "keyword"
8
+ },
9
+ "_created": {
10
+ "type": "date"
11
+ },
12
+ "_updated": {
13
+ "type": "date"
14
+ },
15
+ "authors": {
16
+ "type": "text"
17
+ },
18
+ "document": {
19
+ "properties": {
20
+ "authors": {
21
+ "properties": {
22
+ "affiliations": {
23
+ "properties": {
24
+ "identifiers": {
25
+ "properties": {
26
+ "scheme": {
27
+ "type": "keyword"
28
+ },
29
+ "value": {
30
+ "type": "keyword"
31
+ }
32
+ },
33
+ "type": "object"
34
+ },
35
+ "name": {
36
+ "type": "text",
37
+ "fields": {
38
+ "keyword": {
39
+ "type": "keyword"
40
+ }
41
+ }
42
+ }
43
+ },
44
+ "type": "object"
45
+ },
46
+ "alternative_names": {
47
+ "type": "text",
48
+ "fields": {
49
+ "keyword": {
50
+ "type": "keyword"
51
+ }
52
+ }
53
+ },
54
+ "full_name": {
55
+ "type": "text",
56
+ "fields": {
57
+ "keyword": {
58
+ "type": "keyword"
59
+ }
60
+ }
61
+ },
62
+ "identifiers": {
63
+ "properties": {
64
+ "material": {
65
+ "type": "keyword"
66
+ },
67
+ "scheme": {
68
+ "type": "keyword"
69
+ },
70
+ "value": {
71
+ "type": "keyword"
72
+ }
73
+ },
74
+ "type": "object"
75
+ },
76
+ "roles": {
77
+ "type": "keyword"
78
+ },
79
+ "type": {
80
+ "type": "keyword"
81
+ }
82
+ },
83
+ "type": "object"
84
+ },
85
+ "cover_metadata": {
86
+ "properties": {},
87
+ "type": "object"
88
+ },
89
+ "edition": {
90
+ "type": "text"
91
+ },
92
+ "pid": {
93
+ "type": "keyword"
94
+ },
95
+ "publication_year": {
96
+ "type": "keyword"
97
+ },
98
+ "title": {
99
+ "type": "text",
100
+ "fields": {
101
+ "keyword": {
102
+ "type": "keyword"
103
+ }
104
+ }
105
+ }
106
+ },
107
+ "type": "object"
108
+ },
109
+ "document_pid": {
110
+ "type": "keyword"
111
+ },
112
+ "edition": {
113
+ "type": "keyword"
114
+ },
115
+ "internal_note": {
116
+ "type": "text"
117
+ },
118
+ "isbn": {
119
+ "type": "keyword"
120
+ },
121
+ "issn": {
122
+ "type": "keyword"
123
+ },
124
+ "issue": {
125
+ "type": "keyword"
126
+ },
127
+ "journal_title": {
128
+ "type": "text"
129
+ },
130
+ "legacy_id": {
131
+ "type": "keyword"
132
+ },
133
+ "medium": {
134
+ "type": "keyword"
135
+ },
136
+ "note": {
137
+ "type": "text"
138
+ },
139
+ "page": {
140
+ "type": "keyword"
141
+ },
142
+ "patron_pid": {
143
+ "type": "keyword"
144
+ },
145
+ "payment_info": {
146
+ "type": "keyword"
147
+ },
148
+ "payment_method": {
149
+ "type": "keyword"
150
+ },
151
+ "physical_item_provider": {
152
+ "properties": {
153
+ "pid": {
154
+ "type": "keyword"
155
+ },
156
+ "pid_type": {
157
+ "type": "keyword"
158
+ }
159
+ },
160
+ "type": "object"
161
+ },
162
+ "pid": {
163
+ "type": "keyword"
164
+ },
165
+ "publication_year": {
166
+ "type": "keyword"
167
+ },
168
+ "decline_reason": {
169
+ "type": "keyword"
170
+ },
171
+ "request_type": {
172
+ "type": "keyword"
173
+ },
174
+ "standard_number": {
175
+ "type": "keyword"
176
+ },
177
+ "state": {
178
+ "type": "keyword"
179
+ },
180
+ "title": {
181
+ "type": "text",
182
+ "fields": {
183
+ "keyword": {
184
+ "type": "keyword"
185
+ }
186
+ }
187
+ },
188
+ "volume": {
189
+ "type": "text"
190
+ },
191
+ "publisher": {
192
+ "type": "text"
193
+ }
194
+ }
195
+ }
196
+ }
@@ -0,0 +1,8 @@
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 it
6
+ # under the terms of the MIT License; see LICENSE file for more details.
7
+
8
+ """Invenio App ILS Document Requests ES v7 mappings."""
@@ -0,0 +1,196 @@
1
+ {
2
+ "mappings": {
3
+ "date_detection": false,
4
+ "numeric_detection": false,
5
+ "properties": {
6
+ "$schema": {
7
+ "type": "keyword"
8
+ },
9
+ "_created": {
10
+ "type": "date"
11
+ },
12
+ "_updated": {
13
+ "type": "date"
14
+ },
15
+ "authors": {
16
+ "type": "text"
17
+ },
18
+ "document": {
19
+ "properties": {
20
+ "authors": {
21
+ "properties": {
22
+ "affiliations": {
23
+ "properties": {
24
+ "identifiers": {
25
+ "properties": {
26
+ "scheme": {
27
+ "type": "keyword"
28
+ },
29
+ "value": {
30
+ "type": "keyword"
31
+ }
32
+ },
33
+ "type": "object"
34
+ },
35
+ "name": {
36
+ "type": "text",
37
+ "fields": {
38
+ "keyword": {
39
+ "type": "keyword"
40
+ }
41
+ }
42
+ }
43
+ },
44
+ "type": "object"
45
+ },
46
+ "alternative_names": {
47
+ "type": "text",
48
+ "fields": {
49
+ "keyword": {
50
+ "type": "keyword"
51
+ }
52
+ }
53
+ },
54
+ "full_name": {
55
+ "type": "text",
56
+ "fields": {
57
+ "keyword": {
58
+ "type": "keyword"
59
+ }
60
+ }
61
+ },
62
+ "identifiers": {
63
+ "properties": {
64
+ "material": {
65
+ "type": "keyword"
66
+ },
67
+ "scheme": {
68
+ "type": "keyword"
69
+ },
70
+ "value": {
71
+ "type": "keyword"
72
+ }
73
+ },
74
+ "type": "object"
75
+ },
76
+ "roles": {
77
+ "type": "keyword"
78
+ },
79
+ "type": {
80
+ "type": "keyword"
81
+ }
82
+ },
83
+ "type": "object"
84
+ },
85
+ "cover_metadata": {
86
+ "properties": {},
87
+ "type": "object"
88
+ },
89
+ "edition": {
90
+ "type": "text"
91
+ },
92
+ "pid": {
93
+ "type": "keyword"
94
+ },
95
+ "publication_year": {
96
+ "type": "keyword"
97
+ },
98
+ "title": {
99
+ "type": "text",
100
+ "fields": {
101
+ "keyword": {
102
+ "type": "keyword"
103
+ }
104
+ }
105
+ }
106
+ },
107
+ "type": "object"
108
+ },
109
+ "document_pid": {
110
+ "type": "keyword"
111
+ },
112
+ "edition": {
113
+ "type": "keyword"
114
+ },
115
+ "internal_note": {
116
+ "type": "text"
117
+ },
118
+ "isbn": {
119
+ "type": "keyword"
120
+ },
121
+ "issn": {
122
+ "type": "keyword"
123
+ },
124
+ "issue": {
125
+ "type": "keyword"
126
+ },
127
+ "journal_title": {
128
+ "type": "text"
129
+ },
130
+ "legacy_id": {
131
+ "type": "keyword"
132
+ },
133
+ "medium": {
134
+ "type": "keyword"
135
+ },
136
+ "note": {
137
+ "type": "text"
138
+ },
139
+ "page": {
140
+ "type": "keyword"
141
+ },
142
+ "patron_pid": {
143
+ "type": "keyword"
144
+ },
145
+ "payment_info": {
146
+ "type": "keyword"
147
+ },
148
+ "payment_method": {
149
+ "type": "keyword"
150
+ },
151
+ "physical_item_provider": {
152
+ "properties": {
153
+ "pid": {
154
+ "type": "keyword"
155
+ },
156
+ "pid_type": {
157
+ "type": "keyword"
158
+ }
159
+ },
160
+ "type": "object"
161
+ },
162
+ "pid": {
163
+ "type": "keyword"
164
+ },
165
+ "publication_year": {
166
+ "type": "keyword"
167
+ },
168
+ "decline_reason": {
169
+ "type": "keyword"
170
+ },
171
+ "request_type": {
172
+ "type": "keyword"
173
+ },
174
+ "standard_number": {
175
+ "type": "keyword"
176
+ },
177
+ "state": {
178
+ "type": "keyword"
179
+ },
180
+ "title": {
181
+ "type": "text",
182
+ "fields": {
183
+ "keyword": {
184
+ "type": "keyword"
185
+ }
186
+ }
187
+ },
188
+ "volume": {
189
+ "type": "text"
190
+ },
191
+ "publisher": {
192
+ "type": "text"
193
+ }
194
+ }
195
+ }
196
+ }
@@ -10,10 +10,7 @@
10
10
  from flask import current_app
11
11
  from invenio_records_rest.utils import obj_or_import_string
12
12
 
13
- from invenio_app_ils.notifications.api import (
14
- build_common_msg_ctx,
15
- send_notification,
16
- )
13
+ from invenio_app_ils.notifications.api import build_common_msg_ctx, send_notification
17
14
 
18
15
 
19
16
  def send_document_request_notification(
@@ -27,9 +24,7 @@ def send_document_request_notification(
27
24
  msg_ctx = msg_extra_ctx or {}
28
25
  msg_ctx.update(build_common_msg_ctx(document_request))
29
26
 
30
- func_or_path = current_app.config[
31
- "ILS_NOTIFICATIONS_MSG_BUILDER_DOCUMENT_REQUEST"
32
- ]
27
+ func_or_path = current_app.config["ILS_NOTIFICATIONS_MSG_BUILDER_DOCUMENT_REQUEST"]
33
28
  builder = obj_or_import_string(func_or_path)
34
29
  msg = builder(document_request, action, msg_ctx, **kwargs)
35
30
 
@@ -35,9 +35,7 @@ class NotificationDocumentRequestMsg(NotificationMsg):
35
35
 
36
36
  templates = dict(
37
37
  self.DEFAULT_TEMPLATES,
38
- **current_app.config[
39
- "ILS_NOTIFICATIONS_TEMPLATES_DOCUMENT_REQUEST"
40
- ],
38
+ **current_app.config["ILS_NOTIFICATIONS_TEMPLATES_DOCUMENT_REQUEST"],
41
39
  )
42
40
 
43
41
  if not action:
@@ -72,8 +70,6 @@ class NotificationDocumentRequestMsg(NotificationMsg):
72
70
  return d
73
71
 
74
72
 
75
- def notification_document_request_msg_builder(record, action, msq_extra_ctx,
76
- **kwargs):
73
+ def notification_document_request_msg_builder(record, action, msq_extra_ctx, **kwargs):
77
74
  """Factory builder to create a notification msg."""
78
- return NotificationDocumentRequestMsg(record, action, msq_extra_ctx,
79
- **kwargs)
75
+ return NotificationDocumentRequestMsg(record, action, msq_extra_ctx, **kwargs)
@@ -30,9 +30,7 @@ class DocumentRequestSearch(RecordsSearch):
30
30
  if document_pid:
31
31
  search = search.filter("term", document_pid=document_pid)
32
32
  else:
33
- raise MissingRequiredParameterError(
34
- description="document_pid is required"
35
- )
33
+ raise MissingRequiredParameterError(description="document_pid is required")
36
34
 
37
35
  if filter_states:
38
36
  search = search.filter("terms", state=filter_states)
@@ -48,7 +46,5 @@ class DocumentRequestSearch(RecordsSearch):
48
46
  if patron_pid:
49
47
  search = search.filter("term", patron_pid=patron_pid)
50
48
  else:
51
- raise MissingRequiredParameterError(
52
- description="patron_pid is required"
53
- )
49
+ raise MissingRequiredParameterError(description="patron_pid is required")
54
50
  return search
@@ -35,8 +35,7 @@ def create_document_request_action_blueprint(app):
35
35
  default_media_type = options.get("default_media_type", "")
36
36
  rec_serializers = options.get("record_serializers", {})
37
37
  serializers = {
38
- mime: obj_or_import_string(func)
39
- for mime, func in rec_serializers.items()
38
+ mime: obj_or_import_string(func) for mime, func in rec_serializers.items()
40
39
  }
41
40
 
42
41
  blueprint.add_url_rule(
@@ -58,9 +57,7 @@ def create_document_request_action_blueprint(app):
58
57
  )
59
58
 
60
59
  _add_view(blueprint, DocumentRequestAcceptResource, "accept", None)
61
- _add_view(
62
- blueprint, DocumentRequestDeclineResource, "decline", dr_decline_loader
63
- )
60
+ _add_view(blueprint, DocumentRequestDeclineResource, "decline", dr_decline_loader)
64
61
  _add_view(
65
62
  blueprint,
66
63
  DocumentRequestDocumentResource,
@@ -194,8 +191,7 @@ class DocumentRequestAcceptResource(DocumentRequestActionResource):
194
191
 
195
192
  if "document_pid" not in record:
196
193
  raise DocumentRequestError(
197
- "document_pid is required for the Document Request to be "
198
- "accepted."
194
+ "document_pid is required for the Document Request to be " "accepted."
199
195
  )
200
196
 
201
197
  if "physical_item_provider" not in record:
@@ -251,9 +247,7 @@ class DocumentRequestDeclineResource(DocumentRequestActionResource):
251
247
 
252
248
  if decline_reason == "IN_CATALOG" and not document_pid:
253
249
  raise DocumentRequestError(
254
- "Document PID required for decline reason {}".format(
255
- decline_reason
256
- ),
250
+ "Document PID required for decline reason {}".format(decline_reason),
257
251
  errors=[
258
252
  FieldError(
259
253
  field="document_pid",