LP#1795906: Queue position parity for OPAC and Record -> View Holds UIs user/miker/lp-1795906-queue-position-calculation-parity
authorMike Rylander <mrylander@gmail.com>
Wed, 3 Oct 2018 14:05:09 +0000 (10:05 -0400)
committerMike Rylander <mrylander@gmail.com>
Wed, 3 Oct 2018 14:11:39 +0000 (10:11 -0400)
commit2c3497d8dbacd102f179045d96487a4f50096d2d
treef5d146d6b884680c36cf6be5dedea69bd490cba7
parent23b458fae6425f5547144f15d87f6d1317bc738b
LP#1795906: Queue position parity for OPAC and Record -> View Holds UIs

With the performance driven changes to Hold Shelf and Record -> View Holds
UIs, and backing APIs, there is a discrepancy between conception of queue
position in those UIs and that of others. A simple change will bring other
UIs in line with the new calculation without sacrificing performance in any
of them. In fact, other UIs will be (slightly) faster in most cases.

This change makes all queue position calculations relative to the context
hold's pickup library. This retains the order relative to other directly
relevant holds, though does not show the global position. The initial driver
of this request is parity between the My OPAC queue position, which can
optionally be displayed to patrons, and the Record -> View Holds staff UI.

NOTE: All queue position values are FIFO-based estimates and do not
perfectly model reality, especially in a resource sharing consortium and
even for instances using FIFO hold capture across the board, due to transits,
exceptions, and human staff interaction with the hold queue.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm