Bugzilla – Attachment 138940 Details for
Bug 30847
Cleanup opac-reserve.pl
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 30847: Don't get biblio/item info when placing holds
Bug-30847-Dont-get-biblioitem-info-when-placing-ho.patch (text/plain), 4.88 KB, created by
Owen Leonard
on 2022-08-09 17:32:57 UTC
(
hide
)
Description:
Bug 30847: Don't get biblio/item info when placing holds
Filename:
MIME Type:
Creator:
Owen Leonard
Created:
2022-08-09 17:32:57 UTC
Size:
4.88 KB
patch
obsolete
>From a30900c1560e5433dadfc05a5c86dd60f51af4c8 Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Wed, 25 May 2022 14:44:50 +0000 >Subject: [PATCH] Bug 30847: Don't get biblio/item info when placing holds > >The only bit we get form the hash is the rank and title >We can simply fetch the biblio once to calculate >no need to fetch all the info as we don't display or use it > >Signed-off-by: Owen Leonard <oleonard@myacpl.org> >--- > opac/opac-reserve.pl | 92 ++++++++++++++++++++++---------------------- > 1 file changed, 45 insertions(+), 47 deletions(-) > >diff --git a/opac/opac-reserve.pl b/opac/opac-reserve.pl >index 26ca983065..1efcdf0743 100755 >--- a/opac/opac-reserve.pl >+++ b/opac/opac-reserve.pl >@@ -130,49 +130,7 @@ $template->param( branch => $branch ); > > # > # >-# Build hashes of the requested biblio(item)s and items. >-# >-# >- >-my %biblioDataHash; # Hash of biblionumber to biblio/biblioitems record. >-foreach my $biblioNumber (@biblionumbers) { >- >- my $biblioData = GetBiblioData($biblioNumber); >- $biblioDataHash{$biblioNumber} = $biblioData; >- >- my $biblio = Koha::Biblios->find( $biblioNumber ); >- next unless $biblio; >- >- my $marcrecord = $biblio->metadata->record; >- >- my $items = >- $biblio->items->filter_by_visible_in_opac( { patron => $patron } ); >- my $host_items = >- $biblio->host_items->filter_by_visible_in_opac( { patron => $patron } ); >- $items = $biblio->items->search_ordered( >- { >- itemnumber => { >- -in => [ >- $items->get_column('itemnumber'), >- $host_items->get_column('itemnumber') >- ] >- } >- } >- ); >- >- $biblioData->{items} = [$items->as_list]; # FIXME Potentially a lot in memory here! >- >- # Compute the priority rank. >- $biblioData->{object} = $biblio; >- my $reservecount = $biblio->holds->search({ found => [ {"!=" => "W"},undef] })->count; >- $biblioData->{reservecount} = $reservecount; >- $biblioData->{rank} = $reservecount + 1; >-} >- >-# >-# >-# If this is the second time through this script, it >-# means we are carrying out the hold request, possibly >+# Here we are carrying out the hold request, possibly > # with a specific item for each biblionumber. > # > # >@@ -245,8 +203,6 @@ if ( $query->param('place_reserve') ) { > $biblioNum = $item->biblionumber; > } > >- my $biblioData = $biblioDataHash{$biblioNum}; >- > # Check for user supplied reserve date > my $startdate; > if ( C4::Context->preference('AllowHoldDateInFuture') >@@ -260,7 +216,8 @@ if ( $query->param('place_reserve') ) { > my $itemtype = $query->param('itemtype') || undef; > $itemtype = undef if $itemNum; > >- my $rank = $biblioData->{rank}; >+ my $biblio = Koha::Biblios->find($biblioNum); >+ my $rank = $biblio->holds->search( { found => [ { "!=" => "W" }, undef ] } )->count + 1; > if ( $item ) { > $canreserve = 1 if CanItemBeReserved( $patron, $item, $branch )->{status} eq 'OK'; > } >@@ -299,7 +256,7 @@ if ( $query->param('place_reserve') ) { > reservation_date => $startdate, > expiration_date => $patron_expiration_date, > notes => $notes, >- title => $biblioData->{title}, >+ title => $biblio->title, > itemnumber => $itemNum, > found => undef, > itemtype => $itemtype, >@@ -314,6 +271,47 @@ if ( $query->param('place_reserve') ) { > exit; > } > >+# >+# >+# Build hashes of the requested biblio(item)s and items. >+# >+# >+ >+my %biblioDataHash; # Hash of biblionumber to biblio/biblioitems record. >+foreach my $biblioNumber (@biblionumbers) { >+ >+ my $biblioData = GetBiblioData($biblioNumber); >+ $biblioDataHash{$biblioNumber} = $biblioData; >+ >+ my $biblio = Koha::Biblios->find( $biblioNumber ); >+ next unless $biblio; >+ >+ my $marcrecord = $biblio->metadata->record; >+ >+ my $items = >+ $biblio->items->filter_by_visible_in_opac( { patron => $patron } ); >+ my $host_items = >+ $biblio->host_items->filter_by_visible_in_opac( { patron => $patron } ); >+ $items = $biblio->items->search_ordered( >+ { >+ itemnumber => { >+ -in => [ >+ $items->get_column('itemnumber'), >+ $host_items->get_column('itemnumber') >+ ] >+ } >+ } >+ ); >+ >+ $biblioData->{items} = [$items->as_list]; # FIXME Potentially a lot in memory here! >+ >+ # Compute the priority rank. >+ $biblioData->{object} = $biblio; >+ my $reservecount = $biblio->holds->search({ found => [ {"!=" => "W"},undef] })->count; >+ $biblioData->{reservecount} = $reservecount; >+ $biblioData->{rank} = $reservecount + 1; >+} >+ > # > # > # Here we check that the borrower can actually make reserves Stage 1. >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 30847
:
135340
|
135341
|
135342
|
135343
|
135344
|
135345
|
135346
|
135347
|
135348
|
137668
|
137669
|
137670
|
137671
|
137672
|
137673
|
137674
|
137675
|
138654
|
138655
|
138934
|
138935
|
138936
|
138937
|
138938
|
138939
|
138940
|
138941
|
139628
|
139629
|
139630
|
139631
|
139632
|
139633
|
139634
|
139635
|
139915
|
139916
|
139917
|
139918
|
139919
|
139920
|
139921
|
139922
|
139923