]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/XXXX.schema.AT-def-groups.sql
LP#1749475 Remove extra whitespace from email trigger template
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / XXXX.schema.AT-def-groups.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
4
5 INSERT into config.org_unit_setting_type
6 ( name, grp, label, description, datatype, fm_class ) VALUES
7 ( 'opac.email_record.allow_without_login', 'opac',
8     oils_i18n_gettext('opac.email_record.allow_without_login',
9         'Allow record emailing without login',
10         'coust', 'label'),
11     oils_i18n_gettext('opac.email_record.allow_without_login',
12         'Instead of forcing a patron to log in in order to email the details of a record, just challenge them with a simple catpcha.',
13         'coust', 'description'),
14     'bool', null)
15 ;
16
17 CREATE TABLE action_trigger.event_def_group (
18     id      SERIAL  PRIMARY KEY,
19     owner   INT     NOT NULL REFERENCES actor.org_unit (id)
20                         ON DELETE RESTRICT ON UPDATE CASCADE
21                         DEFERRABLE INITIALLY DEFERRED,
22     hook    TEXT    NOT NULL REFERENCES action_trigger.hook (key)
23                         ON DELETE RESTRICT ON UPDATE CASCADE
24                         DEFERRABLE INITIALLY DEFERRED,
25     active  BOOL    NOT NULL DEFAULT TRUE,
26     name    TEXT    NOT NULL
27 );
28 SELECT SETVAL('action_trigger.event_def_group_id_seq'::TEXT, 100, TRUE);
29
30 CREATE TABLE action_trigger.event_def_group_member (
31     id          SERIAL  PRIMARY KEY,
32     grp         INT     NOT NULL REFERENCES action_trigger.event_def_group (id)
33                             ON DELETE CASCADE ON UPDATE CASCADE
34                             DEFERRABLE INITIALLY DEFERRED,
35     event_def   INT     NOT NULL REFERENCES action_trigger.event_definition (id)
36                             ON DELETE RESTRICT ON UPDATE CASCADE
37                             DEFERRABLE INITIALLY DEFERRED,
38     sortable    BOOL    NOT NULL DEFAULT TRUE,
39     holdings    BOOL    NOT NULL DEFAULT FALSE,
40     external    BOOL    NOT NULL DEFAULT FALSE,
41     name        TEXT    NOT NULL
42 );
43
44 INSERT INTO action_trigger.event_def_group (id, owner, hook, name)
45     VALUES (1, 1, 'biblio.format.record_entry.print','Print Record(s)');
46
47 INSERT INTO action_trigger.event_def_group_member (grp, name, event_def)
48     SELECT 1, 'Brief', id FROM action_trigger.event_definition WHERE hook = 'biblio.format.record_entry.print';
49
50 INSERT INTO action_trigger.event_def_group_member (grp, name, holdings, event_def)
51     SELECT 1, 'Full', TRUE, id FROM action_trigger.event_definition WHERE hook = 'biblio.format.record_entry.print';
52
53 INSERT INTO action_trigger.event_def_group (id, owner, hook, name)
54     VALUES (2,1,'biblio.format.record_entry.email','Email Record(s)');
55
56 INSERT INTO action_trigger.event_def_group_member (grp, name, event_def)
57     SELECT 2, 'Brief', id FROM action_trigger.event_definition WHERE hook = 'biblio.format.record_entry.email';
58
59 INSERT INTO action_trigger.event_def_group_member (grp, name, holdings, event_def)
60     SELECT 2, 'Full', TRUE, id FROM action_trigger.event_definition WHERE hook = 'biblio.format.record_entry.email';
61
62 UPDATE action_trigger.event_definition SET template = $$
63 [%- USE date -%]
64 [%- SET user = target.0.owner -%]
65 To: [%- params.recipient_email || user_data.0.email || user.email %]
66 From: [%- params.sender_email || default_sender %]
67 Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %]
68 Subject: [%- user_data.0.subject || 'Bibliographic Records' %]
69 Auto-Submitted: auto-generated
70
71 [%- FOR cbreb IN target;
72
73     flesh_list = '{mra';
74     IF user_data.0.type == 'full';
75         flesh_list = flesh_list _ ',holdings_xml,acp';
76         IF params.holdings_limit;
77             flimit = 'acn=>' _ params.holdings_limit _ ',acp=>' _ params.holdings_limit;
78         END;
79     END;
80     flesh_list = flesh_list _ '}';
81
82     item_list = helpers.sort_bucket_unapi_bre(cbreb.items,{flesh => flesh_list, site => user_data.0.context_org, flesh_limit => flimit}, user_data.0.sort_by, user_data.0.sort_dir);
83
84 FOR item IN item_list -%]
85
86 [% loop.count %]/[% loop.size %].  Bib ID# [% item.id %]
87 [% IF item.isbn %]ISBN: [% item.isbn _ "\n" %][% END -%]
88 [% IF item.issn %]ISSN: [% item.issn _ "\n" %][% END -%]
89 [% IF item.upc  %]UPC:  [% item.upc _ "\n" %][% END -%]
90 Title: [% item.title %]
91 [% IF item.author %]Author: [% item.author _ "\n" %][% END -%]
92 Publication Info: [% item.publisher %] [% item.pubdate %]
93 Item Type: [% item.item_type %]
94 [% IF user_data.0.type == 'full' && item.holdings.size == 0 %]
95  * No items for this record at the selected location
96 [%- END %]
97 [% FOR cp IN item.holdings -%]
98  * Library: [% cp.circ_lib %]
99    Location: [% cp.location %]
100    Call Number: [% cp.prefix _ ' ' _ cp.callnumber _ ' ' _ cp.suffix %]
101 [% IF cp.parts %]   Parts: [% cp.parts _ "\n" %][% END -%]
102    Status: [% cp.status_label %]
103    Barcode: [% cp.barcode %]
104  
105 [% END -%]
106 [%- END -%]
107 [%- END -%]
108 $$ WHERE hook = 'biblio.format.record_entry.email';
109
110 UPDATE action_trigger.event_definition SET template = $$
111 <div>
112     <style> li { padding: 8px; margin 5px; }</style>
113     <ol>
114     [% FOR cbreb IN target;
115
116     flesh_list = '{mra';
117     IF user_data.0.type == 'full';
118         flesh_list = flesh_list _ ',holdings_xml,acp';
119         IF params.holdings_limit;
120             flimit = 'acn=>' _ params.holdings_limit _ ',acp=>' _ params.holdings_limit;
121         END;
122     END;
123     flesh_list = flesh_list _ '}';
124
125     item_list = helpers.sort_bucket_unapi_bre(cbreb.items,{flesh => flesh_list, site => user_data.0.context_org, flesh_limit => flimit}, user_data.0.sort_by, user_data.0.sort_dir);
126     FOR item IN item_list %]
127         <li>
128             Bib ID# [% item.id %]<br />
129             [% IF item.isbn %]ISBN: [% item.isbn %]<br />[% END %]
130             [% IF item.issn %]ISSN: [% item.issn %]<br />[% END %]
131             [% IF item.upc  %]UPC:  [% item.upc %]<br />[% END %]
132             Title: [% item.title %]<br />
133 [% IF item.author %]            Author: [% item.author %]<br />[% END -%]
134             Publication Info: [% item.publisher %] [% item.pubdate %]<br/>
135             Item Type: [% item.item_type %]
136             <ul>
137             [% IF user_data.0.type == 'full' && item.holdings.size == 0 %]
138                 <li>No items for this record at the selected location</li>
139             [% END %]
140             [% FOR cp IN item.holdings -%]
141                 <li>
142                     Library: [% cp.circ_lib %]<br/>
143                     Location: [% cp.location %]<br/>
144                     Call Number: [% cp.prefix _ ' ' _ cp.callnumber _ ' ' _ cp.suffix %]<br/>
145                     [% IF cp.parts %]Parts: [% cp.parts %]<br/>[% END %]
146                     Status: [% cp.status_label %]<br/>
147                     Barcode: [% cp.barcode %]
148                 </li>
149             [% END %]
150             </ul>
151         </li>
152     [% END %]
153     [% END %]
154     </ol>
155 </div>
156 $$ WHERE hook = 'biblio.format.record_entry.print';
157
158 COMMIT;
159