From 558dfdad2f997b5880839399583f4a154613935d Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Wed, 22 Mar 2017 16:22:53 -0300 Subject: [PATCH] Bug 13757: (QA followup) Exclude empty attributes from rendering if non-editable In self registration opac displayable (and not editable) attributes are displayed as empty. This an empty value is passed to the template for creating an empty input and it shouldn't when the attribute is not editable. Signed-off-by: Tomas Cohen Arazi --- opac/opac-memberentry.pl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/opac/opac-memberentry.pl b/opac/opac-memberentry.pl index 2a20d63557..670c11d87a 100755 --- a/opac/opac-memberentry.pl +++ b/opac/opac-memberentry.pl @@ -254,7 +254,7 @@ elsif ( $action eq 'update' ) { } else { my %borrower_changes = DelUnchangedFields( $borrowernumber, %borrower ); - my $extended_attributes_changes = FilterUnchagedAttributes( $borrowernumber, $attributes ); + my $extended_attributes_changes = FilterUnchangedAttributes( $borrowernumber, $attributes ); if ( %borrower_changes || scalar @{$extended_attributes_changes} > 0 ) { ( $template, $borrowernumber, $cookie ) = get_template_and_user( @@ -317,6 +317,7 @@ elsif ( $action eq 'edit' ) { #Display logged in borrower's data $template->param( patron_attribute_classes => GeneratePatronAttributesForm( $borrowernumber ) ); } else { + # Render self-registration page $template->param( patron_attribute_classes => GeneratePatronAttributesForm() ); } @@ -474,7 +475,7 @@ sub DelEmptyFields { return %borrower; } -sub FilterUnchagedAttributes { +sub FilterUnchangedAttributes { my ( $borrowernumber, $entered_attributes ) = @_; my @patron_attributes = grep {$_->opac_editable} Koha::Patron::Attributes->search({ borrowernumber => $borrowernumber })->as_list; @@ -574,7 +575,9 @@ sub GeneratePatronAttributesForm { # If editable, make sure there's at least one empty entry, # to make the template's job easier values => $attr_values{ $attr_type->code() } || [''] - }; + } + unless !defined $attr_values{ $attr_type->code() } + and !$attr_type->opac_editable; } # Finally, build a list of containing classes -- 2.12.1