Bugzilla – Attachment 142432 Details for
Bug 12446
Enable an adult to have a guarantor
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 12446: Ability to allow guarantor relationship for all patron category types
Bug-12446-Ability-to-allow-guarantor-relationship-.patch (text/plain), 11.99 KB, created by
geraud.frappier
on 2022-10-21 18:03:30 UTC
(
hide
)
Description:
Bug 12446: Ability to allow guarantor relationship for all patron category types
Filename:
MIME Type:
Creator:
geraud.frappier
Created:
2022-10-21 18:03:30 UTC
Size:
11.99 KB
patch
obsolete
>From ada7ca0116dcb1ba350ecc9f282b7b563ab06b92 Mon Sep 17 00:00:00 2001 >From: Maryse Simard <maryse.simard@inlibro.com> >Date: Fri, 2 Oct 2020 00:02:38 -0400 >Subject: [PATCH] Bug 12446: Ability to allow guarantor relationship for all > patron category types > >This adds a new field "Can be guarantee" to patron categories so it >becomes possible for any category type to have a guarantor. > >To test: >1) Have a patron category of type 'Adult' and one of type 'Child' >2) Confirm, by searching for the "Patron guarantor" fieldset in the >edit/create form, that: > => a patron of the first category can't have a guarantor > => a patron from the second category can >3) Apply patch and run updatedatabase.pl >4) Edit the categories and note the new "Can be guarantee" field >5) It should have been set to "yes" for the "Child" and to "no" for >the "Adult" >5) Repeat step 2. It should behave in the same way. >6) Edit the "Can be guarantee" for any of the category and check >that the fieldset only appears when "Can be guarantee" is set to "yes" >7) prove t/db_dependent/Patrons.t > => tests should still pass > >Signed-off-by: David Nind <david@davidnind.com> > >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> > >Signed-off-by: David Nind <david@davidnind.com> > >Signed-off-by: Owen Leonard <oleonard@myacpl.org> > >Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >--- > Koha/Patron.pm | 2 +- > admin/categories.pl | 6 +++--- > installer/data/mysql/atomicupdate/bug_12446.perl | 10 ++++++++++ > installer/data/mysql/kohastructure.sql | 4 ++-- > .../intranet-tmpl/prog/en/modules/admin/categories.tt | 10 +++++----- > members/memberentry.pl | 3 ++- > t/db_dependent/Patrons.t | 10 ++++++---- > 7 files changed, 29 insertions(+), 16 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/bug_12446.perl > >diff --git a/Koha/Patron.pm b/Koha/Patron.pm >index 96a72a393a..62e898e627 100644 >--- a/Koha/Patron.pm >+++ b/Koha/Patron.pm >@@ -309,7 +309,7 @@ sub store { > > # Clean up guarantors on category change if required > $self->guarantor_relationships->delete >- unless ( $self->category->can_be_guarantee ); >+ unless ( $self->category->canbeguarantee ); > > } > >diff --git a/admin/categories.pl b/admin/categories.pl >index 53c4182b47..1e8718970c 100755 >--- a/admin/categories.pl >+++ b/admin/categories.pl >@@ -79,7 +79,7 @@ elsif ( $op eq 'add_validate' ) { > my $min_password_length = $input->param('min_password_length'); > my $require_strong_password = $input->param('require_strong_password'); > my @branches = grep { $_ ne q{} } $input->multi_param('branches'); >- my $can_be_guarantee = $input->param('can_be_guarantee'); >+ my $canbeguarantee = $input->param('canbeguarantee'); > > $reset_password = undef if $reset_password eq -1; > $change_password = undef if $change_password eq -1; >@@ -102,7 +102,7 @@ elsif ( $op eq 'add_validate' ) { > $category->hidelostitems($hidelostitems); > $category->overduenoticerequired($overduenoticerequired); > $category->category_type($category_type); >- $category->can_be_guarantee($can_be_guarantee); >+ $category->canbeguarantee($canbeguarantee); > $category->BlockExpiredPatronOpacActions($BlockExpiredPatronOpacActions); > $category->checkprevcheckout($checkPrevCheckout); > $category->default_privacy($default_privacy); >@@ -135,7 +135,7 @@ elsif ( $op eq 'add_validate' ) { > hidelostitems => $hidelostitems, > overduenoticerequired => $overduenoticerequired, > category_type => $category_type, >- can_be_guarantee => $can_be_guarantee, >+ canbeguarantee => $canbeguarantee, > BlockExpiredPatronOpacActions => $BlockExpiredPatronOpacActions, > checkprevcheckout => $checkPrevCheckout, > default_privacy => $default_privacy, >diff --git a/installer/data/mysql/atomicupdate/bug_12446.perl b/installer/data/mysql/atomicupdate/bug_12446.perl >new file mode 100644 >index 0000000000..9f9e4e5160 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_12446.perl >@@ -0,0 +1,10 @@ >+$DBversion = 'XXX'; # will be replaced by the RM >+if( CheckVersion( $DBversion ) ) { >+ if ( !column_exists( 'categories', 'canbeguarantee') ){ >+ $dbh->do("ALTER TABLE categories ADD COLUMN `canbeguarantee` tinyint(1) NOT NULL default '0' AFTER `checkprevcheckout`"); >+ $dbh->do("UPDATE categories SET canbeguarantee = 1 WHERE category_type = 'P' OR category_type = 'C'"); >+ } >+ >+ SetVersion( $DBversion ); >+ print "Upgrade to $DBversion done (Bug 12446 - Ability to allow guarantor relationship for all patron category types)\n"; >+} >\ No newline at end of file >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index 58f8102461..bf5fc2f397 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -1672,8 +1672,8 @@ CREATE TABLE `categories` ( > `BlockExpiredPatronOpacActions` tinyint(1) NOT NULL DEFAULT -1 COMMENT 'wheither or not a patron of this category can renew books or place holds once their card has expired. 0 means they can, 1 means they cannot, -1 means use syspref BlockExpiredPatronOpacActions', > `default_privacy` enum('default','never','forever') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'default' COMMENT 'Default privacy setting for this patron category', > `checkprevcheckout` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'inherit' COMMENT 'produce a warning for this patron category if this item has previously been checked out to this patron if ''yes'', not if ''no'', defer to syspref setting if ''inherit''.', >- `can_be_guarantee` tinyint(1) NOT NULL default 0 COMMENT 'if patrons of this category can be guarantees', >- `reset_password` tinyint(1) DEFAULT NULL COMMENT 'if patrons of this category can do the password reset flow,', >+`canbeguarantee` tinyint(1) NOT NULL default '0', >+`reset_password` tinyint(1) DEFAULT NULL COMMENT 'if patrons of this category can do the password reset flow,', > `change_password` tinyint(1) DEFAULT NULL COMMENT 'if patrons of this category can change their passwords in the OAPC', > `min_password_length` smallint(6) DEFAULT NULL COMMENT 'set minimum password length for patrons in this category', > `require_strong_password` tinyint(1) DEFAULT NULL COMMENT 'set required password strength for patrons in this category', >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt >index 6e3ce07b3c..4e28e46dcf 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt >@@ -239,9 +239,9 @@ > <span class="required">Required</span> > </li> > <li> >- <label for="can_be_guarantee">Can be guarantee</label> >- <select name="can_be_guarantee" id="can_be_guarantee"> >- [% IF category.can_be_guarantee %] >+ <label for="canbeguarantee">Can be guarantee</label> >+ <select name="canbeguarantee" id="canbeguarantee"> >+ [% IF category.canbeguarantee %] > <option value="1" selected>Yes</option> > <option value="0">No</option> > [% ELSE %] >@@ -509,7 +509,7 @@ > </td> > </tr> > [% END %] >- <tr><th scope="row">Can be guarantee</th><td>[% IF category.can_be_guarantee %]Yes[% ELSE %]No[% END %]</td></tr> >+ <tr><th scope="row">Can be guarantee</th><td>[% IF category.canbeguarantee %]Yes[% ELSE %]No[% END %]</td></tr> > <tr> > <th scope="row">Default privacy: </th> > <td> >@@ -689,7 +689,7 @@ > [% END %] > </td> > [% END %] >- <td>[% IF category.can_be_guarantee %] Yes [% ELSE %] no [% END %]</td> >+ <td>[% IF category.canbeguarantee %] Yes [% ELSE %] no [% END %]</td> > <td> > [% SWITCH category.default_privacy %] > [% CASE 'default' %] >diff --git a/members/memberentry.pl b/members/memberentry.pl >index 95f6e9dd58..dcb6d9fd6d 100755 >--- a/members/memberentry.pl >+++ b/members/memberentry.pl >@@ -755,7 +755,8 @@ if (C4::Context->preference('EnhancedMessagingPreferences')) { > } > > $template->param( borrower_data => \%data ); >-$template->param( "show_guarantor" => $category ? $category->can_be_guarantee : 1); # associate with step to know where you are >+$template->param( "show_guarantor" => $categorycode ? Koha::Patron::Categories->find($categorycode)->canbeguarantee : 1); # associate with step to know where you are >+$debug and warn "memberentry step: $step"; > $template->param( "step_$step" => 1) if $step; # associate with step to know where u are > $template->param( step => $step ) if $step; # associate with step to know where u are > >diff --git a/t/db_dependent/Patrons.t b/t/db_dependent/Patrons.t >index 2b9091802f..6f1bae3f0c 100755 >--- a/t/db_dependent/Patrons.t >+++ b/t/db_dependent/Patrons.t >@@ -112,16 +112,16 @@ subtest "Update patron categories" => sub { > category_type=>'C', > upperagelimit=>17, > dateofbirthrequired=>5, >- can_be_guarantee=>1, >+ canbeguarantee=>1, > } })->{categorycode}; > my $c_categorycode_2 = $builder->build({ source => 'Category', value => { > category_type=>'C', > upperagelimit=>17, > dateofbirthrequired=>5, >- can_be_guarantee=>1, >+ canbeguarantee=>1, > } })->{categorycode}; >- my $a_categorycode = $builder->build({ source => 'Category', value => {category_type=>'A', can_be_guarantee=>0} })->{categorycode}; >- my $a_categorycode_2 = $builder->build({ source => 'Category', value => {category_type=>'A', can_be_guarantee=>1} })->{categorycode}; >+ my $a_categorycode = $builder->build({ source => 'Category', value => {category_type=>'A', canbeguarantee=>0} })->{categorycode}; >+ my $a_categorycode_2 = $builder->build({ source => 'Category', value => {category_type=>'A', canbeguarantee=>1} })->{categorycode}; > my $p_categorycode = $builder->build({ source => 'Category', value => {category_type=>'P'} })->{categorycode}; > my $i_categorycode = $builder->build({ source => 'Category', value => {category_type=>'I'} })->{categorycode}; > my $branchcode1 = $builder->build({ source => 'Branch' })->{branchcode}; >@@ -201,6 +201,8 @@ subtest "Update patron categories" => sub { > is( Koha::Patrons->search_patrons_to_update_category({from=>$c_categorycode_2,too_young=>1})->next->borrowernumber, $child1->borrowernumber ); > is( Koha::Patrons->search_patrons_to_update_category({from=>$c_categorycode_2,too_young=>1})->update_category_to({category=>$a_categorycode}),1,'One child patron updated to adult category because too young'); > is( Koha::Patrons->find($adult1->borrowernumber)->guarantee_relationships->guarantees->count,2,'Guarantee was removed when made adult'); >+ is( Koha::Patrons->search_patrons_to_update_category({from=>$c_categorycode_2})->update_category_to({category=>$a_categorycode_2}),2,'Two child patrons updated to adult category'); >+ is( Koha::Patrons->find($adult1->borrowernumber)->guarantee_relationships->guarantees->count,2,'Guarantees were not removed when made adult which can be guarantee'); > > is( Koha::Patrons->search_patrons_to_update_category({from=>$c_categorycode_2,too_old=>1})->next->borrowernumber, $child3->borrowernumber ); > is( Koha::Patrons->search_patrons_to_update_category({from=>$c_categorycode_2,too_old=>1})->update_category_to({category=>$a_categorycode}),1,'One child patron updated to adult category because too old'); >-- >2.34.1
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 12446
:
29278
|
36176
|
39744
|
42469
|
42470
|
42535
|
46277
|
46278
|
46327
|
46328
|
46345
|
46486
|
49793
|
50953
|
53534
|
53535
|
53536
|
53913
|
60929
|
60930
|
60934
|
63148
|
63149
|
63214
|
64793
|
64794
|
64828
|
72295
|
72883
|
77766
|
77767
|
77768
|
79343
|
79344
|
79345
|
79347
|
79348
|
85069
|
88364
|
88365
|
88366
|
88367
|
90389
|
90390
|
90391
|
90392
|
90470
|
90471
|
90472
|
90473
|
93388
|
93389
|
93390
|
93391
|
93392
|
93393
|
93394
|
95411
|
95853
|
95854
|
95855
|
95856
|
95857
|
95858
|
95859
|
95860
|
106753
|
106754
|
106755
|
106756
|
106757
|
107611
|
111052
|
111053
|
111317
|
111318
|
112102
|
112160
|
112161
|
112162
|
112163
|
113583
|
121925
|
121926
|
121927
|
121928
|
121929
|
122084
|
122085
|
122086
|
122087
|
122088
|
122089
|
122090
|
122091
|
122184
|
122185
|
122186
|
122187
|
130398
|
130399
|
130400
|
130401
|
130402
|
131965
|
131966
|
131967
|
131968
|
131969
|
133691
|
133952
|
133953
|
133954
|
133955
|
133956
|
133957
|
134930
|
134931
|
134932
|
134933
|
134934
|
134935
|
134936
|
135506
|
135507
|
135508
|
135509
|
135510
|
135511
|
135512
|
135519
|
135520
|
135521
|
135522
|
135523
|
135544
|
135545
|
142401
|
142408
|
142431
| 142432 |
142433
|
142434
|
142435
|
142436
|
142437
|
142438
|
142439