Bugzilla – Attachment 32070 Details for
Bug 13030
Show hold expiration date for waiting holds on circulation.pl
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 13030 - Show waiting hold expiration date for waiting holds on circulation.pl
Bug-13030---Show-waiting-hold-expiration-date-for-.patch (text/plain), 5.00 KB, created by
Kyle M Hall (khall)
on 2014-10-08 16:43:15 UTC
(
hide
)
Description:
Bug 13030 - Show waiting hold expiration date for waiting holds on circulation.pl
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2014-10-08 16:43:15 UTC
Size:
5.00 KB
patch
obsolete
>From efeb141eac2db7e1d44aeb607449a09f5e4f5a9a Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 8 Oct 2014 12:04:35 -0400 >Subject: [PATCH] Bug 13030 - Show waiting hold expiration date for waiting holds on circulation.pl > >We should show the date a waiting hold is set to expire for each hold in >the list of waiting holds in circulation.pl > >Test Plan: >1) Apply this patch >2) Find a waiting hold for a patron, browser to circulation.pl > for that patron >3) Set system preference ReservesMaxPickUpDelay to 5 >4) Refresh circulation.pl, note the waiting holds now display a > "waiting until" part with the waiting date plus 5 days >5) Set system preference ReservesMaxPickUpDelay to 0 ( or empty > string ) >6) Refresh circulation.pl, note the waiting hols no longer have a > "waiting until" line. >--- > Koha/Hold.pm | 25 +++++++++ > .../prog/en/modules/circ/circulation.tt | 2 +- > t/Hold.t | 54 ++++++++++++++++++++ > 3 files changed, 80 insertions(+), 1 deletions(-) > create mode 100755 t/Hold.t > >diff --git a/Koha/Hold.pm b/Koha/Hold.pm >index f00c2f8..c28177a 100644 >--- a/Koha/Hold.pm >+++ b/Koha/Hold.pm >@@ -21,9 +21,11 @@ use Modern::Perl; > > use Carp; > >+use C4::Context qw(preference); > use Koha::Branches; > use Koha::Biblios; > use Koha::Items; >+use Koha::DateUtils qw(dt_from_string); > > use base qw(Koha::Object); > >@@ -37,6 +39,29 @@ Koha::Branch - Koha Item Object class > > =cut > >+=head3 waiting_expires_on >+ >+Returns a DateTime for the date a waiting holds expires on. >+Returns undef if the system peference ReservesMaxPickUpDelay is not set. >+Returns undef if the hold is not waiting ( found = 'W' ). >+ >+=cut >+ >+sub waiting_expires_on { >+ my ($self) = @_; >+ >+ return unless $self->found() eq 'W'; >+ >+ my $ReservesMaxPickUpDelay = C4::Context->preference('ReservesMaxPickUpDelay'); >+ return unless $ReservesMaxPickUpDelay; >+ >+ my $dt = dt_from_string( $self->waitingdate() ); >+ >+ $dt->add( days => $ReservesMaxPickUpDelay ); >+ >+ return $dt; >+} >+ > =head3 biblio > > Returns the related Koha::Biblio object for this hold >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt >index 8915848..1a1a4bd 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt >@@ -619,7 +619,7 @@ No patron matched <span class="ex">[% message %]</span> > > <br/> > [% IF ( w.branch.branchcode == Branches.GetLoggedInBranchcode() ) %]<strong class="waitinghere">[% ELSE %]<strong>[% END %] >- Waiting at [% w.branch.branchname | html %] >+ Waiting at [% w.branch.branchname | html %] [% IF w.waiting_expires_on %] until [% w.waiting_expires_on | $KohaDates %] [% END %] > </strong> > </li> > </ul> >diff --git a/t/Hold.t b/t/Hold.t >new file mode 100755 >index 0000000..6594c56 >--- /dev/null >+++ b/t/Hold.t >@@ -0,0 +1,54 @@ >+#!/usr/bin/perl >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use Test::MockModule; >+use Test::More tests => 5; >+use t::lib::Mocks; >+ >+my $module = new Test::MockModule('C4::Context'); >+$module->mock( >+ '_new_dbh', >+ sub { >+ my $dbh = DBI->connect( 'DBI:Mock:', '', '' ) >+ || die "Cannot create handle: $DBI::errstr\n"; >+ return $dbh; >+ } >+); >+ >+use_ok('Koha::Hold'); >+ >+my $hold = Koha::Hold->new({ found => 'W', waitingdate => '2000-01-01'}); >+ >+t::lib::Mocks::mock_preference('ReservesMaxPickUpDelay', undef); >+my $dt = $hold->waiting_expires_on(); >+is( $dt, undef, "Koha::Hold->waiting_expires_on returns undef if ReservesMaxPickUpDelay is not set"); >+ >+t::lib::Mocks::mock_preference('ReservesMaxPickUpDelay', 5); >+$dt = $hold->waiting_expires_on(); >+is( $dt->ymd, "2000-01-06", "Koha::Hold->waiting_expires_on returns DateTime of waitingdate + ReservesMaxPickUpDelay if set"); >+ >+$hold->found('T'); >+$dt = $hold->waiting_expires_on(); >+is( $dt, undef, "Koha::Hold->waiting_expires_on returns undef if found is not 'W' ( Set to 'T' )"); >+ >+$hold->found(q{}); >+$dt = $hold->waiting_expires_on(); >+is( $dt, undef, "Koha::Hold->waiting_expires_on returns undef if found is not 'W' ( Set to empty string )"); >+ >+1; >-- >1.7.2.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 13030
:
32012
|
32070
|
32935
|
40027
|
40038
|
40411
|
40412
|
40414
|
40415