@@ -, +, @@
[% FOR m IN messages.search( message_type => 'L' ) %]
[% m.message %]
[% END %]
---
Koha/Patron.pm | 15 +++++++++++++++
circ/circulation.pl | 9 +++------
t/db_dependent/Koha/Patron.t | 31 ++++++++++++++++++++++++++++++-
3 files changed, 48 insertions(+), 7 deletions(-)
--- a/Koha/Patron.pm
+++ a/Koha/Patron.pm
@@ -44,6 +44,7 @@ use Koha::Patron::Debarments;
use Koha::Patron::HouseboundProfile;
use Koha::Patron::HouseboundRole;
use Koha::Patron::Images;
+use Koha::Patron::Messages;
use Koha::Patron::Modifications;
use Koha::Patron::Relationships;
use Koha::Patrons;
@@ -1710,6 +1711,20 @@ sub extended_attributes {
return Koha::Patron::Attributes->_new_from_dbic($rs)->search;
}
+=head3 messages
+
+ my $messages = $patron->messages;
+
+Return the message attached to the patron.
+
+=cut
+
+sub messages {
+ my ( $self ) = @_;
+ my $messages_rs = $self->_result->messages_borrowernumbers->search;
+ return Koha::Patron::Messages->_new_from_dbic($messages_rs);
+}
+
=head3 lock
Koha::Patrons->find($id)->lock({ expire => 1, remove => 1 });
--- a/circ/circulation.pl
+++ a/circ/circulation.pl
@@ -51,7 +51,6 @@ use Koha::Plugins;
use Koha::Database;
use Koha::BiblioFrameworks;
use Koha::Items;
-use Koha::Patron::Messages;
use Koha::SearchEngine;
use Koha::SearchEngine::Search;
use Koha::Patron::Modifications;
@@ -523,10 +522,8 @@ if ( $patron ) {
}
}
-my $patron_messages = Koha::Patron::Messages->search(
- {
- 'me.borrowernumber' => $borrowernumber,
- },
+my $patron_messages = $patron->messages->search(
+ {},
{
join => 'manager',
'+select' => ['manager.surname', 'manager.firstname' ],
@@ -579,7 +576,7 @@ if ($restoreduedatespec || $stickyduedate) {
}
$template->param(
- patron_messages => $patron_messages,
+ patron_messages => $patron_messages,
borrowernumber => $borrowernumber,
branch => $branch,
was_renewed => scalar $query->param('was_renewed') ? 1 : 0,
--- a/t/db_dependent/Koha/Patron.t
+++ a/t/db_dependent/Koha/Patron.t
@@ -19,7 +19,7 @@
use Modern::Perl;
-use Test::More tests => 13;
+use Test::More tests => 14;
use Test::Exception;
use Test::Warn;
@@ -1021,3 +1021,32 @@ subtest 'add_article_request_fee_if_needed() tests' => sub {
$schema->storage->txn_rollback;
};
+
+subtest 'messages' => sub {
+ plan tests => 4;
+
+ $schema->storage->txn_begin;
+
+ my $patron = $builder->build_object( { class => 'Koha::Patrons' } );
+ my $messages = $patron->messages;
+ is( $messages->count, 0, "No message yet" );
+ my $message_1 = $builder->build_object(
+ {
+ class => 'Koha::Patron::Messages',
+ value => { borrowernumber => $patron->borrowernumber }
+ }
+ );
+ my $message_2 = $builder->build_object(
+ {
+ class => 'Koha::Patron::Messages',
+ value => { borrowernumber => $patron->borrowernumber }
+ }
+ );
+
+ $messages = $patron->messages;
+ is( $messages->count, 2, "There are two messages for this patron" );
+ is( $messages->next->message, $message_1->message );
+ is( $messages->next->message, $message_2->message );
+
+ $schema->storage->txn_rollback;
+};
--