From 29d63557770d2e17ca23bede758d4e72723a95cf Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Wed, 6 Sep 2017 13:44:41 +0200 Subject: [PATCH] Bug 19261 - never hide biblionumber field in view policy Since Bug 15870 fields defined as hidden in frameworks are not present in MARC. Some libraries may have/want field containing biblionumber hidden. This generates an error in OPAC detail view. I propose that field linked to biblionumber is not removed from MARC even if hidden. Test plan : - Use XSLT for OPAC and intranet - Create a biblio record using default framework - Go to delail page in OPAC and intranet - Edit in default framework - In (sub)field linked to biblionumber, go to Advanced constraints - Uncheck OPAC and intranet in visibility and save => Check delail page in OPAC and intranet --- Koha/Filter/MARC/ViewPolicy.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Koha/Filter/MARC/ViewPolicy.pm b/Koha/Filter/MARC/ViewPolicy.pm index e69b730..6826e1b 100644 --- a/Koha/Filter/MARC/ViewPolicy.pm +++ b/Koha/Filter/MARC/ViewPolicy.pm @@ -125,7 +125,8 @@ sub _filter_field { my $visibility = $marcsubfieldstructure->{$tag}->{$subtag}->{hidden}; $visibility //= 0; - if ( $hide->{$interface}->{$visibility} ) { + my $kohafield = $marcsubfieldstructure->{$tag}->{$subtag}->{kohafield} // ''; + if ( $hide->{$interface}->{$visibility} && $kohafield ne 'biblio.biblionumber' ) { # deleting last subfield doesn't delete field, so # this detects that case to delete the field. @@ -145,7 +146,8 @@ sub _filter_field { # -8 is flagged, and 9/-9 are not implemented. my $visibility = $marcsubfieldstructure->{$tag}->{q{@}}->{hidden}; $visibility //= 0; - if ( $hide->{$interface}->{$visibility} ) { + my $kohafield = $marcsubfieldstructure->{$tag}->{q{@}}->{kohafield} // ''; + if ( $hide->{$interface}->{$visibility} && $kohafield ne 'biblio.biblionumber' ) { $result->delete_fields($field); } -- 2.7.4