From af9de596059a9079d78c37425e3e0a534f6888aa Mon Sep 17 00:00:00 2001 From: Petro Vashchuk Date: Wed, 17 Jun 2020 16:44:42 +0300 Subject: [PATCH] Bug 25322: fix for not selected "relationship" defaults to father When a user creates a patron's guarantor on /cgi-bin/koha/members/memberentry.pl but doesn't select the relationship from a dropdown, the relationship defaults to first value, which in default sysprefs is "father". This may or may not be correct as this is not a conscious choice from the user. The solution is to make the "Relationship" field mandatory when there is no empty entry in the system preferences, always starting with an empty option but not allowing the user to save an empty entry. And if there is an empty option in sysprefs, it allows to save empty, as well as makes it default choice. To reproduce with default system preferences: 1) Create a new patron who is assumed to have a guarantor or modify the existing one. 2) Under "Guarantor Information" click on "Search to add" button. After performing the search, select a user to act as guarantor. Don't use the dropdown menu to select a relationship. Save your changes. 3) Observe that relationship is set as "father". 4) Apply the patch. 5) Repeat steps 1 and 2. 6) Observe that it doesn't allow you to save the form until you pick a relationship type. To reproduce with empty entry added to system preferences: 1) Add an empty entry to borrowerRelationship at /cgi-bin/koha/admin/preferences.pl?tab=patrons in Patron relationships section (example: "|father|mother"). 2) Create a new patron who is assumed to have a guarantor or modify the existing one. 3) Under "Guarantor Information" click on "Search to add" button. After performing the search, select a user to act as guarantor. Don't use the dropdown menu to select a relationship. Save your changes. 4) Observe that relationship is set as "father". 5) Apply the patch. 6) Repeat steps 1, 2 and 3. 7) Observe when you save the empty entry it does set the relationship as empty. --- .../prog/en/modules/members/memberentrygen.tt | 34 +++++++++++++++---- members/memberentry.pl | 4 +++ 2 files changed, 32 insertions(+), 6 deletions(-) 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 25c32db057..9ff3b1a8e7 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt @@ -477,12 +477,23 @@ legend:hover {
  • - - + [% ELSE %] + + + [% UNLESS empty_relationship_allowed %] + Required + [% END %]
  • @@ -513,12 +524,23 @@ legend:hover {
  • - - + [% ELSE %] + + + [% UNLESS empty_relationship_allowed %] + Required + [% END %]
  • diff --git a/members/memberentry.pl b/members/memberentry.pl index cfdc06032e..ec6c08c4c5 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -107,6 +107,10 @@ my @messages; ## Deal with guarantor stuff $template->param( relationships => scalar $patron->guarantor_relationships ) if $patron; +my @relations = split /,|\|/, C4::Context->preference('borrowerRelationship'); +my $empty_relationship_allowed = grep {$_ eq ""} @relations; +$template->param( empty_relationship_allowed => $empty_relationship_allowed ); + my $guarantor_id = $input->param('guarantor_id'); my $guarantor = undef; $guarantor = Koha::Patrons->find( $guarantor_id ) if $guarantor_id; -- 2.17.1