Bugzilla – Attachment 63440 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), 5.63 KB, created by
Lari Taskula
on 2017-05-12 13:30:08 UTC
(
hide
)
Description:
Bug 18595: Move C4::Members::Messaging::SetMessagingPreference
Filename:
MIME Type:
Creator:
Lari Taskula
Created:
2017-05-12 13:30:08 UTC
Size:
5.63 KB
patch
obsolete
>From f2f309b14d202b35ef8af157d755043db1656981 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 > >Move default values for days in advance and wants_digest outside set method, >because otherwise it would conflict with the standard way of how set works >in Koha-objects (one may accidentally reset those parameters because they >don't pass them and excpect them to remain unchanged). >--- > C4/Form/MessagingPreferences.pm | 13 ++++++- > C4/Members/Messaging.pm | 84 ----------------------------------------- > 2 files changed, 12 insertions(+), 85 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..923ed76 100644 >--- a/C4/Members/Messaging.pm >+++ b/C4/Members/Messaging.pm >@@ -35,90 +35,6 @@ 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