Bugzilla – Attachment 47588 Details for
Bug 12426
Allow resending of emails from the notices tab in the patron account
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 12426: Allow resending of messages from the notices tab in the patron account
Bug-12426-Allow-resending-of-messages-from-the-not.patch (text/plain), 5.55 KB, created by
Marc Véron
on 2016-02-03 14:04:13 UTC
(
hide
)
Description:
Bug 12426: Allow resending of messages from the notices tab in the patron account
Filename:
MIME Type:
Creator:
Marc Véron
Created:
2016-02-03 14:04:13 UTC
Size:
5.55 KB
patch
obsolete
>From b305de73e5be7720f457dd85b48d0999336b690c Mon Sep 17 00:00:00 2001 >From: Lari Taskula <larit@student.uef.fi> >Date: Thu, 3 Sep 2015 14:42:02 +0300 >Subject: [PATCH] Bug 12426: Allow resending of messages from the notices tab > in the patron account >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >This patch adds a link 'Resend' under a notice in 'failed' status >in the Patron's Notices tab. > >By clicking the link, we will request notices.pl with parameter >"resendnotice=XXXXX" where XXXXX is message_id. In notices.pl, >we then check whether the given message is actually in 'failed' >status. If so, we use the C4::Letters::ResendMessage(123) to >change the status of the message into 'pending'. This way it >will be processed again by the cronjob process_message_queue.pl. > >To test, find/create a Patron that has failed notices in message_queue: >1. Enable EnchancedMessagingPreferences system preference >2. Go to Patrons -> Notices >3. In the Notice column, click the title of the failed message >4. Observe that there is nothing for resending the failed message >5. Apply patch. >6. Reload Notices page and repeat step 3 >7. Observe that there is now a link "Resend" in the Status-column >8. Click Resend >9. Observe that the message gets into 'pending' status > >Works as expected. >Signed-off-by: Marc Véron <veron@veron.ch> >--- > C4/Letters.pm | 22 ++++++++++++++++++++ > .../prog/en/modules/members/notices.tt | 4 ++-- > members/notices.pl | 16 ++++++++++++++ > t/db_dependent/Letters.t | 7 ++++++- > 4 files changed, 46 insertions(+), 3 deletions(-) > >diff --git a/C4/Letters.pm b/C4/Letters.pm >index dc9574f..de3322a 100644 >--- a/C4/Letters.pm >+++ b/C4/Letters.pm >@@ -1085,6 +1085,28 @@ sub GetMessageTransportTypes { > return $mtts; > } > >+=head2 ResendMessage >+ >+ Attempt to resend a message. >+ >+ my $message_id = C4::Letters::ResendMessage(123); >+ >+ Updates the message to 'pending' status so that >+ it will be resent later on. >+ >+ returns 1 on success, 0 on failure >+ >+=cut >+ >+sub ResendMessage { >+ my $message_id = shift; >+ >+ return ((C4::Letters::_set_message_status( { >+ message_id => $message_id, >+ status => 'pending', >+ } ) > 0) ? 1:0); >+} >+ > =head2 _add_attachements > > named parameters: >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt >index 2c59cce..8ec42b3 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt >@@ -17,7 +17,7 @@ > > $(".notice").hide(); > $(".notice-title").click(function(e){ >- $(this).next(".notice").toggle(); >+ $(this).closest("tr").children().children(".notice").toggle(); > e.preventDefault(); > }); > >@@ -71,7 +71,7 @@ > <td> > [% IF ( QUEUED_MESSAGE.status == 'sent' ) %]sent > [% ELSIF ( QUEUED_MESSAGE.status == 'pending' ) %]pending >- [% ELSIF ( QUEUED_MESSAGE.status == 'failed' ) %]failed >+ [% ELSIF ( QUEUED_MESSAGE.status == 'failed' ) %]failed <div class="notice"><a href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% borrowernumber %]&resendnotice=[% QUEUED_MESSAGE.message_id %]" title="Attempt to resend the notice">Resend</a></div> > [% ELSIF ( QUEUED_MESSAGE.status == 'deleted' ) %]deleted > [% ELSE %][% QUEUED_MESSAGE.status %][% END %] > </td> >diff --git a/members/notices.pl b/members/notices.pl >index f7e1f70..897da9e 100755 >--- a/members/notices.pl >+++ b/members/notices.pl >@@ -52,6 +52,22 @@ $template->param( picture => 1 ) if $picture; > # Getting the messages > my $queued_messages = C4::Letters::GetQueuedMessages({borrowernumber => $borrowernumber}); > >+# Bug 12426 - Allow resending of messages in Notices tab >+if ($input->param('resendnotice')) { >+ foreach my $message (@$queued_messages){ >+ # resendnotice must be in this borrower's queue - we don't want to make it >+ # possible to change any message just by changing resendnotice id. >+ if ($message->{message_id} == $input->param('resendnotice')) { >+ # We also only want to resend messages in failed status >+ last unless $message->{status} eq "failed"; >+ >+ # Modify the message in $queued_message to have its new pending status >+ $message->{status} = 'pending' if (C4::Letters::ResendMessage($message->{message_id})); >+ last; >+ } >+ } >+} >+ > if (C4::Context->preference('ExtendedPatronAttributes')) { > my $attributes = GetBorrowerAttributes($borrowernumber); > $template->param( >diff --git a/t/db_dependent/Letters.t b/t/db_dependent/Letters.t >index 03d474a..1dec6ef 100644 >--- a/t/db_dependent/Letters.t >+++ b/t/db_dependent/Letters.t >@@ -18,7 +18,7 @@ > # along with Koha; if not, see <http://www.gnu.org/licenses>. > > use Modern::Perl; >-use Test::More tests => 69; >+use Test::More tests => 70; > use Test::MockModule; > use Test::Warn; > >@@ -137,6 +137,11 @@ is( > 'message marked failed if tried to send SMS message for borrower with no smsalertnumber set (bug 11208)' > ); > >+# ResendMessage >+C4::Letters::ResendMessage($messages->[0]->{message_id}); >+$messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); >+is($messages->[0]->{status},'pending', 'ResendMessage sets status to pending correctly (bug 12426)'); >+ > # GetLetters > my $letters = C4::Letters::GetLetters(); > is( @$letters, 0, 'GetLetters returns the correct number of letters' ); >-- >1.7.10.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 12426
:
42295
|
42346
|
42401
|
42409
|
42418
|
42512
|
42615
|
42618
|
42620
|
42621
|
47563
|
47564
|
47565
|
47588
|
47589
|
47590
|
47956
|
47957
|
47958
|
48049
|
48570
|
48571
|
48572
|
48573