From ec9ac4d7b9873dd99b92212564b698dc6bf904b1 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 Signed-off-by: Kyle M Hall --- 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