From d4284005ffd5fcb20755b01ca90aa35af43c3fe9 Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Thu, 24 Jul 2014 11:23:25 +0200 Subject: [PATCH] Bug 12670: Show materials label instead of code In catalogue/detail.pl, if items.materials is linked to an authorised values list, show label instead of code. Test plan: 1/ Create an authorised values list 'MATERIALS' with some values 2/ In default MARC biblio framework, link an item subfield to 'items.materials', and to the AV list 'MATERIALS' 3/ Edit an item and give a value for this subfield 4/ Go to biblio record detail page (catalogue/detail.pl) 5/ In the items table, the authorised value label should be displayed. Signed-off-by: Frederic Demians Works as described. As soon as an AV list is linked to items.materials, this patch is necessary to display materials value rather than code from the AV. Side note: items.materials is displayed in item tab on catalog/detail.pl page, but isn't displayed on catalogue/moredetail.pl. --- catalogue/detail.pl | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/catalogue/detail.pl b/catalogue/detail.pl index 967d71d..6e41527 100755 --- a/catalogue/detail.pl +++ b/catalogue/detail.pl @@ -190,6 +190,15 @@ my $norequests = 1; my $authvalcode_items_itemlost = GetAuthValCode('items.itemlost',$fw); my $authvalcode_items_damaged = GetAuthValCode('items.damaged', $fw); +my $materials_authvalcode = GetAuthValCode('items.materials', $fw); +my %materials_map; +my $materials_authvals = GetAuthorisedValues($materials_authvalcode); +if ($materials_authvals) { + foreach my $value (@$materials_authvals) { + $materials_map{$value->{authorised_value}} = $value->{lib}; + } +} + my $analytics_flag; my $materials_flag; # set this if the items have anything in the materials field my $currentbranch = C4::Context->userenv ? C4::Context->userenv->{branch} : undef; @@ -272,7 +281,10 @@ foreach my $item (@items) { } if (defined($item->{'materials'}) && $item->{'materials'} =~ /\S/){ - $materials_flag = 1; + $materials_flag = 1; + if (defined $materials_map{ $item->{materials} }) { + $item->{materials} = $materials_map{ $item->{materials} }; + } } if ( C4::Context->preference('UseCourseReserves') ) { -- 2.1.2