@@ -, +, @@ borrowers-force-messaging-defaults.pl only on a specified message name Verify that patron A prefs changed only for 'Item due' --- C4/Members/Messaging.pm | 3 +++ .../borrowers-force-messaging-defaults.pl | 19 ++++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) --- a/C4/Members/Messaging.pm +++ a/C4/Members/Messaging.pm @@ -243,6 +243,9 @@ sub SetMessagingPreferencesFromDefaults { my $messaging_options = GetMessagingOptions(); OPTION: foreach my $option ( @$messaging_options ) { + if ( defined $params->{message_name} && $option->{'message_name'} ne $params->{message_name} ) { + next OPTION; + } my $default_pref = GetMessagingPreferences( { categorycode => $params->{categorycode}, message_name => $option->{'message_name'} } ); # FIXME - except for setting the borrowernumber, it really ought to be possible --- a/misc/maintenance/borrowers-force-messaging-defaults.pl +++ a/misc/maintenance/borrowers-force-messaging-defaults.pl @@ -34,7 +34,7 @@ sub usage { sub force_borrower_messaging_defaults { - my ($doit, $since, $not_expired, $no_overwrite, $category ) = @_; + my ($doit, $since, $not_expired, $no_overwrite, $category, $message_name ) = @_; print "Since: $since\n" if $since; @@ -62,10 +62,12 @@ WHERE 1|; while ( my ($borrowernumber, $categorycode) = $sth->fetchrow ) { print "$borrowernumber: $categorycode\n"; next unless $doit; - C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { + my $options = { borrowernumber => $borrowernumber, categorycode => $categorycode, - } ); + }; + $options->{message_name} = $message_name if defined $message_name; + C4::Members::Messaging::SetMessagingPreferencesFromDefaults($options); $cnt++; } $dbh->commit(); @@ -73,19 +75,20 @@ WHERE 1|; } -my ( $doit, $since, $help, $not_expired, $no_overwrite, $category ); +my ( $doit, $since, $help, $not_expired, $no_overwrite, $category, $message_name ); my $result = GetOptions( 'doit' => \$doit, 'since:s' => \$since, 'not-expired' => \$not_expired, 'no-overwrite' => \$no_overwrite, 'category:s' => \$category, + 'message-name:s' => \$message_name, 'help|h' => \$help, ); usage() if $help; -force_borrower_messaging_defaults( $doit, $since, $not_expired, $no_overwrite, $category ); +force_borrower_messaging_defaults( $doit, $since, $not_expired, $no_overwrite, $category, $message_name ); =head1 NAME @@ -98,6 +101,7 @@ borrowers-force-messaging-defaults.pl borrowers-force-messaging-defaults.pl --doit borrowers-force-messaging-defaults.pl --doit --not-expired borrowers-force-messaging-defaults.pl --doit --category PT + borrowers-force-messaging-defaults.pl --doit --message-name 'Item_Due' =head1 DESCRIPTION @@ -134,6 +138,11 @@ already set their preferences. Will only update patrons in the category specified. +=item B<--message-name> + +Will only update the specified message name. +List of values can be found in installer/data/mysql/mandatory/sample_notices_message_attributes.sql + =item B<--since> Will only update borrowers enrolled since the specified date. --