Browse Source

Bug 25334: Add generic 'phone' message transport type

As bug 25333 changed the 'phone' transport type to 'talkingtech', we can
now re-add 'phone' as a transport type again, and allow it to behave and
support the same notices as the email transport type.

Test Plan;
1) Apply this patch
2) Run updatedatabase
3) Restart all the things!
4) Disable TalkingTechItivaPhoneNotificationi if enabled
5) Enable new PhoneNotification system preference
6) Go to a patron's messaging preferences, not you can select the
   'phone' option for all the same notices as the 'email' option
7) Enable the phone option for all the message types
8) Browser to the Notices and slips editor
9) Add a phone notice version for each notice you wish to test
10) Test some notices ( CHECKIN, CHECKOUT, etc )
11) Notices should show in the patron's messages as 'phone' notices

Signed-off-by: Christopher Zorn <Christofer.Zorn@ajaxlibrary.ca>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
20.11.x
Kyle Hall 2 years ago
committed by Jonathan Druart
parent
commit
946edb595b
  1. 1
      C4/Reserves.pm
  2. 27
      installer/data/mysql/atomicupdate/bug_25334.perl
  3. 1
      installer/data/mysql/mandatory/message_transport_types.sql
  4. 9
      installer/data/mysql/mandatory/sample_notices_message_transports.sql
  5. 1
      installer/data/mysql/mandatory/sysprefs.sql
  6. 34
      koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc
  7. 8
      koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref
  8. 9
      koha-tmpl/intranet-tmpl/prog/en/modules/tools/letter.tt

1
C4/Reserves.pm

@ -1856,6 +1856,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 'itiva' 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);

27
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, 25334, "Add generic 'phone' message transport type");
}

1
installer/data/mysql/mandatory/message_transport_types.sql

@ -4,4 +4,5 @@ values
('email'),
('print'),
('sms'),
('phone'),
('itiva');

9
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, 'itiva', 0, 'circulation', 'PREDUE'),
(2, 'itiva', 1, 'circulation', 'PREDUEDGST'),
(4, 'email', 0, 'reserves', 'HOLD'),
(4, 'sms', 0, 'reserves', 'HOLD'),
(4, 'phone', 0, 'reserves', 'HOLD'),
(4, 'itiva', 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');

1
installer/data/mysql/mandatory/sysprefs.sql

@ -516,6 +516,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
('PayPalSandboxMode', '1', NULL , 'If enabled, the system will use PayPal''s sandbox server for testing, rather than the production server.', 'YesNo'),
('PayPalSignature', '', NULL , 'Your PayPal API signature', 'Free'),
('PayPalUser', '', NULL , 'Your PayPal API username ( email address )', 'Free'),
('PhoneNotification','0',NULL,'If ON, enables generation of phone notifications to be sent by plugins','YesNo'),
('PrefillGuaranteeField', 'phone,email,streetnumber,address,city,state,zipcode,country', NULL, 'Prefill these fields in guarantee member entry form from guarantor patron record', 'Multiple'),
('PrefillItem','0','','When a new item is added, should it be prefilled with last created item values?','YesNo'),
('PreserveSerialNotes','1','','When a new "Expected" issue is generated, should it be prefilled with last created issue notes?','YesNo'),

34
koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc

@ -7,7 +7,7 @@
<tr><th></th>
<th>Days in advance</th>
[% IF Koha.Preference('SMSSendDriver') %]<th>SMS</th>[% END %]
[% IF Koha.Preference('TalkingTechItivaPhoneNotification') %]<th>Phone</th>[% END %]
[% IF Koha.Preference('TalkingTechItivaPhoneNotification') || Koha.Preference('PhoneNotification') %]<th>Phone</th>[% END %]
<th>Email</th>
<th>Digests only <i id="info_digests" data-toggle="tooltip" title="You can ask for a digest to reduce the number of messages. Messages will be saved and sent as a single message." data-placement="right" class="fa fa-info-circle"></i></th>
<!-- <th>RSS</th> -->
@ -110,6 +110,38 @@
[% ELSE %]
<td>-</td>
[% END %]
[% ELSIF Koha.Preference('PhoneNotification') %]
[% IF ( messaging_preference.transport_phone ) %]
<td>
[% IF ( messaging_form_inactive ) %]
[% IF ( messaging_preference.transports_phone ) %]
<input type="checkbox"
id="phone[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="phone" checked="checked" disabled="disabled" />
[% ELSE %]
<input type="checkbox"
id="phone[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="phone" disabled="disabled" />
[% END %]
[% ELSE %]
[% IF ( messaging_preference.transports_phone ) %]
<input type="checkbox"
id="phone[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="phone" checked="checked" class="active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
[% ELSE %]
<input type="checkbox"
id="phone[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="phone" class="active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
[% END %]
[% END %]
</td>
[% ELSE %]
<td>-</td>
[% END %]
[% END %]
[% IF ( messaging_preference.transport_email ) %]

8
koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref

@ -158,6 +158,14 @@ Patrons:
yes: Enable
no: Disable
- patron phone notifications using Talking Tech i-tiva (overdues, predues and holds notices currently supported).
- <br/><i class="fa fa-exclamation-triangle"></i> If <code>TalkingTechItivaPhoneNotification</code> is enabled, <code>PhoneNotification</code> should be disabled.
-
- pref: PhoneNotification
choices:
yes: Enable
no: Disable
- patron phone notifications generation. A plugin will be required to process the phone notifications.
- <br/><i class="fa fa-exclamation-triangle"></i> If <code>PhoneNotification</code> is enabled, <code>TalkingTechItivaPhoneNotification</code> should be disabled.
-
- "Use the SMS::Send::"
- pref: SMSSendDriver

9
koha-tmpl/intranet-tmpl/prog/en/modules/tools/letter.tt

@ -394,6 +394,8 @@
<div class="transport-types" style="clear:both">
[% FOR mtt IN letters.$lang.templates.keys.sort %]
[% SET letter = letters.$lang.templates.$mtt %]
[% NEXT IF letter.message_transport_type == "talkingtech" && !Koha.Preference('TalkingTechItivaPhoneNotification') %]
[% NEXT IF letter.message_transport_type == "phone" && !Koha.Preference('PhoneNotification') %]
<h3>
[% SWITCH letter.message_transport_type %]
[% CASE 'email' %]
@ -405,7 +407,9 @@
[% CASE 'feed' %]
Feed
[% CASE 'itiva' %]
Phone
Phone ( Itiva )
[% CASE 'phone' %]
Phone
[% CASE %]
[% letter.message_transport_type | html %]
[% END %]
@ -413,9 +417,6 @@
[% IF letter.message_transport_type == "sms" and not Koha.Preference("SMSSendDriver") %]
<fieldset class="rows mtt" id="[% letter.message_transport_type | html %]_[% lang | html %]" disabled="disabled">
<div class="dialog message">You should enable the SMSSendDriver preference to use the SMS templates.</div>
[% ELSIF letter.message_transport_type == "phone" and not Koha.Preference("TalkingTechItivaPhoneNotification") %]
<fieldset class="rows mtt" id="[% letter.message_transport_type | html %]_[% lang | html %]" disabled="disabled">
<div class="dialog message">You should enable the TalkingTechItivaPhoneNotification preference to use the phone templates.</div>
[% ELSE %]
<fieldset class="rows mtt" id="[% letter.message_transport_type | html %]_[% lang | html %]">
[% END %]

Loading…
Cancel
Save