Bug 28762: add staff item-status.inc and better handle statues on course-details.tt

This patch adds an item-status.inc to the staff side much like what is already in place on the OPAC.

To test:
1. create a course in course reserves, add an item to it.
2. confirm your item shows Available for its status on course-details.pl
3. edit your item to be withdrawn, lost, damaged, notforloan, and restricted use
4. reload course-details.pl, confirm it still shows available
5. apply patch
6. repeat step 3 with each of the statuses and make sure it correctly shows on course-details.pl

Signed-off-by: Hayley Pelham <hayleypelham@catalyst.net.nz>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
Lucas Gass 2021-07-27 21:17:48 +00:00 committed by Martin Renvoize
parent 0f7d3fab6c
commit 38427cc357
Signed by: martin.renvoize
GPG key ID: 422B469130441A0F
3 changed files with 113 additions and 8 deletions

View file

@ -2282,7 +2282,11 @@ td {
.lost,
.dmg,
.wdn {
.wdn,
.restricted,
.damaged,
.lost,
.withdrawn {
color: #990000;
display: block;
}

View file

@ -0,0 +1,107 @@
[% USE Branches %]
[% USE AuthorisedValues %]
[% SET itemavailable = 1 %]
[%#- This include takes two parameters: an item structure -%]
[%#- and an optional loan (issue) structure. The issue -%]
[%#- structure is used by course reserves pages, which do -%]
[%#- not use an API to fetch items that populates item.datedue. -%]
[% IF ( item.itemlost ) %]
[% SET itemavailable = 0 %]
[% av_lib_include = AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.itemlost', authorised_value => item.itemlost ) %]
[% IF ( av_lib_include ) %]
<span class="item-status lost">[% av_lib_include | html %]</span>
[% ELSE %]
<span class="item-status lost">Item lost</span>
[% END %]
[% END %]
[% IF item.isa('Koha::Item') %]
[% SET datedue = issue.date_due %]
[% SET onsite_checkout = issue.onsite_checkout %]
[% ELSE %]
[% SET datedue = item.datedue || issue.date_due %]
[% SET onsite_checkout = item.onsite_checkout %]
[% END %]
[% IF datedue %]
[% SET itemavailable = 0 %]
[% IF onsite_checkout %]
[% IF ( OPACShowCheckoutName ) %]
<span class="item-status checkedout">Currently in local use by [% item.firstname | html %] [% item.surname | html %] [% IF ( item.cardnumber ) %]([% item.cardnumber | html %])[% END %]</span>
[% ELSE %]
<span class="item-status checkedout">Currently in local use</span>
[% END %]
[% ELSE %]
[% IF ( OPACShowCheckoutName ) %]
<span class="item-status checkedout">Checked out to [% item.firstname | html %] [% item.surname | html %] [% IF ( item.cardnumber ) %]([% item.cardnumber | html %])[% END %]</span>
[% ELSE %]
<span class="item-status checkedout">Checked out</span>
[% END %]
[% END %]
[% END %]
[% IF NOT ( item.isa('Koha::Item') ) AND item.transfertwhen %] [%# transfertwhen is set in C4::Search, do not have it for course reserves %]
[% SET itemavailable = 0 %]
<span class="item-status intransit">In transit from [% Branches.GetName( item.transfertfrom ) | html %]
to [% Branches.GetName( item.transfertto ) | html %] since [% item.transfertwhen | $KohaDates %]</span>
[% END %]
[% IF NOT( item.isa('Koha::Item') ) AND item.waiting %] [%# Not sure where does come from this waiting flag %]
[% SET itemavailable = 0 %]
<span class="item-status onhold">On hold</span>
[% END %]
[% IF ( item.withdrawn ) %]
[% SET itemavailable = 0 %]
[% av_lib_include = AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.withdrawn', authorised_value => item.withdrawn ) %]
[% IF av_lib_include %]
<span class="item-status withdrawn">[% av_lib_include | html %]</span>
[% ELSE %]
<span class="item-status withdrawn">Item withdrawn</span>
[% END %]
[% END %]
[% IF NOT ( item.isa('Koha::Item') ) AND item.itemnotforloan %]
[% SET itemavailable = 0 %]
[% IF ( item.notforloanvalueopac ) %]
<span class="item-status notforloan">[% item.notforloanvalueopac | html %]</span>
[% ELSE %]
<span class="item-status notforloan">Not for loan</span>
[% END %]
[% ELSIF NOT ( item.isa('Koha::Item') ) AND item.notforloan_per_itemtype %]
[% SET itemavailable = 0 %]
<span class="item-status notforloan">Not for loan</span>
[% END %]
[% IF ( item.damaged ) %]
[% SET itemavailable = 0 %]
[% av_lib_include = AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.damaged', authorised_value => item.damaged ) %]
[% IF av_lib_include %]
<span class="item-status damaged">[% av_lib_include | html %]</span>
[% ELSE %]
<span class="item-status damaged">Item damaged</span>
[% END %]
[% END %]
[% IF ( item.restricted ) %]
[% SET itemavailable = 0 %]
[% av_lib_include = AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.restricted', authorised_value => item.restricted ) %]
[% IF av_lib_include %]
<span class="item-status restricted">[% av_lib_include | html %]</span>
[% ELSE %]
<span class="item-status restricted">On order</span>
[% END %]
[% END %]
[% IF item.has_pending_hold %]
[% SET itemavailable = 0 %]
<span class="item-status pendinghold">Pending hold</span>
[% END %]
[% IF ( itemavailable ) %]
[% IF NOT item.isa('Koha::Item') %]
<span class="item-status available">Available</span>
[% END %]
[% END %]

View file

@ -292,13 +292,7 @@
</td>
<td class="status">
<span>
[% IF cr.item.onloan %]
<span>Checked out</span>
[% ELSE %]
<span>Available</span>
[% END %]
</span>
[% INCLUDE 'item-status.inc' item=cr.item issue=cr.issue %]
</td>
[% IF CAN_user_coursereserves_add_reserves || CAN_user_coursereserves_delete_reserves %]