Bug 20450: Add collection to item table when placing a hold on a specific copy (OPAC)
authorKatrin Fischer <katrin.fischer.83@web.de>
Thu, 9 Aug 2018 22:13:32 +0000 (22:13 +0000)
committerNick Clemens <nick@bywatersolutions.com>
Sat, 27 Oct 2018 14:20:57 +0000 (14:20 +0000)
This patch adds a new collection column to the item table when selecting
a specific item for a hold. The column will only appear if at least
one item has a collection set.

To test, in OPAC:
- Place a specific hold on
  - a record with one or more items with collections
  - a record with one or more items without collections
- Verify the collections display correctly when they exist
- Verify the table still works as expected

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt
opac/opac-reserve.pl

index 5685e62..00dec2e 100644 (file)
@@ -3,6 +3,7 @@
 [% USE KohaDates %]
 [% USE Price %]
 [% USE ItemTypes %]
+[% USE AuthorisedValues %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog &rsaquo; Placing a hold</title>
 [% INCLUDE 'doc-head-close.inc' %]
                                                                     <th>Home library</th>
                                                                     <th>Last location</th>
                                                                 [% END %]
+                                                                [% IF ( itemdata_ccode ) %]
+                                                                    <th>Collection</th>
+                                                                [% END %]
                                                                 <th>Call number</th>
                                                                 [% IF ( itemdata_enumchron ) %]
                                                                     <th>Vol info</th>
                                                                         <td class="homebranch">[% Branches.GetName( itemLoo.homeBranchName ) | html %]</td>
                                                                         <td class="holdingbranch">[% Branches.GetName( itemLoo.holdingBranchName ) | html %]</td>
                                                                     [% END %]
+                                                                    [% IF ( itemdata_ccode ) %]
+                                                                        <td class="ccode"> [% IF ( itemLoo.ccode ) %][% AuthorisedValues.GetByCode( 'CCODE', itemLoo.ccode ) %][% END %]</td>
+                                                                    [% END %]
                                                                     <td class="call_no">[% itemLoo.callNumber | html %]</td>
                                                                     [% IF ( itemdata_enumchron ) %]
                                                                         <td class="vol_info">[% itemLoo.enumchron | html %]</td>
index 153a1be..67ac93a 100755 (executable)
@@ -382,6 +382,7 @@ unless ($noreserves) {
 my $biblioLoop = [];
 my $numBibsAvailable = 0;
 my $itemdata_enumchron = 0;
+my $itemdata_ccode = 0;
 my $anyholdable = 0;
 my $itemLevelTypes = C4::Context->preference('item-level_itypes');
 $template->param('item_level_itypes' => $itemLevelTypes);
@@ -442,6 +443,7 @@ foreach my $biblioNum (@biblionumbers) {
         $itemLoopIter->{homeBranchName} = $itemInfo->{homebranch};
         $itemLoopIter->{callNumber} = $itemInfo->{itemcallnumber};
         $itemLoopIter->{enumchron} = $itemInfo->{enumchron};
+        $itemLoopIter->{ccode} = $itemInfo->{ccode};
         $itemLoopIter->{copynumber} = $itemInfo->{copynumber};
         if ($itemLevelTypes) {
             $itemLoopIter->{translated_description} = $itemInfo->{translated_description};
@@ -546,10 +548,17 @@ foreach my $biblioNum (@biblionumbers) {
         if ($itemLoopIter->{enumchron}) {
             $itemdata_enumchron = 1;
         }
+    # Show collection when needed
+        if ($itemLoopIter->{ccode}) {
+            $itemdata_ccode = 1;
+        }
 
         push @{$biblioLoopIter{itemLoop}}, $itemLoopIter;
     }
-    $template->param( itemdata_enumchron => $itemdata_enumchron );
+    $template->param(
+        itemdata_enumchron => $itemdata_enumchron,
+        itemdata_ccode     => $itemdata_ccode,
+    );
 
     if ($numCopiesAvailable > 0) {
         $numBibsAvailable++;