From 91fb5d6a1548f7b270163d18b05467c6fd45a7f0 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 10 May 2021 12:14:08 +0000 Subject: [PATCH] Bug 23406: Don't translate suppressed authorised values We have a test in C4/XSLT/transformMARCXML4HTML which is meant to exclude the 942n, however, it doesn't work because it checks the $subfield parameter against n $subfield is an arrayref with the code and value as members we need to check $subfield->[0] To test: 1 - Apply only unit tests 2 - prove -v t/db_dependent/XSLT.t 3 - It fails 4 - Confirm 952$n in default framework is tied ot authorised value 'YES_NO' or do so 5 - Set OpacSuppression to 'Hide' 6 - Edit a record in the default template, changing 942$n to 'Yes 7 - Confirm the record is suppressed in opac 8 - Note there is no suppression notice in the record in staff client 9 - Apply second patch 10 - Reload and confirm staff side shows suppression notice 11 - Confirm record still suppressed in OPAC 12 - Edit record, set 942$n to 'no' 13 - Confirm there is no suppression notice in staff client 14 - Confirm you can view the record in OPAC 15 - prove -v t/db_dependent/XSLT.t 16 - Tests pass! Signed-off-by: Phil Ringnalda Signed-off-by: Katrin Fischer Signed-off-by: Jonathan Druart --- C4/XSLT.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/XSLT.pm b/C4/XSLT.pm index d4cdb832cd..3cdf451b28 100644 --- a/C4/XSLT.pm +++ b/C4/XSLT.pm @@ -84,7 +84,7 @@ sub transformMARCXML4XSLT { for my $subfield ( $field->subfields() ) { my ( $letter, $value ) = @$subfield; # Replace the field value with the authorised value *except* for MARC21/NORMARC field 942$n (suppression in opac) - if ( !( $tag eq '942' && $subfield eq 'n' ) || $marcflavour eq 'UNIMARC' ) { + if ( !( $tag eq '942' && $subfield->[0] eq 'n' ) || $marcflavour eq 'UNIMARC' ) { $value = GetAuthorisedValueDesc( $tag, $letter, $value, '', $tagslib ) if $av->{ $tag }->{ $letter }; } -- 2.39.5