LP#1356477: seed data for email checkout receipts
authorGalen Charlton <gmc@esilibrary.com>
Wed, 3 Aug 2016 16:18:19 +0000 (12:18 -0400)
committerGalen Charlton <gmc@esilibrary.com>
Mon, 22 Aug 2016 22:02:04 +0000 (18:02 -0400)
This patch adds seed data for email checkout receipts,
including:

- The action/trigger hooks circ.checkout.batch_notify
  and circ.checkout.batch_notify.session.
- The default event definition
- The circ.send_email_checkout_receipts (Email checkout receipts by
  default?) user setting.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.data.email-checkout-receipt.sql [new file with mode: 0644]

index c8960b1..ffb5ec8 100644 (file)
@@ -16317,3 +16317,103 @@ INSERT INTO actor.org_unit_setting (
     'circ.patron_search.diacritic_insensitive',
     'true'
 );
+
+-- email checkout receipts
+INSERT INTO config.usr_setting_type (
+    name,
+    opac_visible,
+    label,
+    description,
+    datatype
+) VALUES (
+    'circ.send_email_checkout_receipts',
+    TRUE,
+    oils_i18n_gettext('circ.send_email_checkout_receipts', 'Email checkout receipts by default?', 'cust', 'label'),
+    oils_i18n_gettext('circ.send_email_checkout_receipts', 'Email checkout receipts by default?', 'cust', 'description'),
+    'bool'
+);
+
+INSERT INTO action_trigger.hook (key, core_type, description, passive)
+VALUES (
+    'circ.checkout.batch_notify',
+    'circ',
+    oils_i18n_gettext(
+        'circ.checkout.batch_notify',
+        'Notification of a group of circs',
+        'ath',
+        'description'
+    ),
+    FALSE
+);
+
+INSERT INTO action_trigger.hook (key, core_type, description, passive)
+VALUES (
+    'circ.checkout.batch_notify.session',
+    'circ',
+    oils_i18n_gettext(
+        'circ.checkout.batch_notify.session',
+        'Notification of a group of circs at the end of a checkout session',
+        'ath',
+        'description'
+    ),
+    FALSE
+);
+
+INSERT INTO action_trigger.event_definition (
+    active,
+    owner,
+    name,
+    hook,
+    validator,
+    reactor,
+    usr_field,
+    opt_in_setting,
+    group_field,
+    template
+) VALUES (
+    TRUE,
+    1,
+    'Email Checkout Receipt',
+    'circ.checkout.batch_notify.session',
+    'NOOP_True',
+    'SendEmail',
+    'usr',
+    'circ.send_email_checkout_receipts',
+    'usr',
+    $$[%- USE date -%]
+[%- user = target.0.usr -%]
+To: [%- params.recipient_email || user.email %]
+From: [%- helpers.get_org_setting(target.0.circ_lib.id, 'org.bounced_emails') || params.sender_email || default_sender %]
+Subject: Checkout Receipt
+Auto-Submitted: auto-generated
+
+You checked out the following items:
+
+[% FOR circ IN target %]
+    [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
+    Title: [% copy_details.title %]
+    Author: [% copy_details.author %]
+    Call Number: [% circ.target_copy.call_number.label %]
+    Barcode: [% circ.target_copy.barcode %]
+    Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
+    Library: [% circ.circ_lib.name %]
+
+[% END %]
+$$);
+
+INSERT INTO action_trigger.environment (
+    event_def,
+    path
+) VALUES (
+    currval('action_trigger.event_definition_id_seq'),
+    'target_copy.call_number'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'target_copy.location'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'usr'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'circ_lib'
+);
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.email-checkout-receipt.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.email-checkout-receipt.sql
new file mode 100644 (file)
index 0000000..eaeaf36
--- /dev/null
@@ -0,0 +1,103 @@
+BEGIN;
+
+INSERT INTO config.usr_setting_type (
+    name,
+    opac_visible,
+    label,
+    description,
+    datatype
+) VALUES (
+    'circ.send_email_checkout_receipts',
+    TRUE,
+    oils_i18n_gettext('circ.send_email_checkout_receipts', 'Email checkout receipts by default?', 'cust', 'label'),
+    oils_i18n_gettext('circ.send_email_checkout_receipts', 'Email checkout receipts by default?', 'cust', 'description'),
+    'bool'
+);
+
+INSERT INTO action_trigger.hook (key, core_type, description, passive)
+VALUES (
+    'circ.checkout.batch_notify',
+    'circ',
+    oils_i18n_gettext(
+        'circ.checkout.batch_notify',
+        'Notification of a group of circs',
+        'ath',
+        'description'
+    ),
+    FALSE
+);
+
+INSERT INTO action_trigger.hook (key, core_type, description, passive)
+VALUES (
+    'circ.checkout.batch_notify.session',
+    'circ',
+    oils_i18n_gettext(
+        'circ.checkout.batch_notify.session',
+        'Notification of a group of circs at the end of a checkout session',
+        'ath',
+        'description'
+    ),
+    FALSE
+);
+
+INSERT INTO action_trigger.event_definition (
+    active,
+    owner,
+    name,
+    hook,
+    validator,
+    reactor,
+    usr_field,
+    opt_in_setting,
+    group_field,
+    template
+) VALUES (
+    TRUE,
+    1,
+    'Email Checkout Receipt',
+    'circ.checkout.batch_notify.session',
+    'NOOP_True',
+    'SendEmail',
+    'usr',
+    'circ.send_email_checkout_receipts',
+    'usr',
+    $$[%- USE date -%]
+[%- user = target.0.usr -%]
+To: [%- params.recipient_email || user.email %]
+From: [%- helpers.get_org_setting(target.0.circ_lib.id, 'org.bounced_emails') || params.sender_email || default_sender %]
+Subject: Checkout Receipt
+Auto-Submitted: auto-generated
+
+You checked out the following items:
+
+[% FOR circ IN target %]
+    [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
+    Title: [% copy_details.title %]
+    Author: [% copy_details.author %]
+    Call Number: [% circ.target_copy.call_number.label %]
+    Barcode: [% circ.target_copy.barcode %]
+    Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
+    Library: [% circ.circ_lib.name %]
+
+[% END %]
+$$);
+
+INSERT INTO action_trigger.environment (
+    event_def,
+    path
+) VALUES (
+    currval('action_trigger.event_definition_id_seq'),
+    'target_copy.call_number'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'target_copy.location'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'usr'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'circ_lib'
+);
+
+COMMIT;
+