Bugzilla – Attachment 26708 Details for
Bug 10694
Allow arbitrary backdating of returns
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[PASSED QA] Bug 10694 - Allow arbitrary backdating of returns - QA Followup
PASSED-QA-Bug-10694---Allow-arbitrary-backdating-o.patch (text/plain), 9.05 KB, created by
Katrin Fischer
on 2014-03-31 17:41:32 UTC
(
hide
)
Description:
[PASSED QA] Bug 10694 - Allow arbitrary backdating of returns - QA Followup
Filename:
MIME Type:
Creator:
Katrin Fischer
Created:
2014-03-31 17:41:32 UTC
Size:
9.05 KB
patch
obsolete
>From 70e3ab68d1717406caff9d6ec917b4981db6212c Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Sun, 20 Oct 2013 18:39:15 -0400 >Subject: [PATCH] [PASSED QA] Bug 10694 - Allow arbitrary backdating of returns > - QA Followup > >Bug 10694 - Allow arbitrary backdating of returns - QA Followup 2 > >Bug 10694 - Allow arbitrary backdating of returns - QA Followup 3 > >Signed-off-by: Petter Goksoyr Asen <boutrosboutrosboutros@gmail.com> >Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> >--- > Koha/Template/Plugin/Borrowers.pm | 58 ++++++++++++++++++++++ > circ/returns.pl | 3 +- > installer/data/mysql/updatedatabase.pl | 2 +- > .../intranet-tmpl/prog/en/includes/calendar.inc | 28 +++++++++++ > .../intranet-tmpl/prog/en/modules/circ/returns.tt | 44 ++++++++++++++-- > 5 files changed, 129 insertions(+), 6 deletions(-) > create mode 100644 Koha/Template/Plugin/Borrowers.pm > >diff --git a/Koha/Template/Plugin/Borrowers.pm b/Koha/Template/Plugin/Borrowers.pm >new file mode 100644 >index 0000000..29a6fef >--- /dev/null >+++ b/Koha/Template/Plugin/Borrowers.pm >@@ -0,0 +1,58 @@ >+package Koha::Template::Plugin::Borrowers; >+ >+# Copyright ByWater Solutions 2013 >+ >+# 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, write to the Free Software Foundation, Inc., >+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. >+ >+use Modern::Perl; >+ >+use base qw( Template::Plugin ); >+ >+use Date::Calc qw/Today Add_Delta_YM check_date Date_to_Days/; >+ >+use C4::Koha; >+ >+=pod >+ >+This plugin is a home for various patron related Template Toolkit functions >+to help streamline Koha and to move logic from the Perl code into the >+Templates when it makes sense to do so. >+ >+To use, first, include the line '[% USE Borrowers %]' at the top >+of the template to enable the plugin. >+ >+For example: [% IF Borrowers.IsDebarred( borrower.borrowernumber ) %] >+removes the necessity of setting a template variable in Perl code to >+find out if a patron is restricted even if that variable is not evaluated >+in any way in the script. >+ >+=cut >+ >+sub IsDebarred { >+ my ( $self, $borrower ) = @_; >+ >+ return unless $borrower; >+ >+ if ( $borrower->{'debarred'} && check_date( split( /-/, $borrower->{'debarred'} ) ) ) { >+ if ( Date_to_Days(Date::Calc::Today) < Date_to_Days( split( /-/, $borrower->{'debarred'} ) ) ) { >+ return 1; >+ } >+ } >+ >+ return 0; >+} >+ >+1; >diff --git a/circ/returns.pl b/circ/returns.pl >index f8c4608..a38455a 100755 >--- a/circ/returns.pl >+++ b/circ/returns.pl >@@ -268,7 +268,8 @@ if ($barcode) { > itemtype => $biblio->{'itemtype'}, > ccode => $biblio->{'ccode'}, > itembiblionumber => $biblio->{'biblionumber'}, >- additional_materials => $biblio->{'materials'} >+ borrower => $borrower, >+ additional_materials => $biblio->{'materials'}, > ); > > my %input = ( >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 4c6aeb0..ef5f593 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -8090,7 +8090,7 @@ if ( CheckVersion($DBversion) ) { > INSERT INTO systempreferences > (variable,value,explanation,options,type) > VALUES >- ('SpecifyReturnDate',1,'Define whether to display \"Specify Return Date\" form in Circulation','','YesNo') >+ ('SpecifyReturnDate',0,'Define whether to display \"Specify Return Date\" form in Circulation','','YesNo') > }); > print "Upgrade to $DBversion done (Bug 10694 - Allow arbitrary backdating of returns)\n"; > SetVersion($DBversion); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc >index 1337044..8eb3fcb 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc >@@ -21,6 +21,34 @@ function Date_from_syspref(dstring) { > } > } > >+function DateTime_from_syspref(date_time) { >+ var parts = date_time.split(" "); >+ var date = parts[0]; >+ var time = parts[1]; >+ parts = time.split(":"); >+ var hour = parts[0]; >+ var minute = parts[1]; >+ >+ if ( hour < 0 || hour > 23 ) { >+ return 0; >+ } >+ if ( minute < 0 || minute > 59 ) { >+ return 0; >+ } >+ >+ var datetime = Date_from_syspref( date ); >+ >+ if ( isNaN( datetime.getTime() ) ) { >+ return 0; >+ } >+ >+ datetime.setHours( hour ); >+ datetime.setMinutes( minute ); >+ >+ return datetime; >+} >+ >+ > /* Instead of including multiple localization files as you would normally see with > jQueryUI we expose the localization strings in the default configuration */ > jQuery(function($){ >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt >index a6cea69..7b7b668 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt >@@ -1,13 +1,14 @@ > [% USE KohaDates %] > [% USE Branches %] > [% USE Koha %] >+[% USE Borrowers %] > > [% INCLUDE 'doc-head-open.inc' %] > <title>Koha › Circulation › Check in [% title |html %]</title> > [% INCLUDE 'doc-head-close.inc' %] > > [% INCLUDE 'calendar.inc' %] >-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery-ui-timepicker-addon.js"></script> >+<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery-ui-timepicker-addon.min.js"></script> > > <script type="text/javascript"> > //<![CDATA[ >@@ -18,9 +19,33 @@ function Dopop(link) { > $(document).ready(function () { > $("#return_date_override").datetimepicker({ > onClose: function(dateText, inst) { $("#barcode").focus(); }, >+ defaultDate: -1, > hour: 23, >- minute: 59 >+ minute: 59, >+ maxDate: 0 > }); >+ $("#return_date_override").on("blur", function() { >+ check_valid_return_date(); >+ }); >+ $("#checkin-form").submit(function( event ) { >+ if ( !check_valid_return_date() ) { >+ event.preventDefault(); >+ } >+ }); >+ >+ function check_valid_return_date() { >+ if ( $("#return_date_override").val() ) { >+ var datetime = DateTime_from_syspref( $("#return_date_override").val() ); >+ var now = new Date(); >+ if ( !datetime || datetime > now ) { >+ alert("Invalid return date/time!"); >+ $("#return_date_override").val("") >+ return false; >+ } >+ } >+ return true; >+ } >+ > $("#exemptcheck").change(function () { > if (this.checked == true) { > $("#barcode").addClass("alert"); >@@ -102,6 +127,17 @@ $(document).ready(function () { > </div> > [% END %] > >+<!-- Patron is restricted and checkin was backdated --> >+[% IF return_date_override && Borrowers.IsDebarred( borrower ) %] >+ <div id="restricted_backdated" class="dialog message"> >+ <h3> >+ <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrower.borrowernumber %]"> >+ [% borrower.firstname %] [% borrower.surname %] >+ </a> >+ is retricted. Please verify this patron should still be restricted. >+ </h3> >+ </div> >+[% END %] > > [% IF ( wrongbranch ) %] > <div class="dialog alert"><h3>Cannot check in</h3><p>This item must be checked in at its home library. <strong>NOT CHECKED IN</strong></p> >@@ -395,7 +431,7 @@ $(document).ready(function () { > </div> > </div> > <div class="yui-g"> >- <form method="post" action="/cgi-bin/koha/circ/returns.pl" autocomplete="off" > >+ <form id="checkin-form" method="post" action="/cgi-bin/koha/circ/returns.pl" autocomplete="off" > > <div class="yui-u first"> > <fieldset> > <legend>Check in</legend> >@@ -413,7 +449,7 @@ $(document).ready(function () { > <div class="date-select" id="return_date_override_fields"> > <div class="hint">Specify return date [% INCLUDE 'date-format.inc' %]: </div> > >- <input type="text" size="13" id="return_date_override" name="return_date_override" value="[% return_date_override %]" readonly="readonly" /> >+ <input type="text" size="13" id="return_date_override" name="return_date_override" value="[% return_date_override %]" /> > > <label for="return_date_override_remember"> Remember for next check in:</label> > [% IF ( return_date_override_remember ) %] >-- >1.8.3.2
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 10694
:
20146
|
20147
|
21094
|
21095
|
21096
|
22122
|
22123
|
23672
|
23673
|
23697
|
25658
|
25659
|
25660
|
25661
|
26162
|
26163
|
26707
| 26708 |
27461
|
27475