Browse Source

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.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Alex Arnaud <alex.arnaud@biblibre.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
20.11.x
Petro Vashchuk 4 years ago
committed by Jonathan Druart
parent
commit
029f41a667
  1. 22
      koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt
  2. 4
      members/memberentry.pl

22
koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt

@ -477,12 +477,23 @@ legend:hover {
</li>
<li>
[% UNLESS empty_relationship_allowed %]
<label for="guarantor_relationship" class="required">Relationship: </label>
<select class="new_guarantor_relationship" name="new_guarantor_relationship" required="required">
[% ELSE %]
<label for="guarantor_relationship">Relationship: </label>
<select class="new_guarantor_relationship" name="new_guarantor_relationship">
[% END %]
<option value="" selected>Empty option</option>
[% FOREACH pr IN possible_relationships.split('\|') %]
[% IF pr != "" %]
<option value="[% pr | html %]">[% pr | html %]</option>
[% END %]
[% END %]
</select>
[% UNLESS empty_relationship_allowed %]
<span class="required">Required</span>
[% END %]
</li>
<li>
@ -513,12 +524,23 @@ legend:hover {
</li>
<li>
[% UNLESS empty_relationship_allowed %]
<label for="guarantor_relationship" class="required">Relationship: </label>
<select class="new_guarantor_relationship" name="new_guarantor_relationship" required="required">
[% ELSE %]
<label for="guarantor_relationship">Relationship: </label>
<select class="new_guarantor_relationship" name="new_guarantor_relationship">
[% END %]
<option value="" selected></option>
[% FOREACH pr IN possible_relationships.split('\|') %]
[% IF pr != "" %]
<option value="[% pr | html %]">[% pr | html %]</option>
[% END %]
[% END %]
</select>
[% UNLESS empty_relationship_allowed %]
<span class="required">Required</span>
[% END %]
</li>
<li>

4
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;

Loading…
Cancel
Save