invenio-circulation 4.0.0
Invenio Circulation Module
License: MIT
Requires Python: >=3.8
Keywords: invenio-circulation Invenio

..
    Copyright (C) 2018 CERN.
    Copyright (C) 2018 RERO.
    Invenio-Circulation is free software; you can redistribute it and/or modify it
    under the terms of the MIT License; see LICENSE file for more details.

=====================
 Invenio-Circulation
=====================

.. image:: https://img.shields.io/travis/inveniosoftware/invenio-circulation.svg
        :target: https://travis-ci.org/inveniosoftware/invenio-circulation

.. image:: https://img.shields.io/coveralls/inveniosoftware/invenio-circulation.svg
        :target: https://coveralls.io/r/inveniosoftware/invenio-circulation

.. image:: https://img.shields.io/github/tag/inveniosoftware/invenio-circulation.svg
        :target: https://github.com/inveniosoftware/invenio-circulation/releases

.. image:: https://img.shields.io/pypi/dm/invenio-circulation.svg
        :target: https://pypi.python.org/pypi/invenio-circulation

.. image:: https://img.shields.io/github/license/inveniosoftware/invenio-circulation.svg
        :target: https://github.com/inveniosoftware/invenio-circulation/blob/master/LICENSE

Invenio module for the circulation of bibliographic items.

*This is an experimental developer preview release.*

TODO: Please provide feature overview of module

Further documentation is available on
https://invenio-circulation.readthedocs.io/

..
    Copyright (C) 2018-2025 CERN.
    Copyright (C) 2018-2020 RERO.
    Invenio-Circulation is free software; you can redistribute it and/or modify it
    under the terms of the MIT License; see LICENSE file for more details.

Changes
=======

Version v4.0.0 (released 2025-11-24)

- tests: drop support for testing postgresql13
- tests: make use of inveniosoftware standard ci workflow
- index: add `extra_data` property to loan mapping
- (breaking) global: make first parameter of `loan_state_changed` signal the `current_object`
- chore: add commit that formats project with black to `git-blame-ignore-refs`
- chore: format code with black

Version v3.0.0a1 (released 2023-12-05)

- breaking change: drop ES6 compatibility
- installation: upgrade to opensearch
- installation: upgrade invenio packages
- installation: move to setup.cfg
- CI: update test matrix


Version v2.0.0a1 (released 2023-03-07)

- opensearch: create opensearch v1 and v2 mappings.

Version v1.0.0a36 (released 2022-02-21)

- Fix invenio_base.api_blueprints in setup.py

Version 1.0.0a35 (released 2021-11-26)

- Made compatibility changes for werkzeug 2
- Bumped Sphinx

Version 1.0.0a34 (released 2021-10-26)

- make "same location" check overridable

Version 1.0.0a33 (released 2021-09-30)

- transition kwargs : change signature in signal

Version 1.0.0a32 (released 2021-09-30)

- update dependencies
- add additional kwargs to transition after method
- add additional kwargs to after transition signal

Version 1.0.0a31 (released 2021-05-05)

- fix default transaction date on loan loader

Version 1.0.0a30 (released 2021-01-27)

- fix default loan state assignment

Version 1.0.0a29 (released 2020-11-26)

- set transaction date default value in marshamallow loader to fix bug with start date

Version 1.0.0a28 (released 2020-10-09)

- fixes how the overridden records REST endpoint configuration was retrieved
  in the loan actions and replace item custom endpoints.
- removes support for Elasticsearch 5
- adds support for Python 3.7 and 3.8

Version 1.0.0a27 (released 2020-09-15)

- fixes the loan record update method not working properly with custom fields

Version 1.0.0a26 (released 2020-07-17)

- fixes `initial_loan`, a copy of loan before transition, to be a local
  variable instead of a Transition object property.

Version 1.0.0a25 (released 2020-06-18)

- adds config CIRCULATION_LOAN_LOCATIONS_VALIDATION to allow validation
  of loan locations

Version 1.0.0a24 (released 2020-05-25)

- fixes the way the default module configuration is defined to allow
  overriding it from the Invenio app

Version 1.0.0a23 (released 2020-05-22)

- renames signals parameter from `prev_loan` to `initial_loan`
- adds an extra parameter `initial_loan` to the default duration functions
  in checkout policies

Version 1.0.0a22 (released 2020-05-22)

- adds additional checks when transitioning loans from and to Item at Desk
- removes example app and updates Invenio modules dependencies

Version 1.0.0a21 (released 2020-01-23)

- introduces `pid_type` for `item_pid` to uniquely identify an Item record
- changes methods that were expecting `item_pid`
- removed unused view circulation/items to retrieve the item from the loan

Version 1.0.0a20 (released 2019-11-01)

- adds a JSON resolver for the document of the loan

Version 1.0.0a19 (released 2019-09-27)

- adds a JSON resolver for the patron of the loan
- fixes deserialization bug on loan REST loader when a date/datetime
  field is missing

Version 1.0.0a18 (released 2019-09-26)

- handle date/time record fields as datetime object internally
- add `request_start_date` field to loan schema
- automatic assignement of item on request is now configurable
- add marshmallow loader for REST endpoint
- add support to ES7
- drop support for Python 2
- bugfixes

Version 1.0.0a17 (released 2019-09-13)

- add `delivery` object to the `loan` schema
- pin invenio-records-rest version to ensure compatibility with python 3
  and marshmallow 3

Version 1.0.0a16 (released 2019-08-09)

- change loan duration from number of days as int to timedelta

Version 1.0.0a15 (released 2019-08-07)

- remove ES 2 support
- change `loan_pid` to `pid` schema field

Version 1.0.0a14 (released 2019-06-24)

- now allows loans to be created solely on document_pid
- refactored and added more tests for transitions

Version 1.0.0a13 (released 2019-04-24)

- fixed item reference attachment on checkout

Version 1.0.0a12 (released 2019-04-17)

- Renamed is_item_available circulation policy to item_can_circulate.

Version 1.0.0a11 (released 2019-03-29)

- Add sort options to search api

Version 1.0.0a10 (released 2019-03-27)

- Fix for permissions check


Version 1.0.0a9 (released 2019-03-25)

- Introduce Circulation Exceptions

Version 1.0.0a8 (released 2019-03-06)

- Introduce `request` policy.
- Pass previous loan and trigger name on the state change signal.

Version 1.0.0a7 (released 2019-02-25)

- Replace item_pid with loan_pid in $ref Loan schema.

Version 1.0.0a6 (released 2019-02-04)

- Force user to implement configuration utils functions instead of returning a
  dummy value.

Version 1.0.0a5 (released 2019-01-28)

- Add config for defining loan `completed` state.

Version 1.0.0a4 (released 2019-01-26)

- Loan replace item endpoint.

Version 1.0.0a3 (released 2019-01-18)

- Creating item reference only when item pid is attached.

Version 1.0.0a2 (released 2019-01-18)

- Adding support for creating a reference inside `Loan` record to an item.

Version 1.0.0a1 (released 2018-12-04)

- Initial public release.