Bug 13372: Items lost report improvements
authorJonathan Druart <jonathan.druart@biblibre.com>
Tue, 2 Dec 2014 12:33:11 +0000 (13:33 +0100)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Fri, 10 Apr 2015 13:22:53 +0000 (10:22 -0300)
This enhancement adds new column to display the call number on the
items lost report.
On the way, DataTables and ColVis are added on the table.

Test plan:
1/ Go on the items lost report (reports/itemslost.pl) and verify that the
call number column is correctly filled.
2/ On the way, verify that the 'Library' and 'Current location' now contain
the name instead of the code.
3/ Go on the columns configuration in the admin module
(admin/columns_settings.pl), play with the ColVis plugin and confirm
that all works correctly.

Signed-off-by: David Roberts <david.roberts@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
C4/Items.pm
admin/columns_settings.yml
koha-tmpl/intranet-tmpl/prog/en/modules/admin/columns_settings.tt
koha-tmpl/intranet-tmpl/prog/en/modules/reports/itemslost.tt

index 845bc70..aea1c1d 100644 (file)
@@ -1000,7 +1000,7 @@ sub GetLostItems {
 
     my $query   = "
         SELECT title, author, lib, itemlost, authorised_value, barcode, datelastseen, price, replacementprice, homebranch,
-               itype, itemtype, holdingbranch, location, itemnotes, items.biblionumber as biblionumber
+               itype, itemtype, holdingbranch, location, itemnotes, items.biblionumber as biblionumber, itemcallnumber
         FROM   items
             LEFT JOIN biblio ON (items.biblionumber = biblio.biblionumber)
             LEFT JOIN biblioitems ON (items.biblionumber = biblioitems.biblionumber)
index 5222253..f2d9cc9 100644 (file)
@@ -51,3 +51,34 @@ modules:
           columnname: active
         -
           columnname: actions
+  reports:
+    lostitems:
+      lostitems-table:
+        -
+          columnname: title
+          cannot_be_toggled: 1
+          cannot_be_modified: 1
+        -
+          columnname: author
+        -
+          columnname: lostcode
+        -
+          columnname: barcode
+        -
+          columnname: callnumber
+        -
+          columnname: datelastseen
+        -
+          columnname: price
+        -
+          columnname: replacementprice
+        -
+          columnname: library
+        -
+          columnname: itemtype
+        -
+          columnname: current_location
+        -
+          columnname: location
+        -
+          columnname: notes
index b1a8565..db629e5 100644 (file)
             <h4>Circulation tables</h4>
             [% PROCESS pagelist module=modules.circ modulename="circ" %]
           </div>
+
+          <h3><a href="#reports">Reports</a></h3>
+          <div id="reports">
+            <h4>Reports tables</h4>
+            [% PROCESS pagelist module=modules.reports modulename="reports" %]
+          </div>
+
         </div>
       </div>
     </div>
index 8fb7872..b751a29 100644 (file)
@@ -1,6 +1,29 @@
+[% USE Branches %]
+[% USE ColumnsSettings %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha &rsaquo; Reports &rsaquo; Lost items</title>
 [% INCLUDE 'doc-head-close.inc' %]
+<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
+[% INCLUDE 'datatables.inc' %]
+[% INCLUDE 'columns_settings.inc' %]
+<script type='text/javascript'>
+//<![CDATA[
+    $(document).ready(function() {
+        var columns_settings = [% ColumnsSettings.GetColumns( 'reports', 'lostitems', 'lostitems-table', 'json' ) %];
+        var lostitems_table = KohaTable("#lostitems-table", {
+            "sDom": 'C<"clearfix">t',
+            "aaSorting": [],
+            "aoColumnDefs": [
+                { "aTargets": [ -1 ], "bSortable": false, "bSearchable": false },
+                { "sType": "title-string", "aTargets" : [ "title-string" ] }
+            ],
+            "bPaginate": false,
+        }, columns_settings);
+
+    });
+//]]>
+</script>
+
 </head>
 <body id="rep_itemslost" class="rep">
 [% INCLUDE 'header.inc' %]
     [% END %]
 </div>
 
-    [% IF ( itemsloop ) %]<table>
-    <tr>
-        <th>Title</th>
-        <th>Author</th>
-        <th>Lost code</th>
-        <th>Barcode</th>
-        <th>Date last seen</th>
-        <th>Price</th>
-        <th>Rep.price</th>
-        <th>Library</th>
-        <th>Item type</th>
-        <th>Current location</th>
-        <th>Location</th>
-        <th>Notes</th>
-    </tr>
-     [% FOREACH itemsloo IN itemsloop %]
-        [% UNLESS ( loop.odd ) %]
-        <tr class="highlight">
-        [% ELSE %]
-        <tr>
-        [% END %]
-            <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% itemsloo.biblionumber %]" title="[% itemsloo.itemnotes %]">
-                                                 [% itemsloo.title |html %]
-                                        </a></td>
-            <td>[% itemsloo.author %]</td>
-            <td>[% itemsloo.lib %]</td>
-            <td><a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% itemsloo.biblionumber %]" title="[% itemsloo.itemnotes %]">
-                    [% itemsloo.barcode %]
-                </a></td>
-            <td>[% itemsloo.datelastseen %]</td>
-            <td>[% itemsloo.price %]</td>
-            <td>[% itemsloo.replacementprice %]</td>
-            <td>[% itemsloo.homebranch %]</td>
-            <td>[% IF ( itemsloo.itype_level ) %][% itemsloo.itype %][% ELSE %][% itemsloo.itemtype %][% END %]</td>
-            <td>[% itemsloo.holdingbranch %]</td>
-            <td>[% itemsloo.location %]</td>
-            <td>[% itemsloo.itemnotes %]</td>
-        </tr>
+    [% IF itemsloop %]
+        <table id="lostitems-table">
+            <thead>
+                <tr>
+                    <th>Title</th>
+                    <th>Author</th>
+                    <th>Lost code</th>
+                    <th>Barcode</th>
+                    <th>Call number</th>
+                    <th>Date last seen</th>
+                    <th>Price</th>
+                    <th>Rep.price</th>
+                    <th>Library</th>
+                    <th>Item type</th>
+                    <th>Current location</th>
+                    <th>Location</th>
+                    <th>Notes</th>
+                </tr>
+            </thead>
+            <tbody>
+                [% FOREACH itemsloo IN itemsloop %]
+                    <tr>
+                        <td>
+                            <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% itemsloo.biblionumber %]" title="[% itemsloo.itemnotes %]">[% itemsloo.title |html %]</a>
+                        </td>
+                        <td>[% itemsloo.author %]</td>
+                        <td>[% itemsloo.lib %]</td>
+                        <td>
+                            <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% itemsloo.biblionumber %]" title="[% itemsloo.itemnotes %]">[% itemsloo.barcode %]</a>
+                        </td>
+                        <td>[% itemsloo.itemcallnumber %]</td>
+                        <td>[% itemsloo.datelastseen %]</td>
+                        <td>[% itemsloo.price %]</td>
+                        <td>[% itemsloo.replacementprice %]</td>
+                        <td>[% Branches.GetName(itemsloo.homebranch) %]</td>
+                        <td>[% IF ( itemsloo.itype_level ) %][% itemsloo.itype %][% ELSE %][% itemsloo.itemtype %][% END %]</td>
+                        <td>[% Branches.GetName(itemsloo.holdingbranch) %]</td>
+                        <td>[% itemsloo.location %]</td>
+                        <td>[% itemsloo.itemnotes %]</td>
+                    </tr>
+                [% END %]
+            </tbody>
+        </table>
     [% END %]
-    </table>
-       [% END %] 
        [% ELSE %]
        
        <form name="f" action="/cgi-bin/koha/reports/itemslost.pl" method="post">