Fix for Bug 3431 - Catalog by itemtype report pulling from holdingbranch
authorOwen Leonard <oleonard@myacpl.org>
Tue, 23 Aug 2011 19:33:34 +0000 (15:33 -0400)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 2 Jan 2012 22:46:16 +0000 (23:46 +0100)
Plus several other fixes for this report no one uses:

- Clarifying titles and breadcrumbs
- Correcting terminology: branch -> library
- Sorting library select field by library name
- Displaying library name instead of code on output
- Sorting results by itemtype description
- Adding tablesorter to results

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
koha-tmpl/intranet-tmpl/prog/en/modules/reports/itemtypes.tt
reports/itemtypes.plugin

index 65fa34e..26199e6 100644 (file)
@@ -1,12 +1,20 @@
 [% INCLUDE 'doc-head-open.inc' %]
-<title>Koha &rsaquo; Reports &rsaquo; Item Types</title>
+<title>Koha &rsaquo; Reports &rsaquo; Catalog by Item Types</title>
 [% INCLUDE 'doc-head-close.inc' %]
+<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
+<script type="text/javascript">
+//<![CDATA[
+$(document).ready(function() {
+       $("#itemtypest").tablesorter();
+});
+//]]>
+</script>
 </head>
 <body>
 [% INCLUDE 'header.inc' %]
 [% INCLUDE 'cat-search.inc' %]
 
-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/reports/reports-home.pl">Reports</a>[% IF ( do_it ) %] &rsaquo; <a href="/cgi-bin/koha/reports/manager.pl?report_name=itemtypes">Item Types</a> &rsaquo; Results[% ELSE %] &rsaquo; Item Types[% END %]</div>
+<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/reports/reports-home.pl">Reports</a>[% IF ( do_it ) %] &rsaquo; <a href="/cgi-bin/koha/reports/manager.pl?report_name=itemtypes">Catalog by Item Type</a> &rsaquo; Results[% ELSE %] &rsaquo; Catalog by Item Type[% END %]</div>
 
 <div id="doc3" class="yui-t2">
    
 
 [% IF ( do_it ) %]
 [% FOREACH mainloo IN mainloop %]
-       <h1>Reports on item types [% IF ( mainloo.branch ) %] for branch = [% mainloo.branch %][% END %]</h1>
-       <table>
+       <h1>Reports on item types [% IF ( mainloo.branchname ) %] held at [% mainloo.branchname %][% END %]</h1>
+       <table id="itemtypest">
+               <thead>
                <tr>
                        <th>Item type</th>
-                       <th>count</th>
+                       <th>Count</th>
                </tr>
+               </thead>
+               <tfoot>
+                       <tr>
+                               <th>TOTAL</th>
+                               <th>[% mainloo.total %]</th>
+                       </tr>
+               </tfoot>
+               <tbody>
                        [% FOREACH loopitemtyp IN mainloo.loopitemtype %]
                                <tr>
                                        <td>[% loopitemtyp.itemtype %]</td>
                                        <td>[% loopitemtyp.count %]</td>
                                </tr>
                        [% END %]
-                       <tr>
-                               <th>TOTAL</th>
-                               <th>[% mainloo.total %]</th>
-                       </tr>
+               </tbody>
        </table>
 [% END %]
 [% ELSE %]
-
+       <h3>View a count of items held at your library grouped by item type</h3>
        <form method="post" action="/cgi-bin/koha/reports/manager.pl?report_name=itemtypes">
-               <fieldset class="rows"><legend>View catalog group by item types</legend><ol><li><label for="value">Select a branch</label> [% CGIbranch %]
-               <span class="tip">Select none to see all branches</span></li></ol></fieldset>
+               <fieldset class="rows"><ol><li><label for="value">Select a library</label> [% CGIbranch %]
+               <span class="tip">Select none to see all libraries</span></li></ol></fieldset>
                <fieldset class="action"><input type="submit" value="Submit" />
                <input type="hidden" name="report_name" value="[% report_name %]" />
                <input type="hidden" name="do_it" value="1" /></fieldset>
index f543f2d..8134354 100755 (executable)
@@ -35,20 +35,23 @@ sub set_parameters {
        my $dbh = C4::Context->dbh;
        my $branches=GetBranches();
        my @branches;
+       my $default;
        my @select_branch;
        my %select_branches;
        push @select_branch,"";
        $select_branches{""} = "";
-       foreach my $branch (keys %$branches) {
+       for my $branch (sort { $branches->{$a}->{branchname} cmp $branches->{$b}->{branchname} } keys %$branches) {
                push @select_branch, $branch;
                $select_branches{$branch} = $branches->{$branch}->{'branchname'};
+               $default = C4::Context->userenv->{'branch'} if (C4::Context->userenv && C4::Context->userenv->{'branch'});
        }
        my $CGIbranch=CGI::scrolling_list( -name     => 'value',
                                -id => 'value',
                                -values   => \@select_branch,
                                -labels   => \%select_branches,
                                -size     => 1,
-                               -multiple => 0 );
+                               -multiple => 0,
+                               -default => $default, );
        $template->param(CGIbranch => $CGIbranch);
        return $template;
 }
@@ -65,7 +68,8 @@ sub calculate {
                        FROM itemtypes,items         
                WHERE items.itype=itemtypes.itemtype         
                AND items.holdingbranch=?            
-               GROUP BY  items.itype");
+               GROUP BY items.itype
+               ORDER BY itemtypes.description");
 
                }
                else {
@@ -75,7 +79,8 @@ sub calculate {
                WHERE biblioitems.itemtype=itemtypes.itemtype 
                AND items.biblioitemnumber=biblioitems.biblioitemnumber
                AND items.holdingbranch=?
-                       GROUP BY  biblioitems.itemtype");
+                       GROUP BY  biblioitems.itemtype
+                       ORDER BY itemtypes.description");
                }
                $sth->execute($branch);
        } else {
@@ -84,14 +89,16 @@ sub calculate {
                SELECT description,items.itype AS itemtype, COUNT(*) AS total 
                        FROM itemtypes,items
                WHERE items.itype=itemtypes.itemtype
-                       GROUP BY items.itype");
+                       GROUP BY items.itype
+                       ORDER BY itemtypes.description");
                }
                else {
                $sth = $dbh->prepare("SELECT description, biblioitems.itemtype, COUNT(*) AS total
                        FROM itemtypes, biblioitems,items 
                WHERE biblioitems.itemtype=itemtypes.itemtype 
                AND biblioitems.biblioitemnumber = items.biblioitemnumber
-                       GROUP BY biblioitems.itemtype");
+                       GROUP BY biblioitems.itemtype
+                       ORDER BY itemtypes.description");
                }
                $sth->execute;
        }
@@ -116,6 +123,7 @@ sub calculate {
        $globalline{loopitemtype} = \@results;
        $globalline{total} = $grantotal;
        $globalline{branch} = $branch;
+       $globalline{branchname} = GetBranchName($branch);
        push @mainloop,\%globalline;
        return \@mainloop;
 }