Bugzilla – Attachment 88358 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 the "Main contact method" field in borrower informations.
Bug-11879-Add-the-Main-contact-method-field-in-bor.patch (text/plain), 16.01 KB, created by
José-Mario Monteiro-Santos
on 2019-04-19 17:59:37 UTC
(
hide
)
Description:
Bug 11879: Add the "Main contact method" field in borrower informations.
Filename:
MIME Type:
Creator:
José-Mario Monteiro-Santos
Created:
2019-04-19 17:59:37 UTC
Size:
16.01 KB
patch
obsolete
>From 033731e2942a5de2076e99d978ee16701046ee1f Mon Sep 17 00:00:00 2001 >From: charles <charles.farmer@inlibro.com> >Date: Wed, 4 Jan 2017 09:37:54 -0500 >Subject: [PATCH] Bug 11879: Add the "Main contact method" field in borrower > informations. > >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. > >Following Nicolas' fix, removed a $branch variable from patch, since it has been suppressed in Bug 17284. > >Test case : >* Edit a borrower's informations. The "Main Contact Method" selectbox should appear in the form and its value should be saved correctly. > >Sponsored-by: CCSR <http://www.ccsr.qc.ca> > >Signed-off-by: Lucie Gay <lucie.gay@ens-paris-saclay.fr> > >Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> >--- > .../borrowers_primary_contact_method.sql | 3 ++ > installer/data/mysql/kohastructure.sql | 3 ++ > .../prog/en/modules/members/memberentrygen.tt | 61 ++++++++++++++++++++-- > .../prog/en/modules/members/moremember.tt | 15 ++++++ > .../bootstrap/en/modules/opac-memberentry.tt | 50 ++++++++++++++++++ > members/memberentry.pl | 11 +++- > members/moremember.pl | 4 ++ > opac/opac-memberentry.pl | 13 +++++ > 8 files changed, 155 insertions(+), 5 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql > >diff --git a/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql b/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql >new file mode 100644 >index 0000000..000791d >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql >@@ -0,0 +1,3 @@ >+ALTER TABLE `borrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `lastseen`; >+ALTER TABLE `deletedborrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `overdrive_auth_token`; >+ALTER TABLE `borrower_modifications` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `extended_attributes`; >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index 7b78a87..a4eb067 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -610,6 +610,7 @@ CREATE TABLE `deletedborrowers` ( -- stores data related to the patrons/borrower > `login_attempts` int(4) default 0, -- number of failed login attemps > `overdrive_auth_token` MEDIUMTEXT default NULL, -- persist OverDrive auth token > `flgAnonymized` tinyint DEFAULT 0, -- flag for data anonymization >+ `primary_contact_method` varchar(45) DEFAULT NULL, -- useful for reporting purposes > KEY borrowernumber (borrowernumber), > KEY `cardnumber` (`cardnumber`), > KEY `sms_provider_id` (`sms_provider_id`) >@@ -1644,6 +1645,7 @@ CREATE TABLE `borrowers` ( -- this table includes information about your patrons > `login_attempts` int(4) default 0, -- number of failed login attemps > `overdrive_auth_token` MEDIUMTEXT default NULL, -- persist OverDrive auth token > `flgAnonymized` tinyint DEFAULT 0, -- flag for data anonymization >+ `primary_contact_method` varchar(45) DEFAULT NULL, -- useful for reporting purposes > UNIQUE KEY `cardnumber` (`cardnumber`), > PRIMARY KEY `borrowernumber` (`borrowernumber`), > KEY `categorycode` (`categorycode`), >@@ -3461,6 +3463,7 @@ CREATE TABLE IF NOT EXISTS `borrower_modifications` ( > `privacy` int(11) DEFAULT NULL, > `extended_attributes` MEDIUMTEXT DEFAULT NULL, > `gdpr_proc_consent` datetime, -- data processing consent >+ `primary_contact_method` varchar(45) DEFAULT NULL, -- useful for reporting purposes > PRIMARY KEY (`verification_token` (191),`borrowernumber`), > KEY `verification_token` (`verification_token` (191)), > KEY `borrowernumber` (`borrowernumber`) >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 62fc2db..b6104a5 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >@@ -432,7 +432,8 @@ > > [% UNLESS nophone && nophonepro && nomobile && noemail && noemailpro && nofax %] > <fieldset class="rows" id="memberentry_contact"> >- <legend id="contact_lgd">Contact</legend><ol> >+ <legend id="contact_lgd">Contact</legend> >+<ol> > [% UNLESS nophone %] > <li> > [% IF ( mandatoryphone ) %] >@@ -495,7 +496,7 @@ > [% IF ( mandatoryemailpro ) %]<span class="required">Required</span>[% END %] > </li> > [% END %] >- [% UNLESS nofax %] >+ [% UNLESS nofax %] > <li> > [% IF ( mandatoryfax ) %] > <label for="fax" class="required"> >@@ -506,8 +507,60 @@ > <input type="text" id="fax" name="fax" value="[% fax | html %]" /> > [% IF ( mandatoryfax ) %]<span class="required">Required</span>[% END %] > </li> >- [% END %] >- </ol> >+ >+ [% END %] >+ <li> >+ <label for="primary_contact_method">Main contact method:</label> >+ <select id="primary_contact_method" name="primary_contact_method"> >+ <option value=""></option> >+ [% FOREACH contactprincipalloo IN contactprincipalloop %] >+ [% IF ( contactprincipalloo.currentis_phone ) %] >+ [% IF ( 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 ( 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 ( 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 ( 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 ( 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 ( primary_contact_method == 'fax' ) %] >+ <option value="fax" selected="selected">Fax</option> >+ [% ELSE %] >+ <option value="fax">Fax</option> >+ [% END %] >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ </ol> >+ > </fieldset> > [%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 fc93db3..bcd06fb 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt >@@ -265,6 +265,21 @@ > [% END %] > </li> > [% END %] >+ >+ [% SWITCH primary_contact_method %] >+ [% CASE 'phone' %] >+ <li><span class="label">Main contact method: </span>Phone</li> >+ [% CASE 'phonepro' %] >+ <li><span class="label">Main contact method: </span>Secondary phone</li> >+ [% CASE 'mobile' %] >+ <li><span class="label">Main contact method: </span>Other Phone</li> >+ [% CASE 'email' %] >+ <li><span class="label">Main contact method: </span>Primary email</li> >+ [% CASE 'emailpro' %] >+ <li><span class="label">Main contact method: </span>Secondary email</li> >+ [% CASE 'fax' %] >+ <li><span class="label">Main contact method: </span>Fax</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 862091a..2cd6834 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt >@@ -548,6 +548,56 @@ > [% IF mandatory.defined('fax') %]<span class="required">Required</span>[% END %] > </li> > [% END %] >+ <li> >+ <label for="borrower_primary_contact_method">Main contact method:</label> >+ <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> >+ </li> > </ol> > </fieldset> > [% END %] >diff --git a/members/memberentry.pl b/members/memberentry.pl >index 1663020..24b882a 100755 >--- a/members/memberentry.pl >+++ b/members/memberentry.pl >@@ -645,6 +645,16 @@ $template->param('typeloop' => \@typeloop, > no_categories => $no_categories); > if($no_categories){ $no_add = 1; } > >+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 $cities = Koha::Cities->search( {}, { order_by => 'city_name' } ); > my $roadtypes = C4::Koha::GetAuthorisedValues( 'ROADTYPE' ); >@@ -652,7 +662,6 @@ $template->param( > roadtypes => $roadtypes, > cities => $cities, > ); >- > my $default_borrowertitle = ''; > unless ( $op eq 'duplicate' ) { $default_borrowertitle=$data{'title'} } > >diff --git a/members/moremember.pl b/members/moremember.pl >index be365a3..c97d144 100755 >--- a/members/moremember.pl >+++ b/members/moremember.pl >@@ -319,6 +319,10 @@ $template->param( > patron => $patron, > translated_language => $translated_language, > detailview => 1, >+ borrowernumber => $borrowernumber, >+ othernames => $data->{'othernames'}, >+ categoryname => $patron->category->description, >+ primary_contact_method => $data->{'primary_contact_method'}, > was_renewed => scalar $input->param('was_renewed') ? 1 : 0, > todaysdate => output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }), > totalprice => sprintf("%.2f", $totalprice), >diff --git a/opac/opac-memberentry.pl b/opac/opac-memberentry.pl >index 7fc9226..5eef076 100755 >--- a/opac/opac-memberentry.pl >+++ b/opac/opac-memberentry.pl >@@ -94,6 +94,19 @@ $template->param( > libraries => \@libraries, > OPACPatronDetails => C4::Context->preference('OPACPatronDetails'), > ); >+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.7.4
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