From 033731e2942a5de2076e99d978ee16701046ee1f Mon Sep 17 00:00:00 2001 From: charles 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 Signed-off-by: Lucie Gay Signed-off-by: Katrin Fischer --- .../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 %]
- Contact
    + Contact +
      [% UNLESS nophone %]
    1. [% IF ( mandatoryphone ) %] @@ -495,7 +496,7 @@ [% IF ( mandatoryemailpro ) %]Required[% END %]
    2. [% END %] - [% UNLESS nofax %] + [% UNLESS nofax %]
    3. [% IF ( mandatoryfax ) %]
    4. - [% END %] -
    + + [% END %] +
  1. + + +
  2. +
+
[%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 %] [% END %] + + [% SWITCH primary_contact_method %] + [% CASE 'phone' %] +
  • Main contact method: Phone
  • + [% CASE 'phonepro' %] +
  • Main contact method: Secondary phone
  • + [% CASE 'mobile' %] +
  • Main contact method: Other Phone
  • + [% CASE 'email' %] +
  • Main contact method: Primary email
  • + [% CASE 'emailpro' %] +
  • Main contact method: Secondary email
  • + [% CASE 'fax' %] +
  • Main contact method: Fax
  • + [% END %] [% # /div.rows %] [% # /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') %]Required[% END %] [% END %] +
  • + + +
  • [% 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