From b997f6fc22a488e8b2c994aa3771631541777c9c 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: Nick Clemens --- catalogue/detail.pl | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/catalogue/detail.pl b/catalogue/detail.pl index 96e7752..4a092c9 100755 --- a/catalogue/detail.pl +++ b/catalogue/detail.pl @@ -190,6 +190,17 @@ 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; +if ($materials_authvalcode) { + 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; @@ -268,7 +279,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.4