Bugzilla – Attachment 70222 Details for
Bug 19304
Move C4::Members::GetNoticeEmailAddress to Koha::Patron->notice_email_address
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 19304: Move C4::Members::GetNoticeEmailAddress to Koha::Patron->notice_email_address
Bug-19304-Move-C4MembersGetNoticeEmailAddress-to-K.patch (text/plain), 8.98 KB, created by
Josef Moravec
on 2018-01-02 08:46:56 UTC
(
hide
)
Description:
Bug 19304: Move C4::Members::GetNoticeEmailAddress to Koha::Patron->notice_email_address
Filename:
MIME Type:
Creator:
Josef Moravec
Created:
2018-01-02 08:46:56 UTC
Size:
8.98 KB
patch
obsolete
>From 987d95b06aa0e072a1927a0ad8480fea825ec8c2 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Tue, 12 Sep 2017 15:41:56 -0300 >Subject: [PATCH] Bug 19304: Move C4::Members::GetNoticeEmailAddress to > Koha::Patron->notice_email_address > >This subroutine is quite trivial and can be replaced easily with a new >method of Koha::Patron > >Test plan: >Overdue notices and shelf sharing must be send the to an email address, >according to the value of the pref AutoEmailPrimaryAddress > >Signed-off-by: David Bourgault <david.bourgault@inlibro.com> > >Signed-off-by: Josef Moravec <josef.moravec@gmail.com> >--- > C4/Letters.pm | 2 +- > C4/Members.pm | 32 ------------------------- > C4/Reserves.pm | 2 +- > Koha/Patron.pm | 21 ++++++++++++++++ > misc/cronjobs/notice_unprocessed_suggestions.pl | 3 +-- > misc/cronjobs/overdue_notices.pl | 5 ++-- > opac/opac-shareshelf.pl | 7 +++--- > t/db_dependent/Koha/Patrons.t | 16 ++++++++++++- > t/db_dependent/Members.t | 13 ---------- > 9 files changed, 46 insertions(+), 55 deletions(-) > >diff --git a/C4/Letters.pm b/C4/Letters.pm >index acf4b65..42893f1 100644 >--- a/C4/Letters.pm >+++ b/C4/Letters.pm >@@ -1312,7 +1312,7 @@ sub _send_message_by_email { > status => 'failed' } ); > return; > } >- $to_address = C4::Members::GetNoticeEmailAddress( $message->{'borrowernumber'} ); >+ $to_address = $patron->notice_email_address; > unless ($to_address) { > # warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})"; > # warning too verbose for this more common case? >diff --git a/C4/Members.pm b/C4/Members.pm >index ecd9f59..faa497f 100644 >--- a/C4/Members.pm >+++ b/C4/Members.pm >@@ -64,8 +64,6 @@ BEGIN { > &GetPendingIssues > &GetAllIssues > >- &GetNoticeEmailAddress >- > &GetMemberAccountRecords > > &GetBorrowersToExpunge >@@ -878,36 +876,6 @@ sub get_cardnumber_length { > return ( $min, $max ); > } > >-=head2 GetNoticeEmailAddress >- >- $email = GetNoticeEmailAddress($borrowernumber); >- >-Return the email address of borrower used for notices, given the borrowernumber. >-Returns the empty string if no email address. >- >-=cut >- >-sub GetNoticeEmailAddress { >- my $borrowernumber = shift; >- >- my $which_address = C4::Context->preference("AutoEmailPrimaryAddress"); >- # if syspref is set to 'first valid' (value == OFF), look up email address >- if ( $which_address eq 'OFF' ) { >- my $patron = Koha::Patrons->find( $borrowernumber ); >- return $patron->first_valid_email_address(); >- } >- # specified email address field >- my $dbh = C4::Context->dbh; >- my $sth = $dbh->prepare( qq{ >- SELECT $which_address AS primaryemail >- FROM borrowers >- WHERE borrowernumber=? >- } ); >- $sth->execute($borrowernumber); >- my $data = $sth->fetchrow_hashref; >- return $data->{'primaryemail'} || ''; >-} >- > =head2 GetBorrowersToExpunge > > $borrowers = &GetBorrowersToExpunge( >diff --git a/C4/Reserves.pm b/C4/Reserves.pm >index 06cde18..49a9dd0 100644 >--- a/C4/Reserves.pm >+++ b/C4/Reserves.pm >@@ -1611,7 +1611,7 @@ sub _koha_notify_reserve { > my $patron = Koha::Patrons->find( $borrowernumber ); > > # Try to get the borrower's email address >- my $to_address = C4::Members::GetNoticeEmailAddress($borrowernumber); >+ my $to_address = $patron->notice_email_address; > > my $messagingprefs = C4::Members::Messaging::GetMessagingPreferences( { > borrowernumber => $borrowernumber, >diff --git a/Koha/Patron.pm b/Koha/Patron.pm >index 3fa5ec4..e83eed6 100644 >--- a/Koha/Patron.pm >+++ b/Koha/Patron.pm >@@ -619,6 +619,27 @@ sub old_holds { > return Koha::Old::Holds->_new_from_dbic($old_holds_rs); > } > >+=head3 notice_email_address >+ >+ my $email = $patron->notice_email_address; >+ >+Return the email address of patron used for notices. >+Returns the empty string if no email address. >+ >+=cut >+ >+sub notice_email_address{ >+ my ( $self ) = @_; >+ >+ my $which_address = C4::Context->preference("AutoEmailPrimaryAddress"); >+ # if syspref is set to 'first valid' (value == OFF), look up email address >+ if ( $which_address eq 'OFF' ) { >+ return $self->first_valid_email_address; >+ } >+ >+ return $self->$which_address || ''; >+} >+ > =head3 first_valid_email_address > > my $first_valid_email_address = $patron->first_valid_email_address >diff --git a/misc/cronjobs/notice_unprocessed_suggestions.pl b/misc/cronjobs/notice_unprocessed_suggestions.pl >index f8f2e8f..598ef5a 100755 >--- a/misc/cronjobs/notice_unprocessed_suggestions.pl >+++ b/misc/cronjobs/notice_unprocessed_suggestions.pl >@@ -46,8 +46,7 @@ for my $number_of_days (@days) { > > my $budget = C4::Budgets::GetBudget( $suggestion->{budgetid} ); > my $patron = Koha::Patrons->find( $budget->{budget_owner_id} ); >- my $email_address = >- C4::Members::GetNoticeEmailAddress( $budget->{budget_owner_id} ); >+ my $email_address = $patron->notice_email_address; > my $library = $patron->library; > my $admin_email_address = $library->branchemail > || C4::Context->preference('KohaAdminEmailAddress'); >diff --git a/misc/cronjobs/overdue_notices.pl b/misc/cronjobs/overdue_notices.pl >index a1b477c..8c42335 100755 >--- a/misc/cronjobs/overdue_notices.pl >+++ b/misc/cronjobs/overdue_notices.pl >@@ -43,6 +43,7 @@ use Koha::DateUtils; > use Koha::Calendar; > use Koha::Libraries; > use Koha::Acquisition::Currencies; >+use Koha::Patrons; > > =head1 NAME > >@@ -580,9 +581,9 @@ END_SQL > $verbose > and warn "borrower $borr has items triggering level $i."; > >+ my $patron = Koha::Patrons->find( $borrowernumber ); > @emails_to_use = (); >- my $notice_email = >- C4::Members::GetNoticeEmailAddress($borrowernumber); >+ my $notice_email = $patron->notice_email_address; > unless ($nomail) { > if (@emails) { > foreach (@emails) { >diff --git a/opac/opac-shareshelf.pl b/opac/opac-shareshelf.pl >index 89d7dc9..e80828a 100755 >--- a/opac/opac-shareshelf.pl >+++ b/opac/opac-shareshelf.pl >@@ -33,6 +33,7 @@ use C4::Letters; > use C4::Members (); > use C4::Output; > >+use Koha::Patrons; > use Koha::Virtualshelves; > use Koha::Virtualshelfshares; > >@@ -166,10 +167,10 @@ sub show_accept { > sub notify_owner { > my ($param) = @_; > >- my $toaddr = C4::Members::GetNoticeEmailAddress( $param->{owner} ); >- return if !$toaddr; >- > my $patron = Koha::Patrons->find( $param->{owner} ); >+ return unless $patron; >+ >+ my $toaddr = $patron->notice_email_address or return; > > #prepare letter > my $letter = C4::Letters::GetPreparedLetter( >diff --git a/t/db_dependent/Koha/Patrons.t b/t/db_dependent/Koha/Patrons.t >index c90a9f5..d793996 100644 >--- a/t/db_dependent/Koha/Patrons.t >+++ b/t/db_dependent/Koha/Patrons.t >@@ -19,7 +19,7 @@ > > use Modern::Perl; > >-use Test::More tests => 22; >+use Test::More tests => 23; > use Test::Warn; > use Time::Fake; > use DateTime; >@@ -705,6 +705,20 @@ subtest 'holds and old_holds' => sub { > $patron->delete; > }; > >+subtest 'notice_email_address' => sub { >+ plan tests => 2; >+ >+ my $patron = $builder->build_object({ class => 'Koha::Patrons' }); >+ >+ t::lib::Mocks::mock_preference( 'AutoEmailPrimaryAddress', 'OFF' ); >+ is ($patron->notice_email_address, $patron->email, "Koha::Patron->notice_email_address returns correct value when AutoEmailPrimaryAddress is off"); >+ >+ t::lib::Mocks::mock_preference( 'AutoEmailPrimaryAddress', 'emailpro' ); >+ is ($patron->notice_email_address, $patron->emailpro, "Koha::Patron->notice_email_address returns correct value when AutoEmailPrimaryAddress is emailpro"); >+ >+ $patron->delete; >+}; >+ > subtest 'search_patrons_to_anonymise & anonymise_issue_history' => sub { > plan tests => 4; > >diff --git a/t/db_dependent/Members.t b/t/db_dependent/Members.t >index cfb314f..ff5a30b 100755 >--- a/t/db_dependent/Members.t >+++ b/t/db_dependent/Members.t >@@ -139,19 +139,6 @@ $checkcardnum=C4::Members::checkcardnumber($IMPOSSIBLE_CARDNUMBER, ""); > is ($checkcardnum, "2", "Card number is too long"); > > >- >-t::lib::Mocks::mock_preference( 'AutoEmailPrimaryAddress', 'OFF' ); >-C4::Context->clear_syspref_cache(); >- >-my $notice_email = GetNoticeEmailAddress($member->{'borrowernumber'}); >-is ($notice_email, $EMAIL, "GetNoticeEmailAddress returns correct value when AutoEmailPrimaryAddress is off"); >- >-t::lib::Mocks::mock_preference( 'AutoEmailPrimaryAddress', 'emailpro' ); >-C4::Context->clear_syspref_cache(); >- >-$notice_email = GetNoticeEmailAddress($member->{'borrowernumber'}); >-is ($notice_email, $EMAILPRO, "GetNoticeEmailAddress returns correct value when AutoEmailPrimaryAddress is emailpro"); >- > # Check_Userid tests > %data = ( > cardnumber => "123456789", >-- >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 19304
:
67126
|
68111
| 70222 |
70223