From 00350eacb49933644ef4ea41a57b9513329a3fa4 Mon Sep 17 00:00:00 2001 From: Emmi Takkinen Date: Fri, 28 May 2021 11:04:16 +0300 Subject: [PATCH] Bug 23415: Rename OPACFineNoRenewals OPACFineNoRenewals no longer applies just to OPAC. To avoid confusion rename it as FineNoRenewals and also rename all occurences in code. To test, confirm everything works as described in previous test plans. Also prove t/db_dependent/Circulation.t Signed-off-by: Martin Renvoize Signed-off-by: Shi Yao Wang Signed-off-by: Andrew Fuerste Henry Signed-off-by: Martin Renvoize --- C4/Circulation.pm | 2 +- circ/renew.pl | 4 +-- .../data/mysql/atomicupdate/bug_23415.pl | 18 +++++++++++++ installer/data/mysql/mandatory/sysprefs.sql | 2 +- .../admin/preferences/circulation.pref | 7 ++++- .../en/modules/admin/preferences/opac.pref | 8 +----- .../prog/en/modules/circ/circulation.tt | 2 +- .../prog/en/modules/members/moremember.tt | 2 +- opac/opac-user.pl | 4 +-- t/db_dependent/Circulation.t | 27 ++++++++++--------- 10 files changed, 48 insertions(+), 28 deletions(-) create mode 100755 installer/data/mysql/atomicupdate/bug_23415.pl diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 1223afceca..7fdc2cce50 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -5043,7 +5043,7 @@ sub _CanBookBeAutoRenewed { } if ( C4::Context->preference('OPACFineNoRenewalsBlockAutoRenew') ) { - my $fine_no_renewals = C4::Context->preference("OPACFineNoRenewals"); + my $fine_no_renewals = C4::Context->preference("FineNoRenewals"); my $amountoutstanding = C4::Context->preference("OPACFineNoRenewalsIncludeCredits") ? $patron->account->balance diff --git a/circ/renew.pl b/circ/renew.pl index fc527ee997..250b3c1219 100755 --- a/circ/renew.pl +++ b/circ/renew.pl @@ -69,7 +69,7 @@ if ( $op eq 'cud-renew' && $barcode ) { my $borrowernumber = $patron->borrowernumber; $balance = $patron->account->balance; - my $amountlimit = C4::Context->preference("OPACFineNoRenewals"); + my $amountlimit = C4::Context->preference("FineNoRenewals"); if ( ( $patron->is_debarred || q{} ) lt dt_from_string()->ymd() ) { my $confirmations; @@ -142,7 +142,7 @@ if ( $op eq 'cud-renew' && $barcode ) { error => $error, soonestrenewdate => $soonest_renew_date, latestautorenewdate => $latest_auto_renew_date, - balance => $balance, + balance => $balance, ); } diff --git a/installer/data/mysql/atomicupdate/bug_23415.pl b/installer/data/mysql/atomicupdate/bug_23415.pl new file mode 100755 index 0000000000..a4160f16ce --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_23415.pl @@ -0,0 +1,18 @@ +use Modern::Perl; + +return { + bug_number => "23415", + description => "Rename OPACFineNoRenewals", + up => sub { + my ($args) = @_; + my ( $dbh, $out ) = @$args{qw(dbh out)}; + + $dbh->do( + q{ + UPDATE systempreferences SET variable = "FineNoRenewals", explanation = "Fine limit above which user or staff cannot renew items" WHERE variable = "OPACFineNoRenewals"; + } + ); + + say $out "Updated system preference 'OPACFineNoRenewals'"; + }, +}; diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql index 8089b3c021..14f0bc42b3 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -293,6 +293,7 @@ INSERT INTO systempreferences ( `variable`, `value` ) VALUES ('FeeOnChangePatronCategory','1'), ('FilterBeforeOverdueReport','0'), ('FilterSearchResultsByLoggedInBranch','0'), +('FineNoRenewals','100'), ('FineNotifyAtCheckin','0'), ('FinePaymentAutoPopup','0'), ('finesCalendar','noFinesWhenClosed'), @@ -514,7 +515,6 @@ INSERT INTO systempreferences ( `variable`, `value` ) VALUES ('OpacExportOptions','bibtex,dc,marcxml,marc8,utf8,marcstd,mods,ris,isbd'), ('OPACFallback', 'prog'), ('OpacFavicon',''), -('OPACFineNoRenewals','100'), ('OPACFineNoRenewalsBlockAutoRenew','0'), ('OPACFineNoRenewalsIncludeCredits','1'), ('OPACFinesTab','1'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref index 0f7e5b5b6b..b4c363b6d6 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref @@ -509,7 +509,7 @@ Circulation: blockitem: block renewing only for this item. block: block renewing for all the patron's items. - - - If a patron owes more than the value of OPACFineNoRenewals, + - If a patron owes more than the value of FineNoRenewals, - pref: OPACFineNoRenewalsBlockAutoRenew choices: 1: block @@ -574,6 +574,11 @@ Circulation: open: "extend the loan period and set the checkout to be due at the library's open time." close: "shorten the loan period and set the checkout to be due at the library's close time." ignore: "do not consider the library's opening hours." + - + - Only allow patrons or staff to renew items if patron has less than + - pref: FineNoRenewals + class: currency + - [% local_currency %] in fines (leave blank to disable). Lost item policy: - - By default, set the LOST value of an item to diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref index b81af3e1bc..4267d29292 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref @@ -651,18 +651,12 @@ OPAC: none: "NULL" opacrenew: "'OPACRenew'" - as branchcode to store in the statistics table for renewals done in the OPAC. - - - - Only allow patrons to renew their own checkouts on the OPAC if they have less than - - pref: OPACFineNoRenewals - class: currency - - '[% local_currency %] in charges (leave blank to disable).' - -
NOTE: If set, confirmation dialog is shown when renewing for patron with charges from staff interface.' - - pref: OPACFineNoRenewalsIncludeCredits choices: 1: Include 0: "Don't include" - - outstanding/unapplied credits when applying the OPACFineNoRenewals rule to patrons. + - outstanding/unapplied credits when applying the FineNoRenewals rule to patrons. - - pref: OpacHiddenItems type: textarea diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt index a7e58cd309..0472c816f2 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -1133,7 +1133,7 @@ [% UNLESS ( patron.borrowernumber ) %]window.onload=function(){ $('#findborrower').focus(); };[% END %] - var amountlimit = "[% Koha.Preference('OPACFineNoRenewals') | html %]"; + var amountlimit = "[% Koha.Preference('FineNoRenewals') | html %]"; var fines = "[% fines | $Price %]"; var MSG_CONFIRM_RENEW = _("The patron has a debt of %s\nAre you sure you want to renew checkout(s)?").format(fines); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt index 0895e3acf0..bde582dd4f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt @@ -861,7 +861,7 @@ CAN_user_circulate_manage_bookings = [% CAN_user_circulate_manage_bookings | $raw %] patron_borrowernumber = [% patron.borrowernumber | $raw %] - var amountlimit = "[% Koha.Preference('OPACFineNoRenewals') | html %]"; + var amountlimit = "[% Koha.Preference('FineNoRenewals') | html %]"; var fines = "[% fines | $Price %]"; var MSG_CONFIRM_RENEW = _("The patron has a debt of %s\n Are you sure you want to renew checkout(s)?").format(fines); diff --git a/opac/opac-user.pl b/opac/opac-user.pl index 3f1bc9f3d9..7656ebfa96 100755 --- a/opac/opac-user.pl +++ b/opac/opac-user.pl @@ -125,8 +125,8 @@ if ( $userdebarred || $borr->{'gonenoaddress'} || $borr->{'lost'} ) { } my $amountoutstanding = $patron->account->balance; -my $no_renewal_amt = C4::Context->preference('OPACFineNoRenewals'); -$no_renewal_amt = undef unless looks_like_number($no_renewal_amt); +my $no_renewal_amt = C4::Context->preference( 'FineNoRenewals' ); +$no_renewal_amt = undef unless looks_like_number( $no_renewal_amt ); my $amountoutstandingfornewal = C4::Context->preference("OPACFineNoRenewalsIncludeCredits") ? $amountoutstanding diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index 139422effa..5796c3e786 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -1351,9 +1351,9 @@ subtest "CanBookBeRenewed tests" => sub { } } ); - C4::Context->set_preference( 'OPACFineNoRenewalsBlockAutoRenew', '1' ); - C4::Context->set_preference( 'OPACFineNoRenewals', '10' ); - C4::Context->set_preference( 'OPACFineNoRenewalsIncludeCredits', '1' ); + C4::Context->set_preference('OPACFineNoRenewalsBlockAutoRenew','1'); + C4::Context->set_preference('FineNoRenewals','10'); + C4::Context->set_preference('OPACFineNoRenewalsIncludeCredit','1'); my $fines_amount = 5; my $account = Koha::Account->new( { patron_id => $renewing_borrowernumber } ); $account->add_debit( @@ -1365,9 +1365,10 @@ subtest "CanBookBeRenewed tests" => sub { description => "Some fines" } )->status('RETURNED')->store; - ( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $issue ); + ( $renewokay, $error ) = + CanBookBeRenewed( $renewing_borrower_obj, $issue ); is( $renewokay, 1, 'Renew, even if renewal is automatic' ); - is( $error, 'auto_renew', 'Can auto renew, OPACFineNoRenewals=10, patron has 5' ); + is( $error, 'auto_renew', 'Can auto renew, FineNoRenewals=10, patron has 5' ); $account->add_debit( { @@ -1378,9 +1379,10 @@ subtest "CanBookBeRenewed tests" => sub { description => "Some fines" } )->status('RETURNED')->store; - ( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $issue ); + ( $renewokay, $error ) = + CanBookBeRenewed( $renewing_borrower_obj, $issue ); is( $renewokay, 1, 'Renew, even if renewal is automatic' ); - is( $error, 'auto_renew', 'Can auto renew, OPACFineNoRenewals=10, patron has 10' ); + is( $error, 'auto_renew', 'Can auto renew, FineNoRenewals=10, patron has 10' ); $account->add_debit( { @@ -1391,9 +1393,10 @@ subtest "CanBookBeRenewed tests" => sub { description => "Some fines" } )->status('RETURNED')->store; - ( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $issue ); - is( $renewokay, 0, 'Do not renew, renewal is automatic' ); - is( $error, 'auto_too_much_oweing', 'Cannot auto renew, OPACFineNoRenewals=10, patron has 15' ); + ( $renewokay, $error ) = + CanBookBeRenewed( $renewing_borrower_obj, $issue ); + is( $renewokay, 0, 'Do not renew, renewal is automatic' ); + is( $error, 'auto_too_much_oweing', 'Cannot auto renew, FineNoRenewals=10, patron has 15' ); $account->add_credit( { @@ -1407,7 +1410,7 @@ subtest "CanBookBeRenewed tests" => sub { is( $renewokay, 1, 'Renew, even if renewal is automatic' ); is( $error, 'auto_renew', - 'Can auto renew, OPACFineNoRenewals=10, OPACFineNoRenewalsIncludeCredits=1, patron has 15 debt, 5 credit' + 'Can auto renew, FineNoRenewals=10, OPACFineNoRenewalsIncludeCredits=1, patron has 15 debt, 5 credit' ); C4::Context->set_preference( 'OPACFineNoRenewalsIncludeCredits', '0' ); @@ -1415,7 +1418,7 @@ subtest "CanBookBeRenewed tests" => sub { is( $renewokay, 0, 'Do not renew, renewal is automatic' ); is( $error, 'auto_too_much_oweing', - 'Cannot auto renew, OPACFineNoRenewals=10, OPACFineNoRenewalsIncludeCredits=1, patron has 15 debt, 5 credit' + 'Cannot auto renew, FineNoRenewals=10, OPACFineNoRenewalsIncludeCredits=1, patron has 15 debt, 5 credit' ); $dbh->do( 'DELETE FROM accountlines WHERE borrowernumber=?', undef, $renewing_borrowernumber );