https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=41410
--- Comment #33 from Andrew Fuerste-Henry <[email protected]> --- Created attachment 200351 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=200351&action=edit Bug 41410: (follow-up) Decouple exclusivity from LocalHoldsPriority LocalHoldsExclusivity and LocalHoldsPriority are adjacent but distinct features: priority alters *which patron's hold* gets filled first, while exclusivity restricts *which items* may fill a hold during a time window. Each should be usable independently of the other. Changes: - Rename LocalHoldsPriorityExclusivityPeriod to LocalHoldsExclusivityPeriod - Add LocalHoldsExclusivityPatronControl (PickupLibrary/HomeLibrary) - Add LocalHoldsExclusivityItemControl (homebranch/holdingbranch) - HoldsQueue: add _flag_local_holdgroup_matches() that flags local_holdgroup_match on allocated items using hold-group matching and the new exclusivity control prefs, regardless of LocalHoldsPriority - Reserves: CheckReserves exclusivity check now computes its own "is this item local" using the new prefs and hold-group siblings, independent of the LocalHoldsPriority matching variables - Atomicupdate handles both fresh install and rename-from-old-pref paths - Pref UI note clarifies independence from LocalHoldsPriority Test plan: 1. Apply patch, run updatedatabase.pl 2. Verify three new sysprefs exist in Administration > System preferences > Circulation: LocalHoldsExclusivityPeriod, LocalHoldsExclusivityPatronControl, LocalHoldsExclusivityItemControl 3. Set LocalHoldsPriority to "Don't give" (None) 4. Create a library hold group with at least two libraries (e.g. Lib-A, Lib-B) 5. Create a third library (Lib-C) NOT in the hold group 6. Create an item at Lib-B 7. Place a hold for a patron at Lib-A (pickup at Lib-A) 8. Set LocalHoldsExclusivityPeriod to 7, PatronControl to HomeLibrary, ItemControl to homebranch 9. Run the holds queue builder (misc/cronjobs/holds/build_holds_queue.pl) 10. Verify hold_fill_targets.local_holdgroup_match = 1 for that hold (item at Lib-B is in the same hold group as patron at Lib-A) 11. Check in the item at Lib-C — it should NOT fill the hold (exclusivity blocks the non-local item within the 7-day window) 12. Check in the item at Lib-B — it SHOULD fill the hold (local match) 13. Reset: delete the hold, create a new one with a patron at Lib-C (pickup at Lib-C). Run the queue again. 14. Verify hold_fill_targets.local_holdgroup_match = 0 for this hold 15. The item at Lib-B should now fill this hold at Lib-C checkin (non-local patron, no exclusivity protection) 16. Set LocalHoldsExclusivityPeriod to 0 — verify non-local items can fill holds normally regardless of hold_fill_targets flag 17. prove t/db_dependent/Holds/LocalHoldsPriority.t — passes 18. prove t/db_dependent/HoldsQueue.t — passes 19. prove t/db_dependent/Reserves.t — passes Signed-off-by: Trevor Diamond <[email protected]> Signed-off-by: Andrew Fuerste Henry <[email protected]> -- You are receiving this mail because: You are watching all bug changes. _______________________________________________ Koha-bugs mailing list [email protected] https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/
