From 5b7efc84b36f14875fd7db8e18be5e1de9e5809c Mon Sep 17 00:00:00 2001 From: David Gustafsson Date: Mon, 10 Oct 2022 17:18:03 +0200 Subject: [PATCH] Bug 32496: Optimize OPAC checkouts view --- .../bootstrap/en/modules/opac-user.tt | 2 +- opac/opac-renew.pl | 20 ++++++++++++------- opac/opac-user.pl | 2 +- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt index ca9395d8d9..3a6c0ddd58 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt @@ -405,7 +405,7 @@ [% IF ISSUE.renewed %]Renewed!
[% END %] [% IF ( ISSUE.status ) %] [% IF ( canrenew ) %] - Renew + Renew [% END %] [% IF ISSUE.renewalfee > 0 %] Fee for item type '[% ItemTypes.GetDescription( ISSUE.renewalitemtype) | html %]': [% ISSUE.renewalfee | $Price %] diff --git a/opac/opac-renew.pl b/opac/opac-renew.pl index 9e8efa0c5e..cb7f253290 100755 --- a/opac/opac-renew.pl +++ b/opac/opac-renew.pl @@ -38,8 +38,8 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( query => $query, type => "opac", } -); -my @items = $query->multi_param('item'); +); +my @issues = $query->multi_param('issue'); my $opacrenew = C4::Context->preference("OpacRenewalAllowed"); @@ -55,13 +55,19 @@ if ( $patron->category->effective_BlockExpiredPatronOpacActions } else { my @renewed; - for my $itemnumber (@items) { - my $item = Koha::Items->find($itemnumber); + my $issues = Koha::Checkouts->search( + { + issue_id => { -in => @issues } + }, { + prefetch => 'item' + } + ); + while( my $issue = $issues->next) { my ( $status, $error ) = - CanBookBeRenewed( $patron, $item->checkout ); #TODO: Pass issue numbers instead + CanBookBeRenewed( $patron, $issue ); if ( $status == 1 && $opacrenew == 1 ) { - AddRenewal( $borrowernumber, $itemnumber, undef, undef, undef, undef, 0 ); - push( @renewed, $itemnumber ); + AddRenewal( $borrowernumber, $issue->itemnumber, undef, undef, undef, undef, 0 ); + push( @renewed, $issue->itemnumber ); } else { $errorstring .= $error . "|"; diff --git a/opac/opac-user.pl b/opac/opac-user.pl index 2b079957b9..d59454ce0b 100755 --- a/opac/opac-user.pl +++ b/opac/opac-user.pl @@ -234,7 +234,7 @@ if ( $pending_checkouts->count ) { # Useless test $issue->{'unseencount'}, $issue->{'unseenallowed'}, $issue->{'unseenleft'} - ) = GetRenewCount($borrowernumber, $issue->{'itemnumber'}); + ) = GetRenewCount($patron, $c->item); ( $issue->{'renewalfee'}, $issue->{'renewalitemtype'} ) = GetIssuingCharges( $issue->{'itemnumber'}, $borrowernumber ); $issue->{itemtype_object} = Koha::ItemTypes->find( $c->item->effective_itemtype ); if($status && C4::Context->preference("OpacRenewalAllowed")){ -- 2.35.1