From 42b1f9b63125a542e72eedc6772829748e2e43d5 Mon Sep 17 00:00:00 2001 From: Arthur Suzuki Date: Tue, 14 Dec 2021 11:44:18 +0100 Subject: [PATCH] Bug 25408: (QA follow-up) This rule should not apply when placing a hold from staff interface --- C4/Reserves.pm | 8 +++++--- .../intranet-tmpl/prog/en/modules/reserve/request.tt | 6 ++---- reserve/placerequest.pl | 2 +- reserve/request.pl | 4 ---- t/db_dependent/Reserves.t | 2 +- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 9b6b1c0c22..9777cf397e 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -341,10 +341,12 @@ sub CanBookBeReserved{ foreach my $itemnumber (@itemnumbers) { $canReserve = CanItemBeReserved( $borrowernumber, $itemnumber, $pickup_branchcode, $params ); - my $opacitemholds = $canReserve->{rights}->{opacitemholds} // 'Y'; - return { status => 'recordHoldNotAllowed' } if $opacitemholds eq 'F'; + if ( C4::Context->interface eq 'opac' ) { + my $opacitemholds = $canReserve->{rights}->{opacitemholds} // 'Y'; + return { status => 'recordHoldNotAllowed' } if $opacitemholds eq 'F'; + return { status => 'OK' } if $canReserve->{status} eq 'recordHoldsOnly'; + } return { status => 'OK' } if $canReserve->{status} eq 'OK'; - return { status => 'OK' } if $canReserve->{status} eq 'recordHoldsOnly'; } return $canReserve; } diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt index e3c7418715..f827863ddf 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -367,7 +367,7 @@ [% END %] - [% IF ( no_reserves_allowed || exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted || recordHoldNotAllowed ) %] + [% IF ( no_reserves_allowed || exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
[% UNLESS ( multi_hold ) %] @@ -389,8 +389,6 @@
  • No items are available to be placed on hold.
  • [% ELSIF ( maxreserves ) %]
  • Too many holds: [% patron.firstname | html %] [% patron.surname | html %] has too many holds.
  • - [% ELSIF ( recordHoldNotAllowed ) %] -
  • Record holds not allowed : [% patron.firstname | html %] [% patron.surname | html %] cannot put a record-level hold on this ressource.
  • [% END # /IF exceeded_maxreserves %] [% ELSE # UNLESS multi_hold %] @@ -566,7 +564,7 @@ [% IF ( patron.borrowernumber ) %] [% IF ( override_required ) %] - [% ELSIF ( none_available || recordHoldNotAllowed ) %] + [% ELSIF ( none_available ) %] [% ELSE %] diff --git a/reserve/placerequest.pl b/reserve/placerequest.pl index 3e048ee3cf..5ee8dce2f6 100755 --- a/reserve/placerequest.pl +++ b/reserve/placerequest.pl @@ -142,7 +142,7 @@ if ( $type eq 'str8' && $borrower ) { } else { # place a request on 1st available for ( my $i = 0 ; $i < $holds_to_place_count ; $i++ ) { - if ( $can_override || CanBookBeReserved($borrower->{'borrowernumber'}, $biblionumber, undef, { context => 'staff' })->{status} eq 'OK' ) { + if ( $can_override || CanBookBeReserved($borrower->{'borrowernumber'}, $biblionumber)->{status} eq 'OK' ) { AddReserve( { branchcode => $branch, diff --git a/reserve/request.pl b/reserve/request.pl index 7885dfa8f9..a635ab1348 100755 --- a/reserve/request.pl +++ b/reserve/request.pl @@ -347,10 +347,6 @@ foreach my $biblionumber (@biblionumbers) { $template->param( $canReserve->{status} => 1); $biblioloopiter{ $canReserve->{status} } = 1; } - elsif ( $canReserve->{status} eq 'recordHoldNotAllowed' ) { - $template->param( $canReserve->{status} => 1 ); - $biblioloopiter{ $canReserve->{status} } = 1; - } else { $biblioloopiter{ $canReserve->{status} } = 1; } diff --git a/t/db_dependent/Reserves.t b/t/db_dependent/Reserves.t index c4afba6424..5c4b0b64df 100755 --- a/t/db_dependent/Reserves.t +++ b/t/db_dependent/Reserves.t @@ -1083,7 +1083,7 @@ subtest 'reserves.item_level_hold' => sub { subtest 'test opacitemholds rules in staff context' => sub { plan tests => 2; - C4::Context->interface('intranet'); + C4::Context->interface('intranet'); Koha::CirculationRules->set_rules( { branchcode => undef, -- 2.34.1