Bug 37587

Summary: Wrong priority when placing multiple item-level holds
Product: Koha Reporter: Emily Lamancusa (emlam) <emily.lamancusa>
Component: Hold requestsAssignee: Emily Lamancusa (emlam) <emily.lamancusa>
Status: Needs documenting --- QA Contact: Paul Derscheid <paul.derscheid>
Severity: normal    
Priority: P5 - low CC: dcook, ephetteplace, fridolin.somers, gmcharlt, jheltibridle, kebliss, lucas, paul.derscheid, rcoert
Version: Main   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: ---
Documentation contact: Documentation submission:
Text to go in the release notes:
This fixes an issue that was causing new holds to be added as first priority, rather than last priority, when placing multiple item-level holds at once. Now the holds will be added to the end of the list as expected.
Version(s) released in:
24.11.00,24.05.05
Circulation function:
Bug Depends on: 15565    
Bug Blocks:    
Attachments: Bug 37587: Fix priority of multiple item-level holds
Bug 37587: Fix priority of multiple item-level holds
Bug 37587: Fix priority of multiple item-level holds
Bug 37587: (QA follow-up) Tidy reserve/placerequest.pl

Description Emily Lamancusa (emlam) 2024-08-06 19:53:38 UTC
When placing multiple item-level holds at once, the first hold that is processed is added to the end of the line, but the other holds default to priority 2. They should all be getting added to the bottom of the holds list, not the top.
Comment 1 Emily Lamancusa (emlam) 2024-08-06 20:25:56 UTC
Created attachment 170117 [details] [review]
Bug 37587: Fix priority of multiple item-level holds

The rank parameter is passed per biblio record, not per item. When
placing multiple item-level holds on one bib record, only $rank[0] is
defined.

To test:
1. System preference and circulation rule setup
    i. Set the system preference DisplayMultiItemHolds to Enable
    ii. Edit the default circulation rule to allow 5 holds per record
2. Find or create a bib with 4 or more items
3. Place several bib-level holds
4. Place 4 or more item-level holds at once on that same record
    i. Search for a patron to place the holds for (not one of the
       patrons you used in step 3)
    ii. Select "Hold a specific item"
    iii. Check the checkboxes for 4 or more items
    iv. Click Place hold
--> Note that one of the new item-level holds is at the end of the list
    as it should be, but the rest are out of order
5. Cancel the item-level holds from step 4
6. Apply patch and restart_all
7. Repeat step 4
--> All the new item-level holds are now at the end of the list
Comment 2 David Cook 2024-08-06 23:29:36 UTC
Neato. I'll take a look.
Comment 3 Roman Dolny 2024-08-10 18:25:59 UTC
Created attachment 170224 [details] [review]
Bug 37587: Fix priority of multiple item-level holds

The rank parameter is passed per biblio record, not per item. When
placing multiple item-level holds on one bib record, only $rank[0] is
defined.

To test:
1. System preference and circulation rule setup
    i. Set the system preference DisplayMultiItemHolds to Enable
    ii. Edit the default circulation rule to allow 5 holds per record
2. Find or create a bib with 4 or more items
3. Place several bib-level holds
4. Place 4 or more item-level holds at once on that same record
    i. Search for a patron to place the holds for (not one of the
       patrons you used in step 3)
    ii. Select "Hold a specific item"
    iii. Check the checkboxes for 4 or more items
    iv. Click Place hold
--> Note that one of the new item-level holds is at the end of the list
    as it should be, but the rest are out of order
5. Cancel the item-level holds from step 4
6. Apply patch and restart_all
7. Repeat step 4
--> All the new item-level holds are now at the end of the list

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Comment 4 Paul Derscheid 2024-09-13 15:45:42 UTC
Created attachment 171485 [details] [review]
Bug 37587: Fix priority of multiple item-level holds

The rank parameter is passed per biblio record, not per item. When
placing multiple item-level holds on one bib record, only $rank[0] is
defined.

To test:
1. System preference and circulation rule setup
    i. Set the system preference DisplayMultiItemHolds to Enable
    ii. Edit the default circulation rule to allow 5 holds per record
2. Find or create a bib with 4 or more items
3. Place several bib-level holds
4. Place 4 or more item-level holds at once on that same record
    i. Search for a patron to place the holds for (not one of the
       patrons you used in step 3)
    ii. Select "Hold a specific item"
    iii. Check the checkboxes for 4 or more items
    iv. Click Place hold
--> Note that one of the new item-level holds is at the end of the list
    as it should be, but the rest are out of order
5. Cancel the item-level holds from step 4
6. Apply patch and restart_all
7. Repeat step 4
--> All the new item-level holds are now at the end of the list

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Comment 5 Paul Derscheid 2024-09-13 15:49:39 UTC
Created attachment 171486 [details] [review]
Bug 37587: (QA follow-up) Tidy reserve/placerequest.pl
Comment 6 Katrin Fischer 2024-09-16 08:54:13 UTC
Pushed for 24.11!

Well done everyone, thank you!
Comment 7 Juliet Heltibridle 2024-10-07 16:15:07 UTC
Will this be backported to 24.05?
Comment 8 Lucas Gass (lukeg) 2024-10-09 19:35:28 UTC
Backported to 24.05.x for upcoming 24.05.05
Comment 9 Fridolin Somers 2024-10-21 13:06:42 UTC
Depends on Bug 15565 not in 23.11.x