@@ -, +, @@ C4::Members::Messaging::SetMessagingPreferencesFromDefaults - EnhancedMessagingPreferences ---- GENERAL ---- (grep -r 'SetMessagingPreferencesFromDefaults'). ---- INTRANET ---- with the categorycode you were just editing. --- C4/Auth_with_ldap.pm | 2 +- C4/Auth_with_shibboleth.pm | 4 +-- C4/Form/MessagingPreferences.pm | 6 ++-- C4/Members/Messaging.pm | 35 ---------------------- .../maintenance/borrowers-force-messaging-defaults | 6 ++-- tools/import_borrowers.pl | 3 +- 6 files changed, 10 insertions(+), 46 deletions(-) --- a/C4/Auth_with_ldap.pm +++ a/C4/Auth_with_ldap.pm @@ -224,7 +224,7 @@ sub checkpw_ldap { } } elsif ($config{replicate}) { # A2, C2 $borrowernumber = C4::Members::AddMember(%borrower) or die "AddMember failed"; - C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { borrowernumber => $borrowernumber, categorycode => $borrower{'categorycode'} } ); + Koha::Patrons->find($borrowernumber)->set_default_messaging_preferences; } else { return 0; # B2, D2 } --- a/C4/Auth_with_shibboleth.pm +++ a/C4/Auth_with_shibboleth.pm @@ -23,8 +23,8 @@ use C4::Debug; use C4::Context; use Koha::AuthUtils qw(get_script_name); use Koha::Database; +use Koha::Patrons; use C4::Members qw( AddMember_Auto ); -use C4::Members::Messaging; use Carp; use CGI; @@ -123,7 +123,7 @@ sub _autocreate { } %borrower = AddMember_Auto( %borrower ); - C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { borrowernumber => $borrower{'borrowernumber'}, categorycode => $borrower{'categorycode'} } ); + Koha::Patrons->find($borrower{'borrowernumber'})->set_default_messaging_preferences; return ( 1, $borrower{'cardnumber'}, $borrower{'userid'} ); } --- a/C4/Form/MessagingPreferences.pm +++ a/C4/Form/MessagingPreferences.pm @@ -25,6 +25,7 @@ use C4::Context; use C4::Members::Messaging; use C4::Debug; use Koha::Patron::Message::Preferences; +use Koha::Patrons; use constant MAX_DAYS_IN_ADVANCE => 30; @@ -105,8 +106,9 @@ sub handle_form_action { } if (! $prefs_set && $insert){ # this is new borrower, and we have no preferences set, use the defaults - $target_params->{categorycode} = $categorycode; - C4::Members::Messaging::SetMessagingPreferencesFromDefaults( $target_params ); + $target_params->{categorycode} = $categorycode; + my $patron = Koha::Patron->find($target_params->{'borrowernumber'}); + $patron->set_default_messaging_preferences if $patron; } # show the success message $template->param( settings_updated => 1 ); --- a/C4/Members/Messaging.pm +++ a/C4/Members/Messaging.pm @@ -182,41 +182,6 @@ END_SQL return; } -=head2 SetMessagingPreferencesFromDefaults - - C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { borrowernumber => $borrower->{'borrowernumber'} - categorycode => 'CPL' } ); - -Given a borrowernumber and a patron category code (from the C and C keys -in the parameter hashref), replace all of the patron's current messaging preferences with -whatever defaults are defined for the patron category. - -=cut - -sub SetMessagingPreferencesFromDefaults { - my $params = shift; - - foreach my $required ( qw( borrowernumber categorycode ) ) { - unless ( exists $params->{ $required } ) { - die "SetMessagingPreferencesFromDefaults called without required parameter: $required"; - } - } - - my $messaging_options = Koha::Patron::Message::Preferences->get_options; - OPTION: foreach my $option ( @$messaging_options ) { - my $default_pref = GetMessagingPreferences( { categorycode => $params->{categorycode}, - message_name => $option->{'message_name'} } ); - # FIXME - except for setting the borrowernumber, it really ought to be possible - # to have the output of GetMessagingPreferences be able to be the input - # to SetMessagingPreference - my @message_transport_types = keys %{ $default_pref->{transports} }; - $default_pref->{message_attribute_id} = $option->{'message_attribute_id'}; - $default_pref->{message_transport_types} = \@message_transport_types; - $default_pref->{borrowernumber} = $params->{borrowernumber}; - SetMessagingPreference( $default_pref ); - } -} - =head1 TABLES =head2 message_queue --- a/misc/maintenance/borrowers-force-messaging-defaults +++ a/misc/maintenance/borrowers-force-messaging-defaults @@ -28,6 +28,7 @@ BEGIN { use C4::Context; use C4::Members::Messaging; +use Koha::Patrons; use Getopt::Long; use Pod::Usage; @@ -59,10 +60,7 @@ sub force_borrower_messaging_defaults { while ( my ($borrowernumber, $categorycode) = $sth->fetchrow ) { print "$borrowernumber: $categorycode\n"; next unless $doit; - C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { - borrowernumber => $borrowernumber, - categorycode => $categorycode, - } ); + Koha::Patrons->find($borrowernumber)->set_default_messaging_preferences; } $dbh->commit(); } --- a/tools/import_borrowers.pl +++ a/tools/import_borrowers.pl @@ -349,8 +349,7 @@ if ( $uploadborrowers && length($uploadborrowers) > 0 ) { } if ($set_messaging_prefs) { - C4::Members::Messaging::SetMessagingPreferencesFromDefaults({ borrowernumber => $borrowernumber, - categorycode => $borrower{categorycode} }); + Koha::Patrons->find($borrowernumber)->set_default_messaging_preferences; } $imported++; --