Bugzilla – Attachment 109286 Details for
Bug 26282
Allow staff to decide if a hold cancellation notice will be sent when cancelling a hold
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 26282: Allow staff to decide if a hold cancellation notice will be sent when cancelling a hold
Bug-26282-Allow-staff-to-decide-if-a-hold-cancella.patch (text/plain), 8.44 KB, created by
Kyle M Hall (khall)
on 2020-08-28 14:16:57 UTC
(
hide
)
Description:
Bug 26282: Allow staff to decide if a hold cancellation notice will be sent when cancelling a hold
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2020-08-28 14:16:57 UTC
Size:
8.44 KB
patch
obsolete
>From c6d96ba56d3992e4cce4c08af3c4a8834a39b997 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Fri, 28 Aug 2020 10:01:04 -0400 >Subject: [PATCH] Bug 26282: Allow staff to decide if a hold cancellation > notice will be sent when cancelling a hold > >Bug 25534 adds the option to send hold cancellation notices when a >reason was given. It would be nice if you could give a reason but still >decide not to send to the patron. > >Say the patron called and will not be able to pick up numerous holds for >some time. You cancel them all with "patron requested cancellation" but >don't want to send multiple notices. > >I could imagine a checkbox next to the reason to activate/deactivate >sending the notice. > >Test Plan: >1) Apply this patch >2) Visit each area in Koha where a hold can be canceled with a reason >3) Note the new 'Notify patron' checkbox >4) Test canceling a hold with and without this checkbox checked >5) Verify leaving it unchecked does not trigger a notice to be sent to the patron >--- > C4/Reserves.pm | 3 ++- > Koha/Hold.pm | 2 +- > circ/pendingreserves.pl | 3 ++- > .../prog/en/modules/circ/pendingreserves.tt | 3 +++ > .../intranet-tmpl/prog/en/modules/reserve/request.tt | 10 ++++++++++ > reserve/modrequest.pl | 3 +++ > reserve/request.pl | 3 ++- > 7 files changed, 23 insertions(+), 4 deletions(-) > >diff --git a/C4/Reserves.pm b/C4/Reserves.pm >index eb1a6f88f7..4bc1605a85 100644 >--- a/C4/Reserves.pm >+++ b/C4/Reserves.pm >@@ -984,6 +984,7 @@ sub ModReserve { > my $borrowernumber = $params->{'borrowernumber'}; > my $biblionumber = $params->{'biblionumber'}; > my $cancellation_reason = $params->{'cancellation_reason'}; >+ my $notify_patron = $params->{'notify_patron'}; > > return if $rank eq "W"; > return if $rank eq "n"; >@@ -1001,7 +1002,7 @@ sub ModReserve { > $hold ||= Koha::Holds->find($reserve_id); > > if ( $rank eq "del" ) { >- $hold->cancel({ cancellation_reason => $cancellation_reason }); >+ $hold->cancel({ cancellation_reason => $cancellation_reason, notify_patron => $notify_patron }); > } > elsif ($rank =~ /^\d+/ and $rank > 0) { > logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) ) >diff --git a/Koha/Hold.pm b/Koha/Hold.pm >index 360b43e7b5..8a3f552fb6 100644 >--- a/Koha/Hold.pm >+++ b/Koha/Hold.pm >@@ -376,7 +376,7 @@ sub cancel { > $self->cancellation_reason( $params->{cancellation_reason} ); > $self->store(); > >- if ( $params->{cancellation_reason} ) { >+ if ( $params->{cancellation_reason} && $params->{notify_patron} ) { > my $letter = C4::Letters::GetPreparedLetter( > module => 'reserves', > letter_code => 'HOLD_CANCELLATION', >diff --git a/circ/pendingreserves.pl b/circ/pendingreserves.pl >index 24d4f67f56..28a27ed462 100755 >--- a/circ/pendingreserves.pl >+++ b/circ/pendingreserves.pl >@@ -57,7 +57,8 @@ if ( $op eq 'cancel_reserve' and $reserve_id ) { > my $hold = Koha::Holds->find( $reserve_id ); > if ( $hold ) { > my $cancellation_reason = $input->param('cancellation-reason'); >- $hold->cancel({ cancellation_reason => $cancellation_reason }); >+ my $cancellation_notify_patron = $input->param('cancellation-notify-patron'); >+ $hold->cancel({ cancellation_reason => $cancellation_reason, notify_patron => $cancellation_notify_patron }); > push @messages, { type => 'message', code => 'hold_cancelled' }; > } > } elsif ( $op =~ m|^mark_as_lost| ) { >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt >index 71527fc4c9..cbdd92b2c0 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt >@@ -162,6 +162,9 @@ > <option value="[% reason.authorised_value | html %]">[% reason.lib | html %]</option> > [% END %] > </select> >+ >+ <input type="checkbox" name="cancellation-notify-patron" id="cancellation-notify-patron" value="1" checked/> >+ <label for="cancellation-notify-patron">Notify patron</label> > </div> > [% END %] > >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 f0832ffc37..3fe56f90b6 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >@@ -811,6 +811,9 @@ > <option value="[% reason.authorised_value | html %]">[% reason.lib | html %]</option> > [% END %] > </select> >+ >+ <input type="checkbox" name="cancellation-notify-patron" id="cancellation-notify-patron" value="1" checked/> >+ <label for="cancellation-notify-patron">Notify patron</label> > [% END %] > </fieldset> > </div> >@@ -961,6 +964,9 @@ > <option value="[% reason.authorised_value | html %]">[% reason.lib | html %]</option> > [% END %] > </select> >+ >+ <input type="checkbox" name="modal-cancellation-notify-patron" id="modal-cancellation-notify-patron" value="1" checked> >+ <label for="modal-cancellation-notify-patron">Notify patron</label> > [% END %] > </fieldset> > </div> >@@ -1292,10 +1298,14 @@ > let biblionumber = cancel_link.data('biblionumber'); > let reserve_id = cancel_link.data('id'); > let reason = $("#modal-cancellation-reason").val(); >+ let notify = $("#modal-cancellation-notify-patron").prop('checked'); > let link = `request.pl?action=cancel&borrowernumber=${ borrowernumber }&biblionumber=${ biblionumber }&reserve_id=${ reserve_id }`; > if ( reason ) { > link += "&cancellation-reason=" + reason > } >+ if ( notify ) { >+ link += "&cancellation-notify-patron=1"; >+ } > window.location.href = link; > return false; > }); >diff --git a/reserve/modrequest.pl b/reserve/modrequest.pl >index 83196ff33c..236a0c5928 100755 >--- a/reserve/modrequest.pl >+++ b/reserve/modrequest.pl >@@ -72,6 +72,8 @@ else { > undef $itemnumber[$i] if !$itemnumber[$i]; > my $suspend_until = $query->param( "suspend_until_" . $reserve_id[$i] ); > my $cancellation_reason = $query->param("cancellation-reason"); >+ my $cancellation_notify_patron = $query->param("cancellation-notify-patron"); >+ > my $params = { > rank => $rank[$i], > reserve_id => $reserve_id[$i], >@@ -80,6 +82,7 @@ else { > itemnumber => $itemnumber[$i], > defined $suspend_until ? ( suspend_until => $suspend_until ) : (), > cancellation_reason => $cancellation_reason, >+ notify_patron => $cancellation_notify_patron, > }; > if (C4::Context->preference('AllowHoldDateInFuture')) { > $params->{reservedate} = $reservedates[$i] ? dt_from_string($reservedates[$i]) : undef; >diff --git a/reserve/request.pl b/reserve/request.pl >index b1e8745969..c4a309d84f 100755 >--- a/reserve/request.pl >+++ b/reserve/request.pl >@@ -107,8 +107,9 @@ if ( $action eq 'move' ) { > } elsif ( $action eq 'cancel' ) { > my $reserve_id = $input->param('reserve_id'); > my $cancellation_reason = $input->param("cancellation-reason"); >+ my $cancellation_notify_patron = $input->param("cancellation-notify-patron"); > my $hold = Koha::Holds->find( $reserve_id ); >- $hold->cancel({ cancellation_reason => $cancellation_reason }) if $hold; >+ $hold->cancel({ cancellation_reason => $cancellation_reason, notify_patron => $cancellation_notify_patron }) if $hold; > } elsif ( $action eq 'setLowestPriority' ) { > my $reserve_id = $input->param('reserve_id'); > ToggleLowestPriority( $reserve_id ); >-- >2.24.1 (Apple Git-126)
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 26282
:
109286
|
113960
|
113991
|
114007
|
114008
|
114009
|
114010
|
114011
|
114012
|
114013
|
114014
|
114015
|
114016
|
114028
|
114030
|
114031
|
114032
|
114033
|
114034
|
114035
|
114247
|
114248
|
114249
|
114250
|
114251
|
114252
|
114253
|
114254
|
114255
|
114259
|
115193
|
115194
|
115195
|
115196
|
115197
|
115198
|
115199
|
115200
|
115201
|
122448
|
122449
|
122450
|
122451
|
122452
|
122453
|
122454
|
122455
|
122456
|
122550
|
138407
|
138408
|
138409
|
138410
|
138411
|
138412
|
138413
|
138414
|
138415
|
138416
|
138417
|
138418
|
138419
|
138469
|
141210
|
171577
|
171578
|
171579
|
171580
|
171581
|
171582
|
171583
|
171584
|
171585
|
171586
|
171587
|
171588
|
171589
|
171590
|
171592
|
171593