Bugzilla – Attachment 91960 Details for
Bug 18936
Move issuingrules into circulation_rules
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 18936: (follow-up) fix tests, null vs. empty behavior for limiting rules
Bug-18936-follow-up-fix-tests-null-vs-empty-behavi.patch (text/plain), 9.42 KB, created by
Jonathan Druart
on 2019-08-04 20:09:53 UTC
(
hide
)
Description:
Bug 18936: (follow-up) fix tests, null vs. empty behavior for limiting rules
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2019-08-04 20:09:53 UTC
Size:
9.42 KB
patch
obsolete
>From 5a1ce07ce37f8e9127f71917473afae4cffb8114 Mon Sep 17 00:00:00 2001 >From: Jesse Weaver <pianohacker@gmail.com> >Date: Mon, 29 Jan 2018 15:54:40 -0700 >Subject: [PATCH] Bug 18936: (follow-up) fix tests, null vs. empty behavior for > limiting rules > >--- > C4/Circulation.pm | 4 +- > admin/smart-rules.pl | 9 ++-- > installer/data/mysql/atomicupdate/bug_18936.perl | 4 +- > .../prog/en/modules/admin/smart-rules.tt | 4 +- > t/db_dependent/Circulation.t | 49 ++++++++++++---------- > t/db_dependent/Circulation/TooMany.t | 2 +- > 6 files changed, 41 insertions(+), 31 deletions(-) > >diff --git a/C4/Circulation.pm b/C4/Circulation.pm >index 2b86bc0a7e..d83e3bf4f8 100644 >--- a/C4/Circulation.pm >+++ b/C4/Circulation.pm >@@ -476,7 +476,7 @@ sub TooMany { > my $max_checkouts_allowed = $maxissueqty_rule ? $maxissueqty_rule->rule_value : undef; > my $max_onsite_checkouts_allowed = $maxonsiteissueqty_rule ? $maxonsiteissueqty_rule->rule_value : undef; > >- if ( $onsite_checkout and defined $max_onsite_checkouts_allowed ) { >+ if ( $onsite_checkout and $max_onsite_checkouts_allowed ne '' ) { > if ( $onsite_checkout_count >= $max_onsite_checkouts_allowed ) { > return { > reason => 'TOO_MANY_ONSITE_CHECKOUTS', >@@ -2276,7 +2276,7 @@ sub _debar_user_on_return { > # If the max suspension days is < than the suspension days > # the suspension days is limited to this maximum period. > my $max_sd = $issuing_rule->{maxsuspensiondays}; >- if ( defined $max_sd ) { >+ if ( defined $max_sd && $max_sd ne '' ) { > $max_sd = DateTime::Duration->new( days => $max_sd ); > $suspension_days = $max_sd > if DateTime::Duration->compare( $max_sd, $suspension_days ) < 0; >diff --git a/admin/smart-rules.pl b/admin/smart-rules.pl >index 67f72e6c83..8a228075b1 100755 >--- a/admin/smart-rules.pl >+++ b/admin/smart-rules.pl >@@ -253,6 +253,7 @@ elsif ($op eq 'add') { > my $finedays = $input->param('finedays'); > my $maxsuspensiondays = $input->param('maxsuspensiondays'); > $maxsuspensiondays = undef if $maxsuspensiondays eq q||; >+ $maxsuspensiondays = '' if $maxsuspensiondays eq q||; > my $suspension_chargeperiod = $input->param('suspension_chargeperiod') || 1; > my $firstremind = $input->param('firstremind'); > my $chargeperiod = $input->param('chargeperiod'); >@@ -262,11 +263,11 @@ elsif ($op eq 'add') { > my $renewalsallowed = $input->param('renewalsallowed'); > my $renewalperiod = $input->param('renewalperiod'); > my $norenewalbefore = $input->param('norenewalbefore'); >- $norenewalbefore = undef if $norenewalbefore =~ /^\s*$/; >+ $norenewalbefore = '' if $norenewalbefore =~ /^\s*$/; > my $auto_renew = $input->param('auto_renew') eq 'yes' ? 1 : 0; > my $no_auto_renewal_after = $input->param('no_auto_renewal_after'); >- $no_auto_renewal_after = undef if $no_auto_renewal_after =~ /^\s*$/; >- my $no_auto_renewal_after_hard_limit = $input->param('no_auto_renewal_after_hard_limit') || undef; >+ $no_auto_renewal_after = '' if $no_auto_renewal_after =~ /^\s*$/; >+ my $no_auto_renewal_after_hard_limit = $input->param('no_auto_renewal_after_hard_limit') || ''; > $no_auto_renewal_after_hard_limit = eval { dt_from_string( $input->param('no_auto_renewal_after_hard_limit') ) } if ( $no_auto_renewal_after_hard_limit ); > $no_auto_renewal_after_hard_limit = output_pref( { dt => $no_auto_renewal_after_hard_limit, dateonly => 1, dateformat => 'iso' } ) if ( $no_auto_renewal_after_hard_limit ); > my $reservesallowed = $input->param('reservesallowed'); >@@ -289,7 +290,7 @@ elsif ($op eq 'add') { > my $rentaldiscount = $input->param('rentaldiscount'); > my $opacitemholds = $input->param('opacitemholds') || 0; > my $article_requests = $input->param('article_requests') || 'no'; >- my $overduefinescap = $input->param('overduefinescap') || undef; >+ my $overduefinescap = $input->param('overduefinescap') || ''; > my $cap_fine_to_replacement_price = $input->param('cap_fine_to_replacement_price') eq 'on'; > my $note = $input->param('note'); > $debug and warn "Adding $br, $bor, $itemtype, $fine, $maxissueqty, $maxonsiteissueqty, $cap_fine_to_replacement_price"; >diff --git a/installer/data/mysql/atomicupdate/bug_18936.perl b/installer/data/mysql/atomicupdate/bug_18936.perl >index b420fce6f3..935f71844c 100644 >--- a/installer/data/mysql/atomicupdate/bug_18936.perl >+++ b/installer/data/mysql/atomicupdate/bug_18936.perl >@@ -27,13 +27,15 @@ if( CheckVersion( $DBversion ) ) { > onshelfholds > opacitemholds > article_requests >+ maxissueqty >+ maxonsiteissueqty > ); > > if ( column_exists( 'issuingrules', 'categorycode' ) ) { > foreach my $column ( @columns ) { > $dbh->do(" > INSERT INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value ) >- SELECT categorycode, branchcode, itemtype, \'$column\', $column >+ SELECT categorycode, branchcode, itemtype, \'$column\', COALESCE( $column, '' ) > FROM issuingrules > "); > } >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt >index 2793305d64..819b1fbb31 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt >@@ -185,14 +185,14 @@ > [% ELSE %]<span> </span>[% END %] > </td> > <td> >- [% IF maxissueqty %] >+ [% IF maxissueqty.defined && maxissueqty != '' %] > [% maxissueqty %] > [% ELSE %] > <span>Unlimited</span> > [% END %] > </td> > <td> >- [% IF maxonsiteissueqty %] >+ [% IF maxonsiteissueqty.defined && maxonsiteissueqty != '' %] > [% maxonsiteissueqty %] > [% ELSE %] > <span>Unlimited</span> >diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t >index 232e5d7e8a..4c7d090c98 100755 >--- a/t/db_dependent/Circulation.t >+++ b/t/db_dependent/Circulation.t >@@ -893,7 +893,17 @@ subtest "CanBookBeRenewed tests" => sub { > } > }); > >- $dbh->do('UPDATE issuingrules SET norenewalbefore = 10, no_auto_renewal_after = 11'); >+ Koha::CirculationRules->set_rules( >+ { >+ categorycode => undef, >+ branchcode => undef, >+ itemtype => undef, >+ rules => { >+ norenewalbefore => 10, >+ no_auto_renewal_after => 11, >+ } >+ } >+ ); > > my $ten_days_before = dt_from_string->add( days => -10 ); > my $ten_days_ahead = dt_from_string->add( days => 10 ); >@@ -2969,26 +2979,23 @@ subtest 'CanBookBeIssued | is_overdue' => sub { > plan tests => 3; > > # Set a simple circ policy >- $dbh->do('DELETE FROM issuingrules'); >- $dbh->do( >- q{INSERT INTO issuingrules (categorycode, branchcode, itemtype, reservesallowed, >- issuelength, lengthunit, >- renewalsallowed, renewalperiod, >- norenewalbefore, auto_renew, >- fine, chargeperiod) >- VALUES (?, ?, ?, ?, >- ?, ?, >- ?, ?, >- ?, ?, >- ?, ? >- ) >- }, >- {}, >- '*', '*', '*', 25, >- 14, 'days', >- 1, 7, >- undef, 0, >- .10, 1 >+ Koha::CirculationRules->set_rules( >+ { >+ categorycode => undef, >+ branchcode => undef, >+ itemtype => undef, >+ rules => { >+ reservesallowed => 25, >+ issuelength => 14, >+ lengthunit => 'days', >+ renewalsallowed => 1, >+ renewalperiod => 7, >+ norenewalbefore => undef, >+ auto_renew => 0, >+ fine => .10, >+ chargeperiod => 1, >+ } >+ } > ); > > my $five_days_go = output_pref({ dt => dt_from_string->add( days => 5 ), dateonly => 1}); >diff --git a/t/db_dependent/Circulation/TooMany.t b/t/db_dependent/Circulation/TooMany.t >index 817f539c4d..2b2ac1b230 100644 >--- a/t/db_dependent/Circulation/TooMany.t >+++ b/t/db_dependent/Circulation/TooMany.t >@@ -163,7 +163,7 @@ subtest '1 Issuingrule exist with onsiteissueqty=unlimited' => sub { > { > branchcode => $branch->{branchcode}, > categorycode => $category->{categorycode}, >- itemtype => '*', >+ itemtype => undef, > rules => { > maxissueqty => 1, > maxonsiteissueqty => undef, >-- >2.11.0
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 18936
:
65247
|
65248
|
65249
|
67629
|
67758
|
68236
|
71034
|
71035
|
71036
|
71037
|
71038
|
71039
|
71040
|
71041
|
72230
|
72231
|
72232
|
72233
|
72234
|
72235
|
72236
|
72237
|
72238
|
91953
|
91954
|
91955
|
91956
|
91957
|
91958
|
91959
|
91960
|
91961
|
91962
|
91963
|
91964
|
91965
|
91966
|
91967
|
91968
|
91969
|
91970
|
91971
|
91972
|
91973
|
91974
|
91975
|
94179
|
94180
|
94181
|
94182
|
94183
|
94184
|
94185
|
94186
|
94187
|
94188
|
94189
|
94190
|
94191
|
94192
|
94193
|
94194
|
94195
|
94196
|
94197
|
94198
|
94199
|
94200
|
98299
|
98300
|
98301
|
98302
|
98303
|
98304
|
98305
|
98306
|
98307
|
98308
|
98309
|
98310
|
98311
|
98312
|
98313
|
98314
|
98315
|
98316
|
98317
|
98318
|
98319
|
98320
|
98321
|
98322
|
98323
|
98324
|
98325
|
98326
|
98327
|
98328
|
98329
|
98330
|
98331
|
98332
|
98333
|
98334
|
98335
|
98336
|
98337
|
98338
|
98339
|
98340
|
98341
|
98342
|
98343
|
98344
|
98345
|
98346
|
98347
|
98407
|
98408