From d319ab5adf7ffdd800bb8f2ec52c76678760c295 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 Signed-off-by: Jonathan Druart --- 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 2a20d63..670c11d 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.9.3