Koha/koha-tmpl/intranet-tmpl/prog/en/modules/circ/reserveratios.tt
Lucas Gass 2ce6824499
Bug 35069: Fix hold ratios items needed column sorting
This patch adds the data-sort attribute to the "Items needed" column to
ensure proper sorting.

To test:
1. Make a lot of holds.
2. On some holds have a high enough holds/copies ratio so the "Items
   needed" has values greater than 10.
3. Sort by that column. Notice the copies with an "Items needed" higher
   than 10 do not get sorted correctly.
4. APPLY PATCH
5. Try steps 1 -3 again. Everything should sort properly.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2023-10-25 11:08:03 -03:00

210 lines
7.7 KiB
Text

[% USE raw %]
[% USE Asset %]
[% USE KohaDates %]
[% USE AuthorisedValues %]
[% USE Branches %]
[% USE ItemTypes %]
[% USE TablesSettings %]
[% PROCESS 'i18n.inc' %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>[% FILTER collapse %]
[% t("Hold ratios") | html %] &rsaquo;
[% t("Circulation") | html %] &rsaquo;
[% t("Koha") | html %]
[% END %]</title>
[% INCLUDE 'doc-head-close.inc' %]
<style>
.sql { display: none; }
.ulined { text-decoration: underline; }
#holdst ul li { list-style: outside url("[% interface | html %]/[% theme | html %]/img/item-bullet.svg") disc; }
</style>
</head>
<body id="circ_reserveratios" class="circ">
[% WRAPPER 'header.inc' %]
[% INCLUDE 'circ-search.inc' %]
[% END %]
[% WRAPPER 'sub-header.inc' %]
[% WRAPPER breadcrumbs %]
[% WRAPPER breadcrumb_item %]
<a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a>
[% END %]
[% WRAPPER breadcrumb_item bc_active= 1 %]
<span>Hold ratios</span>
[% END %]
[% END #/ WRAPPER breadcrumbs %]
[% END #/ WRAPPER sub-header.inc %]
<div class="main container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-push-2">
<main>
<h1>Hold ratios to calculate items needed</h1>
<h3>Calculated on [% todaysdate | $KohaDates %]. From [% from | $KohaDates %]
to [% to | $KohaDates %]</h3>
<p>These items have a hold ratio &ge; [% ratio | html %].</p>
<div class="sql">[% sql | html %]</div>
[% IF ( reserveloop ) %]
<table id="holdst">
<thead>
<tr>
<th>Holds</th>
<th>Items</th>
<th>Hold ratio</th>
<th class="anti-the">Title</th>
<th>Home libraries</th>
<th>Holding libraries</th>
<th>Location</th>
<th>Itype</th>
<th class="natural">Call numbers</th>
<th>Items needed</th>
</tr>
</thead>
<tbody>
[% FOREACH reserveloo IN reserveloop %]
<tr>
<td><p>[% reserveloo.reservecount | html %]</p></td>
<td><p>[% reserveloo.itemcount | html %]</p></td>
<td><a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% reserveloo.biblionumber | uri %]" >[% reserveloo.thisratio | html %]</a></td>
<td>
[% INCLUDE 'biblio-title.inc' biblio=reserveloo link = 1 %][% IF ( reserveloo.author ) %] by [% reserveloo.author | html %][% END %]
</td>
<td>
<ul>
[% FOREACH homebranch IN reserveloo.homebranch_list %]
<li>[% Branches.GetName ( homebranch ) | html %]</li>
[% END %]
</ul>
</td>
<td>
<ul>
[% FOREACH holdingbranch IN reserveloo.holdingbranch_list %]
<li>[% Branches.GetName ( holdingbranch ) | html %]</li>
[% END %]
</ul>
</td>
<td>
<ul>
[% FOREACH location IN reserveloo.location %]
<li>[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.location', authorised_value => location ) | html %]</li>
[% END %]
</ul>
</td>
<td>
<ul>
[% FOREACH itype IN reserveloo.itype %]
<li>[% ItemTypes.GetDescription( itype ) | html %]</li>
[% END %]
</ul>
</td>
<td>
<ul>
[% FOREACH listcall IN reserveloo.listcall %]
<li>[% listcall | html %]</li>
[% END %]
</ul>
</td>
<td class="actions" data-sort="[% reserveloo.copies_to_buy | html %]">
<p>
[% IF ( reserveloo.thisratio_atleast1 ) %]
[% IF ( CAN_user_acquisition && basketno && booksellerid ) %]<!-- [% reserveloo.copies_to_buy | html %] -->
<a href="/cgi-bin/koha/acqui/neworderempty.pl?biblionumber=[% reserveloo.biblionumber | uri %]&amp;booksellerid=[% booksellerid | uri %]&amp;basketno=[% basketno | uri %]&amp;rr_quantity_to_order=[% reserveloo.copies_to_buy | uri %]" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> [% reserveloo.copies_to_buy | html %] to order</a>
[% ELSE %]
<strong>[% reserveloo.copies_to_buy | html %] to order</strong>
[% END %]
[% IF ( reserveloo.pendingorders ) %]<br><strong>[% reserveloo.pendingorders | html %] pending</strong>[% END %]
[% ELSE %]
<span>0 to order</span>
[% END %]
</p>
</td>
</tr>
[% END %]
</tbody>
</table>
[% ELSE %]
<strong>No items found.</strong>
[% END %]
</main>
</div> <!-- /.col-sm-10.col-sm-push-2 -->
<div class="col-sm-2 col-sm-pull-10">
<aside>
<form action="/cgi-bin/koha/circ/reserveratios.pl" method="post" >
<fieldset class="brief">
<h4>Refine results:</h4>
<ol>
<li>
<label for="ratio">Hold ratio (greater than or equal to):</label>
<input type="text" size="5" id="ratio" name="ratio" value="[% ratio | html %]" />
</li>
<li class="checkbox">
[% IF include_ordered %]
<input id="include_ordered" name="include_ordered" type="checkbox" checked="checked"/>
[% ELSE %]
<input id="include_ordered" name="include_ordered" type="checkbox"/>
[% END %]
<label for="include_ordered">Include ordered</label>
</li>
<li class="checkbox">
[% IF include_suspended %]
<input id="include_suspended" name="include_suspended" type="checkbox" checked="checked"/>
[% ELSE %]
<input id="include_suspended" name="include_suspended" type="checkbox"/>
[% END %]
<label for="include_suspended">Include suspended</label>
</li>
<li>
<label for="from">Start date:</label>
<input type="text" size="10" id="from" name="from" value="[% from | html %]" class="flatpickr" data-date_to="to" />
</li>
<li>
<label for="to">End date:</label>
<input size="10" id="to" name="to" value="[% to | html %]" type="text" class="flatpickr" />
</li>
</ol>
(inclusive)
<fieldset class="action"><input type="submit" value="Go" class="submit"/></fieldset>
</fieldset>
[% IF ( CAN_user_acquisition && basketno && booksellerid ) %]
<input type="hidden" name="booksellerid" value="[% booksellerid | html %]" />
<input type="hidden" name="basketno" value="[% basketno | html %]" />
[% END %]
</form>
</aside>
</div> <!-- /.col-sm-2.col-sm-pull-10 -->
</div> <!-- /.row -->
[% MACRO jsinclude BLOCK %]
[% INCLUDE 'calendar.inc' %]
[% INCLUDE 'datatables.inc' %]
[% INCLUDE 'columns_settings.inc' %]
<script>
var table_settings = [% TablesSettings.GetTableSettings( 'circ', 'holdsratios', 'holds-ratios', 'json' ) | $raw %];
$(document).ready(function() {
KohaTable("holdst", {
"aaSorting": [ [2,'desc'], [3,'asc'] ],
"aoColumnDefs": [
{ "sType": "anti-the", "aTargets" : [ "anti-the" ] },
{ "sType": "natural", "aTargets" : [ "natural" ] },
],
"sPaginationType": "full",
"autoWidth": false
}, table_settings);
});
</script>
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]