[Koha-bugs] [Bug 20985] CanBookBeReserved and CanItemBeReserved should check 'On shelf holds allowed' policy

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Wed Aug 23 16:40:22 CEST 2023


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=20985

Julian Maurice <julian.maurice at biblibre.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #121485|0                           |1
        is obsolete|                            |
 Attachment #121486|0                           |1
        is obsolete|                            |

--- Comment #50 from Julian Maurice <julian.maurice at biblibre.com> ---
Created attachment 154711
  -->
https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=154711&action=edit
Bug 20985: Add OnShelfHoldsAllowed checks to CanItemBeReserved

The expected behaviour for "On shelf holds allowed" setting for the
circulation rules (Koha administration > Patrons and circulation >
Circulation and fines rules):
- Allow holds only on items that are currently checked out or otherwise
  unavailable.
- If set to "Yes", patrons can place holds on items currently checked
  in.
- If set to "If any unavailable", patrons can only place holds on items
  that are not unavailable.
- If set to "If all unavailable", patrons can only place holds on items
  where *all* items on the record are unavailable.
(Adapted from
https://bywatersolutions.com/education/preparing-for-library-closures)

These rules should also work when using ILS-DI, but currently they
don't. This bug makes sure that the "On shelf holds allowed" rules work
correctly when using ILS-DI to place holds.

Test plan
---------

1. Enable ILS-DI (set the ILS-DI system preference to Enable).

2. Go to Koha administration > Patrons and circulation > Circulation and
   fines rules.

3. Work through steps 4-5 for each of the settings for "On shelf holds
   allowed" for all libraries/patron categories/item types:
   "Yes", "If any unavailable", and "If all unavailable"

4. Staff interface - place a hold on a record with items available for
   loan, the rules should work as expected before and after the patch is
   applied:
     "Yes":
       information column in the item table displays "Not on hold", the
       hold is placed, cancel the hold

     "If any unavailable" and "If all unavailable":
       the hold is not placed, message is "Cannot place hold. No items
       are available to be placed on hold.", red "X" in the hold column
       and the information column displays "Not on hold"

5. ILS-DI - place a hold on a record with items available for loan
   (note: without the patch, holds can be placed):
   - Query to place a hold using ILS-DI on a title that have all its
     items available, example query:

    
http://127.0.0.1:8080/cgi-bin/koha/ilsdi.pl?service=HoldTitle&patron_id=1&bib_id=1&request_location=127.0.0.1

     Without the patch the hold is placed but it shouldn't be allowed,
     cancel the hold

   - Query to place a hold using ILS-DI on an available item, example
     query:

    
http://127.0.0.1:8080/cgi-bin/koha/ilsdi.pl?service=HoldItem&patron_id=1&bib_id=1&item_id=1)

     Without the patch the hold is placed but it shouldn't be allowed,
     cancel the hold

6. Run the tests in t/db_dependent/Reserves.t - these should pass.

7. Apply the patch, flush the cache and restart Koha (if using
   koha-testing-docker, run flush_memcached and restart_all)

8. Run through steps 3-6 again, and note the changes when "If any
   unavailable" and "If all unavailable" options are used:
     For the staff interface:
       there should be no change in behavour and should work as
       expected, for the red "X" in the items table additional text is
       added "onShelfHoldsNotAllowed".

     For ILS-DI:
       these should now work as expected, with holds not placed, and
       this message in the results returned
       <code>onShelfHoldsNotAllowed</code> (check to confirm no holds
       place for either the patron or the item)

     Tests:
       should still pass, in particular the following tests:
       - t/db_dependent/Reserves.t
       - t/db_dependent/Holds.t
       - t/db_dependent/Holds/DisallowHoldIfItemsAvailable.t
       - t/db_dependent/api/v1/holds.t
       - t/db_dependent/ILSDI_Services.t
       - t/db_dependent/Reserves/MultiplePerRecord.t
       - t/db_dependent/Reserves/IsOnShelfHoldsPolicySatisfied.t (new
         test file)

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list