Josh, I don't know what the intention was when the new hold targeter was written, but I think it is potentially a bug.
Would you mind opening a bug on Launchpad? Jason On 4/29/20 11:13 PM, Josh Stompro wrote: > Hello, we have been doing curbside pickup, along with using the > emergency closing handler to mark all of our locations closed. > > I was just told that some holds have not been targeting the local > copies... which led me to notice that the expected item was getting > skipped with a log entry of "skipping copy X at closed org". That led > me to see that we had the following Library Settings set. > > Target copies for a hold even if copy's circ lib is closed = True > Target copies for a hold even if copy's circ lib is closed IF the circ > lib is the hold's pickup lib = False > > Now, with the old targeter, this seemed to work fine because the second > setting was checked, and if it was false the first setting was checked > as a fallback. (Could someone check my interpretation of the old logic > though.) > https://github.com/evergreen-library-system/Evergreen/blob/7f48513889098e47ee4a9d1b7cdbf5d5fe2ca8bb/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm#L1362 > > The new targeter doesn't seem to have the same fallthrough logic. If > the circ_lib matches the pickup lib then only > the circ.holds.target_when_closed_if_at_pickup_lib setting is checked. > https://github.com/evergreen-library-system/Evergreen/blob/47f5ddaa8b029d41c710255380260614ef7ea6ae/Open-ILS/src/perlmods/lib/OpenILS/Utils/HoldTargeter.pm#L705 > > I would think this would have caused more havok than it did, but I found > that because of bug 1868837, in many cases the local copy was still > being selected, so there were still quite a few items being pulled for > customers at the same location. > https://bugs.launchpad.net/evergreen/+bug/1868837 > > I don't know if this behavior change is really a bug or not. It made > sense to me that the circ.holds.target_when_closed would take effect if > the circ.holds.target_when_closed_if_at_pickup_lib setting was set to > false, but the current way is perhaps clearer since you don't have to > know about the fallthrough behavior. > > After I changed the circ.holds.target_when_closed_if_at_pickup_lib > setting to true and reset all the holds and retargeted, everything again > works as expected. > > Josh > > -- > Josh Stompro - IT Director > Lake Agassiz Regional Library > Desk: 218-233-3757 Ext 139 > Cell: 218-790-2110
