Bugzilla – Attachment 63823 Details for
Bug 18595
Move C4::Members::Messaging to Koha namespace
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 18595: Move C4::Members::Messaging::SetMessagingPreference
Bug-18595-Move-C4MembersMessagingSetMessagingPrefe.patch (text/plain), 6.45 KB, created by
Lari Taskula
on 2017-05-29 15:20:53 UTC
(
hide
)
Description:
Bug 18595: Move C4::Members::Messaging::SetMessagingPreference
Filename:
MIME Type:
Creator:
Lari Taskula
Created:
2017-05-29 15:20:53 UTC
Size:
6.45 KB
patch
obsolete
>From af3f422487ff8d607660ead272a2edde3986af5a Mon Sep 17 00:00:00 2001 >From: Lari Taskula <lari.taskula@jns.fi> >Date: Thu, 27 Oct 2016 16:17:47 +0300 >Subject: [PATCH] Bug 18595: Move > C4::Members::Messaging::SetMessagingPreference >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >This patch moves C4::Members::Messaging::SetMessagingPreference to >Koha::Patron::Message::Preference >The patch makes a heavy touch on core messaging preference features, >but should not introduce any visible changes for end user. Keep this in mind >if testing. If you notice any changes in Koha, something is probably wrong! > >To test: > >Make sure you have enabled the following system preferences: >- EnhancedMessagingPreferences > >---- GENERAL ---- >1. Apply patch >2. Search Koha source code for references of "SetMessagingPreference" > (grep -r 'SetMessagingPreference'). >3. Observe no results in source code. > >---- INTRANET ---- >1. todo > >---- UNIT TESTS ---- >1. prove t/db_dependent/Circulation.t >2. prove t/db_dependent/Reserves.t >3. prove t/db_dependent/Koha/Patron/Categories.t > >Works as expected. QA tools fails with: >FAIL C4/Members/Messaging.pm pod empty section in previous paragraph >Can be fixed in a followup. >Signed-off-by: Marc Véron <veron@veron.ch> >--- > C4/Form/MessagingPreferences.pm | 13 ++++++- > C4/Members/Messaging.pm | 86 ----------------------------------------- > 2 files changed, 12 insertions(+), 87 deletions(-) > >diff --git a/C4/Form/MessagingPreferences.pm b/C4/Form/MessagingPreferences.pm >index 53885ed..28c073b 100644 >--- a/C4/Form/MessagingPreferences.pm >+++ b/C4/Form/MessagingPreferences.pm >@@ -98,7 +98,18 @@ sub handle_form_action { > } > } > >- C4::Members::Messaging::SetMessagingPreference( $updater ); >+ $updater->{'days_in_advance'} = undef unless exists $updater->{'days_in_advance'}; >+ $updater->{'wants_digest'} = 0 unless exists $updater->{'wants_digest'}; >+ my $preference = Koha::Patron::Message::Preferences->find({ >+ borrowernumber => $updater->{'borrowernumber'}, >+ message_attribute_id => $option->{'message_attribute_id'}, >+ categorycode => $categorycode || $updater->{'categorycode'}, >+ }); >+ unless ($preference) { >+ Koha::Patron::Message::Preference->new($updater)->store; >+ } else { >+ $preference->set($updater)->store; >+ } > > if ($query->param( $option->{'message_attribute_id'})){ > $prefs_set = 1; >diff --git a/C4/Members/Messaging.pm b/C4/Members/Messaging.pm >index d28de2c..a065636 100644 >--- a/C4/Members/Messaging.pm >+++ b/C4/Members/Messaging.pm >@@ -33,92 +33,6 @@ C4::Members::Messaging - manage patron messaging preferences > > This module lets you modify a patron's messaging preferences. > >-=head1 FUNCTIONS >- >-=head2 SetMessagingPreference >- >-This method defines how a user (or a default for a patron category) wants to get a certain >-message delivered. The list of valid message types can be delivered can be found in the >-C<message_attributes> table, and the list of valid message transports can be >-found in the C<message_transport_types> table. >- >- C4::Members::Messaging::SetMessagingPreference( { borrowernumber => $borrower->{'borrowernumber'} >- message_attribute_id => $message_attribute_id, >- message_transport_types => [ qw( email sms ) ], >- days_in_advance => 5 >- wants_digest => 1 } ) >- >-returns nothing useful. >- >-=cut >- >-sub SetMessagingPreference { >- my $params = shift; >- >- unless (exists $params->{borrowernumber} xor exists $params->{categorycode}) { # yes, xor >- warn "SetMessagingPreference called without exactly one of borrowernumber or categorycode"; >- return; >- } >- foreach my $required ( qw( message_attribute_id message_transport_types ) ) { >- if ( ! exists $params->{ $required } ) { >- warn "SetMessagingPreference called without required parameter: $required"; >- return; >- } >- } >- $params->{'days_in_advance'} = undef unless exists ( $params->{'days_in_advance'} ); >- $params->{'wants_digest'} = 0 unless exists ( $params->{'wants_digest'} ); >- >- my $dbh = C4::Context->dbh(); >- >- my $delete_sql = <<'END_SQL'; >-DELETE FROM borrower_message_preferences >- WHERE message_attribute_id = ? >-END_SQL >- my @bind_params = ( $params->{'message_attribute_id'} ); >- if ( exists $params->{'borrowernumber'} ) { >- $delete_sql .= " AND borrowernumber = ? "; >- push @bind_params, $params->{borrowernumber}; >- } else { >- $delete_sql .= " AND categorycode = ? "; >- push @bind_params, $params->{categorycode}; >- } >- my $sth = $dbh->prepare( $delete_sql ); >- my $deleted = $sth->execute( @bind_params ); >- >- if ( $params->{'message_transport_types'} ) { >- my $insert_bmp = <<'END_SQL'; >-INSERT INTO borrower_message_preferences >-(borrower_message_preference_id, borrowernumber, categorycode, message_attribute_id, days_in_advance, wants_digest) >-VALUES >-(NULL, ?, ?, ?, ?, ?) >-END_SQL >- >- $sth = C4::Context->dbh()->prepare($insert_bmp); >- # set up so that we can easily construct the insert SQL >- $params->{'borrowernumber'} = undef unless exists ( $params->{'borrowernumber'} ); >- $params->{'categorycode'} = undef unless exists ( $params->{'categorycode'} ); >- my $success = $sth->execute( $params->{'borrowernumber'}, >- $params->{'categorycode'}, >- $params->{'message_attribute_id'}, >- $params->{'days_in_advance'}, >- $params->{'wants_digest'} ); >- # my $borrower_message_preference_id = $dbh->last_insert_id(); >- my $borrower_message_preference_id = $dbh->{'mysql_insertid'}; >- >- my $insert_bmtp = <<'END_SQL'; >-INSERT INTO borrower_message_transport_preferences >-(borrower_message_preference_id, message_transport_type) >-VALUES >-(?, ?) >-END_SQL >- $sth = C4::Context->dbh()->prepare($insert_bmtp); >- foreach my $transport ( @{$params->{'message_transport_types'}}) { >- my $success = $sth->execute( $borrower_message_preference_id, $transport ); >- } >- } >- return; >-} >- > =head1 TABLES > > =head2 message_queue >-- >2.7.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 18595
:
63435
|
63436
|
63437
|
63438
|
63439
|
63440
|
63441
|
63794
|
63795
|
63796
|
63797
|
63798
|
63799
|
63800
|
63813
|
63815
|
63816
|
63817
|
63818
|
63819
|
63820
|
63821
|
63822
|
63823
|
63824
|
63825
|
63826
|
63827
|
63828
|
63829
|
69441
|
69442
|
69443
|
69444
|
69445
|
69446
|
69447
|
69448
|
69449
|
69450
|
69451
|
69452
|
69453
|
69667
|
69668
|
69669
|
69670
|
69671
|
69672
|
69673
|
69674
|
93873
|
93874
|
93875
|
93876
|
93877
|
93878
|
93879
|
93880
|
93908
|
94753
|
94754
|
103444
|
103445
|
103446
|
103447
|
103448
|
103449
|
103450
|
103451
|
103452
|
110151
|
110152
|
110153
|
110154
|
110155
|
110156
|
110157
|
110158
|
110159
|
112147
|
112148
|
112149
|
112150
|
112151
|
112152
|
112153
|
112154
|
112155
|
112690
|
113126
|
113192
|
113221
|
113222
|
113769
|
146541
|
146542
|
146543
|
146544
|
146545
|
146546
|
146547
|
146548
|
146549
|
146550
|
146551
|
146552