From 6e6f4dcfa0fbcc0d42c81caa2a038c64bf4c067a Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Wed, 25 May 2022 13:23:26 +0000 Subject: [PATCH] Bug 30847: Cleanup calculation of holds and rank MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently we loop over all the holds on the record to get a count of the reserves not waiting and a rank for the upcoming hold We can simply count the number of nont waiting holds and add 1 Note: Before this patch the count of holds included the new hold we were going to place which meant rank and count were the same. I believe countaing existing holds and our upcoming rank is the correct behavior To test: 1 - Set OPACShowHoldQueueDetails system preference to 'Show holds and their priorty level' 2 - Place a few holds on a bib on the staff side 3 - Mark 1 waiting 4 - Attempt to place hold on the bib on the opac 5 - Note 'Your priority' and 'Number of holds' are the same number 6 - Place another hold, confirm both increase 7 - Set another hold waiting, confirm both decrease 8 - Apply patch 9 - Confirm 'Your priority' is now 1 greater than Number of holds 10 - Place a hold, set a hold waiting, confirm numbers adjust as appropriate Signed-off-by: Owen Leonard Rebased-by: Victor Grousset/tuxayo Signed-off-by: Joonas Kylmälä --- opac/opac-reserve.pl | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/opac/opac-reserve.pl b/opac/opac-reserve.pl index 4c9119540b..2ee0f2f1c7 100755 --- a/opac/opac-reserve.pl +++ b/opac/opac-reserve.pl @@ -167,18 +167,9 @@ foreach my $biblioNumber (@biblionumbers) { # Compute the priority rank. $biblioData->{object} = $biblio; - my $holds = $biblio->holds; - my $rank = $holds->count; - $biblioData->{reservecount} = 1; # new reserve - while ( my $hold = $holds->next ) { - if ( $hold->is_waiting ) { - $rank--; - } - else { - $biblioData->{reservecount}++; - } - } - $biblioData->{rank} = $rank + 1; + my $reservecount = $biblio->holds->search({ found => [ {"!=" => "W"},undef] })->count; + $biblioData->{reservecount} = $reservecount; + $biblioData->{rank} = $reservecount + 1; } # -- 2.30.2