Bugzilla – Attachment 120947 Details for
Bug 11879
Add a new field to patron record: main contact method
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 11879: Add a new field to patron record: main contact method
Bug-11879-Add-a-new-field-to-patron-record-main-co.patch (text/plain), 18.57 KB, created by
Kyle M Hall (khall)
on 2021-05-13 18:59:41 UTC
(
hide
)
Description:
Bug 11879: Add a new field to patron record: main contact method
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2021-05-13 18:59:41 UTC
Size:
18.57 KB
patch
obsolete
>From 4d7ce9ea6965c374c73b3fffabfbd1e990a34e7b Mon Sep 17 00:00:00 2001 >From: Bin Wen <bin.wen@inlibro.com> >Date: Wed, 18 Dec 2019 11:52:49 -0500 >Subject: [PATCH] Bug 11879: Add a new field to patron record: main contact > method > >This patch adds the "Main Contact Method" field in the borrower >modification form. > >This field is useful for reporting purposes, or to >know which contact method to use first when trying to contact a borrower. > >Test plan: >0) Apply patch >1) updatedatabase.pl >2) In the staff client, edit a patron's contact info. There should be a new dropdown select to choose the main contact method >3) In the opac page, edit the personal details.There should be a new dropdown select to choose the main contact method. >4) Save the form. It should work. > >Sponsored-by: CCSR ( http://www.ccsr.qc.ca ) >Signed-off-by: David Nind <david@davidnind.com> > >Signed-off-by: David Nind <david@davidnind.com> > >Signed-off-by: David Nind <david@davidnind.com> > >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> >--- > .../borrowers_primary_contact_method.perl | 17 ++++++ > installer/data/mysql/kohastructure.sql | 3 + > .../prog/en/modules/members/memberentrygen.tt | 58 ++++++++++++++++++ > .../prog/en/modules/members/moremember.tt | 20 +++++++ > .../bootstrap/en/modules/opac-memberentry.tt | 59 +++++++++++++++++++ > opac/opac-memberentry.pl | 14 +++++ > 6 files changed, 171 insertions(+) > create mode 100644 installer/data/mysql/atomicupdate/borrowers_primary_contact_method.perl > >diff --git a/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.perl b/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.perl >new file mode 100644 >index 0000000000..e34fc015a2 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.perl >@@ -0,0 +1,17 @@ >+$DBversion = 'XXX'; # will be replaced by the RM >+if( CheckVersion( $DBversion ) ) { >+ if( !column_exists( 'borrowers', 'primary_contact_method' ) ) { >+ $dbh->do( "ALTER TABLE `borrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `anonymized`" ); >+ } >+ >+ if( !column_exists( 'deletedborrowers', 'primary_contact_method' ) ) { >+ $dbh->do( "ALTER TABLE `deletedborrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `anonymized`" ); >+ } >+ >+ if( !column_exists( 'borrower_modifications', 'primary_contact_method' ) ) { >+ $dbh->do( "ALTER TABLE `borrower_modifications` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `gdpr_proc_consent`" ); >+ } >+ >+ SetVersion( $DBversion ); >+ print "Upgrade to $DBversion done (Bug 11879 - Add a new field to patron record: main contact method)\n"; >+} >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index 4896b9dcee..ad3c063684 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -1304,6 +1304,7 @@ CREATE TABLE `borrower_modifications` ( > `privacy` int(11) DEFAULT NULL, > `extended_attributes` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, > `gdpr_proc_consent` datetime DEFAULT NULL COMMENT 'data processing consent', >+ `primary_contact_method` varchar(45) DEFAULT NULL COMMENT 'useful for reporting purposes', > PRIMARY KEY (`verification_token`(191),`borrowernumber`), > KEY `verification_token` (`verification_token`(191)), > KEY `borrowernumber` (`borrowernumber`) >@@ -1429,6 +1430,7 @@ CREATE TABLE `borrowers` ( > `overdrive_auth_token` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'persist OverDrive auth token', > `anonymized` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'flag for data anonymization', > `autorenew_checkouts` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'flag for allowing auto-renewal', >+ `primary_contact_method` varchar(45) DEFAULT NULL COMMENT 'useful for reporting purposes', > PRIMARY KEY (`borrowernumber`), > UNIQUE KEY `cardnumber` (`cardnumber`), > UNIQUE KEY `userid` (`userid`), >@@ -2430,6 +2432,7 @@ CREATE TABLE `deletedborrowers` ( > `overdrive_auth_token` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'persist OverDrive auth token', > `anonymized` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'flag for data anonymization', > `autorenew_checkouts` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'flag for allowing auto-renewal', >+ `primary_contact_method` varchar(45) DEFAULT NULL COMMENT 'useful for reporting purposes', > KEY `borrowernumber` (`borrowernumber`), > KEY `cardnumber` (`cardnumber`), > KEY `sms_provider_id` (`sms_provider_id`) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >index f874e80de9..73fe89c427 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >@@ -764,6 +764,64 @@ legend:hover { > [% END %] > </li> > [% END #/UNLESS nofax %] >+ >+ <li> >+ [% IF mandatoryprimary_contact_method %] >+ <label for="primary_contact_method" class="required"> >+ [% ELSE %] >+ <label for="primary_contact_method"> >+ [% END %] >+ Main contact method: </label> >+ >+ <select id="primary_contact_method" name="primary_contact_method"> >+ <option value=""></option> >+ [% UNLESS nophone %] >+ [% IF ( primary_contact_method == 'phone' ) %] >+ <option value="phone" selected="selected">Primary phone</option> >+ [% ELSE %] >+ <option value="phone">Primary phone</option> >+ [% END %] >+ [% END %] >+ [% UNLESS nophonepro %] >+ [% IF ( primary_contact_method == 'phonepro' ) %] >+ <option value="phonepro" selected="selected">Secondary phone</option> >+ [% ELSE %] >+ <option value="phonepro">Secondary phone</option> >+ [% END %] >+ [% END %] >+ [% UNLESS nomobile %] >+ [% IF ( primary_contact_method == 'mobile' ) %] >+ <option value="mobile" selected="selected">Other phone</option> >+ [% ELSE %] >+ <option value="mobile">Other phone</option> >+ [% END %] >+ [% END %] >+ [% UNLESS noemail %] >+ [% IF ( primary_contact_method == 'email' ) %] >+ <option value="email" selected="selected">Primary email</option> >+ [% ELSE %] >+ <option value="email">Primary email</option> >+ [% END %] >+ [% END %] >+ [% UNLESS noemailpro %] >+ [% IF ( primary_contact_method == 'emailpro' ) %] >+ <option value="emailpro" selected="selected">Secondary email</option> >+ [% ELSE %] >+ <option value="emailpro">Secondary email</option> >+ [% END %] >+ [% END %] >+ [% UNLESS nofax %] >+ [% IF ( primary_contact_method == 'fax' ) %] >+ <option value="fax" selected="selected">Fax</option> >+ [% ELSE %] >+ <option value="fax">Fax</option> >+ [% END %] >+ [% END %] >+ </select> >+ [% IF mandatoryprimary_contact_method %] >+ <span class="required">Required</span> >+ [% END %] >+ </li> > </ol> > </fieldset> <!-- /#memberentry_contact --> > [% END # hide fieldset %] >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 cd416da0ec..fb457197c9 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt >@@ -326,6 +326,26 @@ > </ul> > </li> > [% END %] >+ >+ [% IF ( primary_contact_method ) %] >+ <li> >+ <span class="label">Main contact method: </span> >+ [% SWITCH primary_contact_method %] >+ [% CASE 'phone' %] >+ Primary phone >+ [% CASE 'phonepro' %] >+ Secondary phone >+ [% CASE 'mobile' %] >+ Other phone >+ [% CASE 'email' %] >+ Primary email >+ [% CASE 'emailpro' %] >+ Secondary email >+ [% CASE 'fax' %] >+ Fax >+ [% END %] >+ </li> >+ [% END %] > </ol> > </div> [% # /div.rows %] > </div> [% # /div#patron-information %] >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt >index 2a97dff6e7..f53539b1b5 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt >@@ -578,6 +578,65 @@ > <div class="required_label [% required.fax | html %]">Required</div> > </li> > [% END %] >+ >+ [% UNLESS hidden.defined('primary_contact_method') %] >+ <li> >+ [% IF ( mandatory.defined('primary_contact_method') ) %] >+ <label for="borrower_primary_contact_method" class="required">Main contact method:</label> >+ [% ELSE %] >+ <label for="borrower_primary_contact_method">Main contact method:</label> >+ [% END %] >+ >+ <select id="borrower_primary_contact_method" name="borrower_primary_contact_method"> >+ <option value=""></option> >+ [% FOREACH contactprincipalloo IN contactprincipalloop %] >+ [% IF ( contactprincipalloo.currentis_phone ) %] >+ [% IF ( borrower.primary_contact_method == 'phone' ) %] >+ <option value="phone" selected="selected">Primary phone</option> >+ [% ELSE %] >+ <option value="phone">Primary phone</option> >+ [% END %] >+ [% END %] >+ [% IF ( contactprincipalloo.currentis_phonepro ) %] >+ [% IF ( borrower.primary_contact_method == 'phonepro' ) %] >+ <option value="phonepro" selected="selected">Secondary phone</option> >+ [% ELSE %] >+ <option value="phonepro">Secondary phone</option> >+ [% END %] >+ [% END %] >+ [% IF ( contactprincipalloo.currentis_mobile ) %] >+ [% IF ( borrower.primary_contact_method == 'mobile' ) %] >+ <option value="mobile" selected="selected">Other phone</option> >+ [% ELSE %] >+ <option value="mobile">Other phone</option> >+ [% END %] >+ [% END %] >+ [% IF ( contactprincipalloo.currentis_email ) %] >+ [% IF ( borrower.primary_contact_method == 'email' ) %] >+ <option value="email" selected="selected">Primary email</option> >+ [% ELSE %] >+ <option value="email">Primary email</option> >+ [% END %] >+ [% END %] >+ [% IF ( contactprincipalloo.currentis_emailpro ) %] >+ [% IF ( borrower.primary_contact_method == 'emailpro' ) %] >+ <option value="emailpro" selected="selected">Secondary email</option> >+ [% ELSE %] >+ <option value="emailpro">Secondary email</option> >+ [% END %] >+ [% END %] >+ [% IF ( contactprincipalloo.currentis_fax ) %] >+ [% IF ( borrower.primary_contact_method == 'fax' ) %] >+ <option value="fax" selected="selected">Fax</option> >+ [% ELSE %] >+ <option value="fax">Fax</option> >+ [% END %] >+ [% END %] >+ [% END %] >+ </select> >+ [% IF ( mandatory.defined('primary_contact_method') ) %]<span class="required">Required</span>[% END %] >+ </li> >+ [% END %] > </ol> > </fieldset> > </div> <!-- /.col --> >diff --git a/opac/opac-memberentry.pl b/opac/opac-memberentry.pl >index c9a4790efd..4f13a14cbe 100755 >--- a/opac/opac-memberentry.pl >+++ b/opac/opac-memberentry.pl >@@ -102,6 +102,20 @@ $template->param( > defaultCategory => $defaultCategory, > ); > >+my $check_BorrowerMandatoryField=C4::Context->preference("BorrowerMandatoryField"); >+my @field_check=split(/\|/,$check_BorrowerMandatoryField); >+my @contactprincipalloop; >+my @fieldArray = qw(phone phonepro mobile email emailpro fax); >+foreach my $field (@fieldArray) { >+ if ( !(grep { $field eq $_ } @field_check)){ >+ push @contactprincipalloop,{ >+ 'currentis_' . $field => 1 >+ }; >+ } >+} >+ >+$template->param('contactprincipalloop' => \@contactprincipalloop); >+ > my $attributes = ParsePatronAttributes($borrowernumber,$cgi); > my $conflicting_attribute = 0; > >-- >2.24.3 (Apple Git-128)
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 11879
:
25745
|
25922
|
25941
|
31300
|
31301
|
31320
|
34351
|
34482
|
34502
|
34503
|
34571
|
34572
|
34573
|
41209
|
41220
|
41221
|
41222
|
46101
|
46284
|
46285
|
46286
|
48073
|
48074
|
48075
|
48076
|
48077
|
48078
|
48079
|
48556
|
48557
|
48558
|
48559
|
50433
|
52607
|
52608
|
52614
|
52615
|
52616
|
52617
|
52618
|
52619
|
52620
|
53229
|
53688
|
53695
|
53705
|
53707
|
53708
|
53709
|
53710
|
53711
|
53712
|
53713
|
55946
|
56285
|
56286
|
58580
|
58591
|
58592
|
58593
|
63238
|
63239
|
65811
|
65812
|
69028
|
69029
|
69050
|
71955
|
71956
|
71957
|
71958
|
72632
|
72633
|
72634
|
72635
|
73987
|
73988
|
73989
|
73990
|
74123
|
74124
|
74125
|
74126
|
74818
|
75652
|
83757
|
83758
|
84017
|
84018
|
84019
|
84020
|
84021
|
84022
|
88358
|
88359
|
88360
|
88361
|
88362
|
88363
|
88394
|
88395
|
88396
|
88397
|
88398
|
88399
|
88400
|
93850
|
93851
|
93852
|
93853
|
93854
|
93855
|
93856
|
93900
|
93901
|
94456
|
94457
|
94458
|
94459
|
94460
|
94461
|
94463
|
94464
|
94465
|
94466
|
94467
|
94468
|
96432
|
100817
|
100843
|
112062
|
112063
|
112064
|
112557
|
112559
|
112560
|
118959
|
118960
|
118961
|
118962
|
118985
|
118986
|
118987
|
118988
| 120947 |
120948
|
120949
|
120950
|
122778