@@ -, +, @@ --- C4/Reserves.pm | 1 + .../data/mysql/atomicupdate/bug_25334.perl | 27 +++++++++++++++ .../mandatory/message_transport_types.sql | 1 + .../sample_notices_message_transports.sql | 9 ++++- installer/data/mysql/sysprefs.sql | 1 + .../en/includes/messaging-preference-form.inc | 34 ++++++++++++++++++- .../en/modules/admin/preferences/patrons.pref | 8 +++++ 7 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_25334.perl --- a/C4/Reserves.pm +++ a/C4/Reserves.pm @@ -1806,6 +1806,7 @@ sub _koha_notify_reserve { ( $mtt eq 'email' and not $to_address ) # No email address or ( $mtt eq 'sms' and not $patron->smsalertnumber ) # No SMS number or ( $mtt eq 'talkingtech' and C4::Context->preference('TalkingTechItivaPhoneNotification') ) # Notice is handled by TalkingTech_itiva_outbound.pl + or ( $mtt eq 'phone' and not $patron->phone ) # No phone number to call ); &$send_notification($mtt, $letter_code); --- a/installer/data/mysql/atomicupdate/bug_25334.perl +++ a/installer/data/mysql/atomicupdate/bug_25334.perl @@ -0,0 +1,27 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + $dbh->do(q{ + INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES + ('PhoneNotification','0',NULL,'If ON, enables generation of phone notifications to be sent by plugins','YesNo') + }); + + $dbh->do(q{ + INSERT INTO message_transport_types (message_transport_type) VALUES ('phone') + }); + + $dbh->do(q{ + INSERT IGNORE INTO `message_transports` + (`message_attribute_id`, `message_transport_type`, `is_digest`, `letter_module`, `letter_code`) + VALUES + (1, 'phone', 0, 'circulation', 'DUE'), + (1, 'phone', 1, 'circulation', 'DUEDGST'), + (2, 'phone', 0, 'circulation', 'PREDUE'), + (2, 'phone', 1, 'circulation', 'PREDUEDGST'), + (4, 'phone', 0, 'reserves', 'HOLD'), + (5, 'phone', 0, 'circulation', 'CHECKIN'), + (6, 'phone', 0, 'circulation', 'CHECKOUT'); + }); + + # Always end with this (adjust the bug info) + NewVersion( $DBversion, 12345, "Description"); +} --- a/installer/data/mysql/mandatory/message_transport_types.sql +++ a/installer/data/mysql/mandatory/message_transport_types.sql @@ -4,4 +4,5 @@ values ('email'), ('print'), ('sms'), +('phone'), ('talkingtech'); --- a/installer/data/mysql/mandatory/sample_notices_message_transports.sql +++ a/installer/data/mysql/mandatory/sample_notices_message_transports.sql @@ -5,16 +5,23 @@ values (1, 'email', 1, 'circulation', 'DUEDGST'), (1, 'sms', 0, 'circulation', 'DUE'), (1, 'sms', 1, 'circulation', 'DUEDGST'), +(1, 'phone', 0, 'circulation', 'DUE'), +(1, 'phone', 1, 'circulation', 'DUEDGST'), (2, 'email', 0, 'circulation', 'PREDUE'), (2, 'email', 1, 'circulation', 'PREDUEDGST'), (2, 'sms', 0, 'circulation', 'PREDUE'), (2, 'sms', 1, 'circulation', 'PREDUEDGST'), +(2, 'phone', 0, 'circulation', 'PREDUE'), +(2, 'phone', 1, 'circulation', 'PREDUEDGST'), (2, 'talkingtech', 0, 'circulation', 'PREDUE'), (2, 'talkingtech', 1, 'circulation', 'PREDUEDGST'), (4, 'email', 0, 'reserves', 'HOLD'), (4, 'sms', 0, 'reserves', 'HOLD'), +(4, 'phone', 0, 'reserves', 'HOLD'), (4, 'talkingtech', 0, 'reserves', 'HOLD'), (5, 'email', 0, 'circulation', 'CHECKIN'), (5, 'sms', 0, 'circulation', 'CHECKIN'), +(5, 'phone', 0, 'circulation', 'CHECKIN'), (6, 'email', 0, 'circulation', 'CHECKOUT'), -(6, 'sms', 0, 'circulation', 'CHECKOUT'); +(6, 'sms', 0, 'circulation', 'CHECKOUT'), +(6, 'phone', 0, 'circulation', 'CHECKOUT'); --- a/installer/data/mysql/sysprefs.sql +++ a/installer/data/mysql/sysprefs.sql @@ -640,6 +640,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('TagsShowOnDetail','10','','Number of tags to display on detail page. 0 is off.','Integer'), ('TagsShowOnList','6','','Number of tags to display on search results list. 0 is off.','Integer'), ('TalkingTechItivaPhoneNotification','0',NULL,'If ON, enables Talking Tech I-tiva phone notifications','YesNo'), +('PhoneNotification','0',NULL,'If ON, enables generation of phone notifications to be sent by plugins','YesNo'), ('template','prog','','Define the preferred staff interface template','Themes'), ('ThingISBN','0','','Use with FRBRizeEditions. If ON, Koha will use the ThingISBN web service in the Editions tab on the detail pages.','YesNo'), ('TimeFormat','24hr','12hr|24hr','Defines the global time format for visual output.','Choice'), --- a/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc @@ -7,7 +7,7 @@ Days in advance [% IF Koha.Preference('SMSSendDriver') %]SMS[% END %] - [% IF Koha.Preference('TalkingTechItivaPhoneNotification') %]Phone[% END %] + [% IF Koha.Preference('TalkingTechItivaPhoneNotification') || Koha.Preference('PhoneNotification') %]Phone[% END %] Email Digests only @@ -105,6 +105,38 @@ [% ELSE %] - [% END %] + [% ELSIF Koha.Preference('PhoneNotification') %] + [% IF ( messaging_preference.transport_phone ) %] + + [% IF ( messaging_form_inactive ) %] + [% IF ( messaging_preference.transports_phone ) %] + + [% ELSE %] + + [% END %] + [% ELSE %] + [% IF ( messaging_preference.transports_phone ) %] + + [% ELSE %] + + [% END %] + [% END %] + + [% ELSE %] + - + [% END %] [% END %] [% IF ( messaging_preference.transport_email ) %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref @@ -149,6 +149,14 @@ Patrons: yes: Enable no: Disable - patron phone notifications using Talking Tech i-tiva (overdues, predues and holds notices currently supported). + -
If TalkingTechItivaPhoneNotification is enabled, PhoneNotification should be disabled. + - + - pref: PhoneNotification + choices: + yes: Enable + no: Disable + - patron phone notifications generation. A plugin will be required to process the phone notifications. + -
If PhoneNotification is enabled, TalkingTechItivaPhoneNotification should be disabled. - - "Use the SMS::Send::" - pref: SMSSendDriver --