From d5baeafe8f5bef7c5db15d33a37c75b2c8e4c044 Mon Sep 17 00:00:00 2001 From: Pedro Amorim Date: Tue, 22 Oct 2024 10:48:14 +0000 Subject: [PATCH] Bug 38148: Revert back to get_effective_rule And update the first conditional logic. This patch aims to maintain the logic behind the first patch, but restore get_effective_rule. get_effective_rule_value is using cache and I believe that is the reason why Items.t fail when using that. Test plan: 1) Search for 'music' on OPAC 2) Notice records have the 'place hold' link 3) Visit circulation rules on Staff: /cgi-bin/koha/admin/smart-rules.pl 4) On 'Default checkout, hold and return policy' , under 'Hold policy' pick 'From any library'. Hit 'Save'. 5) Repeat 1). Notice the 'place hold' link is gone. 6) Apply patch. restart plack. Repeat 1). Notice the 'place hold' is shown again Run: $ prove t/db_dependent/Koha/Items.t --- Koha/Items.pm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Koha/Items.pm b/Koha/Items.pm index 8ef9f6f038..dd8d6c47cf 100644 --- a/Koha/Items.pm +++ b/Koha/Items.pm @@ -61,16 +61,13 @@ placing a hold on one of those items. sub filter_by_for_hold { my ($self) = @_; - my $default_rule = Koha::CirculationRules->get_effective_rule_value( + my $default_rule = Koha::CirculationRules->get_effective_rule( { rule_name => 'holdallowed', - itemtype => undef, - branchcode => undef, - categorycode => undef, } ); my @hold_not_allowed_itypes; - if ($default_rule eq 'not_allowed') { + if ( defined $default_rule && $default_rule->rule_value eq 'not_allowed' ) { @hold_not_allowed_itypes = Koha::ItemTypes->search->get_column('itemtype'); my @hold_allowed_itypes = Koha::CirculationRules->search( { -- 2.39.5