Bugzilla – Attachment 98048 Details for
Bug 24194
Add system preference to disable the use of expiration dates for holds
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 24194: Add HideReserveExpiration system preference to hide expiration date options for reserves
Bug-24194-Add-HideReserveExpiration-system-prefere.patch (text/plain), 11.29 KB, created by
Aleisha Amohia
on 2020-01-29 03:08:33 UTC
(
hide
)
Description:
Bug 24194: Add HideReserveExpiration system preference to hide expiration date options for reserves
Filename:
MIME Type:
Creator:
Aleisha Amohia
Created:
2020-01-29 03:08:33 UTC
Size:
11.29 KB
patch
obsolete
>From 1f1862a38db5f0f39f65c826e0b3af7d84d27221 Mon Sep 17 00:00:00 2001 >From: Aleisha Amohia <aleishaamohia@hotmail.com> >Date: Mon, 9 Dec 2019 04:33:42 +0000 >Subject: [PATCH] Bug 24194: Add HideReserveExpiration system preference to > hide expiration date options for reserves > >To test: >1) Update database >2) Go to place a hold on any biblio in the staff intranet and confirm >you can see the 'Hold expires on date' field. >3) In another tab, go to place a hold on any biblio in the OPAC and >confirm you can see the 'Hold not needed after' field as an option. >4) In yet another tab, open the staff intranet and place a reserve for a user. Check it in and set the reserve as >waiting. Notice that an expiration date has now been generated for this >reserve. >5) Attempt to check out the item you reserved to some other borrower. >Revert waiting status. Notice that the expiration date that was >generated remains. >6) Go to Administration -> system preferences and set HideReserveExpiration system preference to 'Hide' >7) Refresh the hold request page in the intranet. Confirm the expiration >date field disappears. >8) Refresh the hold request page in the OPAC. Confirm the expiration >date field disappears. >9) Place another reserve. Check it in and set the reserve as waiting. >Notice that no expiration date was generated for this reserve. >10) Attempt to check out the item you reserved to some other borrower. >Revert waiting status. The expiration date should remain null. > >Sponsored-by: Horowhenua Library Trust >--- > C4/Reserves.pm | 12 ++++++++ > Koha/Hold.pm | 34 ++++++++++++---------- > ...bug24194-add-HideReserveExpiration-syspref.perl | 7 +++++ > installer/data/mysql/sysprefs.sql | 1 + > .../en/modules/admin/preferences/circulation.pref | 6 ++++ > .../prog/en/modules/reserve/request.tt | 14 +++++---- > .../opac-tmpl/bootstrap/en/modules/opac-reserve.tt | 12 ++++---- > 7 files changed, 59 insertions(+), 27 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/bug24194-add-HideReserveExpiration-syspref.perl > >diff --git a/C4/Reserves.pm b/C4/Reserves.pm >index f2bf8bd..baeb1f5 100644 >--- a/C4/Reserves.pm >+++ b/C4/Reserves.pm >@@ -1974,6 +1974,18 @@ sub RevertWaitingStatus { > WHERE > reserve_id = ? > "; >+ if ( C4::Context->preference('HideReserveExpiration') ){ >+ $query = " >+ UPDATE reserves >+ SET >+ priority = 1, >+ found = NULL, >+ waitingdate = NULL, >+ expirationdate = NULL >+ WHERE >+ reserve_id = ? >+ "; >+ } > $sth = $dbh->prepare( $query ); > $sth->execute( $reserve->{'reserve_id'} ); > >diff --git a/Koha/Hold.pm b/Koha/Hold.pm >index e2308db..d52dc9d 100644 >--- a/Koha/Hold.pm >+++ b/Koha/Hold.pm >@@ -171,27 +171,29 @@ sub set_waiting { > waitingdate => $today->ymd, > }; > >- my $requested_expiration; >- if ($self->expirationdate) { >- $requested_expiration = dt_from_string($self->expirationdate); >- } >+ unless ( C4::Context->preference('HideReserveExpiration') ){ >+ my $requested_expiration; >+ if ($self->expirationdate) { >+ $requested_expiration = dt_from_string($self->expirationdate); >+ } >+ >+ my $max_pickup_delay = C4::Context->preference("ReservesMaxPickUpDelay"); >+ my $cancel_on_holidays = C4::Context->preference('ExpireReservesOnHolidays'); >+ my $calendar = Koha::Calendar->new( branchcode => $self->branchcode ); > >- my $max_pickup_delay = C4::Context->preference("ReservesMaxPickUpDelay"); >- my $cancel_on_holidays = C4::Context->preference('ExpireReservesOnHolidays'); >- my $calendar = Koha::Calendar->new( branchcode => $self->branchcode ); >+ my $expirationdate = $today->clone; >+ $expirationdate->add(days => $max_pickup_delay); > >- my $expirationdate = $today->clone; >- $expirationdate->add(days => $max_pickup_delay); >+ if ( C4::Context->preference("ExcludeHolidaysFromMaxPickUpDelay") ) { >+ $expirationdate = $calendar->days_forward( dt_from_string(), $max_pickup_delay ); >+ } > >- if ( C4::Context->preference("ExcludeHolidaysFromMaxPickUpDelay") ) { >- $expirationdate = $calendar->days_forward( dt_from_string(), $max_pickup_delay ); >+ # If patron's requested expiration date is prior to the >+ # calculated one, we keep the patron's one. >+ my $cmp = $requested_expiration ? DateTime->compare($requested_expiration, $expirationdate) : 0; >+ $values->{expirationdate} = $cmp == -1 ? $requested_expiration->ymd : $expirationdate->ymd; > } > >- # If patron's requested expiration date is prior to the >- # calculated one, we keep the patron's one. >- my $cmp = $requested_expiration ? DateTime->compare($requested_expiration, $expirationdate) : 0; >- $values->{expirationdate} = $cmp == -1 ? $requested_expiration->ymd : $expirationdate->ymd; >- > $self->set($values)->store(); > > return $self; >diff --git a/installer/data/mysql/atomicupdate/bug24194-add-HideReserveExpiration-syspref.perl b/installer/data/mysql/atomicupdate/bug24194-add-HideReserveExpiration-syspref.perl >new file mode 100644 >index 0000000..514cae0 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug24194-add-HideReserveExpiration-syspref.perl >@@ -0,0 +1,7 @@ >+$DBversion = 'XXX'; # will be replaced by the RM >+if( CheckVersion( $DBversion ) ) { >+ $dbh->do(q{ INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES ( "HideReserveExpiration", 0, NULL, "Hide expiration date in reserves module.", "YesNo" ) }); >+ >+ SetVersion( $DBversion ); >+ print "Upgrade to $DBversion done (Bug 24194 - HideReserveExpiration system preference)\n"; >+} >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index cfa295e..5c59f27 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -210,6 +210,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('GoogleOpenIDConnectDomain', '', NULL, 'Restrict Google OpenID Connect to this domain (or subdomains of this domain). Leave blank for all Google domains', 'Free'), > ('hidelostitems','0','','If ON, disables display of\"lost\" items in OPAC.','YesNo'), > ('HidePatronName','0','','If this is switched on, patron\'s cardnumber will be shown instead of their name on the holds and catalog screens','YesNo'), >+('HideReserveExpiration', 0, NULL, 'Hide expiration date in reserves module.', 'YesNo'), > ('hide_marc','0',NULL,'If ON, disables display of MARC fields, subfield codes & indicators (still shows data)','YesNo'), > ('HighlightOwnItemsOnOPAC','0','','If on, and a patron is logged into the OPAC, items from his or her home library will be emphasized and shown first in search results and item details.','YesNo'), > ('HighlightOwnItemsOnOPACWhich','PatronBranch','PatronBranch|OpacURLBranch','Decides which branch\'s items to emphasize. If PatronBranch, emphasize the logged in user\'s library\'s items. If OpacURLBranch, highlight the items of the Apache var BRANCHCODE defined in Koha\'s Apache configuration file.','Choice'), >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >index 6eb5af0..8139d6a 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >@@ -157,6 +157,12 @@ Circulation: > yes: Allow > no: "Don't allow" > - patrons to submit notes about checked out items. >+ - >+ - pref: HideReserveExpiration >+ choices: >+ yes: Hide >+ no: "Don't hide" >+ - expiration date options for reserves. > > Checkout Policy: > - >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >index 8c34184..073adbc 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >@@ -455,12 +455,14 @@ > </li> > [% END %] > >- <li> >- <label for="to">Hold expires on date:</label> >- <input name="expiration_date" id="to" size="10" class="datepickerto" type="text" /> >- <input type="hidden" class="datepickerto_hidden" /> >- <a href="#" id="clear-date-to" class="clear-date">Clear date</a> >- </li> >+ [% IF !Koha.Preference('HideReserveExpiration') %] >+ <li> >+ <label for="to">Hold expires on date:</label> >+ <input name="expiration_date" id="to" size="10" class="datepickerto" type="text" /> >+ <input type="hidden" class="datepickerto_hidden" /> >+ <a href="#" id="clear-date-to" class="clear-date">Clear date</a> >+ </li> >+ [% END %] > > [% UNLESS ( multi_hold ) %] > <li> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt >index 6932d49..93660ce 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt >@@ -267,11 +267,13 @@ > </li> > [% END %] > >- <li> >- <label for="to[% bibitemloo.biblionumber | html %]">Hold not needed after:</label> >- <input type="text" name="expiration_date_[% bibitemloo.biblionumber | html %]" id="to[% bibitemloo.biblionumber | html %]" size="10" class="holddateto" /> >- <span class="date-format to" data-biblionumber="[% bibitemloo.biblionumber | html %]">[% INCLUDE 'date-format.inc' %]</span> >- </li> >+ [% IF !Koha.Preference('HideReserveExpiration') %] >+ <li> >+ <label for="to[% bibitemloo.biblionumber | html %]">Hold not needed after:</label> >+ <input type="text" name="expiration_date_[% bibitemloo.biblionumber | html %]" id="to[% bibitemloo.biblionumber | html %]" size="10" class="holddateto" /> >+ <span class="date-format to" data-biblionumber="[% bibitemloo.biblionumber | html %]">[% INCLUDE 'date-format.inc' %]</span> >+ </li> >+ [% END %] > > [% IF Koha.Preference('AllowHoldItemTypeSelection') %] > [% itemtypes = [] %] >-- >2.1.4
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 24194
:
96120
|
96121
|
98048
|
98368
|
100927
|
110082
|
110127
|
111443
|
113284
|
113285
|
116626
|
116627
|
117016
|
117085
|
117089
|
117097
|
117098
|
117099
|
117100
|
117101
|
118258
|
118259
|
118260
|
118261
|
118262
|
118263
|
128301
|
128302
|
128303
|
128304
|
128305
|
128306
|
128307
|
128308
|
140646
|
140647
|
144076
|
147527
|
147528
|
150799
|
150800
|
159060
|
159061
|
167796
|
167797
|
169174
|
174650
|
174651
|
174652