View | Details | Raw Unified | Return to bug 18595
Collapse All | Expand All

(-)a/C4/Auth_with_ldap.pm (-6 / +1 lines)
Lines 227-238 sub checkpw_ldap { Link Here
227
        )->store;
227
        )->store;
228
        die "Insert of new patron failed" unless $patron;
228
        die "Insert of new patron failed" unless $patron;
229
        $borrowernumber = $patron->borrowernumber;
229
        $borrowernumber = $patron->borrowernumber;
230
        C4::Members::Messaging::SetMessagingPreferencesFromDefaults(
230
        $patron->set_default_messaging_preferences;
231
            {
232
                borrowernumber => $borrowernumber,
233
                categorycode   => $borrower{'categorycode'}
234
            }
235
        );
236
231
237
        # Send welcome email if enabled
232
        # Send welcome email if enabled
238
        if ( $config{welcome} ) {
233
        if ( $config{welcome} ) {
(-)a/C4/Auth_with_shibboleth.pm (-6 / +1 lines)
Lines 135-146 sub _autocreate { Link Here
135
    }
135
    }
136
136
137
    my $patron = Koha::Patron->new( \%borrower )->store;
137
    my $patron = Koha::Patron->new( \%borrower )->store;
138
    C4::Members::Messaging::SetMessagingPreferencesFromDefaults(
138
    $patron->set_default_messaging_preferences;
139
        {
140
            borrowernumber => $patron->borrowernumber,
141
            categorycode   => $patron->categorycode
142
        }
143
    );
144
139
145
    # Send welcome email if enabled
140
    # Send welcome email if enabled
146
    if ( $config->{welcome} ) {
141
    if ( $config->{welcome} ) {
(-)a/C4/Form/MessagingPreferences.pm (-2 / +4 lines)
Lines 24-29 use CGI qw ( -utf8 ); Link Here
24
use C4::Context;
24
use C4::Context;
25
use C4::Members::Messaging;
25
use C4::Members::Messaging;
26
use Koha::Patron::MessagePreferences;
26
use Koha::Patron::MessagePreferences;
27
use Koha::Patrons;
27
28
28
use constant MAX_DAYS_IN_ADVANCE => 30;
29
use constant MAX_DAYS_IN_ADVANCE => 30;
29
30
Lines 104-111 sub handle_form_action { Link Here
104
    }
105
    }
105
    if (! $prefs_set && $insert){
106
    if (! $prefs_set && $insert){
106
        # this is new borrower, and we have no preferences set, use the defaults
107
        # this is new borrower, and we have no preferences set, use the defaults
107
	$target_params->{categorycode} = $categorycode;
108
        $target_params->{categorycode} = $categorycode;
108
        C4::Members::Messaging::SetMessagingPreferencesFromDefaults( $target_params );
109
        my $patron = Koha::Patrons->find($target_params->{'borrowernumber'});
110
        $patron->set_default_messaging_preferences if $patron;
109
    }
111
    }
110
    # show the success message
112
    # show the success message
111
    $template->param( settings_updated => 1 );
113
    $template->param( settings_updated => 1 );
(-)a/C4/Members/Messaging.pm (-35 lines)
Lines 183-223 END_SQL Link Here
183
    return;    
183
    return;    
184
}
184
}
185
185
186
=head2 SetMessagingPreferencesFromDefaults
187
188
  C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { borrowernumber => $borrower->{'borrowernumber'}
189
                                                                categorycode   => 'CPL' } );
190
191
Given a borrowernumber and a patron category code (from the C<borrowernumber> and C<categorycode> keys
192
in the parameter hashref), replace all of the patron's current messaging preferences with
193
whatever defaults are defined for the patron category.
194
195
=cut
196
197
sub SetMessagingPreferencesFromDefaults {
198
    my $params = shift;
199
200
    foreach my $required ( qw( borrowernumber categorycode ) ) {
201
        unless ( exists $params->{ $required } ) {
202
            die "SetMessagingPreferencesFromDefaults called without required parameter: $required";
203
        }
204
    }
205
206
    my $messaging_options = Koha::Patron::MessagePreferences->get_options;
207
    OPTION: foreach my $option ( @$messaging_options ) {
208
        my $default_pref = GetMessagingPreferences( { categorycode => $params->{categorycode},
209
                                                      message_name => $option->{'message_name'} } );
210
        # FIXME - except for setting the borrowernumber, it really ought to be possible
211
        # to have the output of GetMessagingPreferences be able to be the input
212
        # to SetMessagingPreference
213
        my @message_transport_types = keys %{ $default_pref->{transports} };
214
        $default_pref->{message_attribute_id}    = $option->{'message_attribute_id'};
215
        $default_pref->{message_transport_types} = \@message_transport_types;
216
        $default_pref->{borrowernumber}          = $params->{borrowernumber};
217
        SetMessagingPreference( $default_pref );
218
    }
219
}
220
221
=head1 TABLES
186
=head1 TABLES
222
187
223
=head2 message_queue
188
=head2 message_queue
(-)a/Koha/Patrons/Import.pm (-6 / +1 lines)
Lines 400-411 sub import_patrons { Link Here
400
                    }
400
                    }
401
401
402
                    if ($set_messaging_prefs) {
402
                    if ($set_messaging_prefs) {
403
                        C4::Members::Messaging::SetMessagingPreferencesFromDefaults(
403
                        $patron->set_default_messaging_preferences;
404
                            {
405
                                borrowernumber => $patron->borrowernumber,
406
                                categorycode   => $patron->categorycode,
407
                            }
408
                        );
409
                    }
404
                    }
410
405
411
                    $imported++;
406
                    $imported++;
(-)a/Koha/REST/V1/Patrons.pm (-6 / +1 lines)
Lines 120-131 sub add { Link Here
120
                    ]
120
                    ]
121
                );
121
                );
122
                if ( C4::Context->preference('EnhancedMessagingPreferences') ) {
122
                if ( C4::Context->preference('EnhancedMessagingPreferences') ) {
123
                    C4::Members::Messaging::SetMessagingPreferencesFromDefaults(
123
                    $patron->set_default_messaging_preferences;
124
                        {
125
                            borrowernumber => $patron->borrowernumber,
126
                            categorycode   => $patron->categorycode,
127
                        }
128
                    );
129
                }
124
                }
130
125
131
                $c->res->headers->location($c->req->url->to_string . '/' . $patron->borrowernumber);
126
                $c->res->headers->location($c->req->url->to_string . '/' . $patron->borrowernumber);
(-)a/misc/maintenance/borrowers-force-messaging-defaults.pl (-5 / +3 lines)
Lines 25-30 use C4::Context; Link Here
25
use C4::Members::Messaging;
25
use C4::Members::Messaging;
26
use Getopt::Long qw( GetOptions );
26
use Getopt::Long qw( GetOptions );
27
use Pod::Usage qw( pod2usage );
27
use Pod::Usage qw( pod2usage );
28
use Koha::Patrons;
28
29
29
30
30
sub usage {
31
sub usage {
Lines 62-71 WHERE 1|; Link Here
62
    while ( my ($borrowernumber, $categorycode) = $sth->fetchrow ) {
63
    while ( my ($borrowernumber, $categorycode) = $sth->fetchrow ) {
63
        print "$borrowernumber: $categorycode\n";
64
        print "$borrowernumber: $categorycode\n";
64
        next unless $doit;
65
        next unless $doit;
65
        C4::Members::Messaging::SetMessagingPreferencesFromDefaults( {
66
        my $patron = Koha::Patrons->find($borrowernumber);
66
            borrowernumber => $borrowernumber,
67
        $patron->set_default_messaging_preferences if $patron;
67
            categorycode   => $categorycode,
68
        } );
69
        $cnt++;
68
        $cnt++;
70
    }
69
    }
71
    $dbh->commit();
70
    $dbh->commit();
72
- 

Return to bug 18595