From 5ee6c6d071b627cb8e538aac781347ee54140933 Mon Sep 17 00:00:00 2001 From: simith <simith@inlibro.com> Date: Wed, 17 Dec 2014 09:16:32 -0500 Subject: [PATCH] Bug 11879 - Fix syspref BorrowerUnwantedField How I tested: Apply 1st patch Apply this patch Edit syspref BorrowerUnwantedField to exclude fields Edit patron's contact information Make sure that fields do not longer appear in drop down for Main contact Wors as expected http://bugs.koha-community.org/show_bug.cgi?id=11879 Signed-off-by: Marc Veron <veron@veron.ch> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> --- .../borrowers_primary_contact_method.sql | 1 + installer/data/mysql/updatedatabase.pl | 7 +- .../prog/en/modules/members/memberentrygen.tt | 68 ++++++++++++-------- members/memberentry.pl | 12 ++++ 4 files changed, 55 insertions(+), 33 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..69665f3 --- /dev/null +++ b/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql @@ -0,0 +1 @@ +ALTER TABLE `borrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL; \ No newline at end of file diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index f002154..e290a87 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -8719,12 +8719,6 @@ if ( CheckVersion($DBversion) ) { print "Upgrade to $DBversion done (Bug 10402: Move bookseller contacts to separate table)\n"; SetVersion($DBversion); } -$DBversion = "XXX"; -if ( CheckVersion($DBversion) ) { - $dbh->do("ALTER TABLE `borrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL;"); - print "Upgrade to $DBversion done (Bug 11879: Add a new borrower field : main contact method)\n"; - SetVersion($DBversion); -} $DBversion = "3.17.00.017"; if ( CheckVersion($DBversion) ) { @@ -10727,6 +10721,7 @@ foreach my $file ( sort readdir $dirh ) { } } + =head1 FUNCTIONS =head2 TableExists($table) 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 c20e28e..c7e1ae3 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt @@ -566,7 +566,7 @@ [% IF ( mandatoryemailpro ) %]<span class="required">Required</span>[% END %] </li> [% END %] - [% UNLESS nofax %] + [% UNLESS nofax %] <li> [% IF ( mandatoryfax ) %] <label for="fax" class="required"> @@ -577,44 +577,58 @@ <input type="text" id="fax" name="fax" value="[% fax %]" /> [% IF ( mandatoryfax ) %]<span class="required">Required</span>[% END %] </li> + [% END %] <li> <label for="primary_contact_method">Main Contact Method</label> <select id="primary_contact_method" name="primary_contact_method"> <option value=""></option> - [% IF ( primary_contact_method == 'phone' ) %] - <option value="phone" selected="selected">Primary phone</option> - [% ELSE %] - <option value="phone">Primary phone</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 ( primary_contact_method == 'phonepro' ) %] - <option value="phonepro" selected="selected">Secondary phone</option> - [% ELSE %] - <option value="phonepro">Secondary phone</option> + [% 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 ( primary_contact_method == 'mobile' ) %] - <option value="mobile" selected="selected">Other phone</option> - [% ELSE %] - <option value="mobile">Other phone</option> + [% IF ( contactprincipalloo.currentis_mobile ) %] + [% IF ( primary_contact_method == 'mobile' ) %] + <option value="mobile" selected="selected">Mobile phone</option> + [% ELSE %] + <option value="mobile">Mobile phone</option> + [% END %] [% END %] - [% IF ( primary_contact_method == 'email' ) %] - <option value="email" selected="selected">Primary email</option> - [% ELSE %] - <option value="email">Primary email</option> + [% 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 ( primary_contact_method == 'emailpro' ) %] - <option value="emailpro" selected="selected">Secondary email</option> - [% ELSE %] - <option value="emailpro">Secondary email</option> + [% 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 ( primary_contact_method == 'fax' ) %] - <option value="fax" selected="selected">Fax</option> - [% ELSE %] - <option value="fax">Fax</option> + [% 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> - [% END %] - </ol> + </ol> </fieldset> [%END # hide fieldset %] diff --git a/members/memberentry.pl b/members/memberentry.pl index 7904e55..24af0da 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -551,6 +551,18 @@ foreach (qw(C A S P I X)) { $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); + # test in city if ( $guarantorid ) { $select_city = getidcity($data{city}); -- 1.7.9.5