]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/950.data.seed-values.sql
Allow combined search to be optional per class
[working/Evergreen.git] / Open-ILS / src / sql / Pg / 950.data.seed-values.sql
1 --002.schema.config.sql:
2 INSERT INTO config.bib_source (id, quality, source, transcendant, can_have_copies) VALUES 
3     (1, 90, oils_i18n_gettext(1, 'oclc', 'cbs', 'source'), FALSE, TRUE);
4 INSERT INTO config.bib_source (id, quality, source, transcendant, can_have_copies) VALUES 
5     (2, 10, oils_i18n_gettext(2, 'System Local', 'cbs', 'source'), FALSE, TRUE);
6 INSERT INTO config.bib_source (id, quality, source, transcendant, can_have_copies) VALUES 
7     (3, 1, oils_i18n_gettext(3, 'Project Gutenberg', 'cbs', 'source'), TRUE, TRUE);
8 SELECT SETVAL('config.bib_source_id_seq'::TEXT, 100);
9
10 INSERT INTO biblio.peer_type (id,name) VALUES
11     (1,oils_i18n_gettext(1,'Bound Volume','bpt','name')),
12     (2,oils_i18n_gettext(2,'Bilingual','bpt','name')),
13     (3,oils_i18n_gettext(3,'Back-to-back','bpt','name')),
14     (4,oils_i18n_gettext(4,'Set','bpt','name')),
15     (5,oils_i18n_gettext(5,'e-Reader Preload','bpt','name')); 
16 SELECT SETVAL('biblio.peer_type_id_seq'::TEXT, 100);
17
18 INSERT INTO config.standing (id, value) VALUES (1, oils_i18n_gettext(1, 'Good', 'cst', 'value'));
19 INSERT INTO config.standing (id, value) VALUES (2, oils_i18n_gettext(2, 'Barred', 'cst', 'value'));
20 SELECT SETVAL('config.standing_id_seq'::TEXT, 100);
21
22 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
23         VALUES (1,'PATRON_EXCEEDS_FINES',oils_i18n_gettext(1, 'Patron exceeds fine threshold', 'csp', 'label'),'CIRC|FULFILL|HOLD|CAPTURE|RENEW', TRUE);
24 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
25         VALUES (2,'PATRON_EXCEEDS_OVERDUE_COUNT',oils_i18n_gettext(2, 'Patron exceeds max overdue item threshold', 'csp', 'label'),'CIRC|FULFILL|HOLD|CAPTURE|RENEW', TRUE);
26 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
27         VALUES (3,'PATRON_EXCEEDS_CHECKOUT_COUNT',oils_i18n_gettext(3, 'Patron exceeds max checked out item threshold', 'csp', 'label'),'CIRC|FULFILL', TRUE);
28 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
29         VALUES (4,'PATRON_EXCEEDS_COLLECTIONS_WARNING',oils_i18n_gettext(4, 'Patron exceeds pre-collections warning fine threshold', 'csp', 'label'),'CIRC|FULFILL|HOLD|CAPTURE|RENEW', TRUE);
30
31 INSERT INTO config.standing_penalty (id,name,label,staff_alert) VALUES (20,'ALERT_NOTE',oils_i18n_gettext(20, 'Alerting Note, no blocks', 'csp', 'label'),TRUE);
32 INSERT INTO config.standing_penalty (id,name,label) VALUES (21,'SILENT_NOTE',oils_i18n_gettext(21, 'Note, no blocks', 'csp', 'label'));
33 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (22,'STAFF_C',oils_i18n_gettext(22, 'Alerting block on Circ', 'csp', 'label'),'CIRC', TRUE);
34 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (23,'STAFF_CH',oils_i18n_gettext(23, 'Alerting block on Circ and Hold', 'csp', 'label'),'CIRC|HOLD', TRUE);
35 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (24,'STAFF_CR',oils_i18n_gettext(24, 'Alerting block on Circ and Renew', 'csp', 'label'),'CIRC|RENEW', TRUE);
36 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (25,'STAFF_CHR',oils_i18n_gettext(25, 'Alerting block on Circ, Hold and Renew', 'csp', 'label'),'CIRC|HOLD|RENEW', TRUE);
37 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (26,'STAFF_HR',oils_i18n_gettext(26, 'Alerting block on Hold and Renew', 'csp', 'label'),'HOLD|RENEW', TRUE);
38 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (27,'STAFF_H',oils_i18n_gettext(27, 'Alerting block on Hold', 'csp', 'label'),'HOLD', TRUE);
39 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (28,'STAFF_R',oils_i18n_gettext(28, 'Alerting block on Renew', 'csp', 'label'),'RENEW', TRUE);
40 INSERT INTO config.standing_penalty (id,name,label) VALUES (29,'INVALID_PATRON_ADDRESS',oils_i18n_gettext(29, 'Patron has an invalid address', 'csp', 'label'));
41 INSERT INTO config.standing_penalty (id,name,label) VALUES (30,'PATRON_IN_COLLECTIONS',oils_i18n_gettext(30, 'Patron has been referred to a collections agency', 'csp', 'label'));
42 INSERT INTO config.standing_penalty (id, name, label, staff_alert, org_depth) VALUES
43     (
44         31,
45         'INVALID_PATRON_EMAIL_ADDRESS',
46         oils_i18n_gettext(
47             31,
48             'Patron had an invalid email address',
49             'csp',
50             'label'
51         ),
52         TRUE,
53         0
54     ),
55     (
56         32,
57         'INVALID_PATRON_DAY_PHONE',
58         oils_i18n_gettext(
59             32,
60             'Patron had an invalid daytime phone number',
61             'csp',
62             'label'
63         ),
64         TRUE,
65         0
66     ),
67     (
68         33,
69         'INVALID_PATRON_EVENING_PHONE',
70         oils_i18n_gettext(
71             33,
72             'Patron had an invalid evening phone number',
73             'csp',
74             'label'
75         ),
76         TRUE,
77         0
78     ),
79     (
80         34,
81         'INVALID_PATRON_OTHER_PHONE',
82         oils_i18n_gettext(
83             34,
84             'Patron had an invalid other phone number',
85             'csp',
86             'label'
87         ),
88         TRUE,
89         0
90     );
91
92
93 SELECT SETVAL('config.standing_penalty_id_seq', 100);
94
95 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'identifier', oils_i18n_gettext('identifier', 'Identifier', 'cmc', 'label') );
96 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'keyword', oils_i18n_gettext('keyword', 'Keyword', 'cmc', 'label') );
97 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'title', oils_i18n_gettext('title', 'Title', 'cmc', 'label') );
98 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'author', oils_i18n_gettext('author', 'Author', 'cmc', 'label') );
99 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'subject', oils_i18n_gettext('subject', 'Subject', 'cmc', 'label') );
100 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'series', oils_i18n_gettext('series', 'Series', 'cmc', 'label') );
101
102 -- some more from 002.schema.config.sql:
103 INSERT INTO config.xml_transform VALUES ( 'marcxml', 'http://www.loc.gov/MARC21/slim', 'marc', '---' );
104 INSERT INTO config.xml_transform VALUES ( 'mods', 'http://www.loc.gov/mods/', 'mods', '');
105 INSERT INTO config.xml_transform VALUES ( 'mods3', 'http://www.loc.gov/mods/v3', 'mods3', '');
106 INSERT INTO config.xml_transform VALUES ( 'mods32', 'http://www.loc.gov/mods/v3', 'mods32', '');
107 INSERT INTO config.xml_transform VALUES ( 'mods33', 'http://www.loc.gov/mods/v3', 'mods33', '');
108 INSERT INTO config.xml_transform VALUES ( 'marc21expand880', 'http://www.loc.gov/MARC21/slim', 'marc', '' );
109
110 -- Index Definitions
111 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES 
112     (1, 'series', 'seriestitle', oils_i18n_gettext(1, 'Series Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:relatedItem[@type="series"]/mods32:titleInfo$$, TRUE );
113
114 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
115     (2, 'title', 'abbreviated', oils_i18n_gettext(2, 'Abbreviated Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='abbreviated')]$$ );
116 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
117     (3, 'title', 'translated', oils_i18n_gettext(3, 'Translated Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='translated')]$$ );
118 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
119     (4, 'title', 'alternative', oils_i18n_gettext(4, 'Alternate Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='alternative')]$$ );
120 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
121     (5, 'title', 'uniform', oils_i18n_gettext(5, 'Uniform Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='uniform')]$$ );
122 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
123     (6, 'title', 'proper', oils_i18n_gettext(6, 'Title Proper', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleNonfiling[mods32:title and not (@type)]$$ );
124
125 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field ) VALUES 
126     (7, 'author', 'corporate', oils_i18n_gettext(7, 'Corporate Author', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:name[@type='corporate' and (mods32:role/mods32:roleTerm[text()='creator'] or mods32:role/mods32:roleTerm[text()='aut'] or mods32:role/mods32:roleTerm[text()='cre'])]$$, $$//*[local-name()='namePart']$$, TRUE ); -- /* to fool vim */;
127 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field ) VALUES 
128     (8, 'author', 'personal', oils_i18n_gettext(8, 'Personal Author', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:name[@type='personal' and mods32:role/mods32:roleTerm[text()='creator']]$$, $$//*[local-name()='namePart']$$, TRUE ); -- /* to fool vim */;
129 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field ) VALUES 
130     (9, 'author', 'conference', oils_i18n_gettext(9, 'Conference Author', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:name[@type='conference' and mods32:role/mods32:roleTerm[text()='creator']]$$, $$//*[local-name()='namePart']$$, TRUE ); -- /* to fool vim */;
131 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field ) VALUES 
132     (10, 'author', 'other', oils_i18n_gettext(10, 'Other Author', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:name[@type='personal' and not(mods32:role/mods32:roleTerm[text()='creator'])]$$, $$//*[local-name()='namePart']$$, TRUE ); -- /* to fool vim */;
133
134 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES 
135     (11, 'subject', 'geographic', oils_i18n_gettext(11, 'Geographic Subject', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject/mods32:geographic$$, TRUE );
136 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field ) VALUES 
137     (12, 'subject', 'name', oils_i18n_gettext(12, 'Name Subject', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject/mods32:name$$, $$//*[local-name()='namePart']$$, TRUE ); -- /* to fool vim */;
138 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES 
139     (13, 'subject', 'temporal', oils_i18n_gettext(13, 'Temporal Subject', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject/mods32:temporal$$, TRUE );
140 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES 
141     (14, 'subject', 'topic', oils_i18n_gettext(14, 'Topic Subject', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject/mods32:topic$$, TRUE );
142 --INSERT INTO config.metabib_field ( id, field_class, name, format, xpath ) VALUES 
143 --  ( id, field_class, name, xpath ) VALUES ( 'subject', 'genre', 'mods32', $$//mods32:mods/mods32:genre$$ );
144 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES 
145     (15, 'keyword', 'keyword', oils_i18n_gettext(15, 'General Keywords', 'cmf', 'label'), 'mods32', $$//mods32:mods/*[not(local-name()='originInfo')]$$, FALSE ); -- /* to fool vim */;
146 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
147     (16, 'subject', 'complete', oils_i18n_gettext(16, 'All Subjects', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject$$, FALSE );
148
149 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
150     (17, 'identifier', 'accession', oils_i18n_gettext(17, 'Accession Number', 'cmf', 'label'), 'marcxml', $$//marc:controlfield[@tag='001']$$, FALSE );
151 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
152     (18, 'identifier', 'isbn', oils_i18n_gettext(18, 'ISBN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='020']/marc:subfield[@code='a' or @code='z']$$, FALSE );
153 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
154     (19, 'identifier', 'issn', oils_i18n_gettext(19, 'ISSN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='022']/marc:subfield[@code='a' or @code='z']$$, FALSE );
155 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
156     (20, 'identifier', 'upc', oils_i18n_gettext(20, 'UPC', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='1']/marc:subfield[@code='a' or @code='z']$$, FALSE );
157 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
158     (21, 'identifier', 'ismn', oils_i18n_gettext(21, 'ISMN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='2']/marc:subfield[@code='a' or @code='z']$$, FALSE );
159 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
160     (22, 'identifier', 'ean', oils_i18n_gettext(22, 'EAN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='3']/marc:subfield[@code='a' or @code='z']$$, FALSE );
161 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
162     (23, 'identifier', 'isrc', oils_i18n_gettext(23, 'ISRC', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='0']/marc:subfield[@code='a' or @code='z']$$, FALSE );
163 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
164     (24, 'identifier', 'sici', oils_i18n_gettext(24, 'SICI', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='4']/marc:subfield[@code='a' or @code='z']$$, FALSE );
165 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
166     (25, 'identifier', 'bibcn', oils_i18n_gettext(25, 'Local Free-Text Call Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='099']$$, FALSE );
167 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
168     (26, 'identifier', 'tcn', oils_i18n_gettext(26, 'Title Control Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='901']/marc:subfield[@code='a']$$, FALSE );
169 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
170     (27, 'identifier', 'bibid', oils_i18n_gettext(27, 'Internal ID', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='901']/marc:subfield[@code='c']$$, FALSE );
171 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, search_field, facet_field, browse_field) VALUES
172     (28, 'identifier', 'authority_id', oils_i18n_gettext(28, 'Authority Record ID', 'cmf', 'label'), 'marcxml', '//marc:datafield/marc:subfield[@code="0"]', FALSE, TRUE, FALSE);
173 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field) VALUES
174     (29, 'identifier', 'scn', oils_i18n_gettext(29, 'System Control Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='035']/marc:subfield[@code="a"]$$, FALSE);
175 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field) VALUES
176     (30, 'identifier', 'lccn', oils_i18n_gettext(30, 'LC Control Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='010']/marc:subfield[@code="a" or @code='z']$$, FALSE);
177
178 SELECT SETVAL('config.metabib_field_id_seq'::TEXT, (SELECT MAX(id) FROM config.metabib_field), TRUE);
179
180 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('kw','keyword');
181 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.keyword','keyword');
182 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.publisher','keyword');
183 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('bib.subjecttitle','keyword');
184 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('bib.genre','keyword');
185 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('bib.edition','keyword');
186 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('srw.serverchoice','keyword');
187
188 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('id','identifier');
189 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.identifier','identifier');
190 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.isbn','identifier', 18);
191 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.issn','identifier', 19);
192 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.upc','identifier', 20);
193 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.callnumber','identifier', 25);
194 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.tcn','identifier', 26);
195 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.bibid','identifier', 27);
196
197 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('au','author');
198 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('name','author');
199 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('creator','author');
200 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.author','author');
201 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.name','author');
202 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.creator','author');
203 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.contributor','author');
204 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('bib.name','author');
205 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.namepersonal','author',8);
206 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.namepersonalfamily','author',8);
207 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.namepersonalgiven','author',8);
208 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.namecorporate','author',7);
209 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.nameconference','author',9);
210
211 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('ti','title');
212 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.title','title');
213 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.title','title');
214 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.titleabbreviated','title',2);
215 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.titleuniform','title',5);
216 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.titletranslated','title',3);
217 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.titlealternative','title',4);
218 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.title','title',2);
219
220 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('su','subject');
221 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.subject','subject');
222 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.subject','subject');
223 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.subjectplace','subject',11);
224 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.subjectname','subject',12);
225 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.subjectoccupation','subject',16);
226
227 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('se','series');
228 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.series','series');
229 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.titleseries','series',1);
230
231
232 INSERT INTO config.non_cataloged_type ( id, owning_lib, name ) VALUES ( 1, 1, oils_i18n_gettext(1, 'Paperback Book', 'cnct', 'name') );
233 SELECT SETVAL('config.non_cataloged_type_id_seq'::TEXT, 100);
234
235 INSERT INTO config.identification_type ( id, name ) VALUES 
236     ( 1, oils_i18n_gettext(1, 'Drivers License', 'cit', 'name') );
237 INSERT INTO config.identification_type ( id, name ) VALUES 
238     ( 2, oils_i18n_gettext(2, 'SSN', 'cit', 'name') );
239 INSERT INTO config.identification_type ( id, name ) VALUES 
240     ( 3, oils_i18n_gettext(3, 'Other', 'cit', 'name') );
241 SELECT SETVAL('config.identification_type_id_seq'::TEXT, 100);
242
243 INSERT INTO config.rule_circ_duration VALUES 
244     (1, oils_i18n_gettext(1, '7_days_0_renew', 'crcd', 'name'), '7 days', '7 days', '7 days', 0);
245 INSERT INTO config.rule_circ_duration VALUES 
246     (2, oils_i18n_gettext(2, '28_days_2_renew', 'crcd', 'name'), '28 days', '28 days', '28 days', 2);
247 INSERT INTO config.rule_circ_duration VALUES 
248     (3, oils_i18n_gettext(3, '3_months_0_renew', 'crcd', 'name'), '3 months', '3 months', '3 months', 0);
249 INSERT INTO config.rule_circ_duration VALUES 
250     (4, oils_i18n_gettext(4, '3_days_1_renew', 'crcd', 'name'), '3 days', '3 days', '3 days', 1);
251 INSERT INTO config.rule_circ_duration VALUES 
252     (5, oils_i18n_gettext(5, '2_months_2_renew', 'crcd', 'name'), '2 months', '2 months', '2 months', 2);
253 INSERT INTO config.rule_circ_duration VALUES 
254     (6, oils_i18n_gettext(6, '35_days_1_renew', 'crcd', 'name'), '35 days', '35 days', '35 days', 1);
255 INSERT INTO config.rule_circ_duration VALUES 
256     (7, oils_i18n_gettext(7, '7_days_2_renew', 'crcd', 'name'), '7 days', '7 days', '7 days', 2);
257 INSERT INTO config.rule_circ_duration VALUES 
258     (8, oils_i18n_gettext(8, '1_hour_2_renew', 'crcd', 'name'), '1 hour', '1 hour', '1 hour', 2);
259 INSERT INTO config.rule_circ_duration VALUES 
260     (9, oils_i18n_gettext(9, '28_days_0_renew', 'crcd', 'name'), '28 days', '28 days', '28 days', 0);
261 INSERT INTO config.rule_circ_duration VALUES 
262     (10, oils_i18n_gettext(10, '14_days_2_renew', 'crcd', 'name'), '14 days', '14 days', '14 days', 2);
263 INSERT INTO config.rule_circ_duration VALUES 
264     (11, oils_i18n_gettext(11, 'default', 'crcd', 'name'), '21 days', '14 days', '7 days', 2);
265 SELECT SETVAL('config.rule_circ_duration_id_seq'::TEXT, 100);
266
267 INSERT INTO config.rule_max_fine VALUES 
268     (1, oils_i18n_gettext(1, 'default', 'crmf', 'name'), 5.00);
269 INSERT INTO config.rule_max_fine VALUES 
270     (2, oils_i18n_gettext(2, 'overdue_min', 'crmf', 'name'), 5.00);
271 INSERT INTO config.rule_max_fine VALUES 
272     (3, oils_i18n_gettext(3, 'overdue_mid', 'crmf', 'name'), 10.00);
273 INSERT INTO config.rule_max_fine VALUES 
274     (4, oils_i18n_gettext(4, 'overdue_max', 'crmf', 'name'), 100.00);
275 INSERT INTO config.rule_max_fine VALUES 
276     (5, oils_i18n_gettext(5, 'overdue_equip_min', 'crmf', 'name'), 25.00);
277 INSERT INTO config.rule_max_fine VALUES 
278     (6, oils_i18n_gettext(6, 'overdue_equip_mid', 'crmf', 'name'), 25.00);
279 INSERT INTO config.rule_max_fine VALUES 
280     (7, oils_i18n_gettext(7, 'overdue_equip_max', 'crmf', 'name'), 100.00);
281 SELECT SETVAL('config.rule_max_fine_id_seq'::TEXT, 100);
282
283 INSERT INTO config.rule_recurring_fine VALUES 
284     (1, oils_i18n_gettext(1, 'default', 'crrf', 'name'), 0.50, 0.10, 0.05, '1 day', '1 day');
285 INSERT INTO config.rule_recurring_fine VALUES 
286     (2, oils_i18n_gettext(2, '10_cent_per_day', 'crrf', 'name'), 0.50, 0.10, 0.10, '1 day', '1 day');
287 INSERT INTO config.rule_recurring_fine VALUES 
288     (3, oils_i18n_gettext(3, '50_cent_per_day', 'crrf', 'name'), 0.50, 0.50, 0.50, '1 day', '1 day');
289 SELECT SETVAL('config.rule_recurring_fine_id_seq'::TEXT, 100);
290
291 INSERT INTO config.rule_age_hold_protect VALUES
292         (1, oils_i18n_gettext(1, '3month', 'crahp', 'name'), '3 months', 0);
293 INSERT INTO config.rule_age_hold_protect VALUES
294         (2, oils_i18n_gettext(2, '6month', 'crahp', 'name'), '6 months', 2);
295 SELECT SETVAL('config.rule_age_hold_protect_id_seq'::TEXT, 100);
296
297 INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active) VALUES (0,oils_i18n_gettext(0, 'Available', 'ccs', 'name'),'t','t','t');
298 INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active,restrict_copy_delete) VALUES (1,oils_i18n_gettext(1, 'Checked out', 'ccs', 'name'),'t','t','t','t');
299 INSERT INTO config.copy_status (id,name) VALUES (2,oils_i18n_gettext(2, 'Bindery', 'ccs', 'name'));
300 INSERT INTO config.copy_status (id,name,restrict_copy_delete) VALUES (3,oils_i18n_gettext(3, 'Lost', 'ccs', 'name'),'t');
301 INSERT INTO config.copy_status (id,name) VALUES (4,oils_i18n_gettext(4, 'Missing', 'ccs', 'name'));
302 INSERT INTO config.copy_status (id,name,holdable,opac_visible) VALUES (5,oils_i18n_gettext(5, 'In process', 'ccs', 'name'),'t','t');
303 INSERT INTO config.copy_status (id,name,holdable,opac_visible,restrict_copy_delete) VALUES (6,oils_i18n_gettext(6, 'In transit', 'ccs', 'name'),'t','t','t');
304 INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active) VALUES (7,oils_i18n_gettext(7, 'Reshelving', 'ccs', 'name'),'t','t','t');
305 INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active,restrict_copy_delete) VALUES (8,oils_i18n_gettext(8, 'On holds shelf', 'ccs', 'name'),'t','t','t','t');
306 INSERT INTO config.copy_status (id,name,holdable,opac_visible) VALUES (9,oils_i18n_gettext(9, 'On order', 'ccs', 'name'),'t','t');
307 INSERT INTO config.copy_status (id,name,copy_active) VALUES (10,oils_i18n_gettext(10, 'ILL', 'ccs', 'name'),'t');
308 INSERT INTO config.copy_status (id,name) VALUES (11,oils_i18n_gettext(11, 'Cataloging', 'ccs', 'name'));
309 INSERT INTO config.copy_status (id,name,opac_visible,copy_active) VALUES (12,oils_i18n_gettext(12, 'Reserves', 'ccs', 'name'),'t','t');
310 INSERT INTO config.copy_status (id,name) VALUES (13,oils_i18n_gettext(13, 'Discard/Weed', 'ccs', 'name'));
311 INSERT INTO config.copy_status (id,name) VALUES (14,oils_i18n_gettext(14, 'Damaged', 'ccs', 'name'));
312 INSERT INTO config.copy_status (id,name,copy_active) VALUES (15,oils_i18n_gettext(15, 'On reservation shelf', 'ccs', 'name'),'t');
313
314 SELECT SETVAL('config.copy_status_id_seq'::TEXT, 100);
315
316 INSERT INTO config.net_access_level (id, name) VALUES 
317     (1, oils_i18n_gettext(1, 'Filtered', 'cnal', 'name'));
318 INSERT INTO config.net_access_level (id, name) VALUES 
319     (2, oils_i18n_gettext(2, 'Unfiltered', 'cnal', 'name'));
320 INSERT INTO config.net_access_level (id, name) VALUES 
321     (3, oils_i18n_gettext(3, 'No Access', 'cnal', 'name'));
322 SELECT SETVAL('config.net_access_level_id_seq'::TEXT, 100);
323
324 -- available locales
325 INSERT INTO config.i18n_locale (code,marc_code,name,description)
326     VALUES ('en-US', 'eng', oils_i18n_gettext('en-US', 'English (US)', 'i18n_l', 'name'),
327         oils_i18n_gettext('en-US', 'American English', 'i18n_l', 'description'));
328 INSERT INTO config.i18n_locale (code,marc_code,name,description)
329     VALUES ('cs-CZ', 'cze', oils_i18n_gettext('cs-CZ', 'Czech', 'i18n_l', 'name'),
330         oils_i18n_gettext('cs-CZ', 'Czech', 'i18n_l', 'description'));
331 INSERT INTO config.i18n_locale (code,marc_code,name,description)
332     VALUES ('en-CA', 'eng', oils_i18n_gettext('en-CA', 'English (Canada)', 'i18n_l', 'name'),
333         oils_i18n_gettext('en-CA', 'Canadian English', 'i18n_l', 'description'));
334 INSERT INTO config.i18n_locale (code,marc_code,name,description)
335     VALUES ('fi-FI', 'fin', oils_i18n_gettext('fi-FI', 'Finnish', 'i18n_l', 'name'),
336         oils_i18n_gettext('fi-FI', 'Finnish', 'i18n_l', 'description'));
337 INSERT INTO config.i18n_locale (code,marc_code,name,description)
338     VALUES ('fr-CA', 'fre', oils_i18n_gettext('fr-CA', 'French (Canada)', 'i18n_l', 'name'),
339         oils_i18n_gettext('fr-CA', 'Canadian French', 'i18n_l', 'description'));
340 INSERT INTO config.i18n_locale (code,marc_code,name,description)
341     VALUES ('hy-AM', 'arm', oils_i18n_gettext('hy-AM', 'Armenian', 'i18n_l', 'name'),
342         oils_i18n_gettext('hy-AM', 'Armenian', 'i18n_l', 'description'));
343 --INSERT INTO config.i18n_locale (code,marc_code,name,description)
344 --    VALUES ('es-US', 'spa', oils_i18n_gettext('es-US', 'Spanish (US)', 'i18n_l', 'name'),
345 --      oils_i18n_gettext('es-US', 'American Spanish', 'i18n_l', 'description'));
346 --INSERT INTO config.i18n_locale (code,marc_code,name,description)
347 --    VALUES ('es-MX', 'spa', oils_i18n_gettext('es-MX', 'Spanish (Mexico)', 'i18n_l', 'name'),
348 --      oils_i18n_gettext('es-MX', 'Mexican Spanish', 'i18n_l', 'description'));
349 INSERT INTO config.i18n_locale (code,marc_code,name,description)
350     VALUES ('ru-RU', 'rus', oils_i18n_gettext('ru-RU', 'Russian', 'i18n_l', 'name'),
351         oils_i18n_gettext('ru-RU', 'Russian', 'i18n_l', 'description'));
352
353 -- Z39.50 server attributes
354
355 INSERT INTO config.z3950_source (name, label, host, port, db, auth)
356         VALUES ('loc', oils_i18n_gettext('loc', 'Library of Congress', 'czs', 'label'), 'lx2.loc.gov', 210, 'LCDB', FALSE);
357 INSERT INTO config.z3950_source (name, label, host, port, db, auth)
358         VALUES ('oclc', oils_i18n_gettext('oclc', 'OCLC', 'czs', 'label'), 'zcat.oclc.org', 210, 'OLUCWorldCat', TRUE);
359 INSERT INTO config.z3950_source (name, label, host, port, db, auth)
360         VALUES ('biblios', oils_i18n_gettext('biblios','‡biblios.net', 'czs', 'label'), 'z3950.biblios.net', 210, 'bibliographic', FALSE);
361
362 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
363         VALUES (1, 'loc','tcn', oils_i18n_gettext(1, 'Title Control Number', 'cza', 'label'), 12, 1);
364 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
365         VALUES (2, 'loc', 'isbn', oils_i18n_gettext(2, 'ISBN', 'cza', 'label'), 7, 6);
366 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
367         VALUES (3, 'loc', 'lccn', oils_i18n_gettext(3, 'LCCN', 'cza', 'label'), 9, 6);
368 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
369         VALUES (4, 'loc', 'author', oils_i18n_gettext(4, 'Author', 'cza', 'label'), 1003, 6);
370 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
371         VALUES (5, 'loc', 'title', oils_i18n_gettext(5, 'Title', 'cza', 'label'), 4, 6);
372 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
373         VALUES (6, 'loc', 'issn', oils_i18n_gettext(6, 'ISSN', 'cza', 'label'), 8, 1);
374 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
375         VALUES (7, 'loc', 'publisher', oils_i18n_gettext(7, 'Publisher', 'cza', 'label'), 1018, 6);
376 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
377         VALUES (8, 'loc', 'pubdate', oils_i18n_gettext(8, 'Publication Date', 'cza', 'label'), 31, 1);
378 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
379         VALUES (9, 'loc', 'item_type', oils_i18n_gettext(9, 'Item Type', 'cza', 'label'), 1001, 1);
380
381 UPDATE config.z3950_attr SET truncation = 1 WHERE source = 'loc';
382
383 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
384         VALUES (10, 'oclc', 'tcn', oils_i18n_gettext(10, 'Title Control Number', 'cza', 'label'), 12, 1);
385 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
386         VALUES (11, 'oclc', 'isbn', oils_i18n_gettext(11, 'ISBN', 'cza', 'label'), 7, 6);
387 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
388         VALUES (12, 'oclc', 'lccn', oils_i18n_gettext(12, 'LCCN', 'cza', 'label'), 9, 1);
389 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
390         VALUES (13, 'oclc', 'author', oils_i18n_gettext(13, 'Author', 'cza', 'label'), 1003, 6);
391 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
392         VALUES (14, 'oclc', 'title', oils_i18n_gettext(14, 'Title', 'cza', 'label'), 4, 6);
393 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
394         VALUES (15, 'oclc', 'issn', oils_i18n_gettext(15, 'ISSN', 'cza', 'label'), 8, 1);
395 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
396         VALUES (16, 'oclc', 'publisher', oils_i18n_gettext(16, 'Publisher', 'cza', 'label'), 1018, 6);
397 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
398         VALUES (17, 'oclc', 'pubdate', oils_i18n_gettext(17, 'Publication Date', 'cza', 'label'), 31, 1);
399 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
400         VALUES (18, 'oclc', 'item_type', oils_i18n_gettext(18, 'Item Type', 'cza', 'label'), 1001, 1);
401
402 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
403         VALUES (19, 'biblios','tcn', oils_i18n_gettext(19, 'Title Control Number', 'cza', 'label'), 12, 1);
404 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
405         VALUES (20, 'biblios', 'isbn', oils_i18n_gettext(20, 'ISBN', 'cza', 'label'), 7, 6);
406 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
407         VALUES (21, 'biblios', 'lccn', oils_i18n_gettext(21, 'LCCN', 'cza', 'label'), 9, 1);
408 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
409         VALUES (22, 'biblios', 'author', oils_i18n_gettext(22, 'Author', 'cza', 'label'), 1003, 6);
410 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
411         VALUES (23, 'biblios', 'title', oils_i18n_gettext(23, 'Title', 'cza', 'label'), 4, 6);
412 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
413         VALUES (24, 'biblios', 'issn', oils_i18n_gettext(24, 'ISSN', 'cza', 'label'), 8, 1);
414 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
415         VALUES (25, 'biblios', 'publisher', oils_i18n_gettext(25, 'Publisher', 'cza', 'label'), 1018, 6);
416 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
417         VALUES (26, 'biblios', 'pubdate', oils_i18n_gettext(26, 'Publication Date', 'cza', 'label'), 31, 1);
418 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
419         VALUES (27, 'biblios', 'item_type', oils_i18n_gettext(27, 'Item Type', 'cza', 'label'), 1001, 1);
420
421 UPDATE config.z3950_attr SET truncation = 1 WHERE source = 'biblios';
422
423 SELECT SETVAL('config.z3950_attr_id_seq'::TEXT, 100);
424
425 --005.schema.actors.sql:
426
427 -- The PINES levels
428 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent, can_have_users, can_have_vols) VALUES 
429     ( 1, oils_i18n_gettext(1, 'Consortium', 'aout', 'name'),
430         oils_i18n_gettext(1, 'Everywhere', 'aout', 'opac_label'), 0, NULL, FALSE, FALSE );
431 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent, can_have_users, can_have_vols) VALUES 
432     ( 2, oils_i18n_gettext(2, 'System', 'aout', 'name'),
433         oils_i18n_gettext(2, 'Local Library System', 'aout', 'opac_label'), 1, 1, FALSE, FALSE );
434 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent) VALUES 
435     ( 3, oils_i18n_gettext(3, 'Branch', 'aout', 'name'),
436         oils_i18n_gettext(3, 'This Branch', 'aout', 'opac_label'), 2, 2 );
437 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent) VALUES 
438     ( 4, oils_i18n_gettext(4, 'Sub-library', 'aout', 'name'),
439         oils_i18n_gettext(4, 'This Specialized Library', 'aout', 'opac_label'), 3, 3 );
440 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent) VALUES 
441     ( 5, oils_i18n_gettext(5, 'Bookmobile', 'aout', 'name'),
442         oils_i18n_gettext(5, 'Your Bookmobile', 'aout', 'opac_label'), 3, 3 );
443 SELECT SETVAL('actor.org_unit_type_id_seq'::TEXT, 100);
444
445 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
446     (1, NULL, 1, 'CONS', oils_i18n_gettext(1, 'Example Consortium', 'aou', 'name'));
447 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
448     (2, 1, 2, 'SYS1', oils_i18n_gettext(2, 'Example System 1', 'aou', 'name'));
449 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
450     (3, 1, 2, 'SYS2', oils_i18n_gettext(3, 'Example System 2', 'aou', 'name'));
451 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
452     (4, 2, 3, 'BR1', oils_i18n_gettext(4, 'Example Branch 1', 'aou', 'name'));
453 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
454     (5, 2, 3, 'BR2', oils_i18n_gettext(5, 'Example Branch 2', 'aou', 'name'));
455 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
456     (6, 3, 3, 'BR3', oils_i18n_gettext(6, 'Example Branch 3', 'aou', 'name'));
457 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
458     (7, 3, 3, 'BR4', oils_i18n_gettext(7, 'Example Branch 4', 'aou', 'name'));
459 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
460     (8, 4, 4, 'SL1', oils_i18n_gettext(8, 'Example Sub-library 1', 'aou', 'name'));
461 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
462     (9, 6, 5, 'BM1', oils_i18n_gettext(9, 'Example Bookmobile 1', 'aou', 'name'));
463 SELECT SETVAL('actor.org_unit_id_seq'::TEXT, 100);
464
465 INSERT INTO actor.org_address (org_unit, street1, city, state, country, post_code)
466 SELECT id, '123 Main St.', 'Anywhere', 'GA', 'US', '30303'
467 FROM actor.org_unit;
468
469 UPDATE actor.org_unit SET holds_address = id, ill_address = id, billing_address = id, mailing_address = id;
470
471 INSERT INTO config.billing_type (id, name, owner) VALUES
472         ( 1, oils_i18n_gettext(1, 'Overdue Materials', 'cbt', 'name'), 1);
473 INSERT INTO config.billing_type (id, name, owner) VALUES
474         ( 2, oils_i18n_gettext(2, 'Long Overdue Collection Fee', 'cbt', 'name'), 1);
475 INSERT INTO config.billing_type (id, name, owner) VALUES
476         ( 3, oils_i18n_gettext(3, 'Lost Materials', 'cbt', 'name'), 1);
477 INSERT INTO config.billing_type (id, name, owner) VALUES
478         ( 4, oils_i18n_gettext(4, 'Lost Materials Processing Fee', 'cbt', 'name'), 1);
479 INSERT INTO config.billing_type (id, name, owner) VALUES
480         ( 5, oils_i18n_gettext(5, 'System: Deposit', 'cbt', 'name'), 1);
481 INSERT INTO config.billing_type (id, name, owner) VALUES
482         ( 6, oils_i18n_gettext(6, 'System: Rental', 'cbt', 'name'), 1);
483 INSERT INTO config.billing_type (id, name, owner) VALUES
484         ( 7, oils_i18n_gettext(7, 'Damaged Item', 'cbt', 'name'), 1);
485 INSERT INTO config.billing_type (id, name, owner) VALUES
486         ( 8, oils_i18n_gettext(8, 'Damaged Item Processing Fee', 'cbt', 'name'), 1);
487 INSERT INTO config.billing_type (id, name, owner) VALUES
488         ( 9, oils_i18n_gettext(9, 'Notification Fee', 'cbt', 'name'), 1);
489
490 INSERT INTO config.billing_type (id, name, owner) VALUES ( 101, oils_i18n_gettext(101, 'Misc', 'cbt', 'name'), 1);
491
492 SELECT SETVAL('config.billing_type_id_seq'::TEXT, 101);
493
494 --006.data.permissions.sql:
495 INSERT INTO permission.perm_list ( id, code, description ) VALUES
496  ( -1, 'EVERYTHING', oils_i18n_gettext( -1, 
497     'EVERYTHING', 'ppl', 'description' )),
498  ( 1, 'OPAC_LOGIN', oils_i18n_gettext( 1, 
499     'Allow a user to log in to the OPAC', 'ppl', 'description' )),
500  ( 2, 'STAFF_LOGIN', oils_i18n_gettext( 2, 
501     'Allow a user to log in to the staff client', 'ppl', 'description' )),
502  ( 3, 'MR_HOLDS', oils_i18n_gettext( 3, 
503     'Allow a user to create a metarecord holds', 'ppl', 'description' )),
504  ( 4, 'TITLE_HOLDS', oils_i18n_gettext( 4, 
505     'Allow a user to place a hold at the title level', 'ppl', 'description' )),
506  ( 5, 'VOLUME_HOLDS', oils_i18n_gettext( 5, 
507     'Allow a user to place a volume level hold', 'ppl', 'description' )),
508  ( 6, 'COPY_HOLDS', oils_i18n_gettext( 6, 
509     'Allow a user to place a hold on a specific copy', 'ppl', 'description' )),
510  ( 7, 'REQUEST_HOLDS', oils_i18n_gettext( 7, 
511     'Allow a user to create holds for another user (if true, we still check to make sure they have permission to make the type of hold they are requesting, for example, COPY_HOLDS)', 'ppl', 'description' )),
512  ( 8, 'REQUEST_HOLDS_OVERRIDE', oils_i18n_gettext( 8, 
513     '* no longer applicable', 'ppl', 'description' )),
514  ( 9, 'VIEW_HOLD', oils_i18n_gettext( 9, 
515     'Allow a user to view another user''s holds', 'ppl', 'description' )),
516  ( 10, 'DELETE_HOLDS', oils_i18n_gettext( 10, 
517     '* no longer applicable', 'ppl', 'description' )),
518  ( 11, 'UPDATE_HOLD', oils_i18n_gettext( 11, 
519     'Allow a user to update another user''s hold', 'ppl', 'description' )),
520  ( 12, 'RENEW_CIRC', oils_i18n_gettext( 12, 
521     'Allow a user to renew items', 'ppl', 'description' )),
522  ( 13, 'VIEW_USER_FINES_SUMMARY', oils_i18n_gettext( 13, 
523     'Allow a user to view bill details', 'ppl', 'description' )),
524  ( 14, 'VIEW_USER_TRANSACTIONS', oils_i18n_gettext( 14, 
525     'Allow a user to see another user''s grocery or circulation transactions in the Bills Interface; duplicate of VIEW_TRANSACTION', 'ppl', 'description' )),
526  ( 15, 'UPDATE_MARC', oils_i18n_gettext( 15, 
527     'Allow a user to edit a MARC record', 'ppl', 'description' )),
528  ( 16, 'CREATE_MARC', oils_i18n_gettext( 16, 
529     'Allow a user to create new MARC records', 'ppl', 'description' )),
530  ( 17, 'IMPORT_MARC', oils_i18n_gettext( 17, 
531     'Allow a user to import a MARC record via the Z39.50 interface', 'ppl', 'description' )),
532  ( 18, 'CREATE_VOLUME', oils_i18n_gettext( 18, 
533     'Allow a user to create a volume', 'ppl', 'description' )),
534  ( 19, 'UPDATE_VOLUME', oils_i18n_gettext( 19, 
535     'Allow a user to edit volumes - needed for merging records. This is a duplicate of VOLUME_UPDATE; user must have both permissions at appropriate level to merge records.', 'ppl', 'description' )),
536  ( 20, 'DELETE_VOLUME', oils_i18n_gettext( 20, 
537     'Allow a user to delete a volume', 'ppl', 'description' )),
538  ( 21, 'CREATE_COPY', oils_i18n_gettext( 21, 
539     'Allow a user to create a new copy object', 'ppl', 'description' )),
540  ( 22, 'UPDATE_COPY', oils_i18n_gettext( 22, 
541     'Allow a user to edit a copy', 'ppl', 'description' )),
542  ( 23, 'DELETE_COPY', oils_i18n_gettext( 23, 
543     'Allow a user to delete a copy', 'ppl', 'description' )),
544  ( 24, 'RENEW_HOLD_OVERRIDE', oils_i18n_gettext( 24, 
545     'Allow a user to continue to renew an item even if it is required for a hold', 'ppl', 'description' )),
546  ( 25, 'CREATE_USER', oils_i18n_gettext( 25, 
547     'Allow a user to create another user', 'ppl', 'description' )),
548  ( 26, 'UPDATE_USER', oils_i18n_gettext( 26, 
549     'Allow a user to edit a user''s record', 'ppl', 'description' )),
550  ( 27, 'DELETE_USER', oils_i18n_gettext( 27, 
551     'Allow a user to mark a user as deleted', 'ppl', 'description' )),
552  ( 28, 'VIEW_USER', oils_i18n_gettext( 28, 
553     'Allow a user to view another user''s Patron Record', 'ppl', 'description' )),
554  ( 29, 'COPY_CHECKIN', oils_i18n_gettext( 29, 
555     'Allow a user to check in a copy', 'ppl', 'description' )),
556  ( 30, 'CREATE_TRANSIT', oils_i18n_gettext( 30, 
557     'Allow a user to place an item in transit', 'ppl', 'description' )),
558  ( 31, 'VIEW_PERMISSION', oils_i18n_gettext( 31, 
559     'Allow a user to view user permissions within the user permissions editor', 'ppl', 'description' )),
560  ( 32, 'CHECKIN_BYPASS_HOLD_FULFILL', oils_i18n_gettext( 32, 
561     '* no longer applicable', 'ppl', 'description' )),
562  ( 33, 'CREATE_PAYMENT', oils_i18n_gettext( 33, 
563     'Allow a user to record payments in the Billing Interface', 'ppl', 'description' )),
564  ( 34, 'SET_CIRC_LOST', oils_i18n_gettext( 34, 
565     'Allow a user to mark an item as ''lost''', 'ppl', 'description' )),
566  ( 35, 'SET_CIRC_MISSING', oils_i18n_gettext( 35, 
567     'Allow a user to mark an item as ''missing''', 'ppl', 'description' )),
568  ( 36, 'SET_CIRC_CLAIMS_RETURNED', oils_i18n_gettext( 36, 
569     'Allow a user to mark an item as ''claims returned''', 'ppl', 'description' )),
570  ( 37, 'CREATE_TRANSACTION', oils_i18n_gettext( 37, 
571     'Allow a user to create a new billable transaction', 'ppl', 'description' )),
572  ( 38, 'VIEW_TRANSACTION', oils_i18n_gettext( 38, 
573     'Allow a user may view another user''s transactions', 'ppl', 'description' )),
574  ( 39, 'CREATE_BILL', oils_i18n_gettext( 39, 
575     'Allow a user to create a new bill on a transaction', 'ppl', 'description' )),
576  ( 40, 'VIEW_CONTAINER', oils_i18n_gettext( 40, 
577     'Allow a user to view another user''s containers (buckets)', 'ppl', 'description' )),
578  ( 41, 'CREATE_CONTAINER', oils_i18n_gettext( 41, 
579     'Allow a user to create a new container for another user', 'ppl', 'description' )),
580  ( 42, 'UPDATE_ORG_UNIT', oils_i18n_gettext( 42, 
581     'Allow a user to change the settings for an organization unit', 'ppl', 'description' )),
582  ( 43, 'VIEW_CIRCULATIONS', oils_i18n_gettext( 43, 
583     'Allow a user to see what another user has checked out', 'ppl', 'description' )),
584  ( 44, 'DELETE_CONTAINER', oils_i18n_gettext( 44, 
585     'Allow a user to delete another user''s container', 'ppl', 'description' )),
586  ( 45, 'CREATE_CONTAINER_ITEM', oils_i18n_gettext( 45, 
587     'Allow a user to create a container item for another user', 'ppl', 'description' )),
588  ( 46, 'CREATE_USER_GROUP_LINK', oils_i18n_gettext( 46, 
589     'Allow a user to add other users to permission groups', 'ppl', 'description' )),
590  ( 47, 'REMOVE_USER_GROUP_LINK', oils_i18n_gettext( 47, 
591     'Allow a user to remove other users from permission groups', 'ppl', 'description' )),
592  ( 48, 'VIEW_PERM_GROUPS', oils_i18n_gettext( 48, 
593     'Allow a user to view other users'' permission groups', 'ppl', 'description' )),
594  ( 49, 'VIEW_PERMIT_CHECKOUT', oils_i18n_gettext( 49, 
595     'Allow a user to determine whether another user can check out an item', 'ppl', 'description' )),
596  ( 50, 'UPDATE_BATCH_COPY', oils_i18n_gettext( 50, 
597     'Allow a user to edit copies in batch', 'ppl', 'description' )),
598  ( 51, 'CREATE_PATRON_STAT_CAT', oils_i18n_gettext( 51, 
599     'User may create a new patron statistical category', 'ppl', 'description' )),
600  ( 52, 'CREATE_COPY_STAT_CAT', oils_i18n_gettext( 52, 
601     'User may create a copy statistical category', 'ppl', 'description' )),
602  ( 53, 'CREATE_PATRON_STAT_CAT_ENTRY', oils_i18n_gettext( 53, 
603     'User may create an entry in a patron statistical category', 'ppl', 'description' )),
604  ( 54, 'CREATE_COPY_STAT_CAT_ENTRY', oils_i18n_gettext( 54, 
605     'User may create an entry in a copy statistical category', 'ppl', 'description' )),
606  ( 55, 'UPDATE_PATRON_STAT_CAT', oils_i18n_gettext( 55, 
607     'User may update a patron statistical category', 'ppl', 'description' )),
608  ( 56, 'UPDATE_COPY_STAT_CAT', oils_i18n_gettext( 56, 
609     'User may update a copy statistical category', 'ppl', 'description' )),
610  ( 57, 'UPDATE_PATRON_STAT_CAT_ENTRY', oils_i18n_gettext( 57, 
611     'User may update an entry in a patron statistical category', 'ppl', 'description' )),
612  ( 58, 'UPDATE_COPY_STAT_CAT_ENTRY', oils_i18n_gettext( 58, 
613     'User may update an entry in a copy statistical category', 'ppl', 'description' )),
614  ( 59, 'CREATE_PATRON_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 59, 
615     'User may link another user to an entry in a statistical category', 'ppl', 'description' )),
616  ( 60, 'CREATE_COPY_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 60, 
617     'User may link a copy to an entry in a statistical category', 'ppl', 'description' )),
618  ( 61, 'DELETE_PATRON_STAT_CAT', oils_i18n_gettext( 61, 
619     'User may delete a patron statistical category', 'ppl', 'description' )),
620  ( 62, 'DELETE_COPY_STAT_CAT', oils_i18n_gettext( 62, 
621     'User may delete a copy statistical category', 'ppl', 'description' )),
622  ( 63, 'DELETE_PATRON_STAT_CAT_ENTRY', oils_i18n_gettext( 63, 
623     'User may delete an entry from a patron statistical category', 'ppl', 'description' )),
624  ( 64, 'DELETE_COPY_STAT_CAT_ENTRY', oils_i18n_gettext( 64, 
625     'User may delete an entry from a copy statistical category', 'ppl', 'description' )),
626  ( 65, 'DELETE_PATRON_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 65, 
627     'User may delete a patron statistical category entry map', 'ppl', 'description' )),
628  ( 66, 'DELETE_COPY_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 66, 
629     'User may delete a copy statistical category entry map', 'ppl', 'description' )),
630  ( 67, 'CREATE_NON_CAT_TYPE', oils_i18n_gettext( 67, 
631     'Allow a user to create a new non-cataloged item type', 'ppl', 'description' )),
632  ( 68, 'UPDATE_NON_CAT_TYPE', oils_i18n_gettext( 68, 
633     'Allow a user to update a non-cataloged item type', 'ppl', 'description' )),
634  ( 69, 'CREATE_IN_HOUSE_USE', oils_i18n_gettext( 69, 
635     'Allow a user to create a new in-house-use ', 'ppl', 'description' )),
636  ( 70, 'COPY_CHECKOUT', oils_i18n_gettext( 70, 
637     'Allow a user to check out a copy', 'ppl', 'description' )),
638  ( 71, 'CREATE_COPY_LOCATION', oils_i18n_gettext( 71, 
639     'Allow a user to create a new copy location', 'ppl', 'description' )),
640  ( 72, 'UPDATE_COPY_LOCATION', oils_i18n_gettext( 72, 
641     'Allow a user to update a copy location', 'ppl', 'description' )),
642  ( 73, 'DELETE_COPY_LOCATION', oils_i18n_gettext( 73, 
643     'Allow a user to delete a copy location', 'ppl', 'description' )),
644  ( 74, 'CREATE_COPY_TRANSIT', oils_i18n_gettext( 74, 
645     'Allow a user to create a transit_copy object for transiting a copy', 'ppl', 'description' )),
646  ( 75, 'COPY_TRANSIT_RECEIVE', oils_i18n_gettext( 75, 
647     'Allow a user to close out a transit on a copy', 'ppl', 'description' )),
648  ( 76, 'VIEW_HOLD_PERMIT', oils_i18n_gettext( 76, 
649     'Allow a user to see if another user has permission to place a hold on a given copy', 'ppl', 'description' )),
650  ( 77, 'VIEW_COPY_CHECKOUT_HISTORY', oils_i18n_gettext( 77, 
651     'Allow a user to view which users have checked out a given copy', 'ppl', 'description' )),
652  ( 78, 'REMOTE_Z3950_QUERY', oils_i18n_gettext( 78, 
653     'Allow a user to perform Z39.50 queries against remote servers', 'ppl', 'description' )),
654  ( 79, 'REGISTER_WORKSTATION', oils_i18n_gettext( 79, 
655     'Allow a user to register a new workstation', 'ppl', 'description' )),
656  ( 80, 'VIEW_COPY_NOTES', oils_i18n_gettext( 80, 
657     'Allow a user to view all notes attached to a copy', 'ppl', 'description' )),
658  ( 81, 'VIEW_VOLUME_NOTES', oils_i18n_gettext( 81, 
659     'Allow a user to view all notes attached to a volume', 'ppl', 'description' )),
660  ( 82, 'VIEW_TITLE_NOTES', oils_i18n_gettext( 82, 
661     'Allow a user to view all notes attached to a title', 'ppl', 'description' )),
662  ( 83, 'CREATE_COPY_NOTE', oils_i18n_gettext( 83, 
663     'Allow a user to create a new copy note', 'ppl', 'description' )),
664  ( 84, 'CREATE_VOLUME_NOTE', oils_i18n_gettext( 84, 
665     'Allow a user to create a new volume note', 'ppl', 'description' )),
666  ( 85, 'CREATE_TITLE_NOTE', oils_i18n_gettext( 85, 
667     'Allow a user to create a new title note', 'ppl', 'description' )),
668  ( 86, 'DELETE_COPY_NOTE', oils_i18n_gettext( 86, 
669     'Allow a user to delete another user''s copy notes', 'ppl', 'description' )),
670  ( 87, 'DELETE_VOLUME_NOTE', oils_i18n_gettext( 87, 
671     'Allow a user to delete another user''s volume note', 'ppl', 'description' )),
672  ( 88, 'DELETE_TITLE_NOTE', oils_i18n_gettext( 88, 
673     'Allow a user to delete another user''s title note', 'ppl', 'description' )),
674  ( 89, 'UPDATE_CONTAINER', oils_i18n_gettext( 89, 
675     'Allow a user to update another user''s container', 'ppl', 'description' )),
676  ( 90, 'CREATE_MY_CONTAINER', oils_i18n_gettext( 90, 
677     'Allow a user to create a container for themselves', 'ppl', 'description' )),
678  ( 91, 'VIEW_HOLD_NOTIFICATION', oils_i18n_gettext( 91, 
679     'Allow a user to view notifications attached to a hold', 'ppl', 'description' )),
680  ( 92, 'CREATE_HOLD_NOTIFICATION', oils_i18n_gettext( 92, 
681     'Allow a user to create new hold notifications', 'ppl', 'description' )),
682  ( 93, 'UPDATE_ORG_SETTING', oils_i18n_gettext( 93, 
683     'Allow a user to update an organization unit setting', 'ppl', 'description' )),
684  ( 94, 'OFFLINE_UPLOAD', oils_i18n_gettext( 94, 
685     'Allow a user to upload an offline script', 'ppl', 'description' )),
686  ( 95, 'OFFLINE_VIEW', oils_i18n_gettext( 95, 
687     'Allow a user to view uploaded offline script information', 'ppl', 'description' )),
688  ( 96, 'OFFLINE_EXECUTE', oils_i18n_gettext( 96, 
689     'Allow a user to execute an offline script batch', 'ppl', 'description' )),
690  ( 97, 'CIRC_OVERRIDE_DUE_DATE', oils_i18n_gettext( 97, 
691     'Allow a user to change the due date on an item to any date', 'ppl', 'description' )),
692  ( 98, 'CIRC_PERMIT_OVERRIDE', oils_i18n_gettext( 98, 
693     'Allow a user to bypass the circulation permit call for check out', 'ppl', 'description' )),
694  ( 99, 'COPY_IS_REFERENCE.override', oils_i18n_gettext( 99, 
695     'Allow a user to override the copy_is_reference event', 'ppl', 'description' )),
696  ( 100, 'VOID_BILLING', oils_i18n_gettext( 100, 
697     'Allow a user to void a bill', 'ppl', 'description' )),
698  ( 101, 'CIRC_CLAIMS_RETURNED.override', oils_i18n_gettext( 101, 
699     'Allow a user to check in or check out an item that has a status of ''claims returned''', 'ppl', 'description' )),
700  ( 102, 'COPY_BAD_STATUS.override', oils_i18n_gettext( 102, 
701     'Allow a user to check out an item in a non-circulatable status', 'ppl', 'description' )),
702  ( 103, 'COPY_ALERT_MESSAGE.override', oils_i18n_gettext( 103, 
703     'Allow a user to check in/out an item that has an alert message', 'ppl', 'description' )),
704  ( 104, 'COPY_STATUS_LOST.override', oils_i18n_gettext( 104, 
705     'Allow a user to remove the lost status from a copy', 'ppl', 'description' )),
706  ( 105, 'COPY_STATUS_MISSING.override', oils_i18n_gettext( 105, 
707     'Allow a user to change the missing status on a copy', 'ppl', 'description' )),
708  ( 106, 'ABORT_TRANSIT', oils_i18n_gettext( 106, 
709     'Allow a user to abort a copy transit if the user is at the transit destination or source', 'ppl', 'description' )),
710  ( 107, 'ABORT_REMOTE_TRANSIT', oils_i18n_gettext( 107, 
711     'Allow a user to abort a copy transit if the user is not at the transit source or dest', 'ppl', 'description' )),
712  ( 108, 'VIEW_ZIP_DATA', oils_i18n_gettext( 108, 
713     'Allow a user to query the ZIP code data method', 'ppl', 'description' )),
714  ( 109, 'CANCEL_HOLDS', oils_i18n_gettext( 109, 
715     'Allow a user to cancel holds', 'ppl', 'description' )),
716  ( 110, 'CREATE_DUPLICATE_HOLDS', oils_i18n_gettext( 110, 
717     'Allow a user to create duplicate holds (two or more holds on the same title)', 'ppl', 'description' )),
718  ( 111, 'actor.org_unit.closed_date.delete', oils_i18n_gettext( 111, 
719     'Allow a user to remove a closed date interval for a given location', 'ppl', 'description' )),
720  ( 112, 'actor.org_unit.closed_date.update', oils_i18n_gettext( 112, 
721     'Allow a user to update a closed date interval for a given location', 'ppl', 'description' )),
722  ( 113, 'actor.org_unit.closed_date.create', oils_i18n_gettext( 113, 
723     'Allow a user to create a new closed date for a location', 'ppl', 'description' )),
724  ( 114, 'DELETE_NON_CAT_TYPE', oils_i18n_gettext( 114, 
725     'Allow a user to delete a non cataloged type', 'ppl', 'description' )),
726  ( 115, 'money.collections_tracker.create', oils_i18n_gettext( 115, 
727     'Allow a user to put someone into collections', 'ppl', 'description' )),
728  ( 116, 'money.collections_tracker.delete', oils_i18n_gettext( 116, 
729     'Allow a user to remove someone from collections', 'ppl', 'description' )),
730  ( 117, 'BAR_PATRON', oils_i18n_gettext( 117, 
731     'Allow a user to bar a patron', 'ppl', 'description' )),
732  ( 118, 'UNBAR_PATRON', oils_i18n_gettext( 118, 
733     'Allow a user to un-bar a patron', 'ppl', 'description' )),
734  ( 119, 'DELETE_WORKSTATION', oils_i18n_gettext( 119, 
735     'Allow a user to remove an existing workstation so a new one can replace it', 'ppl', 'description' )),
736  ( 120, 'group_application.user', oils_i18n_gettext( 120, 
737     'Allow a user to add/remove users to/from the "User" group', 'ppl', 'description' )),
738  ( 121, 'group_application.user.patron', oils_i18n_gettext( 121, 
739     'Allow a user to add/remove users to/from the "Patron" group', 'ppl', 'description' )),
740  ( 122, 'group_application.user.staff', oils_i18n_gettext( 122, 
741     'Allow a user to add/remove users to/from the "Staff" group', 'ppl', 'description' )),
742  ( 123, 'group_application.user.staff.circ', oils_i18n_gettext( 123, 
743     'Allow a user to add/remove users to/from the "Circulator" group', 'ppl', 'description' )),
744  ( 124, 'group_application.user.staff.cat', oils_i18n_gettext( 124, 
745     'Allow a user to add/remove users to/from the "Cataloger" group', 'ppl', 'description' )),
746  ( 125, 'group_application.user.staff.admin.global_admin', oils_i18n_gettext( 125, 
747     'Allow a user to add/remove users to/from the "GlobalAdmin" group', 'ppl', 'description' )),
748  ( 126, 'group_application.user.staff.admin.local_admin', oils_i18n_gettext( 126, 
749     'Allow a user to add/remove users to/from the "LocalAdmin" group', 'ppl', 'description' )),
750  ( 127, 'group_application.user.staff.admin.lib_manager', oils_i18n_gettext( 127, 
751     'Allow a user to add/remove users to/from the "LibraryManager" group', 'ppl', 'description' )),
752  ( 128, 'group_application.user.staff.cat.cat1', oils_i18n_gettext( 128, 
753     'Allow a user to add/remove users to/from the "Cat1" group', 'ppl', 'description' )),
754  ( 129, 'group_application.user.staff.supercat', oils_i18n_gettext( 129, 
755     'Allow a user to add/remove users to/from the "Supercat" group', 'ppl', 'description' )),
756  ( 130, 'group_application.user.sip_client', oils_i18n_gettext( 130, 
757     'Allow a user to add/remove users to/from the "SIP-Client" group', 'ppl', 'description' )),
758  ( 131, 'group_application.user.vendor', oils_i18n_gettext( 131, 
759     'Allow a user to add/remove users to/from the "Vendor" group', 'ppl', 'description' )),
760  ( 132, 'ITEM_AGE_PROTECTED.override', oils_i18n_gettext( 132, 
761     'Allow a user to place a hold on an age-protected item', 'ppl', 'description' )),
762  ( 133, 'MAX_RENEWALS_REACHED.override', oils_i18n_gettext( 133, 
763     'Allow a user to renew an item past the maximum renewal count', 'ppl', 'description' )),
764  ( 134, 'PATRON_EXCEEDS_CHECKOUT_COUNT.override', oils_i18n_gettext( 134, 
765     'Allow staff to override checkout count failure', 'ppl', 'description' )),
766  ( 135, 'PATRON_EXCEEDS_OVERDUE_COUNT.override', oils_i18n_gettext( 135, 
767     'Allow staff to override overdue count failure', 'ppl', 'description' )),
768  ( 136, 'PATRON_EXCEEDS_FINES.override', oils_i18n_gettext( 136, 
769     'Allow staff to override fine amount checkout failure', 'ppl', 'description' )),
770  ( 137, 'CIRC_EXCEEDS_COPY_RANGE.override', oils_i18n_gettext( 137, 
771     'Allow staff to override circulation copy range failure', 'ppl', 'description' )),
772  ( 138, 'ITEM_ON_HOLDS_SHELF.override', oils_i18n_gettext( 138, 
773     'Allow staff to override item on holds shelf failure', 'ppl', 'description' )),
774  ( 139, 'COPY_NOT_AVAILABLE.override', oils_i18n_gettext( 139, 
775     'Allow staff to force checkout of Missing/Lost type items', 'ppl', 'description' )),
776  ( 140, 'HOLD_EXISTS.override', oils_i18n_gettext( 140, 
777     'Allow a user to place multiple holds on a single title', 'ppl', 'description' )),
778  ( 141, 'RUN_REPORTS', oils_i18n_gettext( 141, 
779     'Allow a user to run reports', 'ppl', 'description' )),
780  ( 142, 'SHARE_REPORT_FOLDER', oils_i18n_gettext( 142, 
781     'Allow a user to share report his own folders', 'ppl', 'description' )),
782  ( 143, 'VIEW_REPORT_OUTPUT', oils_i18n_gettext( 143, 
783     'Allow a user to view report output', 'ppl', 'description' )),
784  ( 144, 'COPY_CIRC_NOT_ALLOWED.override', oils_i18n_gettext( 144, 
785     'Allow a user to checkout an item that is marked as non-circ', 'ppl', 'description' )),
786  ( 145, 'DELETE_CONTAINER_ITEM', oils_i18n_gettext( 145, 
787     'Allow a user to delete an item out of another user''s container', 'ppl', 'description' )),
788  ( 146, 'ASSIGN_WORK_ORG_UNIT', oils_i18n_gettext( 146, 
789     'Allow a staff member to define where another staff member has their permissions', 'ppl', 'description' )),
790  ( 147, 'CREATE_FUNDING_SOURCE', oils_i18n_gettext( 147, 
791     'Allow a user to create a new funding source', 'ppl', 'description' )),
792  ( 148, 'DELETE_FUNDING_SOURCE', oils_i18n_gettext( 148, 
793     'Allow a user to delete a funding source', 'ppl', 'description' )),
794  ( 149, 'VIEW_FUNDING_SOURCE', oils_i18n_gettext( 149, 
795     'Allow a user to view a funding source', 'ppl', 'description' )),
796  ( 150, 'UPDATE_FUNDING_SOURCE', oils_i18n_gettext( 150, 
797     'Allow a user to update a funding source', 'ppl', 'description' )),
798  ( 151, 'CREATE_FUND', oils_i18n_gettext( 151, 
799     'Allow a user to create a new fund', 'ppl', 'description' )),
800  ( 152, 'DELETE_FUND', oils_i18n_gettext( 152, 
801     'Allow a user to delete a fund', 'ppl', 'description' )),
802  ( 153, 'VIEW_FUND', oils_i18n_gettext( 153, 
803     'Allow a user to view a fund', 'ppl', 'description' )),
804  ( 154, 'UPDATE_FUND', oils_i18n_gettext( 154, 
805     'Allow a user to update a fund', 'ppl', 'description' )),
806  ( 155, 'CREATE_FUND_ALLOCATION', oils_i18n_gettext( 155, 
807     'Allow a user to create a new fund allocation', 'ppl', 'description' )),
808  ( 156, 'DELETE_FUND_ALLOCATION', oils_i18n_gettext( 156, 
809     'Allow a user to delete a fund allocation', 'ppl', 'description' )),
810  ( 157, 'VIEW_FUND_ALLOCATION', oils_i18n_gettext( 157, 
811     'Allow a user to view a fund allocation', 'ppl', 'description' )),
812  ( 158, 'UPDATE_FUND_ALLOCATION', oils_i18n_gettext( 158, 
813     'Allow a user to update a fund allocation', 'ppl', 'description' )),
814  ( 159, 'GENERAL_ACQ', oils_i18n_gettext( 159, 
815     'Lowest level permission required to access the ACQ interface', 'ppl', 'description' )),
816  ( 160, 'CREATE_PROVIDER', oils_i18n_gettext( 160, 
817     'Allow a user to create a new provider', 'ppl', 'description' )),
818  ( 161, 'DELETE_PROVIDER', oils_i18n_gettext( 161, 
819     'Allow a user to delate a provider', 'ppl', 'description' )),
820  ( 162, 'VIEW_PROVIDER', oils_i18n_gettext( 162, 
821     'Allow a user to view a provider', 'ppl', 'description' )),
822  ( 163, 'UPDATE_PROVIDER', oils_i18n_gettext( 163, 
823     'Allow a user to update a provider', 'ppl', 'description' )),
824  ( 164, 'ADMIN_FUNDING_SOURCE', oils_i18n_gettext( 164, 
825     'Allow a user to create/view/update/delete a funding source', 'ppl', 'description' )),
826  ( 165, 'ADMIN_FUND', oils_i18n_gettext( 165, 
827     '(Deprecated) Allow a user to create/view/update/delete a fund', 'ppl', 'description' )),
828  ( 166, 'MANAGE_FUNDING_SOURCE', oils_i18n_gettext( 166, 
829     'Allow a user to view/credit/debit a funding source', 'ppl', 'description' )),
830  ( 167, 'MANAGE_FUND', oils_i18n_gettext( 167, 
831     'Allow a user to view/credit/debit a fund', 'ppl', 'description' )),
832  ( 168, 'CREATE_PICKLIST', oils_i18n_gettext( 168, 
833     'Allows a user to create a picklist', 'ppl', 'description' )),
834  ( 169, 'ADMIN_PROVIDER', oils_i18n_gettext( 169, 
835     'Allow a user to create/view/update/delete a provider', 'ppl', 'description' )),
836  ( 170, 'MANAGE_PROVIDER', oils_i18n_gettext( 170, 
837     'Allow a user to view and purchase from a provider', 'ppl', 'description' )),
838  ( 171, 'VIEW_PICKLIST', oils_i18n_gettext( 171, 
839     'Allow a user to view another users picklist', 'ppl', 'description' )),
840  ( 172, 'DELETE_RECORD', oils_i18n_gettext( 172, 
841     'Allow a staff member to directly remove a bibliographic record', 'ppl', 'description' )),
842  ( 173, 'ADMIN_CURRENCY_TYPE', oils_i18n_gettext( 173, 
843     'Allow a user to create/view/update/delete a currency_type', 'ppl', 'description' )),
844  ( 174, 'MARK_BAD_DEBT', oils_i18n_gettext( 174, 
845     'Allow a user to mark a transaction as bad (unrecoverable) debt', 'ppl', 'description' )),
846  ( 175, 'VIEW_BILLING_TYPE', oils_i18n_gettext( 175, 
847     'Allow a user to view billing types', 'ppl', 'description' )),
848  ( 176, 'MARK_ITEM_AVAILABLE', oils_i18n_gettext( 176, 
849     'Allow a user to mark an item status as ''available''', 'ppl', 'description' )),
850  ( 177, 'MARK_ITEM_CHECKED_OUT', oils_i18n_gettext( 177, 
851     'Allow a user to mark an item status as ''checked out''', 'ppl', 'description' )),
852  ( 178, 'MARK_ITEM_BINDERY', oils_i18n_gettext( 178, 
853     'Allow a user to mark an item status as ''bindery''', 'ppl', 'description' )),
854  ( 179, 'MARK_ITEM_LOST', oils_i18n_gettext( 179, 
855     'Allow a user to mark an item status as ''lost''', 'ppl', 'description' )),
856  ( 180, 'MARK_ITEM_MISSING', oils_i18n_gettext( 180, 
857     'Allow a user to mark an item status as ''missing''', 'ppl', 'description' )),
858  ( 181, 'MARK_ITEM_IN_PROCESS', oils_i18n_gettext( 181, 
859     'Allow a user to mark an item status as ''in process''', 'ppl', 'description' )),
860  ( 182, 'MARK_ITEM_IN_TRANSIT', oils_i18n_gettext( 182, 
861     'Allow a user to mark an item status as ''in transit''', 'ppl', 'description' )),
862  ( 183, 'MARK_ITEM_RESHELVING', oils_i18n_gettext( 183, 
863     'Allow a user to mark an item status as ''reshelving''', 'ppl', 'description' )),
864  ( 184, 'MARK_ITEM_ON_HOLDS_SHELF', oils_i18n_gettext( 184, 
865     'Allow a user to mark an item status as ''on holds shelf''', 'ppl', 'description' )),
866  ( 185, 'MARK_ITEM_ON_ORDER', oils_i18n_gettext( 185, 
867     'Allow a user to mark an item status as ''on order''', 'ppl', 'description' )),
868  ( 186, 'MARK_ITEM_ILL', oils_i18n_gettext( 186, 
869     'Allow a user to mark an item status as ''inter-library loan''', 'ppl', 'description' )),
870  ( 187, 'group_application.user.staff.acq', oils_i18n_gettext( 187, 
871     'Allows a user to add/remove/edit users in the "ACQ" group', 'ppl', 'description' )),
872  ( 188, 'CREATE_PURCHASE_ORDER', oils_i18n_gettext( 188, 
873     'Allows a user to create a purchase order', 'ppl', 'description' )),
874  ( 189, 'VIEW_PURCHASE_ORDER', oils_i18n_gettext( 189, 
875     'Allows a user to view a purchase order', 'ppl', 'description' )),
876  ( 190, 'IMPORT_ACQ_LINEITEM_BIB_RECORD', oils_i18n_gettext( 190, 
877     'Allows a user to import a bib record from the acq staging area (on-order record) into the ILS bib data set', 'ppl', 'description' )),
878  ( 191, 'RECEIVE_PURCHASE_ORDER', oils_i18n_gettext( 191, 
879     'Allows a user to mark a purchase order, lineitem, or individual copy as received', 'ppl', 'description' )),
880  ( 192, 'VIEW_ORG_SETTINGS', oils_i18n_gettext( 192, 
881     'Allows a user to view all org settings at the specified level', 'ppl', 'description' )),
882  ( 193, 'CREATE_MFHD_RECORD', oils_i18n_gettext( 193, 
883     'Allows a user to create a new MFHD record', 'ppl', 'description' )),
884  ( 194, 'UPDATE_MFHD_RECORD', oils_i18n_gettext( 194, 
885     'Allows a user to update an MFHD record', 'ppl', 'description' )),
886  ( 195, 'DELETE_MFHD_RECORD', oils_i18n_gettext( 195, 
887     'Allows a user to delete an MFHD record', 'ppl', 'description' )),
888  ( 196, 'ADMIN_ACQ_FUND', oils_i18n_gettext( 196, 
889     'Allow a user to create/view/update/delete a fund', 'ppl', 'description' )),
890  ( 197, 'group_application.user.staff.acq_admin', oils_i18n_gettext( 197, 
891     'Allows a user to add/remove/edit users in the "Acquisitions Administrators" group', 'ppl', 'description' )),
892  ( 198, 'SET_CIRC_CLAIMS_RETURNED.override', oils_i18n_gettext( 198, 
893     'Allows staff to override the max claims returned value for a patron', 'ppl', 'description' )),
894  ( 199, 'UPDATE_PATRON_CLAIM_RETURN_COUNT', oils_i18n_gettext( 199, 
895     'Allows staff to manually change a patron''s claims returned count', 'ppl', 'description' )),
896  ( 200, 'UPDATE_BILL_NOTE', oils_i18n_gettext( 200, 
897     'Allows staff to edit the note for a bill on a transaction', 'ppl', 'description' )),
898  ( 201, 'UPDATE_PAYMENT_NOTE', oils_i18n_gettext( 201, 
899     'Allows staff to edit the note for a payment on a transaction', 'ppl', 'description' )),
900  ( 202, 'UPDATE_PATRON_CLAIM_NEVER_CHECKED_OUT_COUNT', oils_i18n_gettext( 202, 
901     'Allows staff to manually change a patron''s claims never checkout out count', 'ppl', 'description' )),
902  ( 203, 'ADMIN_COPY_LOCATION_ORDER', oils_i18n_gettext( 203, 
903     'Allow a user to create/view/update/delete a copy location order', 'ppl', 'description' )),
904  ( 204, 'ASSIGN_GROUP_PERM', oils_i18n_gettext( 204, 
905     'ASSIGN_GROUP_PERM', 'ppl', 'description' )),
906  ( 205, 'CREATE_AUDIENCE', oils_i18n_gettext( 205, 
907     'CREATE_AUDIENCE', 'ppl', 'description' )),
908  ( 206, 'CREATE_BIB_LEVEL', oils_i18n_gettext( 206, 
909     'CREATE_BIB_LEVEL', 'ppl', 'description' )),
910  ( 207, 'CREATE_CIRC_DURATION', oils_i18n_gettext( 207, 
911     'CREATE_CIRC_DURATION', 'ppl', 'description' )),
912  ( 208, 'CREATE_CIRC_MOD', oils_i18n_gettext( 208, 
913     'CREATE_CIRC_MOD', 'ppl', 'description' )),
914  ( 209, 'CREATE_COPY_STATUS', oils_i18n_gettext( 209, 
915     'CREATE_COPY_STATUS', 'ppl', 'description' )),
916  ( 210, 'CREATE_HOURS_OF_OPERATION', oils_i18n_gettext( 210, 
917     'CREATE_HOURS_OF_OPERATION', 'ppl', 'description' )),
918  ( 211, 'CREATE_ITEM_FORM', oils_i18n_gettext( 211, 
919     'CREATE_ITEM_FORM', 'ppl', 'description' )),
920  ( 212, 'CREATE_ITEM_TYPE', oils_i18n_gettext( 212, 
921     'CREATE_ITEM_TYPE', 'ppl', 'description' )),
922  ( 213, 'CREATE_LANGUAGE', oils_i18n_gettext( 213, 
923     'CREATE_LANGUAGE', 'ppl', 'description' )),
924  ( 214, 'CREATE_LASSO', oils_i18n_gettext( 214, 
925     'CREATE_LASSO', 'ppl', 'description' )),
926  ( 215, 'CREATE_LASSO_MAP', oils_i18n_gettext( 215, 
927     'CREATE_LASSO_MAP', 'ppl', 'description' )),
928  ( 216, 'CREATE_LIT_FORM', oils_i18n_gettext( 216, 
929     'CREATE_LIT_FORM', 'ppl', 'description' )),
930  ( 217, 'CREATE_METABIB_FIELD', oils_i18n_gettext( 217, 
931     'CREATE_METABIB_FIELD', 'ppl', 'description' )),
932  ( 218, 'CREATE_NET_ACCESS_LEVEL', oils_i18n_gettext( 218, 
933     'CREATE_NET_ACCESS_LEVEL', 'ppl', 'description' )),
934  ( 219, 'CREATE_ORG_ADDRESS', oils_i18n_gettext( 219, 
935     'CREATE_ORG_ADDRESS', 'ppl', 'description' )),
936  ( 220, 'CREATE_ORG_TYPE', oils_i18n_gettext( 220, 
937     'CREATE_ORG_TYPE', 'ppl', 'description' )),
938  ( 221, 'CREATE_ORG_UNIT', oils_i18n_gettext( 221, 
939     'CREATE_ORG_UNIT', 'ppl', 'description' )),
940  ( 222, 'CREATE_ORG_UNIT_CLOSING', oils_i18n_gettext( 222, 
941     'CREATE_ORG_UNIT_CLOSING', 'ppl', 'description' )),
942  ( 223, 'CREATE_PERM', oils_i18n_gettext( 223, 
943     'CREATE_PERM', 'ppl', 'description' )),
944  ( 224, 'CREATE_RELEVANCE_ADJUSTMENT', oils_i18n_gettext( 224, 
945     'CREATE_RELEVANCE_ADJUSTMENT', 'ppl', 'description' )),
946  ( 225, 'CREATE_SURVEY', oils_i18n_gettext( 225, 
947     'CREATE_SURVEY', 'ppl', 'description' )),
948  ( 226, 'CREATE_VR_FORMAT', oils_i18n_gettext( 226, 
949     'CREATE_VR_FORMAT', 'ppl', 'description' )),
950  ( 227, 'CREATE_XML_TRANSFORM', oils_i18n_gettext( 227, 
951     'CREATE_XML_TRANSFORM', 'ppl', 'description' )),
952  ( 228, 'DELETE_AUDIENCE', oils_i18n_gettext( 228, 
953     'DELETE_AUDIENCE', 'ppl', 'description' )),
954  ( 229, 'DELETE_BIB_LEVEL', oils_i18n_gettext( 229, 
955     'DELETE_BIB_LEVEL', 'ppl', 'description' )),
956  ( 230, 'DELETE_CIRC_DURATION', oils_i18n_gettext( 230, 
957     'DELETE_CIRC_DURATION', 'ppl', 'description' )),
958  ( 231, 'DELETE_CIRC_MOD', oils_i18n_gettext( 231, 
959     'DELETE_CIRC_MOD', 'ppl', 'description' )),
960  ( 232, 'DELETE_COPY_STATUS', oils_i18n_gettext( 232, 
961     'DELETE_COPY_STATUS', 'ppl', 'description' )),
962  ( 233, 'DELETE_HOURS_OF_OPERATION', oils_i18n_gettext( 233, 
963     'DELETE_HOURS_OF_OPERATION', 'ppl', 'description' )),
964  ( 234, 'DELETE_ITEM_FORM', oils_i18n_gettext( 234, 
965     'DELETE_ITEM_FORM', 'ppl', 'description' )),
966  ( 235, 'DELETE_ITEM_TYPE', oils_i18n_gettext( 235, 
967     'DELETE_ITEM_TYPE', 'ppl', 'description' )),
968  ( 236, 'DELETE_LANGUAGE', oils_i18n_gettext( 236, 
969     'DELETE_LANGUAGE', 'ppl', 'description' )),
970  ( 237, 'DELETE_LASSO', oils_i18n_gettext( 237, 
971     'DELETE_LASSO', 'ppl', 'description' )),
972  ( 238, 'DELETE_LASSO_MAP', oils_i18n_gettext( 238, 
973     'DELETE_LASSO_MAP', 'ppl', 'description' )),
974  ( 239, 'DELETE_LIT_FORM', oils_i18n_gettext( 239, 
975     'DELETE_LIT_FORM', 'ppl', 'description' )),
976  ( 240, 'DELETE_METABIB_FIELD', oils_i18n_gettext( 240, 
977     'DELETE_METABIB_FIELD', 'ppl', 'description' )),
978  ( 241, 'DELETE_NET_ACCESS_LEVEL', oils_i18n_gettext( 241, 
979     'DELETE_NET_ACCESS_LEVEL', 'ppl', 'description' )),
980  ( 242, 'DELETE_ORG_ADDRESS', oils_i18n_gettext( 242, 
981     'DELETE_ORG_ADDRESS', 'ppl', 'description' )),
982  ( 243, 'DELETE_ORG_TYPE', oils_i18n_gettext( 243, 
983     'DELETE_ORG_TYPE', 'ppl', 'description' )),
984  ( 244, 'DELETE_ORG_UNIT', oils_i18n_gettext( 244, 
985     'DELETE_ORG_UNIT', 'ppl', 'description' )),
986  ( 245, 'DELETE_ORG_UNIT_CLOSING', oils_i18n_gettext( 245, 
987     'DELETE_ORG_UNIT_CLOSING', 'ppl', 'description' )),
988  ( 246, 'DELETE_PERM', oils_i18n_gettext( 246, 
989     'DELETE_PERM', 'ppl', 'description' )),
990  ( 247, 'DELETE_RELEVANCE_ADJUSTMENT', oils_i18n_gettext( 247, 
991     'DELETE_RELEVANCE_ADJUSTMENT', 'ppl', 'description' )),
992  ( 248, 'DELETE_SURVEY', oils_i18n_gettext( 248, 
993     'DELETE_SURVEY', 'ppl', 'description' )),
994  ( 249, 'DELETE_TRANSIT', oils_i18n_gettext( 249, 
995     'DELETE_TRANSIT', 'ppl', 'description' )),
996  ( 250, 'DELETE_VR_FORMAT', oils_i18n_gettext( 250, 
997     'DELETE_VR_FORMAT', 'ppl', 'description' )),
998  ( 251, 'DELETE_XML_TRANSFORM', oils_i18n_gettext( 251, 
999     'DELETE_XML_TRANSFORM', 'ppl', 'description' )),
1000  ( 252, 'REMOVE_GROUP_PERM', oils_i18n_gettext( 252, 
1001     'REMOVE_GROUP_PERM', 'ppl', 'description' )),
1002  ( 253, 'TRANSIT_COPY', oils_i18n_gettext( 253, 
1003     'TRANSIT_COPY', 'ppl', 'description' )),
1004  ( 254, 'UPDATE_AUDIENCE', oils_i18n_gettext( 254, 
1005     'UPDATE_AUDIENCE', 'ppl', 'description' )),
1006  ( 255, 'UPDATE_BIB_LEVEL', oils_i18n_gettext( 255, 
1007     'UPDATE_BIB_LEVEL', 'ppl', 'description' )),
1008  ( 256, 'UPDATE_CIRC_DURATION', oils_i18n_gettext( 256, 
1009     'UPDATE_CIRC_DURATION', 'ppl', 'description' )),
1010  ( 257, 'UPDATE_CIRC_MOD', oils_i18n_gettext( 257, 
1011     'UPDATE_CIRC_MOD', 'ppl', 'description' )),
1012  ( 258, 'UPDATE_COPY_NOTE', oils_i18n_gettext( 258, 
1013     'UPDATE_COPY_NOTE', 'ppl', 'description' )),
1014  ( 259, 'UPDATE_COPY_STATUS', oils_i18n_gettext( 259, 
1015     'UPDATE_COPY_STATUS', 'ppl', 'description' )),
1016  ( 260, 'UPDATE_GROUP_PERM', oils_i18n_gettext( 260, 
1017     'UPDATE_GROUP_PERM', 'ppl', 'description' )),
1018  ( 261, 'UPDATE_HOURS_OF_OPERATION', oils_i18n_gettext( 261, 
1019     'UPDATE_HOURS_OF_OPERATION', 'ppl', 'description' )),
1020  ( 262, 'UPDATE_ITEM_FORM', oils_i18n_gettext( 262, 
1021     'UPDATE_ITEM_FORM', 'ppl', 'description' )),
1022  ( 263, 'UPDATE_ITEM_TYPE', oils_i18n_gettext( 263, 
1023     'UPDATE_ITEM_TYPE', 'ppl', 'description' )),
1024  ( 264, 'UPDATE_LANGUAGE', oils_i18n_gettext( 264, 
1025     'UPDATE_LANGUAGE', 'ppl', 'description' )),
1026  ( 265, 'UPDATE_LASSO', oils_i18n_gettext( 265, 
1027     'UPDATE_LASSO', 'ppl', 'description' )),
1028  ( 266, 'UPDATE_LASSO_MAP', oils_i18n_gettext( 266, 
1029     'UPDATE_LASSO_MAP', 'ppl', 'description' )),
1030  ( 267, 'UPDATE_LIT_FORM', oils_i18n_gettext( 267, 
1031     'UPDATE_LIT_FORM', 'ppl', 'description' )),
1032  ( 268, 'UPDATE_METABIB_FIELD', oils_i18n_gettext( 268, 
1033     'UPDATE_METABIB_FIELD', 'ppl', 'description' )),
1034  ( 269, 'UPDATE_NET_ACCESS_LEVEL', oils_i18n_gettext( 269, 
1035     'UPDATE_NET_ACCESS_LEVEL', 'ppl', 'description' )),
1036  ( 270, 'UPDATE_ORG_ADDRESS', oils_i18n_gettext( 270, 
1037     'UPDATE_ORG_ADDRESS', 'ppl', 'description' )),
1038  ( 271, 'UPDATE_ORG_TYPE', oils_i18n_gettext( 271, 
1039     'UPDATE_ORG_TYPE', 'ppl', 'description' )),
1040  ( 272, 'UPDATE_ORG_UNIT_CLOSING', oils_i18n_gettext( 272, 
1041     'UPDATE_ORG_UNIT_CLOSING', 'ppl', 'description' )),
1042  ( 273, 'UPDATE_PERM', oils_i18n_gettext( 273, 
1043     'UPDATE_PERM', 'ppl', 'description' )),
1044  ( 274, 'UPDATE_RELEVANCE_ADJUSTMENT', oils_i18n_gettext( 274, 
1045     'UPDATE_RELEVANCE_ADJUSTMENT', 'ppl', 'description' )),
1046  ( 275, 'UPDATE_SURVEY', oils_i18n_gettext( 275, 
1047     'UPDATE_SURVEY', 'ppl', 'description' )),
1048  ( 276, 'UPDATE_TRANSIT', oils_i18n_gettext( 276, 
1049     'UPDATE_TRANSIT', 'ppl', 'description' )),
1050  ( 277, 'UPDATE_VOLUME_NOTE', oils_i18n_gettext( 277, 
1051     'UPDATE_VOLUME_NOTE', 'ppl', 'description' )),
1052  ( 278, 'UPDATE_VR_FORMAT', oils_i18n_gettext( 278, 
1053     'UPDATE_VR_FORMAT', 'ppl', 'description' )),
1054  ( 279, 'UPDATE_XML_TRANSFORM', oils_i18n_gettext( 279, 
1055     'UPDATE_XML_TRANSFORM', 'ppl', 'description' )),
1056  ( 280, 'MERGE_BIB_RECORDS', oils_i18n_gettext( 280, 
1057     'MERGE_BIB_RECORDS', 'ppl', 'description' )),
1058  ( 281, 'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF', oils_i18n_gettext( 281, 
1059     'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF', 'ppl', 'description' )),
1060  ( 282, 'CREATE_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 282, 
1061     'CREATE_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1062  ( 283, 'CREATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 283, 
1063     'CREATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1064  ( 284, 'CREATE_AUTHORITY_IMPORT_QUEUE', oils_i18n_gettext( 284, 
1065     'CREATE_AUTHORITY_IMPORT_QUEUE', 'ppl', 'description' )),
1066  ( 285, 'CREATE_AUTHORITY_RECORD_NOTE', oils_i18n_gettext( 285, 
1067     'CREATE_AUTHORITY_RECORD_NOTE', 'ppl', 'description' )),
1068  ( 286, 'CREATE_BIB_IMPORT_FIELD_DEF', oils_i18n_gettext( 286, 
1069     'CREATE_BIB_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1070  ( 287, 'CREATE_BIB_IMPORT_QUEUE', oils_i18n_gettext( 287, 
1071     'CREATE_BIB_IMPORT_QUEUE', 'ppl', 'description' )),
1072  ( 288, 'CREATE_LOCALE', oils_i18n_gettext( 288, 
1073     'CREATE_LOCALE', 'ppl', 'description' )),
1074  ( 289, 'CREATE_MARC_CODE', oils_i18n_gettext( 289, 
1075     'CREATE_MARC_CODE', 'ppl', 'description' )),
1076  ( 290, 'CREATE_TRANSLATION', oils_i18n_gettext( 290, 
1077     'CREATE_TRANSLATION', 'ppl', 'description' )),
1078  ( 291, 'DELETE_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 291, 
1079     'DELETE_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1080  ( 292, 'DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 292, 
1081     'DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1082  ( 293, 'DELETE_AUTHORITY_IMPORT_QUEUE', oils_i18n_gettext( 293, 
1083     'DELETE_AUTHORITY_IMPORT_QUEUE', 'ppl', 'description' )),
1084  ( 294, 'DELETE_AUTHORITY_RECORD_NOTE', oils_i18n_gettext( 294, 
1085     'DELETE_AUTHORITY_RECORD_NOTE', 'ppl', 'description' )),
1086  ( 295, 'DELETE_BIB_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 295, 
1087     'DELETE_BIB_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1088  ( 296, 'DELETE_BIB_IMPORT_QUEUE', oils_i18n_gettext( 296, 
1089     'DELETE_BIB_IMPORT_QUEUE', 'ppl', 'description' )),
1090  ( 297, 'DELETE_LOCALE', oils_i18n_gettext( 297, 
1091     'DELETE_LOCALE', 'ppl', 'description' )),
1092  ( 298, 'DELETE_MARC_CODE', oils_i18n_gettext( 298, 
1093     'DELETE_MARC_CODE', 'ppl', 'description' )),
1094  ( 299, 'DELETE_TRANSLATION', oils_i18n_gettext( 299, 
1095     'DELETE_TRANSLATION', 'ppl', 'description' )),
1096  ( 300, 'UPDATE_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 300, 
1097     'UPDATE_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1098  ( 301, 'UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 301, 
1099     'UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1100  ( 302, 'UPDATE_AUTHORITY_IMPORT_QUEUE', oils_i18n_gettext( 302, 
1101     'UPDATE_AUTHORITY_IMPORT_QUEUE', 'ppl', 'description' )),
1102  ( 303, 'UPDATE_AUTHORITY_RECORD_NOTE', oils_i18n_gettext( 303, 
1103     'UPDATE_AUTHORITY_RECORD_NOTE', 'ppl', 'description' )),
1104  ( 304, 'UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 304, 
1105     'UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1106  ( 305, 'UPDATE_BIB_IMPORT_QUEUE', oils_i18n_gettext( 305, 
1107     'UPDATE_BIB_IMPORT_QUEUE', 'ppl', 'description' )),
1108  ( 306, 'UPDATE_LOCALE', oils_i18n_gettext( 306, 
1109     'UPDATE_LOCALE', 'ppl', 'description' )),
1110  ( 307, 'UPDATE_MARC_CODE', oils_i18n_gettext( 307, 
1111     'UPDATE_MARC_CODE', 'ppl', 'description' )),
1112  ( 308, 'UPDATE_TRANSLATION', oils_i18n_gettext( 308, 
1113     'UPDATE_TRANSLATION', 'ppl', 'description' )),
1114  ( 309, 'VIEW_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 309, 
1115     'VIEW_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1116  ( 310, 'VIEW_AUTHORITY_RECORD_NOTES', oils_i18n_gettext( 310, 
1117     'VIEW_AUTHORITY_RECORD_NOTES', 'ppl', 'description' )),
1118  ( 311, 'CREATE_IMPORT_ITEM', oils_i18n_gettext( 311, 
1119     'CREATE_IMPORT_ITEM', 'ppl', 'description' )),
1120  ( 312, 'CREATE_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 312, 
1121     'CREATE_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1122  ( 313, 'CREATE_IMPORT_TRASH_FIELD', oils_i18n_gettext( 313, 
1123     'CREATE_IMPORT_TRASH_FIELD', 'ppl', 'description' )),
1124  ( 314, 'DELETE_IMPORT_ITEM', oils_i18n_gettext( 314, 
1125     'DELETE_IMPORT_ITEM', 'ppl', 'description' )),
1126  ( 315, 'DELETE_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 315, 
1127     'DELETE_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1128  ( 316, 'DELETE_IMPORT_TRASH_FIELD', oils_i18n_gettext( 316, 
1129     'DELETE_IMPORT_TRASH_FIELD', 'ppl', 'description' )),
1130  ( 317, 'UPDATE_IMPORT_ITEM', oils_i18n_gettext( 317, 
1131     'UPDATE_IMPORT_ITEM', 'ppl', 'description' )),
1132  ( 318, 'UPDATE_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 318, 
1133     'UPDATE_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1134  ( 319, 'UPDATE_IMPORT_TRASH_FIELD', oils_i18n_gettext( 319, 
1135     'UPDATE_IMPORT_TRASH_FIELD', 'ppl', 'description' )),
1136  ( 320, 'UPDATE_ORG_UNIT_SETTING_ALL', oils_i18n_gettext( 320, 
1137     'UPDATE_ORG_UNIT_SETTING_ALL', 'ppl', 'description' )),
1138  ( 321, 'UPDATE_ORG_UNIT_SETTING.circ.lost_materials_processing_fee', oils_i18n_gettext( 321, 
1139     'UPDATE_ORG_UNIT_SETTING.circ.lost_materials_processing_fee', 'ppl', 'description' )),
1140  ( 322, 'UPDATE_ORG_UNIT_SETTING.cat.default_item_price', oils_i18n_gettext( 322, 
1141     'UPDATE_ORG_UNIT_SETTING.cat.default_item_price', 'ppl', 'description' )),
1142  ( 323, 'UPDATE_ORG_UNIT_SETTING.auth.opac_timeout', oils_i18n_gettext( 323, 
1143     'UPDATE_ORG_UNIT_SETTING.auth.opac_timeout', 'ppl', 'description' )),
1144  ( 324, 'UPDATE_ORG_UNIT_SETTING.auth.staff_timeout', oils_i18n_gettext( 324, 
1145     'UPDATE_ORG_UNIT_SETTING.auth.staff_timeout', 'ppl', 'description' )),
1146  ( 325, 'UPDATE_ORG_UNIT_SETTING.org.bounced_emails', oils_i18n_gettext( 325, 
1147     'UPDATE_ORG_UNIT_SETTING.org.bounced_emails', 'ppl', 'description' )),
1148  ( 326, 'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_alert_interval', oils_i18n_gettext( 326, 
1149     'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_alert_interval', 'ppl', 'description' )),
1150  ( 327, 'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_interval', oils_i18n_gettext( 327, 
1151     'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_interval', 'ppl', 'description' )),
1152  ( 328, 'UPDATE_ORG_UNIT_SETTING.credit.payments.allow', oils_i18n_gettext( 328, 
1153     'UPDATE_ORG_UNIT_SETTING.credit.payments.allow', 'ppl', 'description' )),
1154  ( 329, 'UPDATE_ORG_UNIT_SETTING.circ.void_overdue_on_lost', oils_i18n_gettext( 329, 
1155     'UPDATE_ORG_UNIT_SETTING.circ.void_overdue_on_lost', 'ppl', 'description' )),
1156  ( 330, 'UPDATE_ORG_UNIT_SETTING.circ.hold_stalling.soft', oils_i18n_gettext( 330, 
1157     'UPDATE_ORG_UNIT_SETTING.circ.hold_stalling.soft', 'ppl', 'description' )),
1158  ( 331, 'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.hard', oils_i18n_gettext( 331, 
1159     'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.hard', 'ppl', 'description' )),
1160  ( 332, 'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.soft', oils_i18n_gettext( 332, 
1161     'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.soft', 'ppl', 'description' )),
1162  ( 333, 'UPDATE_ORG_UNIT_SETTING.opac.barcode_regex', oils_i18n_gettext( 333, 
1163     'UPDATE_ORG_UNIT_SETTING.opac.barcode_regex', 'ppl', 'description' )),
1164  ( 334, 'UPDATE_ORG_UNIT_SETTING.global.password_regex', oils_i18n_gettext( 334, 
1165     'UPDATE_ORG_UNIT_SETTING.global.password_regex', 'ppl', 'description' )),
1166  ( 335, 'UPDATE_ORG_UNIT_SETTING.circ.item_checkout_history.max', oils_i18n_gettext( 335, 
1167     'UPDATE_ORG_UNIT_SETTING.circ.item_checkout_history.max', 'ppl', 'description' )),
1168  ( 336, 'UPDATE_ORG_UNIT_SETTING.circ.reshelving_complete.interval', oils_i18n_gettext( 336, 
1169     'UPDATE_ORG_UNIT_SETTING.circ.reshelving_complete.interval', 'ppl', 'description' )),
1170  ( 337, 'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.patron_login_timeout', oils_i18n_gettext( 337, 
1171     'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.patron_login_timeout', 'ppl', 'description' )),
1172  ( 338, 'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.alert_on_checkout_event', oils_i18n_gettext( 338, 
1173     'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.alert_on_checkout_event', 'ppl', 'description' )),
1174  ( 339, 'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.require_patron_password', oils_i18n_gettext( 339, 
1175     'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.require_patron_password', 'ppl', 'description' )),
1176  ( 340, 'UPDATE_ORG_UNIT_SETTING.global.juvenile_age_threshold', oils_i18n_gettext( 340, 
1177     'UPDATE_ORG_UNIT_SETTING.global.juvenile_age_threshold', 'ppl', 'description' )),
1178  ( 341, 'UPDATE_ORG_UNIT_SETTING.cat.bib.keep_on_empty', oils_i18n_gettext( 341, 
1179     'UPDATE_ORG_UNIT_SETTING.cat.bib.keep_on_empty', 'ppl', 'description' )),
1180  ( 342, 'UPDATE_ORG_UNIT_SETTING.cat.bib.alert_on_empty', oils_i18n_gettext( 342, 
1181     'UPDATE_ORG_UNIT_SETTING.cat.bib.alert_on_empty', 'ppl', 'description' )),
1182  ( 343, 'UPDATE_ORG_UNIT_SETTING.patron.password.use_phone', oils_i18n_gettext( 343, 
1183     'UPDATE_ORG_UNIT_SETTING.patron.password.use_phone', 'ppl', 'description' )),
1184  ( 344, 'HOLD_ITEM_CHECKED_OUT.override', oils_i18n_gettext( 344, 
1185     'Allows a user to place a hold on an item that they already have checked out', 'ppl', 'description' )),
1186  ( 345, 'ADMIN_ACQ_CANCEL_CAUSE', oils_i18n_gettext( 345, 
1187     'Allow a user to create/update/delete reasons for order cancellations', 'ppl', 'description' )),
1188  ( 346, 'ACQ_XFER_MANUAL_DFUND_AMOUNT', oils_i18n_gettext( 346, 
1189     'Allow a user to transfer different amounts of money out of one fund and into another', 'ppl', 'description' )),
1190  ( 347, 'OVERRIDE_HOLD_HAS_LOCAL_COPY', oils_i18n_gettext( 347, 
1191     'Allow a user to override the circ.holds.hold_has_copy_at.block setting', 'ppl', 'description' )),
1192  ( 348, 'UPDATE_PICKUP_LIB_FROM_TRANSIT', oils_i18n_gettext( 348, 
1193     'Allow a user to change the pickup and transit destination for a captured hold item already in transit', 'ppl', 'description' )),
1194  ( 349, 'COPY_NEEDED_FOR_HOLD.override', oils_i18n_gettext( 349, 
1195     'Allow a user to force renewal of an item that could fulfill a hold request', 'ppl', 'description' )),
1196  ( 350, 'MERGE_AUTH_RECORDS', oils_i18n_gettext( 350, 
1197     'Allow a user to merge authority records together', 'ppl', 'description' )),
1198  ( 351, 'ALLOW_ALT_TCN', oils_i18n_gettext( 351, 
1199     'Allows staff to import a record using an alternate TCN to avoid conflicts', 'ppl', 'description' )),
1200  ( 352, 'ADMIN_TRIGGER_EVENT_DEF', oils_i18n_gettext( 352, 
1201     'Allow a user to administer trigger event definitions', 'ppl', 'description' )),
1202  ( 353, 'ADMIN_TRIGGER_CLEANUP', oils_i18n_gettext( 353, 
1203     'Allow a user to create, delete, and update trigger cleanup entries', 'ppl', 'description' )),
1204  ( 354, 'CREATE_TRIGGER_CLEANUP', oils_i18n_gettext( 354, 
1205     'Allow a user to create trigger cleanup entries', 'ppl', 'description' )),
1206  ( 355, 'DELETE_TRIGGER_CLEANUP', oils_i18n_gettext( 355, 
1207     'Allow a user to delete trigger cleanup entries', 'ppl', 'description' )),
1208  ( 356, 'UPDATE_TRIGGER_CLEANUP', oils_i18n_gettext( 356, 
1209     'Allow a user to update trigger cleanup entries', 'ppl', 'description' )),
1210  ( 357, 'CREATE_TRIGGER_EVENT_DEF', oils_i18n_gettext( 357, 
1211     'Allow a user to create trigger event definitions', 'ppl', 'description' )),
1212  ( 358, 'DELETE_TRIGGER_EVENT_DEF', oils_i18n_gettext( 358, 
1213     'Allow a user to delete trigger event definitions', 'ppl', 'description' )),
1214  ( 359, 'UPDATE_TRIGGER_EVENT_DEF', oils_i18n_gettext( 359, 
1215     'Allow a user to update trigger event definitions', 'ppl', 'description' )),
1216  ( 360, 'VIEW_TRIGGER_EVENT_DEF', oils_i18n_gettext( 360, 
1217     'Allow a user to view trigger event definitions', 'ppl', 'description' )),
1218  ( 361, 'ADMIN_TRIGGER_HOOK', oils_i18n_gettext( 361, 
1219     'Allow a user to create, update, and delete trigger hooks', 'ppl', 'description' )),
1220  ( 362, 'CREATE_TRIGGER_HOOK', oils_i18n_gettext( 362, 
1221     'Allow a user to create trigger hooks', 'ppl', 'description' )),
1222  ( 363, 'DELETE_TRIGGER_HOOK', oils_i18n_gettext( 363, 
1223     'Allow a user to delete trigger hooks', 'ppl', 'description' )),
1224  ( 364, 'UPDATE_TRIGGER_HOOK', oils_i18n_gettext( 364, 
1225     'Allow a user to update trigger hooks', 'ppl', 'description' )),
1226  ( 365, 'ADMIN_TRIGGER_REACTOR', oils_i18n_gettext( 365, 
1227     'Allow a user to create, update, and delete trigger reactors', 'ppl', 'description' )),
1228  ( 366, 'CREATE_TRIGGER_REACTOR', oils_i18n_gettext( 366, 
1229     'Allow a user to create trigger reactors', 'ppl', 'description' )),
1230  ( 367, 'DELETE_TRIGGER_REACTOR', oils_i18n_gettext( 367, 
1231     'Allow a user to delete trigger reactors', 'ppl', 'description' )),
1232  ( 368, 'UPDATE_TRIGGER_REACTOR', oils_i18n_gettext( 368, 
1233     'Allow a user to update trigger reactors', 'ppl', 'description' )),
1234  ( 369, 'ADMIN_TRIGGER_TEMPLATE_OUTPUT', oils_i18n_gettext( 369, 
1235     'Allow a user to delete trigger template output', 'ppl', 'description' )),
1236  ( 370, 'DELETE_TRIGGER_TEMPLATE_OUTPUT', oils_i18n_gettext( 370, 
1237     'Allow a user to delete trigger template output', 'ppl', 'description' )),
1238  ( 371, 'ADMIN_TRIGGER_VALIDATOR', oils_i18n_gettext( 371, 
1239     'Allow a user to create, update, and delete trigger validators', 'ppl', 'description' )),
1240  ( 372, 'CREATE_TRIGGER_VALIDATOR', oils_i18n_gettext( 372, 
1241     'Allow a user to create trigger validators', 'ppl', 'description' )),
1242  ( 373, 'DELETE_TRIGGER_VALIDATOR', oils_i18n_gettext( 373, 
1243     'Allow a user to delete trigger validators', 'ppl', 'description' )),
1244  ( 374, 'UPDATE_TRIGGER_VALIDATOR', oils_i18n_gettext( 374, 
1245     'Allow a user to update trigger validators', 'ppl', 'description' )),
1246  ( 376, 'ADMIN_BOOKING_RESOURCE', oils_i18n_gettext( 376, 
1247     'Enables the user to create/update/delete booking resources', 'ppl', 'description' )),
1248  ( 377, 'ADMIN_BOOKING_RESOURCE_TYPE', oils_i18n_gettext( 377, 
1249     'Enables the user to create/update/delete booking resource types', 'ppl', 'description' )),
1250  ( 378, 'ADMIN_BOOKING_RESOURCE_ATTR', oils_i18n_gettext( 378, 
1251     'Enables the user to create/update/delete booking resource attributes', 'ppl', 'description' )),
1252  ( 379, 'ADMIN_BOOKING_RESOURCE_ATTR_MAP', oils_i18n_gettext( 379, 
1253     'Enables the user to create/update/delete booking resource attribute maps', 'ppl', 'description' )),
1254  ( 380, 'ADMIN_BOOKING_RESOURCE_ATTR_VALUE', oils_i18n_gettext( 380, 
1255     'Enables the user to create/update/delete booking resource attribute values', 'ppl', 'description' )),
1256  ( 381, 'ADMIN_BOOKING_RESERVATION', oils_i18n_gettext( 381, 
1257     'Enables the user to create/update/delete booking reservations', 'ppl', 'description' )),
1258  ( 382, 'ADMIN_BOOKING_RESERVATION_ATTR_VALUE_MAP', oils_i18n_gettext( 382, 
1259     'Enables the user to create/update/delete booking reservation attribute value maps', 'ppl', 'description' )),
1260  ( 383, 'RETRIEVE_RESERVATION_PULL_LIST', oils_i18n_gettext( 383, 
1261     'Allows a user to retrieve a booking reservation pull list', 'ppl', 'description' )),
1262  ( 384, 'CAPTURE_RESERVATION', oils_i18n_gettext( 384, 
1263     'Allows a user to capture booking reservations', 'ppl', 'description' )),
1264  ( 385, 'UPDATE_RECORD', oils_i18n_gettext( 385, 
1265     'UPDATE_RECORD', 'ppl', 'description' )),
1266  ( 386, 'UPDATE_ORG_UNIT_SETTING.circ.block_renews_for_holds', oils_i18n_gettext( 386, 
1267     'UPDATE_ORG_UNIT_SETTING.circ.block_renews_for_holds', 'ppl', 'description' )),
1268  ( 387, 'MERGE_USERS', oils_i18n_gettext( 387, 
1269     'Allows user records to be merged', 'ppl', 'description' )),
1270  ( 388, 'ISSUANCE_HOLDS', oils_i18n_gettext( 388, 
1271     'Allow a user to place holds on serials issuances', 'ppl', 'description' )),
1272  ( 389, 'VIEW_CREDIT_CARD_PROCESSING', oils_i18n_gettext( 389, 
1273     'View org unit settings related to credit card processing', 'ppl', 'description' )),
1274  ( 390, 'ADMIN_CREDIT_CARD_PROCESSING', oils_i18n_gettext( 390, 
1275     'Update org unit settings related to credit card processing', 'ppl', 'description' )),
1276  ( 391, 'ADMIN_ACQ_CLAIM', oils_i18n_gettext( 391, 
1277     'ADMIN_ACQ_CLAIM', 'ppl', 'description' )),
1278  ( 392, 'ADMIN_ACQ_CLAIM_EVENT_TYPE', oils_i18n_gettext( 392, 
1279     'ADMIN_ACQ_CLAIM_EVENT_TYPE', 'ppl', 'description' )),
1280  ( 393, 'ADMIN_ACQ_CLAIM_TYPE', oils_i18n_gettext( 393, 
1281     'ADMIN_ACQ_CLAIM_TYPE', 'ppl', 'description' )),
1282  ( 394, 'ADMIN_ACQ_DISTRIB_FORMULA', oils_i18n_gettext( 394, 
1283     'ADMIN_ACQ_DISTRIB_FORMULA', 'ppl', 'description' )),
1284  ( 395, 'ADMIN_ACQ_FISCAL_YEAR', oils_i18n_gettext( 395, 
1285     'ADMIN_ACQ_FISCAL_YEAR', 'ppl', 'description' )),
1286  ( 396, 'ADMIN_ACQ_FUND_ALLOCATION_PERCENT', oils_i18n_gettext( 396, 
1287     'ADMIN_ACQ_FUND_ALLOCATION_PERCENT', 'ppl', 'description' )),
1288  ( 397, 'ADMIN_ACQ_FUND_TAG', oils_i18n_gettext( 397, 
1289     'ADMIN_ACQ_FUND_TAG', 'ppl', 'description' )),
1290  ( 398, 'ADMIN_ACQ_LINEITEM_ALERT_TEXT', oils_i18n_gettext( 398, 
1291     'ADMIN_ACQ_LINEITEM_ALERT_TEXT', 'ppl', 'description' )),
1292  ( 399, 'ADMIN_AGE_PROTECT_RULE', oils_i18n_gettext( 399, 
1293     'ADMIN_AGE_PROTECT_RULE', 'ppl', 'description' )),
1294  ( 400, 'ADMIN_ASSET_COPY_TEMPLATE', oils_i18n_gettext( 400, 
1295     'ADMIN_ASSET_COPY_TEMPLATE', 'ppl', 'description' )),
1296  ( 401, 'ADMIN_BOOKING_RESERVATION_ATTR_MAP', oils_i18n_gettext( 401, 
1297     'ADMIN_BOOKING_RESERVATION_ATTR_MAP', 'ppl', 'description' )),
1298  ( 402, 'ADMIN_CIRC_MATRIX_MATCHPOINT', oils_i18n_gettext( 402, 
1299     'ADMIN_CIRC_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1300  ( 403, 'ADMIN_CIRC_MOD', oils_i18n_gettext( 403, 
1301     'ADMIN_CIRC_MOD', 'ppl', 'description' )),
1302  ( 404, 'ADMIN_CLAIM_POLICY', oils_i18n_gettext( 404, 
1303     'ADMIN_CLAIM_POLICY', 'ppl', 'description' )),
1304  ( 405, 'ADMIN_CONFIG_REMOTE_ACCOUNT', oils_i18n_gettext( 405, 
1305     'ADMIN_CONFIG_REMOTE_ACCOUNT', 'ppl', 'description' )),
1306  ( 406, 'ADMIN_FIELD_DOC', oils_i18n_gettext( 406, 
1307     'ADMIN_FIELD_DOC', 'ppl', 'description' )),
1308  ( 407, 'ADMIN_GLOBAL_FLAG', oils_i18n_gettext( 407, 
1309     'ADMIN_GLOBAL_FLAG', 'ppl', 'description' )),
1310  ( 408, 'ADMIN_GROUP_PENALTY_THRESHOLD', oils_i18n_gettext( 408, 
1311     'ADMIN_GROUP_PENALTY_THRESHOLD', 'ppl', 'description' )),
1312  ( 409, 'ADMIN_HOLD_CANCEL_CAUSE', oils_i18n_gettext( 409, 
1313     'ADMIN_HOLD_CANCEL_CAUSE', 'ppl', 'description' )),
1314  ( 410, 'ADMIN_HOLD_MATRIX_MATCHPOINT', oils_i18n_gettext( 410, 
1315     'ADMIN_HOLD_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1316  ( 411, 'ADMIN_IDENT_TYPE', oils_i18n_gettext( 411, 
1317     'ADMIN_IDENT_TYPE', 'ppl', 'description' )),
1318  ( 412, 'ADMIN_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 412, 
1319     'ADMIN_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1320  ( 413, 'ADMIN_INDEX_NORMALIZER', oils_i18n_gettext( 413, 
1321     'ADMIN_INDEX_NORMALIZER', 'ppl', 'description' )),
1322  ( 414, 'ADMIN_INVOICE', oils_i18n_gettext( 414, 
1323     'ADMIN_INVOICE', 'ppl', 'description' )),
1324  ( 415, 'ADMIN_INVOICE_METHOD', oils_i18n_gettext( 415, 
1325     'ADMIN_INVOICE_METHOD', 'ppl', 'description' )),
1326  ( 416, 'ADMIN_INVOICE_PAYMENT_METHOD', oils_i18n_gettext( 416, 
1327     'ADMIN_INVOICE_PAYMENT_METHOD', 'ppl', 'description' )),
1328  ( 417, 'ADMIN_LINEITEM_MARC_ATTR_DEF', oils_i18n_gettext( 417, 
1329     'ADMIN_LINEITEM_MARC_ATTR_DEF', 'ppl', 'description' )),
1330  ( 418, 'ADMIN_MARC_CODE', oils_i18n_gettext( 418, 
1331     'ADMIN_MARC_CODE', 'ppl', 'description' )),
1332  ( 419, 'ADMIN_MAX_FINE_RULE', oils_i18n_gettext( 419, 
1333     'ADMIN_MAX_FINE_RULE', 'ppl', 'description' )),
1334  ( 420, 'ADMIN_MERGE_PROFILE', oils_i18n_gettext( 420, 
1335     'ADMIN_MERGE_PROFILE', 'ppl', 'description' )),
1336  ( 421, 'ADMIN_ORG_UNIT_SETTING_TYPE', oils_i18n_gettext( 421, 
1337     'ADMIN_ORG_UNIT_SETTING_TYPE', 'ppl', 'description' )),
1338  ( 422, 'ADMIN_RECURRING_FINE_RULE', oils_i18n_gettext( 422, 
1339     'ADMIN_RECURRING_FINE_RULE', 'ppl', 'description' )),
1340  ( 423, 'ADMIN_SERIAL_SUBSCRIPTION', oils_i18n_gettext( 423, 
1341     'ADMIN_SERIAL_SUBSCRIPTION', 'ppl', 'description' )),
1342  ( 424, 'ADMIN_STANDING_PENALTY', oils_i18n_gettext( 424, 
1343     'ADMIN_STANDING_PENALTY', 'ppl', 'description' )),
1344  ( 425, 'ADMIN_SURVEY', oils_i18n_gettext( 425, 
1345     'ADMIN_SURVEY', 'ppl', 'description' )),
1346  ( 426, 'ADMIN_USER_REQUEST_TYPE', oils_i18n_gettext( 426, 
1347     'ADMIN_USER_REQUEST_TYPE', 'ppl', 'description' )),
1348  ( 427, 'ADMIN_USER_SETTING_GROUP', oils_i18n_gettext( 427, 
1349     'ADMIN_USER_SETTING_GROUP', 'ppl', 'description' )),
1350  ( 428, 'ADMIN_USER_SETTING_TYPE', oils_i18n_gettext( 428, 
1351     'ADMIN_USER_SETTING_TYPE', 'ppl', 'description' )),
1352  ( 429, 'ADMIN_Z3950_SOURCE', oils_i18n_gettext( 429, 
1353     'ADMIN_Z3950_SOURCE', 'ppl', 'description' )),
1354  ( 430, 'CREATE_BIB_BTYPE', oils_i18n_gettext( 430, 
1355     'CREATE_BIB_BTYPE', 'ppl', 'description' )),
1356  ( 431, 'CREATE_BIBLIO_FINGERPRINT', oils_i18n_gettext( 431, 
1357     'CREATE_BIBLIO_FINGERPRINT', 'ppl', 'description' )),
1358  ( 432, 'CREATE_BIB_SOURCE', oils_i18n_gettext( 432, 
1359     'CREATE_BIB_SOURCE', 'ppl', 'description' )),
1360  ( 433, 'CREATE_BILLING_TYPE', oils_i18n_gettext( 433, 
1361     'CREATE_BILLING_TYPE', 'ppl', 'description' )),
1362  ( 434, 'CREATE_CN_BTYPE', oils_i18n_gettext( 434, 
1363     'CREATE_CN_BTYPE', 'ppl', 'description' )),
1364  ( 435, 'CREATE_COPY_BTYPE', oils_i18n_gettext( 435, 
1365     'CREATE_COPY_BTYPE', 'ppl', 'description' )),
1366  ( 436, 'CREATE_INVOICE', oils_i18n_gettext( 436, 
1367     'CREATE_INVOICE', 'ppl', 'description' )),
1368  ( 437, 'CREATE_INVOICE_ITEM_TYPE', oils_i18n_gettext( 437, 
1369     'CREATE_INVOICE_ITEM_TYPE', 'ppl', 'description' )),
1370  ( 438, 'CREATE_INVOICE_METHOD', oils_i18n_gettext( 438, 
1371     'CREATE_INVOICE_METHOD', 'ppl', 'description' )),
1372  ( 439, 'CREATE_MERGE_PROFILE', oils_i18n_gettext( 439, 
1373     'CREATE_MERGE_PROFILE', 'ppl', 'description' )),
1374  ( 440, 'CREATE_METABIB_CLASS', oils_i18n_gettext( 440, 
1375     'CREATE_METABIB_CLASS', 'ppl', 'description' )),
1376  ( 441, 'CREATE_METABIB_SEARCH_ALIAS', oils_i18n_gettext( 441, 
1377     'CREATE_METABIB_SEARCH_ALIAS', 'ppl', 'description' )),
1378  ( 442, 'CREATE_USER_BTYPE', oils_i18n_gettext( 442, 
1379     'CREATE_USER_BTYPE', 'ppl', 'description' )),
1380  ( 443, 'DELETE_BIB_BTYPE', oils_i18n_gettext( 443, 
1381     'DELETE_BIB_BTYPE', 'ppl', 'description' )),
1382  ( 444, 'DELETE_BIBLIO_FINGERPRINT', oils_i18n_gettext( 444, 
1383     'DELETE_BIBLIO_FINGERPRINT', 'ppl', 'description' )),
1384  ( 445, 'DELETE_BIB_SOURCE', oils_i18n_gettext( 445, 
1385     'DELETE_BIB_SOURCE', 'ppl', 'description' )),
1386  ( 446, 'DELETE_BILLING_TYPE', oils_i18n_gettext( 446, 
1387     'DELETE_BILLING_TYPE', 'ppl', 'description' )),
1388  ( 447, 'DELETE_CN_BTYPE', oils_i18n_gettext( 447, 
1389     'DELETE_CN_BTYPE', 'ppl', 'description' )),
1390  ( 448, 'DELETE_COPY_BTYPE', oils_i18n_gettext( 448, 
1391     'DELETE_COPY_BTYPE', 'ppl', 'description' )),
1392  ( 449, 'DELETE_INVOICE_ITEM_TYPE', oils_i18n_gettext( 449, 
1393     'DELETE_INVOICE_ITEM_TYPE', 'ppl', 'description' )),
1394  ( 450, 'DELETE_INVOICE_METHOD', oils_i18n_gettext( 450, 
1395     'DELETE_INVOICE_METHOD', 'ppl', 'description' )),
1396  ( 451, 'DELETE_MERGE_PROFILE', oils_i18n_gettext( 451, 
1397     'DELETE_MERGE_PROFILE', 'ppl', 'description' )),
1398  ( 452, 'DELETE_METABIB_CLASS', oils_i18n_gettext( 452, 
1399     'DELETE_METABIB_CLASS', 'ppl', 'description' )),
1400  ( 453, 'DELETE_METABIB_SEARCH_ALIAS', oils_i18n_gettext( 453, 
1401     'DELETE_METABIB_SEARCH_ALIAS', 'ppl', 'description' )),
1402  ( 454, 'DELETE_USER_BTYPE', oils_i18n_gettext( 454, 
1403     'DELETE_USER_BTYPE', 'ppl', 'description' )),
1404  ( 455, 'MANAGE_CLAIM', oils_i18n_gettext( 455, 
1405     'MANAGE_CLAIM', 'ppl', 'description' )),
1406  ( 456, 'UPDATE_BIB_BTYPE', oils_i18n_gettext( 456, 
1407     'UPDATE_BIB_BTYPE', 'ppl', 'description' )),
1408  ( 457, 'UPDATE_BIBLIO_FINGERPRINT', oils_i18n_gettext( 457, 
1409     'UPDATE_BIBLIO_FINGERPRINT', 'ppl', 'description' )),
1410  ( 458, 'UPDATE_BIB_SOURCE', oils_i18n_gettext( 458, 
1411     'UPDATE_BIB_SOURCE', 'ppl', 'description' )),
1412  ( 459, 'UPDATE_BILLING_TYPE', oils_i18n_gettext( 459, 
1413     'UPDATE_BILLING_TYPE', 'ppl', 'description' )),
1414  ( 460, 'UPDATE_CN_BTYPE', oils_i18n_gettext( 460, 
1415     'UPDATE_CN_BTYPE', 'ppl', 'description' )),
1416  ( 461, 'UPDATE_COPY_BTYPE', oils_i18n_gettext( 461, 
1417     'UPDATE_COPY_BTYPE', 'ppl', 'description' )),
1418  ( 462, 'UPDATE_INVOICE_ITEM_TYPE', oils_i18n_gettext( 462, 
1419     'UPDATE_INVOICE_ITEM_TYPE', 'ppl', 'description' )),
1420  ( 463, 'UPDATE_INVOICE_METHOD', oils_i18n_gettext( 463, 
1421     'UPDATE_INVOICE_METHOD', 'ppl', 'description' )),
1422  ( 464, 'UPDATE_MERGE_PROFILE', oils_i18n_gettext( 464, 
1423     'UPDATE_MERGE_PROFILE', 'ppl', 'description' )),
1424  ( 465, 'UPDATE_METABIB_CLASS', oils_i18n_gettext( 465, 
1425     'UPDATE_METABIB_CLASS', 'ppl', 'description' )),
1426  ( 466, 'UPDATE_METABIB_SEARCH_ALIAS', oils_i18n_gettext( 466, 
1427     'UPDATE_METABIB_SEARCH_ALIAS', 'ppl', 'description' )),
1428  ( 467, 'UPDATE_USER_BTYPE', oils_i18n_gettext( 467, 
1429     'UPDATE_USER_BTYPE', 'ppl', 'description' )),
1430  ( 468, 'user_request.create', oils_i18n_gettext( 468, 
1431     'user_request.create', 'ppl', 'description' )),
1432  ( 469, 'user_request.delete', oils_i18n_gettext( 469, 
1433     'user_request.delete', 'ppl', 'description' )),
1434  ( 470, 'user_request.update', oils_i18n_gettext( 470, 
1435     'user_request.update', 'ppl', 'description' )),
1436  ( 471, 'user_request.view', oils_i18n_gettext( 471, 
1437     'user_request.view', 'ppl', 'description' )),
1438  ( 472, 'VIEW_ACQ_FUND_ALLOCATION_PERCENT', oils_i18n_gettext( 472, 
1439     'VIEW_ACQ_FUND_ALLOCATION_PERCENT', 'ppl', 'description' )),
1440  ( 473, 'VIEW_CIRC_MATRIX_MATCHPOINT', oils_i18n_gettext( 473, 
1441     'VIEW_CIRC_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1442  ( 474, 'VIEW_CLAIM', oils_i18n_gettext( 474, 
1443     'VIEW_CLAIM', 'ppl', 'description' )),
1444  ( 475, 'VIEW_GROUP_PENALTY_THRESHOLD', oils_i18n_gettext( 475, 
1445     'VIEW_GROUP_PENALTY_THRESHOLD', 'ppl', 'description' )),
1446  ( 476, 'VIEW_HOLD_MATRIX_MATCHPOINT', oils_i18n_gettext( 476, 
1447     'VIEW_HOLD_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1448  ( 477, 'VIEW_INVOICE', oils_i18n_gettext( 477, 
1449     'VIEW_INVOICE', 'ppl', 'description' )),
1450  ( 478, 'VIEW_MERGE_PROFILE', oils_i18n_gettext( 478, 
1451     'VIEW_MERGE_PROFILE', 'ppl', 'description' )),
1452  ( 479, 'VIEW_SERIAL_SUBSCRIPTION', oils_i18n_gettext( 479, 
1453     'VIEW_SERIAL_SUBSCRIPTION', 'ppl', 'description' )),
1454  ( 480, 'VIEW_STANDING_PENALTY', oils_i18n_gettext( 480, 
1455     'VIEW_STANDING_PENALTY', 'ppl', 'description' )),
1456  ( 481, 'ADMIN_SERIAL_CAPTION_PATTERN', oils_i18n_gettext( 481, 
1457     'ADMIN_SERIAL_CAPTION_PATTERN', 'ppl', 'description' )),
1458  ( 482, 'ADMIN_SERIAL_DISTRIBUTION', oils_i18n_gettext( 482, 
1459     'ADMIN_SERIAL_DISTRIBUTION', 'ppl', 'description' )),
1460  ( 483, 'ADMIN_SERIAL_STREAM', oils_i18n_gettext( 483, 
1461     'ADMIN_SERIAL_STREAM', 'ppl', 'description' )),
1462  ( 484, 'RECEIVE_SERIAL', oils_i18n_gettext(484,
1463         'Receive serial items', 'ppl', 'description')),
1464  ( 485, 'CREATE_VOLUME_SUFFIX', oils_i18n_gettext(485,
1465     'Create suffix label definition.', 'ppl', 'description')),
1466  ( 486, 'UPDATE_VOLUME_SUFFIX', oils_i18n_gettext(486,
1467     'Update suffix label definition.', 'ppl', 'description')),
1468  ( 487, 'DELETE_VOLUME_SUFFIX', oils_i18n_gettext(487,
1469     'Delete suffix label definition.', 'ppl', 'description')),
1470  ( 488, 'CREATE_VOLUME_PREFIX', oils_i18n_gettext(488,
1471     'Create prefix label definition.', 'ppl', 'description')),
1472  ( 489, 'UPDATE_VOLUME_PREFIX', oils_i18n_gettext(489,
1473     'Update prefix label definition.', 'ppl', 'description')),
1474  ( 490, 'DELETE_VOLUME_PREFIX', oils_i18n_gettext(490,
1475     'Delete prefix label definition.', 'ppl', 'description')),
1476  ( 491, 'CREATE_MONOGRAPH_PART', oils_i18n_gettext(491,
1477     'Create monograph part definition.', 'ppl', 'description')),
1478  ( 492, 'UPDATE_MONOGRAPH_PART', oils_i18n_gettext(492,
1479     'Update monograph part definition.', 'ppl', 'description')),
1480  ( 493, 'DELETE_MONOGRAPH_PART', oils_i18n_gettext(493,
1481     'Delete monograph part definition.', 'ppl', 'description')),
1482  ( 494, 'ADMIN_CODED_VALUE', oils_i18n_gettext(494,
1483     'Create/Update/Delete SVF Record Attribute Coded Value Map', 'ppl', 'description')),
1484  ( 495, 'ADMIN_SERIAL_ITEM', oils_i18n_gettext(495,
1485     'Create/Retrieve/Update/Delete Serial Item', 'ppl', 'description')),
1486  ( 496, 'ADMIN_SVF', oils_i18n_gettext(496,
1487     'Create/Update/Delete SVF Record Attribute Defintion', 'ppl', 'description')),
1488  ( 497, 'CREATE_BIB_PTYPE', oils_i18n_gettext(497,
1489     'Create Bibliographic Record Peer Type', 'ppl', 'description')),
1490  ( 498, 'CREATE_PURCHASE_REQUEST', oils_i18n_gettext(498,
1491     'Create User Purchase Request', 'ppl', 'description')),
1492  ( 499, 'DELETE_BIB_PTYPE', oils_i18n_gettext(499,
1493     'Delete Bibliographic Record Peer Type', 'ppl', 'description')),
1494  ( 500, 'MAP_MONOGRAPH_PART', oils_i18n_gettext(500,
1495     'Create/Update/Delete Copy Monograph Part Map', 'ppl', 'description')),
1496  ( 501, 'MARK_ITEM_MISSING_PIECES', oils_i18n_gettext(501,
1497     'Allows the Mark Item Missing Pieces action.', 'ppl', 'description')),
1498  ( 502, 'UPDATE_BIB_PTYPE', oils_i18n_gettext(502,
1499     'Update Bibliographic Record Peer Type', 'ppl', 'description')),
1500  ( 503, 'UPDATE_HOLD_REQUEST_TIME', oils_i18n_gettext(503,
1501     'Allows editing of a hold''s request time, and/or its Cut-in-line/Top-of-queue flag.', 'ppl', 'description')),
1502  ( 504, 'UPDATE_PICKLIST', oils_i18n_gettext(504,
1503     'Allows update/re-use of an acquisitions pick/selection list.', 'ppl', 'description')),
1504  ( 505, 'UPDATE_WORKSTATION', oils_i18n_gettext(505,
1505     'Allows update of a workstation during workstation registration override.', 'ppl', 'description')),
1506  ( 506, 'VIEW_USER_SETTING_TYPE', oils_i18n_gettext(506,
1507     'Allows viewing of configurable user setting types.', 'ppl', 'description')),
1508  ( 507, 'ABORT_TRANSIT_ON_LOST', oils_i18n_gettext(507,
1509     'Allows a user to abort a transit on a copy with status of LOST', 'ppl', 'description')),
1510  ( 508, 'ABORT_TRANSIT_ON_MISSING', oils_i18n_gettext(508,
1511     'Allows a user to abort a transit on a copy with status of MISSING', 'ppl', 'description')),
1512  ( 509, 'TRANSIT_CHECKIN_INTERVAL_BLOCK.override', oils_i18n_gettext(509,
1513     'Allows a user to override the TRANSIT_CHECKIN_INTERVAL_BLOCK event', 'ppl', 'description')),
1514  ( 510, 'UPDATE_PATRON_COLLECTIONS_EXEMPT', oils_i18n_gettext(510,
1515     'Allows a user to indicate that a patron is exempt from collections processing', 'ppl', 'description')),
1516  ( 511, 'PERSISTENT_LOGIN', oils_i18n_gettext( 511,
1517     'Allows a user to authenticate and get a long-lived session (length configured in opensrf.xml)', 'ppl', 'description' )),
1518  ( 512, 'ACQ_INVOICE_REOPEN', oils_i18n_gettext( 512,
1519     'Allows a user to reopen an Acquisitions invoice', 'ppl', 'description' )),
1520  ( 513, 'DEBUG_CLIENT', oils_i18n_gettext( 513,
1521     'Allows a user to use debug functions in the staff client', 'ppl', 'description' )),
1522  ( 514, 'UPDATE_PATRON_ACTIVE_CARD', oils_i18n_gettext( 514,
1523     'Allows a user to manually adjust a patron''s active cards', 'ppl', 'description')),
1524  ( 515, 'UPDATE_PATRON_PRIMARY_CARD', oils_i18n_gettext( 515,
1525     'Allows a user to manually adjust a patron''s primary card', 'ppl', 'description')),
1526  ( 516, 'CREATE_REPORT_TEMPLATE', oils_i18n_gettext( 516,
1527     'Allows a user to create report templates', 'ppl', 'description' )),
1528  ( 517, 'COPY_HOLDS_FORCE', oils_i18n_gettext( 517, 
1529     'Allow a user to place a force hold on a specific copy', 'ppl', 'description' )),
1530  ( 518, 'COPY_HOLDS_RECALL', oils_i18n_gettext( 518, 
1531     'Allow a user to place a cataloging recall on a specific copy', 'ppl', 'description' )),
1532  ( 519, 'ADMIN_SMS_CARRIER', oils_i18n_gettext( 519,
1533     'Allows a user to add/create/delete SMS Carrier entries.', 'ppl', 'description' )),
1534  ( 520, 'COPY_DELETE_WARNING.override', oils_i18n_gettext( 520,
1535     'Allow a user to override warnings about deleting copies in problematic situations.', 'ppl', 'description' )),
1536  ( 521, 'IMPORT_ACQ_LINEITEM_BIB_RECORD_UPLOAD', oils_i18n_gettext( 521,
1537     'Allows a user to create new bibs directly from an ACQ MARC file upload', 'ppl', 'description' )),
1538  ( 522, 'IMPORT_AUTHORITY_MARC', oils_i18n_gettext( 522,
1539     'Allows a user to create new authority records', 'ppl', 'description' )),
1540  ( 523, 'ADMIN_TOOLBAR', oils_i18n_gettext( 523,
1541     'Allows a user to create, edit, and delete custom toolbars', 'ppl', 'description' )),
1542  ( 524, 'PLACE_UNFILLABLE_HOLD', oils_i18n_gettext( 524,
1543     'Allows a user to place a hold that cannot currently be filled.', 'ppl', 'description' )),
1544  ( 525, 'CREATE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 525, 
1545     'User may set a default entry in a patron statistical category', 'ppl', 'description' )),
1546  ( 526, 'UPDATE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 526, 
1547     'User may reset a default entry in a patron statistical category', 'ppl', 'description' )),
1548  ( 527, 'DELETE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 527, 
1549     'User may unset a default entry in a patron statistical category', 'ppl', 'description' )),
1550  ( 528, 'ADMIN_ORG_UNIT_CUSTOM_TREE', oils_i18n_gettext( 528, 
1551     'User may update custom org unit trees', 'ppl', 'description' )),
1552  ( 529, 'ADMIN_IMPORT_MATCH_SET', oils_i18n_gettext( 529,
1553     'Allows a user to create/retrieve/update/delete vandelay match sets', 'ppl', 'description' )),
1554  ( 530, 'VIEW_IMPORT_MATCH_SET', oils_i18n_gettext( 530,
1555     'Allows a user to view vandelay match sets', 'ppl', 'description' )),
1556  ( 531, 'ADMIN_ADDRESS_ALERT', oils_i18n_gettext( 531,
1557     'Allows a user to create/retrieve/update/delete address alerts', 'ppl', 'description' )), 
1558  ( 532, 'VIEW_ADDRESS_ALERT', oils_i18n_gettext( 532,
1559     'Allows a user to view address alerts', 'ppl', 'description' )), 
1560  ( 533, 'ADMIN_COPY_LOCATION_GROUP', oils_i18n_gettext( 533,
1561     'Allows a user to create/retrieve/update/delete copy location groups', 'ppl', 'description' )), 
1562  ( 534, 'ADMIN_USER_ACTIVITY_TYPE', oils_i18n_gettext( 534,
1563     'Allows a user to create/retrieve/update/delete user activity types', 'ppl', 'description' )),
1564 ( 535, 'VIEW_TRIGGER_EVENT', oils_i18n_gettext( 535,
1565     'Allows a user to view circ- and hold-related action/trigger events', 'ppl', 'description')),
1566 ( 536, 'IMPORT_OVERLAY_COPY', oils_i18n_gettext( 536,
1567     'Allows a user to overlay copy data in MARC import', 'ppl', 'description')),
1568  ( 537, 'ADMIN_SEARCH_FILTER_GROUP', oils_i18n_gettext( 537,
1569     'Allows staff to manage search filter groups and entries', 'ppl', 'description' )),
1570  ( 538, 'VIEW_SEARCH_FILTER_GROUP', oils_i18n_gettext( 538,
1571     'Allows staff to view search filter groups and entries', 'ppl', 'description' )),
1572  ( 539, 'UPDATE_ORG_UNIT_SETTING.ui.hide_copy_editor_fields', oils_i18n_gettext( 539,
1573     'Allows staff to edit displayed copy editor fields', 'ppl', 'description' )),
1574  ( 540, 'ADMIN_TOOLBAR_FOR_ORG', oils_i18n_gettext( 540,
1575         'Allows a user to create, edit, and delete custom toolbars for org units', 'ppl', 'description')),
1576  ( 541, 'ADMIN_TOOLBAR_FOR_WORKSTATION', oils_i18n_gettext( 541,
1577         'Allows a user to create, edit, and delete custom toolbars for workstations', 'ppl', 'description')),
1578  ( 542, 'ADMIN_TOOLBAR_FOR_USER', oils_i18n_gettext( 542,
1579         'Allows a user to create, edit, and delete custom toolbars for users', 'ppl', 'description')),
1580  ( 543, 'URL_VERIFY', oils_i18n_gettext( 543, 
1581     'Allows a user to process and verify ULSs', 'ppl', 'description')),
1582  ( 544, 'URL_VERIFY_UPDATE_SETTINGS', oils_i18n_gettext( 544, 
1583     'Allows a user to configure URL verification org unit settings', 'ppl', 'description')),
1584  ( 545, 'SAVED_FILTER_DIALOG_FILTERS', oils_i18n_gettext( 545,
1585     'Allows users to save and load sets of filters for filter dialogs, available in certain staff interfaces', 'ppl', 'description')),
1586  ( 546, 'ADMIN_HOLD_CAPTURE_SORT', oils_i18n_gettext( 546,
1587         'Allows a user to make changes to best-hold selection sort order', 'ppl', 'description')),
1588  ( 547, 'ACQ_ADD_LINEITEM_IDENTIFIER', oils_i18n_gettext(547,
1589         'When granted, newly added lineitem identifiers will propagate to linked bib records', 'ppl', 'description')),
1590  ( 548, 'ACQ_SET_LINEITEM_IDENTIFIER', oils_i18n_gettext(548,
1591         'Allows staff to change the lineitem identifier', 'ppl', 'description'))
1592 ;
1593
1594
1595 SELECT SETVAL('permission.perm_list_id_seq'::TEXT, 1000);
1596
1597 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1598         (1, oils_i18n_gettext(1, 'Users', 'pgt', 'name'), NULL, NULL, '3 years', FALSE, 'group_application.user');
1599 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1600         (2, oils_i18n_gettext(2, 'Patrons', 'pgt', 'name'), 1, NULL, '3 years', TRUE, 'group_application.user.patron');
1601 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1602         (3, oils_i18n_gettext(3, 'Staff', 'pgt', 'name'), 1, NULL, '3 years', FALSE, 'group_application.user.staff');
1603 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1604         (4, oils_i18n_gettext(4, 'Catalogers', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.cat');
1605 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1606         (5, oils_i18n_gettext(5, 'Circulators', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.circ');
1607 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1608         (6, oils_i18n_gettext(6, 'Acquisitions', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.acq');
1609 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1610         (7, oils_i18n_gettext(7, 'Acquisitions Administrator', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.acq_admin');
1611 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1612         (8, oils_i18n_gettext(8, 'Cataloging Administrator', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.cat_admin');
1613 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1614         (9, oils_i18n_gettext(9, 'Circulation Administrator', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.circ_admin');
1615 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1616         (10, oils_i18n_gettext(10, 'Local Administrator', 'pgt', 'name'), 3, 
1617         oils_i18n_gettext(10, 'Can do anything at the Branch level', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.admin.local_admin');
1618 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1619         (11, oils_i18n_gettext(11, 'Serials', 'pgt', 'name'), 3, 
1620         oils_i18n_gettext(11, 'Serials (includes admin features)', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.serials');
1621 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1622         (12, oils_i18n_gettext(12, 'System Administrator', 'pgt', 'name'), 3, 
1623         oils_i18n_gettext(12, 'Can do anything at the System level', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.admin.system_admin');
1624 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1625         (13, oils_i18n_gettext(13, 'Global Administrator', 'pgt', 'name'), 3, 
1626         oils_i18n_gettext(13, 'Can do anything at the Consortium level', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.admin.global_admin');
1627 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1628         (14, oils_i18n_gettext(14, 'Data Review', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.data_review');
1629 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1630         (15, oils_i18n_gettext(15, 'Volunteers', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.volunteers');
1631
1632 SELECT SETVAL('permission.grp_tree_id_seq'::TEXT, (SELECT MAX(id) FROM permission.grp_tree));
1633
1634 INSERT INTO permission.grp_penalty_threshold (grp,org_unit,penalty,threshold)
1635     VALUES (1,1,1,10.0);
1636 INSERT INTO permission.grp_penalty_threshold (grp,org_unit,penalty,threshold)
1637     VALUES (1,1,2,10.0);
1638 INSERT INTO permission.grp_penalty_threshold (grp,org_unit,penalty,threshold)
1639     VALUES (1,1,3,10.0);
1640
1641 SELECT SETVAL('permission.grp_penalty_threshold_id_seq'::TEXT, (SELECT MAX(id) FROM permission.grp_penalty_threshold));
1642
1643
1644 -- Add basic user permissions to the Users group
1645
1646 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1647         SELECT
1648                 pgt.id, perm.id, aout.depth, FALSE
1649         FROM
1650                 permission.grp_tree pgt,
1651                 permission.perm_list perm,
1652                 actor.org_unit_type aout
1653         WHERE
1654                 pgt.name = 'Users' AND
1655                 aout.name = 'Consortium' AND
1656                 perm.code IN (
1657                         'COPY_CHECKIN',
1658                         'CREATE_MY_CONTAINER',
1659                         'CREATE_PURCHASE_REQUEST',
1660                         'MR_HOLDS',
1661                         'OPAC_LOGIN',
1662                         'PERSISTENT_LOGIN',
1663                         'RENEW_CIRC',
1664                         'TITLE_HOLDS',
1665                         'user_request.create'
1666                 );
1667
1668
1669 -- Add basic user permissions to the Data Review group
1670
1671 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1672         SELECT
1673                 pgt.id, perm.id, aout.depth, FALSE
1674         FROM
1675                 permission.grp_tree pgt,
1676                 permission.perm_list perm,
1677                 actor.org_unit_type aout
1678         WHERE
1679                 pgt.name = 'Data Review' AND
1680                 aout.name = 'Consortium' AND
1681                 perm.code IN (
1682                         'CREATE_COPY_TRANSIT',
1683                         'VIEW_BILLING_TYPE',
1684                         'VIEW_CIRCULATIONS',
1685                         'VIEW_COPY_NOTES',
1686                         'VIEW_HOLD',
1687                         'VIEW_ORG_SETTINGS',
1688                         'VIEW_TITLE_NOTES',
1689                         'VIEW_TRANSACTION',
1690                         'VIEW_USER',
1691                         'VIEW_USER_FINES_SUMMARY',
1692                         'VIEW_USER_TRANSACTIONS',
1693                         'VIEW_VOLUME_NOTES',
1694                         'VIEW_ZIP_DATA');
1695
1696 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1697         SELECT
1698                 pgt.id, perm.id, aout.depth, FALSE
1699         FROM
1700                 permission.grp_tree pgt,
1701                 permission.perm_list perm,
1702                 actor.org_unit_type aout
1703         WHERE
1704                 pgt.name = 'Data Review' AND
1705                 aout.name = 'System' AND
1706                 perm.code IN (
1707                         'COPY_CHECKOUT',
1708                         'COPY_HOLDS',
1709                         'CREATE_IN_HOUSE_USE',
1710                         'CREATE_TRANSACTION',
1711                         'OFFLINE_EXECUTE',
1712                         'OFFLINE_VIEW',
1713                         'STAFF_LOGIN',
1714                         'VOLUME_HOLDS');
1715
1716
1717 -- Add basic staff permissions to the Staff group
1718
1719 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1720         SELECT
1721                 pgt.id, perm.id, aout.depth, FALSE
1722         FROM
1723                 permission.grp_tree pgt,
1724                 permission.perm_list perm,
1725                 actor.org_unit_type aout
1726         WHERE
1727                 pgt.name = 'Staff' AND
1728                 aout.name = 'Consortium' AND
1729                 perm.code IN (
1730                         'CREATE_CONTAINER',
1731                         'CREATE_CONTAINER_ITEM',
1732                         'CREATE_COPY_TRANSIT',
1733                         'CREATE_HOLD_NOTIFICATION',
1734                         'CREATE_TRANSACTION',
1735                         'CREATE_TRANSIT',
1736                         'DELETE_CONTAINER',
1737                         'DELETE_CONTAINER_ITEM',
1738                         'group_application.user',
1739                         'group_application.user.patron',
1740                         'REGISTER_WORKSTATION',
1741                         'REMOTE_Z3950_QUERY',
1742                         'REQUEST_HOLDS',
1743                         'STAFF_LOGIN',
1744                         'TRANSIT_COPY',
1745                         'UPDATE_CONTAINER',
1746                         'VIEW_CONTAINER',
1747                         'VIEW_COPY_CHECKOUT_HISTORY',
1748                         'VIEW_COPY_NOTES',
1749                         'VIEW_HOLD',
1750                         'VIEW_HOLD_NOTIFICATION',
1751                         'VIEW_HOLD_PERMIT',
1752                         'VIEW_PERM_GROUPS',
1753                         'VIEW_PERMISSION',
1754                         'VIEW_TITLE_NOTES',
1755                         'VIEW_TRANSACTION',
1756                         'VIEW_USER_SETTING_TYPE',
1757                         'VIEW_VOLUME_NOTES'
1758                 );
1759
1760 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1761         SELECT
1762                 pgt.id, perm.id, aout.depth, FALSE
1763         FROM
1764                 permission.grp_tree pgt,
1765                 permission.perm_list perm,
1766                 actor.org_unit_type aout
1767         WHERE
1768                 pgt.name = 'Staff' AND
1769                 aout.name = 'System' AND
1770                 perm.code IN (
1771                         'CREATE_USER',
1772                         'UPDATE_USER',
1773                         'VIEW_BILLING_TYPE',
1774                         'VIEW_CIRCULATIONS',
1775                         'VIEW_ORG_SETTINGS',
1776                         'VIEW_PERMIT_CHECKOUT',
1777                         'VIEW_USER',
1778                         'VIEW_USER_FINES_SUMMARY',
1779                         'VIEW_USER_TRANSACTIONS');
1780
1781 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1782         SELECT
1783                 pgt.id, perm.id, aout.depth, FALSE
1784         FROM
1785                 permission.grp_tree pgt,
1786                 permission.perm_list perm,
1787                 actor.org_unit_type aout
1788         WHERE
1789                 pgt.name = 'Staff' AND
1790                 aout.name = 'Branch' AND
1791                 perm.code IN (
1792                         'CANCEL_HOLDS',
1793                         'COPY_CHECKOUT',
1794                         'COPY_HOLDS',
1795                         'COPY_TRANSIT_RECEIVE',
1796                         'CREATE_BILL',
1797                         'CREATE_IN_HOUSE_USE',
1798                         'CREATE_PAYMENT',
1799                         'RENEW_HOLD_OVERRIDE',
1800                         'UPDATE_COPY',
1801                         'UPDATE_VOLUME',
1802                         'ADMIN_TOOLBAR',
1803                         'VOLUME_HOLDS');
1804
1805
1806 -- Add basic cataloguing permissions to the Catalogers group
1807
1808 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1809         SELECT
1810                 pgt.id, perm.id, aout.depth, FALSE
1811         FROM
1812                 permission.grp_tree pgt,
1813                 permission.perm_list perm,
1814                 actor.org_unit_type aout
1815         WHERE
1816                 pgt.name = 'Catalogers' AND
1817                 aout.name = 'Consortium' AND
1818                 perm.code IN (
1819                         'ALLOW_ALT_TCN',
1820                         'CREATE_BIB_IMPORT_QUEUE',
1821                         'CREATE_IMPORT_ITEM',
1822                         'CREATE_MARC',
1823                         'CREATE_TITLE_NOTE',
1824                         'DELETE_BIB_IMPORT_QUEUE',
1825                         'DELETE_IMPORT_ITEM',
1826                         'DELETE_RECORD',
1827                         'DELETE_TITLE_NOTE',
1828                         'IMPORT_ACQ_LINEITEM_BIB_RECORD',
1829                         'IMPORT_MARC',
1830             'IMPORT_AUTHORITY_MARC',
1831                         'MERGE_AUTH_RECORDS',
1832                         'MERGE_BIB_RECORDS',
1833                         'UPDATE_AUTHORITY_IMPORT_QUEUE',
1834                         'UPDATE_AUTHORITY_RECORD_NOTE',
1835                         'UPDATE_BIB_IMPORT_QUEUE',
1836                         'UPDATE_MARC',
1837                         'UPDATE_RECORD',
1838                         'user_request.view',
1839                         'VIEW_AUTHORITY_RECORD_NOTES');
1840
1841 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1842         SELECT
1843                 pgt.id, perm.id, aout.depth, FALSE
1844         FROM
1845                 permission.grp_tree pgt,
1846                 permission.perm_list perm,
1847                 actor.org_unit_type aout
1848         WHERE
1849                 pgt.name = 'Catalogers' AND
1850                 aout.name = 'System' AND
1851                 perm.code IN (
1852                         'CREATE_COPY',
1853                         'CREATE_COPY_NOTE',
1854                         'CREATE_MFHD_RECORD',
1855                         'CREATE_VOLUME',
1856                         'CREATE_VOLUME_NOTE',
1857                         'DELETE_COPY',
1858                         'DELETE_COPY_NOTE',
1859                         'DELETE_MFHD_RECORD',
1860                         'DELETE_VOLUME',
1861                         'DELETE_VOLUME_NOTE',
1862                         'MAP_MONOGRAPH_PART',
1863                         'MARK_ITEM_AVAILABLE',
1864                         'MARK_ITEM_BINDERY',
1865                         'MARK_ITEM_CHECKED_OUT',
1866                         'MARK_ITEM_ILL',
1867                         'MARK_ITEM_IN_PROCESS',
1868                         'MARK_ITEM_IN_TRANSIT',
1869                         'MARK_ITEM_LOST',
1870                         'MARK_ITEM_MISSING',
1871                         'MARK_ITEM_ON_HOLDS_SHELF',
1872                         'MARK_ITEM_ON_ORDER',
1873                         'MARK_ITEM_RESHELVING',
1874                         'UPDATE_COPY',
1875                         'UPDATE_COPY_NOTE',
1876                         'UPDATE_IMPORT_ITEM',
1877                         'UPDATE_MFHD_RECORD',
1878                         'UPDATE_VOLUME',
1879                         'UPDATE_VOLUME_NOTE',
1880                         'VIEW_SERIAL_SUBSCRIPTION');
1881
1882
1883 -- Add advanced cataloguing permissions to the Cataloging Admin group
1884
1885 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1886         SELECT
1887                 pgt.id, perm.id, aout.depth, TRUE
1888         FROM
1889                 permission.grp_tree pgt,
1890                 permission.perm_list perm,
1891                 actor.org_unit_type aout
1892         WHERE
1893                 pgt.name = 'Cataloging Administrator' AND
1894                 aout.name = 'Consortium' AND
1895                 perm.code IN (
1896                         'ADMIN_IMPORT_ITEM_ATTR_DEF',
1897                         'ADMIN_MERGE_PROFILE',
1898                         'CREATE_AUTHORITY_IMPORT_IMPORT_DEF',
1899                         'CREATE_BIB_IMPORT_FIELD_DEF',
1900                         'CREATE_BIB_PTYPE',
1901                         'CREATE_BIB_SOURCE',
1902                         'CREATE_IMPORT_ITEM_ATTR_DEF',
1903                         'CREATE_IMPORT_TRASH_FIELD',
1904                         'CREATE_MERGE_PROFILE',
1905                         'CREATE_MONOGRAPH_PART',
1906                         'CREATE_VOLUME_PREFIX',
1907                         'CREATE_VOLUME_SUFFIX',
1908                         'DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF',
1909                         'DELETE_BIB_PTYPE',
1910                         'DELETE_BIB_SOURCE',
1911                         'DELETE_IMPORT_ITEM_ATTR_DEF',
1912                         'DELETE_IMPORT_TRASH_FIELD',
1913                         'DELETE_MERGE_PROFILE',
1914                         'DELETE_MONOGRAPH_PART',
1915                         'DELETE_VOLUME_PREFIX',
1916                         'DELETE_VOLUME_SUFFIX',
1917                         'MAP_MONOGRAPH_PART',
1918                         'UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF',
1919                         'UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF',
1920                         'UPDATE_BIB_PTYPE',
1921                         'UPDATE_IMPORT_ITEM_ATTR_DEF',
1922                         'UPDATE_IMPORT_TRASH_FIELD',
1923                         'UPDATE_MERGE_PROFILE',
1924                         'UPDATE_MONOGRAPH_PART',
1925                         'UPDATE_VOLUME_PREFIX',
1926                         'UPDATE_VOLUME_SUFFIX'
1927                 );
1928
1929 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1930         SELECT
1931                 pgt.id, perm.id, aout.depth, TRUE
1932         FROM
1933                 permission.grp_tree pgt,
1934                 permission.perm_list perm,
1935                 actor.org_unit_type aout
1936         WHERE
1937                 pgt.name = 'Cataloging Administrator' AND
1938                 aout.name = 'System' AND
1939                 perm.code IN (
1940                         'CREATE_COPY_STAT_CAT',
1941                         'CREATE_COPY_STAT_CAT_ENTRY',
1942                         'CREATE_COPY_STAT_CAT_ENTRY_MAP',
1943                         'RUN_REPORTS',
1944                         'CREATE_REPORT_TEMPLATE',
1945                         'SHARE_REPORT_FOLDER',
1946                         'UPDATE_COPY_LOCATION',
1947                         'UPDATE_COPY_STAT_CAT',
1948                         'UPDATE_COPY_STAT_CAT_ENTRY',
1949                         'VIEW_REPORT_OUTPUT');
1950
1951
1952 -- Add basic circulation permissions to the Circulators group
1953
1954 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1955         SELECT
1956                 pgt.id, perm.id, aout.depth, FALSE
1957         FROM
1958                 permission.grp_tree pgt,
1959                 permission.perm_list perm,
1960                 actor.org_unit_type aout
1961         WHERE
1962                 pgt.name = 'Circulators' AND
1963                 aout.name = 'Branch' AND
1964                 perm.code IN (
1965                         'ADMIN_BOOKING_RESERVATION',
1966                         'ADMIN_BOOKING_RESOURCE',
1967                         'ADMIN_BOOKING_RESOURCE_ATTR',
1968                         'ADMIN_BOOKING_RESOURCE_ATTR_MAP',
1969                         'ADMIN_BOOKING_RESOURCE_ATTR_VALUE',
1970                         'ADMIN_BOOKING_RESOURCE_TYPE',
1971                         'ASSIGN_GROUP_PERM',
1972                         'MARK_ITEM_AVAILABLE',
1973                         'MARK_ITEM_BINDERY',
1974                         'MARK_ITEM_CHECKED_OUT',
1975                         'MARK_ITEM_ILL',
1976                         'MARK_ITEM_IN_PROCESS',
1977                         'MARK_ITEM_IN_TRANSIT',
1978                         'MARK_ITEM_LOST',
1979                         'MARK_ITEM_MISSING',
1980                         'MARK_ITEM_MISSING_PIECES',
1981                         'MARK_ITEM_ON_HOLDS_SHELF',
1982                         'MARK_ITEM_ON_ORDER',
1983                         'MARK_ITEM_RESHELVING',
1984                         'OFFLINE_UPLOAD',
1985                         'OFFLINE_VIEW',
1986                         'REMOVE_USER_GROUP_LINK',
1987                         'SET_CIRC_CLAIMS_RETURNED',
1988                         'SET_CIRC_CLAIMS_RETURNED.override',
1989                         'SET_CIRC_LOST',
1990                         'SET_CIRC_MISSING',
1991                         'UPDATE_BILL_NOTE',
1992                         'UPDATE_PATRON_CLAIM_NEVER_CHECKED_OUT_COUNT',
1993                         'UPDATE_PATRON_CLAIM_RETURN_COUNT',
1994                         'UPDATE_PAYMENT_NOTE',
1995                         'UPDATE_PICKUP_LIB FROM_TRANSIT',
1996                         'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF',
1997                         'VIEW_GROUP_PENALTY_THRESHOLD',
1998                         'VIEW_STANDING_PENALTY',
1999                         'VOID_BILLING',
2000                         'VOLUME_HOLDS');
2001
2002 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2003         SELECT
2004                 pgt.id, perm.id, aout.depth, FALSE
2005         FROM
2006                 permission.grp_tree pgt,
2007                 permission.perm_list perm,
2008                 actor.org_unit_type aout
2009         WHERE
2010                 pgt.name = 'Circulators' AND
2011                 aout.name = 'System' AND
2012                 perm.code IN (
2013                         'ABORT_REMOTE_TRANSIT',
2014                         'ABORT_TRANSIT',
2015                         'CAPTURE_RESERVATION',
2016                         'CIRC_CLAIMS_RETURNED.override',
2017                         'CIRC_EXCEEDS_COPY_RANGE.override',
2018                         'CIRC_OVERRIDE_DUE_DATE',
2019                         'CIRC_PERMIT_OVERRIDE',
2020                         'COPY_ALERT_MESSAGE.override',
2021                         'COPY_BAD_STATUS.override',
2022                         'COPY_CIRC_NOT_ALLOWED.override',
2023                         'COPY_IS_REFERENCE.override',
2024                         'COPY_NEEDED_FOR_HOLD.override',
2025                         'COPY_NOT_AVAILABLE.override',
2026                         'COPY_STATUS_LOST.override',
2027                         'COPY_STATUS_MISSING.override',
2028                         'CREATE_DUPLICATE_HOLDS',
2029                         'CREATE_USER_GROUP_LINK',
2030                         'DELETE_TRANSIT',
2031                         'HOLD_EXISTS.override',
2032                         'HOLD_ITEM_CHECKED_OUT.override',
2033                         'ISSUANCE_HOLDS',
2034                         'ITEM_AGE_PROTECTED.override',
2035                         'ITEM_ON_HOLDS_SHELF.override',
2036                         'MAX_RENEWALS_REACHED.override',
2037                         'OVERRIDE_HOLD_HAS_LOCAL_COPY',
2038                         'PATRON_EXCEEDS_CHECKOUT_COUNT.override',
2039                         'PATRON_EXCEEDS_FINES.override',
2040                         'PATRON_EXCEEDS_OVERDUE_COUNT.override',
2041                         'RETRIEVE_RESERVATION_PULL_LIST',
2042                         'UPDATE_HOLD');
2043
2044
2045 -- Add advanced circulation permissions to the Circulation Admin group
2046
2047 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2048         SELECT
2049                 pgt.id, perm.id, aout.depth, TRUE
2050         FROM
2051                 permission.grp_tree pgt,
2052                 permission.perm_list perm,
2053                 actor.org_unit_type aout
2054         WHERE
2055                 pgt.name = 'Circulation Administrator' AND
2056                 aout.name = 'Branch' AND
2057                 perm.code IN (
2058                         'DELETE_USER');
2059
2060 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2061         SELECT
2062                 pgt.id, perm.id, aout.depth, TRUE
2063         FROM
2064                 permission.grp_tree pgt,
2065                 permission.perm_list perm,
2066                 actor.org_unit_type aout
2067         WHERE
2068                 pgt.name = 'Circulation Administrator' AND
2069                 aout.name = 'Consortium' AND
2070                 perm.code IN (
2071                         'ADMIN_MAX_FINE_RULE',
2072                         'CREATE_CIRC_DURATION',
2073                         'DELETE_CIRC_DURATION',
2074                         'MARK_ITEM_MISSING_PIECES',
2075                         'UPDATE_CIRC_DURATION',
2076                         'UPDATE_HOLD_REQUEST_TIME',
2077                         'UPDATE_NET_ACCESS_LEVEL',
2078                         'VIEW_CIRC_MATRIX_MATCHPOINT',
2079             'ABORT_TRANSIT_ON_LOST', 
2080             'ABORT_TRANSIT_ON_MISSING',
2081             'UPDATE_PATRON_COLLECTIONS_EXEMPT',
2082                         'VIEW_HOLD_MATRIX_MATCHPOINT');
2083
2084 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2085         SELECT
2086                 pgt.id, perm.id, aout.depth, TRUE
2087         FROM
2088                 permission.grp_tree pgt,
2089                 permission.perm_list perm,
2090                 actor.org_unit_type aout
2091         WHERE
2092                 pgt.name = 'Circulation Administrator' AND
2093                 aout.name = 'System' AND
2094                 perm.code IN (
2095                         'ADMIN_BOOKING_RESERVATION',
2096                         'ADMIN_BOOKING_RESERVATION_ATTR_MAP',
2097                         'ADMIN_BOOKING_RESERVATION_ATTR_VALUE_MAP',
2098                         'ADMIN_BOOKING_RESOURCE',
2099                         'ADMIN_BOOKING_RESOURCE_ATTR',
2100                         'ADMIN_BOOKING_RESOURCE_ATTR_MAP',
2101                         'ADMIN_BOOKING_RESOURCE_ATTR_VALUE',
2102                         'ADMIN_BOOKING_RESOURCE_TYPE',
2103                         'ADMIN_COPY_LOCATION_ORDER',
2104                         'ADMIN_HOLD_CANCEL_CAUSE',
2105                         'ASSIGN_GROUP_PERM',
2106                         'BAR_PATRON',
2107                         'COPY_HOLDS',
2108                         'COPY_TRANSIT_RECEIVE',
2109                         'CREATE_BILL',
2110                         'CREATE_BILLING_TYPE',
2111                         'CREATE_NON_CAT_TYPE',
2112                         'CREATE_PATRON_STAT_CAT',
2113                         'CREATE_PATRON_STAT_CAT_ENTRY',
2114                         'CREATE_PATRON_STAT_CAT_ENTRY_DEFAULT',
2115                         'CREATE_PATRON_STAT_CAT_ENTRY_MAP',
2116                         'CREATE_USER_GROUP_LINK',
2117                         'DELETE_BILLING_TYPE',
2118                         'DELETE_NON_CAT_TYPE',
2119                         'DELETE_PATRON_STAT_CAT',
2120                         'DELETE_PATRON_STAT_CAT_ENTRY',
2121                         'DELETE_PATRON_STAT_CAT_ENTRY_DEFAULT',
2122                         'DELETE_PATRON_STAT_CAT_ENTRY_MAP',
2123                         'DELETE_TRANSIT',
2124                         'group_application.user.staff',
2125                         'MANAGE_BAD_DEBT',
2126                         'MARK_ITEM_AVAILABLE',
2127                         'MARK_ITEM_BINDERY',
2128                         'MARK_ITEM_CHECKED_OUT',
2129                         'MARK_ITEM_ILL',
2130                         'MARK_ITEM_IN_PROCESS',
2131                         'MARK_ITEM_IN_TRANSIT',
2132                         'MARK_ITEM_LOST',
2133                         'MARK_ITEM_MISSING',
2134                         'MARK_ITEM_ON_HOLDS_SHELF',
2135                         'MARK_ITEM_ON_ORDER',
2136                         'MARK_ITEM_RESHELVING',
2137                         'MERGE_USERS',
2138                         'money.collections_tracker.create',
2139                         'money.collections_tracker.delete',
2140                         'OFFLINE_EXECUTE',
2141                         'OFFLINE_UPLOAD',
2142                         'OFFLINE_VIEW',
2143                         'REMOVE_USER_GROUP_LINK',
2144                         'SET_CIRC_CLAIMS_RETURNED',
2145                         'SET_CIRC_CLAIMS_RETURNED.override',
2146                         'SET_CIRC_LOST',
2147                         'SET_CIRC_MISSING',
2148                         'UNBAR_PATRON',
2149                         'UPDATE_BILL_NOTE',
2150                         'UPDATE_NON_CAT_TYPE',
2151                         'UPDATE_PATRON_CLAIM_NEVER_CHECKED_OUT_COUNT',
2152                         'UPDATE_PATRON_CLAIM_RETURN_COUNT',
2153                         'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF',
2154                         'UPDATE_PICKUP_LIB_FROM_TRANSIT',
2155                         'UPDATE_USER',
2156                         'VIEW_REPORT_OUTPUT',
2157                         'VIEW_STANDING_PENALTY',
2158                         'VOID_BILLING',
2159             'TRANSIT_CHECKIN_INTERVAL_BLOCK.override',
2160                         'VOLUME_HOLDS');
2161
2162
2163 -- Add basic sys admin permissions to the Local Administrator group
2164
2165 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2166         SELECT
2167                 pgt.id, perm.id, aout.depth, TRUE
2168         FROM
2169                 permission.grp_tree pgt,
2170                 permission.perm_list perm,
2171                 actor.org_unit_type aout
2172         WHERE
2173                 pgt.name = 'Local Administrator' AND
2174                 aout.name = 'Branch' AND
2175                 perm.code IN (
2176                         'EVERYTHING');
2177
2178
2179 -- Add administration permissions to the System Administrator group
2180
2181 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2182         SELECT
2183                 pgt.id, perm.id, aout.depth, TRUE
2184         FROM
2185                 permission.grp_tree pgt,
2186                 permission.perm_list perm,
2187                 actor.org_unit_type aout
2188         WHERE
2189                 pgt.name = 'System Administrator' AND
2190                 aout.name = 'System' AND
2191                 perm.code IN (
2192                         'EVERYTHING');
2193
2194 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2195         SELECT
2196                 pgt.id, perm.id, aout.depth, FALSE
2197         FROM
2198                 permission.grp_tree pgt,
2199                 permission.perm_list perm,
2200                 actor.org_unit_type aout
2201         WHERE
2202                 pgt.name = 'System Administrator' AND
2203                 aout.name = 'Consortium' AND
2204                 perm.code ~ '^VIEW_TRIGGER';
2205
2206
2207 -- Add administration permissions to the Global Administrator group
2208
2209 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2210         SELECT
2211                 pgt.id, perm.id, aout.depth, TRUE
2212         FROM
2213                 permission.grp_tree pgt,
2214                 permission.perm_list perm,
2215                 actor.org_unit_type aout
2216         WHERE
2217                 pgt.name = 'Global Administrator' AND
2218                 aout.name = 'Consortium' AND
2219                 perm.code IN (
2220                         'EVERYTHING');
2221
2222
2223 -- Add basic acquisitions permissions to the Acquisitions group
2224
2225 SELECT SETVAL('permission.grp_perm_map_id_seq'::TEXT, (SELECT MAX(id) FROM permission.grp_perm_map));
2226
2227 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2228         SELECT
2229                 pgt.id, perm.id, aout.depth, FALSE
2230         FROM
2231                 permission.grp_tree pgt,
2232                 permission.perm_list perm,
2233                 actor.org_unit_type aout
2234         WHERE
2235                 pgt.name = 'Acquisitions' AND
2236                 aout.name = 'Consortium' AND
2237                 perm.code IN (
2238                         'ALLOW_ALT_TCN',
2239                         'CREATE_BIB_IMPORT_QUEUE',
2240                         'CREATE_IMPORT_ITEM',
2241                         'CREATE_INVOICE',
2242                         'CREATE_MARC',
2243                         'CREATE_PICKLIST',
2244                         'CREATE_PURCHASE_ORDER',
2245                         'DELETE_BIB_IMPORT_QUEUE',
2246                         'DELETE_IMPORT_ITEM',
2247                         'DELETE_RECORD',
2248                         'DELETE_VOLUME',
2249                         'DELETE_VOLUME_NOTE',
2250                         'GENERAL_ACQ',
2251                         'IMPORT_ACQ_LINEITEM_BIB_RECORD',
2252                         'IMPORT_MARC',
2253                         'MANAGE_CLAIM',
2254                         'MANAGE_FUND',
2255                         'MANAGE_FUNDING_SOURCE',
2256                         'MANAGE_PROVIDER',
2257                         'MARK_ITEM_AVAILABLE',
2258                         'MARK_ITEM_BINDERY',
2259                         'MARK_ITEM_CHECKED_OUT',
2260                         'MARK_ITEM_ILL',
2261                         'MARK_ITEM_IN_PROCESS',
2262                         'MARK_ITEM_IN_TRANSIT',
2263                         'MARK_ITEM_LOST',
2264                         'MARK_ITEM_MISSING',
2265                         'MARK_ITEM_ON_HOLDS_SHELF',
2266                         'MARK_ITEM_ON_ORDER',
2267                         'MARK_ITEM_RESHELVING',
2268                         'RECEIVE_PURCHASE_ORDER',
2269                         'UPDATE_BATCH_COPY',
2270                         'UPDATE_BIB_IMPORT_QUEUE',
2271                         'UPDATE_COPY',
2272                         'UPDATE_FUND',
2273                         'UPDATE_FUND_ALLOCATION',
2274                         'UPDATE_FUNDING_SOURCE',
2275                         'UPDATE_IMPORT_ITEM',
2276                         'UPDATE_MARC',
2277                         'UPDATE_PICKLIST',
2278                         'UPDATE_RECORD',
2279                         'UPDATE_VOLUME',
2280                         'user_request.delete',
2281                         'user_request.update',
2282                         'user_request.view',
2283                         'VIEW_ACQ_FUND_ALLOCATION_PERCENT',
2284                         'VIEW_ACQ_FUNDING_SOURCE',
2285                         'VIEW_FUND',
2286                         'VIEW_FUND_ALLOCATION',
2287                         'VIEW_FUNDING_SOURCE',
2288                         'VIEW_HOLDS',
2289                         'VIEW_INVOICE',
2290                         'VIEW_ORG_SETTINGS',
2291                         'VIEW_PICKLIST',
2292                         'VIEW_PROVIDER',
2293                         'VIEW_PURCHASE_ORDER',
2294                         'VIEW_REPORT_OUTPUT');
2295
2296
2297 -- Add acquisitions administration permissions to the Acquisitions Admin group
2298
2299 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2300         SELECT
2301                 pgt.id, perm.id, aout.depth, TRUE
2302         FROM
2303                 permission.grp_tree pgt,
2304                 permission.perm_list perm,
2305                 actor.org_unit_type aout
2306         WHERE
2307                 pgt.name = 'Acquisitions Administrator' AND
2308                 aout.name = 'Consortium' AND
2309                 perm.code IN (
2310                         'ACQ_INVOICE_REOPEN',
2311                         'ACQ_XFER_MANUAL_DFUND_AMOUNT',
2312                         'ADMIN_ACQ_CANCEL_CAUSE',
2313                         'ADMIN_ACQ_CLAIM',
2314                         'ADMIN_ACQ_CLAIM_EVENT_TYPE',
2315                         'ADMIN_ACQ_CLAIM_TYPE',
2316                         'ADMIN_ACQ_DISTRIB_FORMULA',
2317                         'ADMIN_ACQ_FISCAL_YEAR',
2318                         'ADMIN_ACQ_FUND',
2319                         'ADMIN_ACQ_FUND_ALLOCATION_PERCENT',
2320                         'ADMIN_ACQ_FUND_TAG',
2321                         'ADMIN_ACQ_LINE_ITEM_ALERT_TEXT',
2322                         'ADMIN_CLAIM_POLICY',
2323                         'ADMIN_CURRENCY_TYPE',
2324                         'ADMIN_FUND',
2325                         'ADMIN_FUNDING_SOURCE',
2326                         'ADMIN_INVOICE',
2327                         'ADMIN_INVOICE_METHOD',
2328                         'ADMIN_INVOICE_PAYMENT_METHOD',
2329                         'ADMIN_LINEITEM_MARC_ATTR_DEF',
2330                         'ADMIN_PROVIDER',
2331                         'ADMIN_USER_REQUEST_TYPE',
2332                         'CREATE_ACQ_FUNDING_SOURCE',
2333                         'CREATE_FUND',
2334                         'CREATE_FUND_ALLOCATION',
2335                         'CREATE_FUNDING_SOURCE',
2336                         'CREATE_INVOICE_ITEM_TYPE',
2337                         'CREATE_INVOICE_METHOD',
2338                         'CREATE_PROVIDER',
2339                         'DELETE_ACQ_FUNDING_SOURCE',
2340                         'DELETE_FUND',
2341                         'DELETE_FUND_ALLOCATION',
2342                         'DELETE_FUNDING_SOURCE',
2343                         'DELETE_INVOICE_ITEM_TYPE',
2344                         'DELETE_INVOICE_METHOD',
2345                         'DELETE_PROVIDER',
2346                         'RUN_REPORTS',
2347                         'CREATE_REPORT_TEMPLATE',
2348                         'SHARE_REPORT_FOLDER',
2349                         'UPDATE_ACQ_FUNDING_SOURCE',
2350                         'UPDATE_INVOICE_ITEM_TYPE',
2351                         'UPDATE_INVOICE_METHOD',
2352                         'UPDATE_PICKLIST'
2353                 );
2354
2355 -- Add serials permissions to the Serials group
2356
2357 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2358         SELECT
2359                 pgt.id, perm.id, aout.depth, FALSE
2360         FROM
2361                 permission.grp_tree pgt,
2362                 permission.perm_list perm,
2363                 actor.org_unit_type aout
2364         WHERE
2365                 pgt.name = 'Serials' AND
2366                 aout.name = 'System' AND
2367                 perm.code IN (
2368                         'ADMIN_ASSET_COPY_TEMPLATE',
2369                         'ADMIN_SERIAL_CAPTION_PATTERN',
2370                         'ADMIN_SERIAL_DISTRIBUTION',
2371                         'ADMIN_SERIAL_ITEM',
2372                         'ADMIN_SERIAL_STREAM',
2373                         'ADMIN_SERIAL_SUBSCRIPTION',
2374                         'ISSUANCE_HOLDS',
2375                         'RECEIVE_SERIAL');
2376
2377
2378 -- Add basic staff permissions to the Volunteers group
2379
2380 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2381         SELECT
2382                 pgt.id, perm.id, aout.depth, FALSE
2383         FROM
2384                 permission.grp_tree pgt,
2385                 permission.perm_list perm,
2386                 actor.org_unit_type aout
2387         WHERE
2388                 pgt.name = 'Volunteers' AND
2389                 aout.name = 'Branch' AND
2390                 perm.code IN (
2391                         'COPY_CHECKOUT',
2392                         'CREATE_BILL',
2393                         'CREATE_IN_HOUSE_USE',
2394                         'CREATE_PAYMENT',
2395                         'VIEW_BILLING_TYPE',
2396                         'VIEW_CIRCS',
2397                         'VIEW_COPY_CHECKOUT',
2398                         'VIEW_HOLD',
2399                         'VIEW_TITLE_HOLDS',
2400                         'VIEW_TRANSACTION',
2401                         'VIEW_USER',
2402                         'VIEW_USER_FINES_SUMMARY',
2403                         'VIEW_USER_TRANSACTIONS');
2404
2405 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2406         SELECT
2407                 pgt.id, perm.id, aout.depth, FALSE
2408         FROM
2409                 permission.grp_tree pgt,
2410                 permission.perm_list perm,
2411                 actor.org_unit_type aout
2412         WHERE
2413                 pgt.name = 'Volunteers' AND
2414                 aout.name = 'Consortium' AND
2415                 perm.code IN (
2416                         'CREATE_COPY_TRANSIT',
2417                         'CREATE_TRANSACTION',
2418                         'CREATE_TRANSIT',
2419                         'STAFF_LOGIN',
2420                         'TRANSIT_COPY',
2421                         'VIEW_ORG_SETTINGS');
2422
2423
2424 -- Admin user account
2425 INSERT INTO actor.usr ( profile, card, usrname, passwd, first_given_name, family_name, dob, master_account, super_user, ident_type, ident_value, home_ou ) VALUES ( 1, 1, md5(random()::text), md5(random()::text), 'Administrator', 'System Account', '1979-01-22', TRUE, TRUE, 1, 'identification', 1 );
2426
2427 -- Admin user barcode
2428 INSERT INTO actor.card (usr, barcode) VALUES (1,md5(random()::text));
2429 UPDATE actor.usr SET card = (SELECT currval('actor.card_id_seq')) WHERE id = 1;
2430
2431 -- Admin user permissions
2432 INSERT INTO permission.usr_perm_map (usr,perm,depth) VALUES (1,-1,0);
2433
2434 -- Set a work_ou for the Administrator user
2435 INSERT INTO permission.usr_work_ou_map (usr, work_ou) VALUES (1, 1);
2436
2437 --010.schema.biblio.sql:
2438 INSERT INTO biblio.record_entry VALUES (-1,1,1,1,-1,NOW(),NOW(),FALSE,FALSE,'','AUTOGEN','-1','<record xmlns="http://www.loc.gov/MARC21/slim"/>','FOO');
2439
2440 --040.schema.asset.sql:
2441 INSERT INTO asset.copy_location (id, name,owning_lib) VALUES (1, oils_i18n_gettext(1, 'Stacks', 'acpl', 'name'),1);
2442 SELECT SETVAL('asset.copy_location_id_seq'::TEXT, 100);
2443
2444 INSERT INTO asset.call_number_suffix (id, owning_lib, label) VALUES (-1, 1, '');
2445 INSERT INTO asset.call_number_prefix (id, owning_lib, label) VALUES (-1, 1, '');
2446 INSERT INTO asset.call_number VALUES (-1,1,NOW(),1,NOW(),-1,1,'UNCATALOGED');
2447
2448 -- circ matrix
2449 INSERT INTO config.circ_matrix_matchpoint (org_unit,grp,circulate,duration_rule,recurring_fine_rule,max_fine_rule) VALUES (1,1,true,11,1,1);
2450
2451 INSERT INTO config.circ_matrix_weights(name, org_unit, grp, circ_modifier, copy_location, marc_type, marc_form, marc_bib_level, marc_vr_format, copy_circ_lib, copy_owning_lib, user_home_ou, ref_flag, juvenile_flag, is_renewal, usr_age_upper_bound, usr_age_lower_bound, item_age) VALUES 
2452     ('Default', 10.0, 11.0, 5.0, 5.0, 4.0, 3.0, 2.0, 2.0, 8.0, 8.0, 8.0, 1.0, 6.0, 7.0, 0.0, 0.0, 0.0),
2453     ('Org_Unit_First', 11.0, 10.0, 5.0, 5.0, 4.0, 3.0, 2.0, 2.0, 8.0, 8.0, 8.0, 1.0, 6.0, 7.0, 0.0, 0.0, 0.0),
2454     ('Item_Owner_First', 8.0, 8.0, 5.0, 5.0, 4.0, 3.0, 2.0, 2.0, 10.0, 11.0, 8.0, 1.0, 6.0, 7.0, 0.0, 0.0, 0.0),
2455     ('All_Equal', 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
2456
2457 -- hold matrix - 110.hold_matrix.sql:
2458 INSERT INTO config.hold_matrix_matchpoint (requestor_grp) VALUES (1);
2459
2460 INSERT INTO config.hold_matrix_weights(name, user_home_ou, request_ou, pickup_ou, item_owning_ou, item_circ_ou, usr_grp, requestor_grp, circ_modifier, marc_type, marc_form, marc_bib_level, marc_vr_format, juvenile_flag, ref_flag, item_age) VALUES
2461     ('Default', 5.0, 5.0, 5.0, 5.0, 5.0, 7.0, 8.0, 4.0, 3.0, 2.0, 1.0, 1.0, 4.0, 0.0, 0.0),
2462     ('Item_Owner_First', 5.0, 5.0, 5.0, 8.0, 7.0, 5.0, 5.0, 4.0, 3.0, 2.0, 1.0, 1.0, 4.0, 0.0, 0.0),
2463     ('User_Before_Requestor', 5.0, 5.0, 5.0, 5.0, 5.0, 8.0, 7.0, 4.0, 3.0, 2.0, 1.0, 1.0, 4.0, 0.0, 0.0),
2464     ('All_Equal', 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
2465
2466 -- dynamic weight associations
2467 INSERT INTO config.weight_assoc(active, org_unit, circ_weights, hold_weights) VALUES
2468     (true, 1, 1, 1);
2469
2470 -- User setting types
2471 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2472     VALUES ('opac.default_font', TRUE, 'OPAC Font Size', 'OPAC Font Size', 'string');
2473
2474 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2475     VALUES ('opac.default_search_depth', TRUE, 'OPAC Search Depth', 'OPAC Search Depth', 'integer');
2476
2477 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2478     VALUES ('opac.default_search_location', TRUE, 'OPAC Search Location', 'OPAC Search Location', 'integer');
2479
2480 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2481     VALUES ('opac.hits_per_page', TRUE, 'Hits per Page', 'Hits per Page', 'string');
2482
2483 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2484     VALUES ('opac.hold_notify', TRUE, 'Hold Notification Format', 'Hold Notification Format', 'string');
2485
2486 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2487     VALUES ('staff_client.catalog.record_view.default', TRUE, 'Default Record View', 'Default Record View', 'string');
2488
2489 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2490     VALUES ('staff_client.copy_editor.templates', TRUE, 'Copy Editor Template', 'Copy Editor Template', 'object');
2491
2492 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2493     VALUES ('circ.holds_behind_desk', FALSE, 'Hold is behind Circ Desk', 'Hold is behind Circ Desk', 'bool');
2494
2495 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2496     VALUES ('opac.default_pickup_location', TRUE, 'Default Hold Pickup Location', 'Default location for holds pickup', 'integer');
2497
2498 -- Add groups for org_unit settings
2499 INSERT INTO config.settings_group (name, label) VALUES
2500 ('acq', oils_i18n_gettext('config.settings_group.system', 'Acquisitions', 'coust', 'label')),
2501 ('sys', oils_i18n_gettext('config.settings_group.system', 'System', 'coust', 'label')),
2502 ('gui', oils_i18n_gettext('config.settings_group.gui', 'GUI', 'coust', 'label')),
2503 ('lib', oils_i18n_gettext('config.settings_group.lib', 'Library', 'coust', 'label')),
2504 ('sec', oils_i18n_gettext('config.settings_group.sec', 'Security', 'coust', 'label')),
2505 ('cat', oils_i18n_gettext('config.settings_group.cat', 'Cataloging', 'coust', 'label')),
2506 ('holds', oils_i18n_gettext('config.settings_group.holds', 'Holds', 'coust', 'label')),
2507 ('circ', oils_i18n_gettext('config.settings_group.circulation', 'Circulation', 'coust', 'label')),
2508 ('self', oils_i18n_gettext('config.settings_group.self', 'Self Check', 'coust', 'label')),
2509 ('opac', oils_i18n_gettext('config.settings_group.opac', 'OPAC', 'coust', 'label')),
2510 ('prog', oils_i18n_gettext('config.settings_group.program', 'Program', 'coust', 'label')),
2511 ('glob', oils_i18n_gettext('config.settings_group.global', 'Global', 'coust', 'label')),
2512 ('finance', oils_i18n_gettext('config.settings_group.finances', 'Finances', 'coust', 'label')),
2513 ('credit', oils_i18n_gettext('config.settings_group.ccp', 'Credit Card Processing', 'coust', 'label')),
2514 ('serial', oils_i18n_gettext('config.settings_group.serial', 'Serials', 'coust', 'label')),
2515 ('recall', oils_i18n_gettext('config.settings_group.recall', 'Recalls', 'coust', 'label')),
2516 ('booking', oils_i18n_gettext('config.settings_group.booking', 'Booking', 'coust', 'label')),
2517 ('offline', oils_i18n_gettext('config.settings_group.offline', 'Offline', 'coust', 'label')),
2518 ('receipt_template', oils_i18n_gettext('config.settings_group.receipt_template', 'Receipt Template', 'coust', 'label')),
2519 ('sms', oils_i18n_gettext('sms','SMS Text Messages','csg','label')),
2520 ('vandelay', oils_i18n_gettext('vandelay','Vandelay','coust','label'))
2521 ;
2522
2523
2524
2525 -- org_unit setting types
2526 INSERT into config.org_unit_setting_type
2527 ( name, grp, label, description, datatype, fm_class ) VALUES
2528
2529 ( 'acq.copy_creator_uses_receiver', 'acq',
2530     oils_i18n_gettext('acq.copy_creator_uses_receiver',
2531         'Set copy creator as receiver',
2532         'coust', 'label'),
2533     oils_i18n_gettext('acq.copy_creator_uses_receiver',
2534         'When receiving a copy in acquisitions, set the copy "creator" to be the staff that received the copy',
2535         'coust', 'description'),
2536     'bool', null)
2537
2538 ,( 'acq.default_circ_modifier', 'acq',
2539     oils_i18n_gettext('acq.default_circ_modifier',
2540         'Default circulation modifier',
2541         'coust', 'label'),
2542     oils_i18n_gettext('acq.default_circ_modifier',
2543         'Default circulation modifier',
2544         'coust', 'description'),
2545     'string', null)
2546
2547 ,( 'acq.default_copy_location', 'acq',
2548     oils_i18n_gettext('acq.default_copy_location',
2549         'Default copy location',
2550         'coust', 'label'),
2551     oils_i18n_gettext('acq.default_copy_location',
2552         'Default copy location',
2553         'coust', 'description'),
2554     'link', 'acpl')
2555
2556 ,( 'acq.fund.balance_limit.block', 'acq',
2557     oils_i18n_gettext('acq.fund.balance_limit.block',
2558         'Fund Spending Limit for Block',
2559         'coust', 'label'),
2560     oils_i18n_gettext('acq.fund.balance_limit.block',
2561         'When the amount remaining in the fund, including spent money and encumbrances, goes below this percentage, attempts to spend from the fund will be blocked.',
2562         'coust', 'description'),
2563     'integer', null)
2564
2565 ,( 'acq.fund.balance_limit.warn', 'acq',
2566     oils_i18n_gettext('acq.fund.balance_limit.warn',
2567         'Fund Spending Limit for Warning',
2568         'coust', 'label'),
2569     oils_i18n_gettext('acq.fund.balance_limit.warn',
2570         'When the amount remaining in the fund, including spent money and encumbrances, goes below this percentage, attempts to spend from the fund will result in a warning to the staff.',
2571         'coust', 'description'),
2572     'integer', null)
2573
2574 ,( 'acq.holds.allow_holds_from_purchase_request', 'acq',
2575     oils_i18n_gettext('acq.holds.allow_holds_from_purchase_request',
2576         'Allows patrons to create automatic holds from purchase requests.',
2577         'coust', 'label'),
2578     oils_i18n_gettext('acq.holds.allow_holds_from_purchase_request',
2579         'Allows patrons to create automatic holds from purchase requests.',
2580         'coust', 'description'),
2581     'bool', null)
2582
2583 ,( 'acq.tmp_barcode_prefix', 'acq',
2584     oils_i18n_gettext('acq.tmp_barcode_prefix',
2585         'Temporary barcode prefix',
2586         'coust', 'label'),
2587     oils_i18n_gettext('acq.tmp_barcode_prefix',
2588         'Temporary barcode prefix',
2589         'coust', 'description'),
2590     'string', null)
2591
2592 ,( 'acq.tmp_callnumber_prefix', 'acq',
2593     oils_i18n_gettext('acq.tmp_callnumber_prefix',
2594         'Temporary call number prefix',
2595         'coust', 'label'),
2596     oils_i18n_gettext('acq.tmp_callnumber_prefix',
2597         'Temporary call number prefix',
2598         'coust', 'description'),
2599     'string', null)
2600
2601 ,( 'auth.opac_timeout', 'sec',
2602     oils_i18n_gettext('auth.opac_timeout',
2603         'OPAC Inactivity Timeout (in seconds)',
2604         'coust', 'label'),
2605     oils_i18n_gettext('auth.opac_timeout',
2606         'OPAC Inactivity Timeout (in seconds)',
2607         'coust', 'description'),
2608     'integer', null)
2609
2610 ,( 'auth.persistent_login_interval', 'sec',
2611     oils_i18n_gettext('auth.persistent_login_interval',
2612         'Persistent Login Duration',
2613         'coust', 'label'),
2614     oils_i18n_gettext('auth.persistent_login_interval',
2615         'How long a persistent login lasts.  E.g. ''2 weeks''',
2616         'coust', 'description'),
2617     'interval', null)
2618
2619 ,( 'auth.staff_timeout', 'sec',
2620     oils_i18n_gettext('auth.staff_timeout',
2621         'Staff Login Inactivity Timeout (in seconds)',
2622         'coust', 'label'),
2623     oils_i18n_gettext('auth.staff_timeout',
2624         'Staff Login Inactivity Timeout (in seconds)',
2625         'coust', 'description'),
2626     'integer', null)
2627
2628 ,( 'booking.allow_email_notify', 'booking',
2629     oils_i18n_gettext('booking.allow_email_notify',
2630         'Allow Email Notify',
2631         'coust', 'label'),
2632     oils_i18n_gettext('booking.allow_email_notify',
2633         'Permit email notification when a reservation is ready for pickup.',
2634         'coust', 'description'),
2635     'bool', null)
2636
2637 ,( 'cat.bib.alert_on_empty', 'gui',
2638     oils_i18n_gettext('cat.bib.alert_on_empty',
2639         'Alert on empty bib records',
2640         'coust', 'label'),
2641     oils_i18n_gettext('cat.bib.alert_on_empty',
2642         'Alert staff when the last copy for a record is being deleted',
2643         'coust', 'description'),
2644     'bool', null)
2645
2646 ,( 'cat.bib.delete_on_no_copy_via_acq_lineitem_cancel', 'cat',
2647     oils_i18n_gettext('cat.bib.delete_on_no_copy_via_acq_lineitem_cancel',
2648         'Delete bib if all copies are deleted via Acquisitions lineitem cancellation.',
2649         'coust', 'label'),
2650     oils_i18n_gettext('cat.bib.delete_on_no_copy_via_acq_lineitem_cancel',
2651         'Delete bib if all copies are deleted via Acquisitions lineitem cancellation.',
2652         'coust', 'description'),
2653     'bool', null)
2654
2655 ,( 'cat.bib.keep_on_empty', 'prog',
2656     oils_i18n_gettext('cat.bib.keep_on_empty',
2657         'Retain empty bib records',
2658         'coust', 'label'),
2659     oils_i18n_gettext('cat.bib.keep_on_empty',
2660         'Retain a bib record even when all attached copies are deleted',
2661         'coust', 'description'),
2662     'bool', null)
2663
2664 ,( 'cat.default_classification_scheme', 'cat',
2665     oils_i18n_gettext('cat.default_classification_scheme',
2666         'Default Classification Scheme',
2667         'coust', 'label'),
2668     oils_i18n_gettext('cat.default_classification_scheme',
2669         'Defines the default classification scheme for new call numbers: 1 = Generic; 2 = Dewey; 3 = LC',
2670         'coust', 'description'),
2671     'link', 'acnc')
2672
2673 ,( 'cat.default_copy_status_fast', 'cat',
2674     oils_i18n_gettext('cat.default_copy_status_fast',
2675         'Default copy status (fast add)',
2676         'coust', 'label'),
2677     oils_i18n_gettext('cat.default_copy_status_fast',
2678         'Default status when a copy is created using the "Fast Add" interface.',
2679         'coust', 'description'),
2680     'link', 'ccs')
2681
2682 ,( 'cat.default_copy_status_normal', 'cat',
2683     oils_i18n_gettext('cat.default_copy_status_normal',
2684         'Default copy status (normal)',
2685         'coust', 'label'),
2686     oils_i18n_gettext('cat.default_copy_status_normal',
2687         'Default status when a copy is created using the normal volume/copy creator interface.',
2688         'coust', 'description'),
2689     'link', 'ccs')
2690
2691 ,( 'cat.default_item_price', 'finance',
2692     oils_i18n_gettext('cat.default_item_price',
2693         'Default Item Price',
2694         'coust', 'label'),
2695     oils_i18n_gettext('cat.default_item_price',
2696         'Default Item Price',
2697         'coust', 'description'),
2698     'currency', null)
2699
2700 ,( 'cat.label.font.family', 'cat',
2701     oils_i18n_gettext('cat.label.font.family',
2702         'Spine and pocket label font family',
2703         'coust', 'label'),
2704     oils_i18n_gettext('cat.label.font.family',
2705         'Set the preferred font family for spine and pocket labels. You can specify a list of fonts, separated by commas, in order of preference; the system will use the first font it finds with a matching name. For example, "Arial, Helvetica, serif".',
2706         'coust', 'description'),
2707     'string', null)
2708
2709 ,( 'cat.label.font.size', 'cat',
2710     oils_i18n_gettext('cat.label.font.size',
2711         'Spine and pocket label font size',
2712         'coust', 'label'),
2713     oils_i18n_gettext('cat.label.font.size',
2714         'Set the default font size for spine and pocket labels',
2715         'coust', 'description'),
2716     'integer', null)
2717
2718 ,( 'cat.label.font.weight', 'cat',
2719     oils_i18n_gettext('cat.label.font.weight',
2720         'Spine and pocket label font weight',
2721         'coust', 'label'),
2722     oils_i18n_gettext('cat.label.font.weight',
2723         'Set the preferred font weight for spine and pocket labels. You can specify "normal", "bold", "bolder", or "lighter".',
2724         'coust', 'description'),
2725     'string', null)
2726
2727 ,( 'cat.marc_control_number_identifier', 'cat',
2728     oils_i18n_gettext('cat.marc_control_number_identifier',
2729         'Defines the control number identifier used in 003 and 035 fields.',
2730         'coust', 'label'),
2731     oils_i18n_gettext('cat.marc_control_number_identifier',
2732         'Cat: Defines the control number identifier used in 003 and 035 fields.',
2733         'coust', 'description'),
2734     'string', null)
2735
2736 ,( 'cat.spine.line.height', 'cat',
2737     oils_i18n_gettext('cat.spine.line.height',
2738         'Spine label maximum lines',
2739         'coust', 'label'),
2740     oils_i18n_gettext('cat.spine.line.height',
2741         'Set the default maximum number of lines for spine labels.',
2742         'coust', 'description'),
2743     'integer', null)
2744
2745 ,( 'cat.spine.line.margin', 'cat',
2746     oils_i18n_gettext('cat.spine.line.margin',
2747         'Spine label left margin',
2748         'coust', 'label'),
2749     oils_i18n_gettext('cat.spine.line.margin',
2750         'Set the left margin for spine labels in number of characters.',
2751         'coust', 'description'),
2752     'integer', null)
2753
2754 ,( 'cat.spine.line.width', 'cat',
2755     oils_i18n_gettext('cat.spine.line.width',
2756         'Spine label line width',
2757         'coust', 'label'),
2758     oils_i18n_gettext('cat.spine.line.width',
2759         'Set the default line width for spine labels in number of characters. This specifies the boundary at which lines must be wrapped.',
2760         'coust', 'description'),
2761     'integer', null)
2762
2763 ,( 'cat.volume.delete_on_empty', 'cat',
2764     oils_i18n_gettext('cat.volume.delete_on_empty',
2765         'Delete volume with last copy',
2766         'coust', 'label'),
2767     oils_i18n_gettext('cat.volume.delete_on_empty',
2768         'Automatically delete a volume when the last linked copy is deleted',
2769         'coust', 'description'),
2770     'bool', null)
2771
2772 ,( 'circ.auto_hide_patron_summary', 'gui',
2773     oils_i18n_gettext('circ.auto_hide_patron_summary',
2774         'Toggle off the patron summary sidebar after first view.',
2775         'coust', 'label'),
2776     oils_i18n_gettext('circ.auto_hide_patron_summary',
2777         'When true, the patron summary sidebar will collapse after a new patron sub-interface is selected.',
2778         'coust', 'description'),
2779     'bool', null)
2780
2781 ,( 'circ.block_renews_for_holds', 'holds',
2782     oils_i18n_gettext('circ.block_renews_for_holds',
2783         'Block Renewal of Items Needed for Holds',
2784         'coust', 'label'),
2785     oils_i18n_gettext('circ.block_renews_for_holds',
2786         'When an item could fulfill a hold, do not allow the current patron to renew',
2787         'coust', 'description'),
2788     'bool', null)
2789
2790 ,( 'circ.booking_reservation.default_elbow_room', 'booking',
2791     oils_i18n_gettext('circ.booking_reservation.default_elbow_room',
2792         'Booking elbow room',
2793         'coust', 'label'),
2794     oils_i18n_gettext('circ.booking_reservation.default_elbow_room',
2795         'Elbow room specifies how far in the future you must make a reservation on an item if that item will have to transit to reach its pickup location.  It secondarily defines how soon a reservation on a given item must start before the check-in process will opportunistically capture it for the reservation shelf.',
2796         'coust', 'description'),
2797     'interval', null)
2798
2799 ,( 'circ.charge_lost_on_zero', 'finance',
2800     oils_i18n_gettext('circ.charge_lost_on_zero',
2801         'Charge lost on zero',
2802         'coust', 'label'),
2803     oils_i18n_gettext('circ.charge_lost_on_zero',
2804         'Charge lost on zero',
2805         'coust', 'description'),
2806     'bool', null)
2807
2808 ,( 'circ.charge_on_damaged', 'finance',
2809     oils_i18n_gettext('circ.charge_on_damaged',
2810         'Charge item price when marked damaged',
2811         'coust', 'label'),
2812     oils_i18n_gettext('circ.charge_on_damaged',
2813         'Charge item price when marked damaged',
2814         'coust', 'description'),
2815     'bool', null)
2816
2817 ,( 'circ.checkout_auto_renew_age', 'circ',
2818     oils_i18n_gettext('circ.checkout_auto_renew_age',
2819         'Checkout auto renew age',
2820         'coust', 'label'),
2821     oils_i18n_gettext('circ.checkout_auto_renew_age',
2822         'When an item has been checked out for at least this amount of time, an attempt to check out the item to the patron that it is already checked out to will simply renew the circulation',
2823         'coust', 'description'),
2824     'interval', null)
2825
2826 ,( 'circ.checkout_fills_related_hold', 'circ',
2827     oils_i18n_gettext('circ.checkout_fills_related_hold',
2828         'Checkout Fills Related Hold',
2829         'coust', 'label'),
2830     oils_i18n_gettext('circ.checkout_fills_related_hold',
2831         'When a patron checks out an item and they have no holds that directly target the item, the system will attempt to find a hold for the patron that could be fulfilled by the checked out item and fulfills it',
2832         'coust', 'description'),
2833     'bool', null)
2834
2835 ,( 'circ.checkout_fills_related_hold_exact_match_only', 'circ',
2836     oils_i18n_gettext('circ.checkout_fills_related_hold_exact_match_only',
2837         'Checkout Fills Related Hold On Valid Copy Only',
2838         'coust', 'label'),
2839     oils_i18n_gettext('circ.checkout_fills_related_hold_exact_match_only',
2840         'When filling related holds on checkout only match on items that are valid for opportunistic capture for the hold. Without this set a Title or Volume hold could match when the item is not holdable. With this set only holdable items will match.',
2841         'coust', 'description'),
2842     'bool', null)
2843
2844 ,( 'circ.claim_never_checked_out.mark_missing', 'lib',
2845     oils_i18n_gettext('circ.claim_never_checked_out.mark_missing',
2846         'Claim Never Checked Out: Mark copy as missing',
2847         'coust', 'label'),
2848     oils_i18n_gettext('circ.claim_never_checked_out.mark_missing',
2849         'When a circ is marked as claims-never-checked-out, mark the copy as missing',
2850         'coust', 'description'),
2851     'bool', null)
2852
2853 ,( 'circ.claim_return.copy_status', 'lib',
2854     oils_i18n_gettext('circ.claim_return.copy_status',
2855         'Claim Return Copy Status',
2856         'coust', 'label'),
2857     oils_i18n_gettext('circ.claim_return.copy_status',
2858         'Claims returned copies are put into this status.  Default is to leave the copy in the Checked Out status',
2859         'coust', 'description'),
2860     'link', 'ccs')
2861
2862 ,( 'circ.damaged.void_ovedue', 'lib',
2863     oils_i18n_gettext('circ.damaged.void_ovedue',
2864         'Mark item damaged voids overdues',
2865         'coust', 'label'),
2866     oils_i18n_gettext('circ.damaged.void_ovedue',
2867         'When an item is marked damaged, overdue fines on the most recent circulation are voided.',
2868         'coust', 'description'),
2869     'bool', null)
2870
2871 ,( 'circ.damaged_item_processing_fee', 'finance',
2872     oils_i18n_gettext('circ.damaged_item_processing_fee',
2873         'Charge processing fee for damaged items',
2874         'coust', 'label'),
2875     oils_i18n_gettext('circ.damaged_item_processing_fee',
2876         'Charge processing fee for damaged items',
2877         'coust', 'description'),
2878     'currency', null)
2879
2880 ,( 'circ.do_not_tally_claims_returned', 'circ',
2881     oils_i18n_gettext('circ.do_not_tally_claims_returned',
2882         'Do not include outstanding Claims Returned circulations in lump sum tallies in Patron Display.',
2883         'coust', 'label'),
2884     oils_i18n_gettext('circ.do_not_tally_claims_returned',
2885         'In the Patron Display interface, the number of total active circulations for a given patron is presented in the Summary sidebar and underneath the Items Out navigation button.  This setting will prevent Claims Returned circulations from counting toward these tallies.',
2886         'coust', 'description'),
2887     'bool', null)
2888
2889 ,( 'circ.grace.extend', 'circ',
2890     oils_i18n_gettext('circ.grace.extend',
2891         'Auto-Extend Grace Periods',
2892         'coust', 'label'),
2893     oils_i18n_gettext('circ.grace.extend',
2894         'When enabled grace periods will auto-extend. By default this will be only when they are a full day or more and end on a closed date, though other options can alter this.',
2895         'coust', 'description'),
2896     'bool', null)
2897
2898 ,( 'circ.grace.extend.all', 'circ',
2899     oils_i18n_gettext('circ.grace.extend.all',
2900         'Auto-Extending Grace Periods extend for all closed dates',
2901         'coust', 'label'),
2902     oils_i18n_gettext('circ.grace.extend.all',
2903         'If enabled and Grace Periods auto-extending is turned on grace periods will extend past all closed dates they intersect, within hard-coded limits. This basically becomes "grace periods can only be consumed by closed dates".',
2904         'coust', 'description'),
2905     'bool', null)
2906
2907 ,( 'circ.grace.extend.into_closed', 'circ',
2908     oils_i18n_gettext('circ.grace.extend.into_closed',
2909         'Auto-Extending Grace Periods include trailing closed dates',
2910         'coust', 'label'),
2911     oils_i18n_gettext('circ.grace.extend.into_closed',
2912          'If enabled and Grace Periods auto-extending is turned on grace periods will include closed dates that directly follow the last day of the grace period, to allow a backdate into the closed dates to assume "returned after hours on the last day of the grace period, and thus still within it" automatically.',
2913         'coust', 'description'),
2914     'bool', null)
2915
2916 ,( 'circ.hold_boundary.hard', 'holds',
2917     oils_i18n_gettext('circ.hold_boundary.hard',
2918         'Hard boundary',
2919         'coust', 'label'),
2920     oils_i18n_gettext('circ.hold_boundary.hard',
2921         'Holds: Hard boundary',
2922         'coust', 'description'),
2923     'integer', null)
2924
2925 ,( 'circ.hold_boundary.soft', 'holds',
2926     oils_i18n_gettext('circ.hold_boundary.soft',
2927         'Soft boundary',
2928         'coust', 'label'),
2929     oils_i18n_gettext('circ.hold_boundary.soft',
2930         'Holds: Soft boundary',
2931         'coust', 'description'),
2932     'integer', null)
2933
2934 ,( 'circ.hold_expire_alert_interval', 'holds',
2935     oils_i18n_gettext('circ.hold_expire_alert_interval',
2936         'Expire Alert Interval',
2937         'coust', 'label'),
2938     oils_i18n_gettext('circ.hold_expire_alert_interval',
2939         'Amount of time before a hold expires at which point the patron should be alerted. Examples: "5 days", "1 hour"',
2940         'coust', 'description'),
2941     'interval', null)
2942
2943 ,( 'circ.hold_expire_interval', 'holds',
2944     oils_i18n_gettext('circ.hold_expire_interval',
2945         'Expire Interval',
2946         'coust', 'label'),
2947     oils_i18n_gettext('circ.hold_expire_interval',
2948         'Amount of time after a hold is placed before the hold expires.  Example "100 days"',
2949         'coust', 'description'),
2950     'interval', null)
2951
2952 ,( 'circ.hold_shelf_status_delay', 'circ',
2953     oils_i18n_gettext('circ.hold_shelf_status_delay',
2954         'Hold Shelf Status Delay',
2955         'coust', 'label'),
2956     oils_i18n_gettext('circ.hold_shelf_status_delay',
2957         'The purpose is to provide an interval of time after an item goes into the on-holds-shelf status before it appears to patrons that it is actually on the holds shelf.  This gives staff time to process the item before it shows as ready-for-pickup. Examples: "5 days", "1 hour"',
2958         'coust', 'description'),
2959     'interval', null)
2960
2961 ,( 'circ.hold_stalling.soft', 'holds',
2962     oils_i18n_gettext('circ.hold_stalling.soft',
2963         'Soft stalling interval',
2964         'coust', 'label'),
2965     oils_i18n_gettext('circ.hold_stalling.soft',
2966         'How long to wait before allowing remote items to be opportunistically captured for a hold.  Example "5 days"',
2967         'coust', 'description'),
2968     'interval', null)
2969
2970 ,( 'circ.hold_stalling_hard', 'holds',
2971     oils_i18n_gettext('circ.hold_stalling_hard',
2972         'Hard stalling interval',
2973         'coust', 'label'),
2974     oils_i18n_gettext('circ.hold_stalling_hard',
2975         'Holds: Hard stalling interval',
2976         'coust', 'description'),
2977     'interval', null)
2978
2979 ,( 'circ.holds.age_protect.active_date', 'holds',
2980     oils_i18n_gettext('circ.holds.age_protect.active_date',
2981         'Use Active Date for Age Protection',
2982         'coust', 'label'),
2983     oils_i18n_gettext('circ.holds.age_protect.active_date',
2984         'When calculating age protection rules use the active date instead of the creation date.',
2985         'coust', 'description'),
2986     'bool', null)
2987
2988 ,( 'circ.holds.behind_desk_pickup_supported', 'holds',
2989     oils_i18n_gettext('circ.holds.behind_desk_pickup_supported',
2990         'Behind Desk Pickup Supported',
2991         'coust', 'label'),
2992     oils_i18n_gettext('circ.holds.behind_desk_pickup_supported',
2993         'If a branch supports both a public holds shelf and behind-the-desk pickups, set this value to true.  This gives the patron the option to enable behind-the-desk pickups for their holds',
2994         'coust', 'description'),
2995     'bool', null)
2996
2997 ,( 'circ.holds.canceled.display_age', 'holds',
2998     oils_i18n_gettext('circ.holds.canceled.display_age',
2999         'Canceled holds display age',
3000         'coust', 'label'),
3001     oils_i18n_gettext('circ.holds.canceled.display_age',
3002         'Show all canceled holds that were canceled within this amount of time',
3003         'coust', 'description'),
3004     'interval', null)
3005
3006 ,( 'circ.holds.canceled.display_count', 'holds',
3007     oils_i18n_gettext('circ.holds.canceled.display_count',
3008         'Canceled holds display count',
3009         'coust', 'label'),
3010     oils_i18n_gettext('circ.holds.canceled.display_count',
3011         'How many canceled holds to show in patron holds interfaces',
3012         'coust', 'description'),
3013     'integer', null)
3014
3015 ,( 'circ.holds.clear_shelf.copy_status', 'holds',
3016     oils_i18n_gettext('circ.holds.clear_shelf.copy_status',
3017         'Clear shelf copy status',
3018         'coust', 'label'),
3019     oils_i18n_gettext('circ.holds.clear_shelf.copy_status',
3020         'Any copies that have not been put into reshelving, in-transit, or on-holds-shelf (for a new hold) during the clear shelf process will be put into this status.  This is basically a purgatory status for copies waiting to be pulled from the shelf and processed by hand',
3021         'coust', 'description'),
3022     'link', 'ccs')
3023
3024 ,( 'circ.holds.default_estimated_wait_interval', 'holds',
3025     oils_i18n_gettext('circ.holds.default_estimated_wait_interval',
3026         'Default Estimated Wait',
3027         'coust', 'label'),
3028     oils_i18n_gettext('circ.holds.default_estimated_wait_interval',
3029         'When predicting the amount of time a patron will be waiting for a hold to be fulfilled, this is the default estimated length of time to assume an item will be checked out. Examples: "3 weeks", "7 days"',
3030         'coust', 'description'),
3031     'interval', null)
3032
3033 ,( 'circ.holds.default_shelf_expire_interval', 'holds',
3034     oils_i18n_gettext('circ.holds.default_shelf_expire_interval',
3035         'Default hold shelf expire interval',
3036         'coust', 'label'),
3037     oils_i18n_gettext('circ.holds.default_shelf_expire_interval',
3038         '',
3039         'coust', 'description'),
3040     'interval', null)
3041
3042 ,( 'circ.holds.expired_patron_block', 'circ',
3043     oils_i18n_gettext('circ.holds.expired_patron_block',
3044         'Block hold request if hold recipient privileges have expired',
3045         'coust', 'label'),
3046     oils_i18n_gettext('circ.holds.expired_patron_block',
3047         'Block hold request if hold recipient privileges have expired',
3048         'coust', 'description'),
3049     'bool', null)
3050
3051 ,( 'circ.holds.hold_has_copy_at.alert', 'holds',
3052     oils_i18n_gettext('circ.holds.hold_has_copy_at.alert',
3053         'Has Local Copy Alert',
3054         'coust', 'label'),
3055     oils_i18n_gettext('circ.holds.hold_has_copy_at.alert',
3056         'If there is an available copy at the requesting library that could fulfill a hold during hold placement time, alert the patron',
3057         'coust', 'description'),
3058     'bool', null)
3059
3060 ,( 'circ.holds.hold_has_copy_at.block', 'holds',
3061     oils_i18n_gettext('circ.holds.hold_has_copy_at.block',
3062         'Has Local Copy Block',
3063         'coust', 'label'),
3064     oils_i18n_gettext('circ.holds.hold_has_copy_at.block',
3065         'If there is an available copy at the requesting library that could fulfill a hold during hold placement time, do not allow the hold to be placed',
3066         'coust', 'description'),
3067     'bool', null)
3068
3069 ,( 'circ.holds.max_org_unit_target_loops', 'holds',
3070     oils_i18n_gettext('circ.holds.max_org_unit_target_loops',
3071         'Maximum library target attempts',
3072         'coust', 'label'),
3073     oils_i18n_gettext('circ.holds.max_org_unit_target_loops',
3074         'When this value is set and greater than 0, the system will only attempt to find a copy at each possible branch the configured number of times',
3075         'coust', 'description'),
3076     'integer', null)
3077
3078 ,( 'circ.holds.min_estimated_wait_interval', 'holds',
3079     oils_i18n_gettext('circ.holds.min_estimated_wait_interval',
3080         'Minimum Estimated Wait',
3081         'coust', 'label'),
3082     oils_i18n_gettext('circ.holds.min_estimated_wait_interval',
3083         'When predicting the amount of time a patron will be waiting for a hold to be fulfilled, this is the minimum estimated length of time to assume an item will be checked out. Examples: "2 weeks", "5 days"',
3084         'coust', 'description'),
3085     'interval', null)
3086
3087 ,( 'circ.holds.org_unit_target_weight', 'holds',
3088     oils_i18n_gettext('circ.holds.org_unit_target_weight',
3089         'Org Unit Target Weight',
3090         'coust', 'label'),
3091     oils_i18n_gettext('circ.holds.org_unit_target_weight',
3092         'Org Units can be organized into hold target groups based on a weight.  Potential copies from org units with the same weight are chosen at random.',
3093         'coust', 'description'),
3094     'integer', null)
3095
3096 ,( 'circ.holds.recall_fine_rules', 'recall',
3097     oils_i18n_gettext('circ.holds.recall_fine_rules',
3098         'An array of fine amount, fine interval, and maximum fine.',
3099         'coust', 'label'),
3100     oils_i18n_gettext('circ.holds.recall_fine_rules',
3101         'Recalls: An array of fine amount, fine interval, and maximum fine. For example, to specify a new fine rule of $5.00 per day, with a maximum fine of $50.00, use: [5.00,"1 day",50.00]',
3102         'coust', 'description'),
3103     'array', null)
3104
3105 ,( 'circ.holds.recall_return_interval', 'recall',
3106     oils_i18n_gettext('circ.holds.recall_return_interval',
3107         'Truncated loan period.',
3108         'coust', 'label'),
3109     oils_i18n_gettext('circ.holds.recall_return_interval',
3110         'Recalls: When a recall is triggered, this defines the adjusted loan period for the item. For example, "4 days" or "1 week".',
3111         'coust', 'description'),
3112     'interval', null)
3113
3114 ,( 'circ.holds.recall_threshold', 'recall',
3115     oils_i18n_gettext('circ.holds.recall_threshold',
3116         'Circulation duration that triggers a recall.',
3117         'coust', 'label'),
3118     oils_i18n_gettext('circ.holds.recall_threshold',
3119         'Recalls: A hold placed on an item with a circulation duration longer than this will trigger a recall. For example, "14 days" or "3 weeks".',
3120         'coust', 'description'),
3121     'interval', null)
3122
3123 ,( 'circ.holds.target_holds_by_org_unit_weight', 'holds',
3124     oils_i18n_gettext('circ.holds.target_holds_by_org_unit_weight',
3125         'Use weight-based hold targeting',
3126         'coust', 'label'),
3127     oils_i18n_gettext('circ.holds.target_holds_by_org_unit_weight',
3128         'Use library weight based hold targeting',
3129         'coust', 'description'),
3130     'bool', null)
3131
3132 ,( 'circ.holds.target_skip_me', 'holds',
3133     oils_i18n_gettext('circ.holds.target_skip_me',
3134         'Skip For Hold Targeting',
3135         'coust', 'label'),
3136     oils_i18n_gettext('circ.holds.target_skip_me',
3137         'When true, don''t target any copies at this org unit for holds',
3138         'coust', 'description'),
3139     'bool', null)
3140
3141 ,( 'circ.holds.uncancel.reset_request_time', 'holds',
3142     oils_i18n_gettext('circ.holds.uncancel.reset_request_time',
3143         'Reset request time on un-cancel',
3144         'coust', 'label'),
3145     oils_i18n_gettext('circ.holds.uncancel.reset_request_time',
3146         'When a hold is uncanceled, reset the request time to push it to the end of the queue',
3147         'coust', 'description'),
3148     'bool', null)
3149
3150 ,( 'circ.holds_fifo', 'holds',
3151     oils_i18n_gettext('circ.holds_fifo',
3152         'FIFO',
3153         'coust', 'label'),
3154     oils_i18n_gettext('circ.holds_fifo',
3155         'Force holds to a more strict First-In, First-Out capture',
3156         'coust', 'description'),
3157     'bool', null)
3158
3159 ,( 'circ.item_checkout_history.max', 'gui',
3160     oils_i18n_gettext('circ.item_checkout_history.max',
3161         'Maximum previous checkouts displayed',
3162         'coust', 'label'),
3163     oils_i18n_gettext('circ.item_checkout_history.max',
3164         'This is the maximum number of previous circulations the staff client will display when investigating item details',
3165         'coust', 'description'),
3166     'integer', null)
3167
3168 ,( 'circ.lost.generate_overdue_on_checkin', 'circ',
3169     oils_i18n_gettext('circ.lost.generate_overdue_on_checkin',
3170         'Lost Checkin Generates New Overdues',
3171         'coust', 'label'),
3172     oils_i18n_gettext('circ.lost.generate_overdue_on_checkin',
3173         'Enabling this setting causes retroactive creation of not-yet-existing overdue fines on lost item checkin, up to the point of checkin time (or max fines is reached).  This is different than "restore overdue on lost", because it only creates new overdue fines.  Use both settings together to get the full complement of overdue fines for a lost item',
3174         'coust', 'description'),
3175     'bool', null)
3176
3177 ,( 'circ.lost_immediately_available', 'circ',
3178     oils_i18n_gettext('circ.lost_immediately_available',
3179         'Lost items usable on checkin',
3180         'coust', 'label'),
3181     oils_i18n_gettext('circ.lost_immediately_available',
3182         'Lost items are usable on checkin instead of going ''home'' first',
3183         'coust', 'description'),
3184     'bool', null)
3185
3186 ,( 'circ.lost_materials_processing_fee', 'finance',
3187     oils_i18n_gettext('circ.lost_materials_processing_fee',
3188         'Lost Materials Processing Fee',
3189         'coust', 'label'),
3190     oils_i18n_gettext('circ.lost_materials_processing_fee',
3191         'Lost Materials Processing Fee',
3192         'coust', 'description'),
3193     'currency', null)
3194
3195 ,( 'circ.max_accept_return_of_lost', 'circ',
3196     oils_i18n_gettext('circ.max_accept_return_of_lost',
3197         'Void lost max interval',
3198         'coust', 'label'),
3199     oils_i18n_gettext('circ.max_accept_return_of_lost',
3200         'Items that have been lost this long will not result in voided billings when returned.  E.g. ''6 months''',
3201         'coust', 'description'),
3202     'interval', null)
3203
3204 ,( 'circ.max_fine.cap_at_price', 'circ',
3205     oils_i18n_gettext('circ.max_fine.cap_at_price',
3206         'Cap Max Fine at Item Price',
3207         'coust', 'label'),
3208     oils_i18n_gettext('circ.max_fine.cap_at_price',
3209         'This prevents the system from charging more than the item price in overdue fines',
3210         'coust', 'description'),
3211     'bool', null)
3212
3213 ,( 'circ.max_patron_claim_return_count', 'circ',
3214     oils_i18n_gettext('circ.max_patron_claim_return_count',
3215         'Max Patron Claims Returned Count',
3216         'coust', 'label'),
3217     oils_i18n_gettext('circ.max_patron_claim_return_count',
3218         'When this count is exceeded, a staff override is required to mark the item as claims returned',
3219         'coust', 'description'),
3220     'integer', null)
3221
3222 ,( 'circ.missing_pieces.copy_status', 'circ',
3223     oils_i18n_gettext('circ.missing_pieces.copy_status',
3224         'Item Status for Missing Pieces',
3225         'coust', 'label'),
3226     oils_i18n_gettext('circ.missing_pieces.copy_status',
3227         'This is the Item Status to use for items that have been marked or scanned as having Missing Pieces.  In the absence of this setting, the Damaged status is used.',
3228         'coust', 'description'),
3229     'link', 'ccs')
3230
3231 ,( 'circ.obscure_dob', 'sec',
3232     oils_i18n_gettext('circ.obscure_dob',
3233         'Obscure the Date of Birth field',
3234         'coust', 'label'),
3235     oils_i18n_gettext('circ.obscure_dob',
3236         'When true, the Date of Birth column in patron lists will default to Not Visible, and in the Patron Summary sidebar the value will display as <Hidden> unless the field label is clicked.',
3237         'coust', 'description'),
3238     'bool', null)
3239
3240 ,( 'circ.offline.skip_checkin_if_newer_status_changed_time', 'offline',
3241     oils_i18n_gettext('circ.offline.skip_checkin_if_newer_status_changed_time',
3242         'Skip offline checkin if newer item Status Changed Time.',
3243         'coust', 'label'),
3244     oils_i18n_gettext('circ.offline.skip_checkin_if_newer_status_changed_time',
3245         'Skip offline checkin transaction (raise exception when processing) if item Status Changed Time is newer than the recorded transaction time.  WARNING: The Reshelving to Available status rollover will trigger this.',
3246         'coust', 'description'),
3247     'bool', null)
3248
3249 ,( 'circ.offline.skip_checkout_if_newer_status_changed_time', 'offline',
3250     oils_i18n_gettext('circ.offline.skip_checkout_if_newer_status_changed_time',
3251         'Skip offline checkout if newer item Status Changed Time.',
3252         'coust', 'label'),
3253     oils_i18n_gettext('circ.offline.skip_checkout_if_newer_status_changed_time',
3254         'Skip offline checkout transaction (raise exception when processing) if item Status Changed Time is newer than the recorded transaction time.  WARNING: The Reshelving to Available status rollover will trigger this.',
3255         'coust', 'description'),
3256     'bool', null)
3257
3258 ,( 'circ.offline.skip_renew_if_newer_status_changed_time', 'offline',
3259     oils_i18n_gettext('circ.offline.skip_renew_if_newer_status_changed_time',
3260         'Skip offline renewal if newer item Status Changed Time.',
3261         'coust', 'label'),
3262     oils_i18n_gettext('circ.offline.skip_renew_if_newer_status_changed_time',
3263         'Skip offline renewal transaction (raise exception when processing) if item Status Changed Time is newer than the recorded transaction time.  WARNING: The Reshelving to Available status rollover will trigger this.',
3264         'coust', 'description'),
3265     'bool', null)
3266
3267 ,( 'circ.offline.username_allowed', 'sec',
3268     oils_i18n_gettext('circ.offline.username_allowed',
3269         'Offline: Patron Usernames Allowed',
3270         'coust', 'label'),
3271     oils_i18n_gettext('circ.offline.username_allowed',
3272         'During offline circulations, allow patrons to identify themselves with usernames in addition to barcode.  For this setting to work, a barcode format must also be defined',
3273         'coust', 'description'),
3274     'bool', null)
3275
3276 ,( 'circ.password_reset_request_per_user_limit', 'sec',
3277     oils_i18n_gettext('circ.password_reset_request_per_user_limit',
3278         'Maximum concurrently active self-serve password reset requests per user',
3279         'coust', 'label'),
3280     oils_i18n_gettext('circ.password_reset_request_per_user_limit',
3281         'When a user has more than this number of concurrently active self-serve password reset requests for their account, prevent the user from creating any new self-serve password reset requests until the number of active requests for the user drops back below this number.',
3282         'coust', 'description'),
3283     'string', null)
3284
3285 ,( 'circ.password_reset_request_requires_matching_email', 'circ',
3286     oils_i18n_gettext('circ.password_reset_request_requires_matching_email',
3287         'Require matching email address for password reset requests',
3288         'coust', 'label'),
3289     oils_i18n_gettext('circ.password_reset_request_requires_matching_email',
3290         'Require matching email address for password reset requests',
3291         'coust', 'description'),
3292     'bool', null)
3293
3294 ,( 'circ.password_reset_request_throttle', 'sec',
3295     oils_i18n_gettext('circ.password_reset_request_throttle',
3296         'Maximum concurrently active self-serve password reset requests',
3297         'coust', 'label'),
3298     oils_i18n_gettext('circ.password_reset_request_throttle',
3299         'Prevent the creation of new self-serve password reset requests until the number of active requests drops back below this number.',
3300         'coust', 'description'),
3301     'string', null)
3302
3303 ,( 'circ.password_reset_request_time_to_live', 'sec',
3304     oils_i18n_gettext('circ.password_reset_request_time_to_live',
3305         'Self-serve password reset request time-to-live',
3306         'coust', 'label'),
3307     oils_i18n_gettext('circ.password_reset_request_time_to_live',
3308         'Length of time (in seconds) a self-serve password reset request should remain active.',
3309         'coust', 'description'),
3310     'string', null)
3311
3312 ,( 'circ.patron_edit.clone.copy_address', 'circ',
3313     oils_i18n_gettext('circ.patron_edit.clone.copy_address',
3314         'Patron Registration: Cloned patrons get address copy',
3315         'coust', 'label'),
3316     oils_i18n_gettext('circ.patron_edit.clone.copy_address',
3317         'In the Patron editor, copy addresses from the cloned user instead of linking directly to the address',
3318         'coust', 'description'),
3319     'bool', null)
3320
3321 ,( 'circ.patron_invalid_address_apply_penalty', 'circ',
3322     oils_i18n_gettext('circ.patron_invalid_address_apply_penalty',
3323         'Invalid patron address penalty',
3324         'coust', 'label'),
3325     oils_i18n_gettext('circ.patron_invalid_address_apply_penalty',
3326         'When set, if a patron address is set to invalid, a penalty is applied.',
3327         'coust', 'description'),
3328     'bool', null)
3329
3330 ,( 'circ.pre_cat_copy_circ_lib', 'lib',
3331     oils_i18n_gettext('circ.pre_cat_copy_circ_lib',
3332         'Pre-cat Item Circ Lib',
3333         'coust', 'label'),
3334     oils_i18n_gettext('circ.pre_cat_copy_circ_lib',
3335         'Override the default circ lib of "here" with a pre-configured circ lib for pre-cat items.  The value should be the "shortname" (aka policy name) of the org unit',
3336         'coust', 'description'),
3337     'string', null)
3338
3339 ,( 'circ.reshelving_complete.interval', 'lib',
3340     oils_i18n_gettext('circ.reshelving_complete.interval',
3341         'Change reshelving status interval',
3342         'coust', 'label'),
3343     oils_i18n_gettext('circ.reshelving_complete.interval',
3344         'Amount of time to wait before changing an item from "reshelving" status to "available".  Examples: "1 day", "6 hours"',
3345         'coust', 'description'),
3346     'interval', null)
3347
3348 ,( 'circ.restore_overdue_on_lost_return', 'circ',
3349     oils_i18n_gettext('circ.restore_overdue_on_lost_return',
3350         'Restore overdues on lost item return',
3351         'coust', 'label'),
3352     oils_i18n_gettext('circ.restore_overdue_on_lost_return',
3353         'Restore overdue fines on lost item return',
3354         'coust', 'description'),
3355     'bool', null)
3356
3357 ,( 'circ.selfcheck.alert.popup', 'self',
3358     oils_i18n_gettext('circ.selfcheck.alert.popup',
3359         'Pop-up alert for errors',
3360         'coust', 'label'),
3361     oils_i18n_gettext('circ.selfcheck.alert.popup',
3362         'If true, checkout/renewal errors will cause a pop-up window in addition to the on-screen message',
3363         'coust', 'description'),
3364     'bool', null)
3365
3366 ,( 'circ.selfcheck.alert.sound', 'self',
3367     oils_i18n_gettext('circ.selfcheck.alert.sound',
3368         'Audio Alerts',
3369         'coust', 'label'),
3370     oils_i18n_gettext('circ.selfcheck.alert.sound',
3371         'Use audio alerts for selfcheck events',
3372         'coust', 'description'),
3373     'bool', null)
3374
3375 ,( 'circ.selfcheck.auto_override_checkout_events', 'self',
3376     oils_i18n_gettext('circ.selfcheck.auto_override_checkout_events',
3377         'Selfcheck override events list',
3378         'coust', 'label'),
3379     oils_i18n_gettext('circ.selfcheck.auto_override_checkout_events',
3380         'List of checkout/renewal events that the selfcheck interface should automatically override instead instead of alerting and stopping the transaction',
3381         'coust', 'description'),
3382     'array', null)
3383
3384 ,( 'circ.selfcheck.block_checkout_on_copy_status', 'self',
3385     oils_i18n_gettext('circ.selfcheck.block_checkout_on_copy_status',
3386         'Block copy checkout status',
3387         'coust', 'label'),
3388     oils_i18n_gettext('circ.selfcheck.block_checkout_on_copy_status',
3389         'List of copy status IDs that will block checkout even if the generic COPY_NOT_AVAILABLE event is overridden',
3390         'coust', 'description'),
3391     'array', null)
3392
3393 ,( 'circ.selfcheck.patron_login_timeout', 'self',
3394     oils_i18n_gettext('circ.selfcheck.patron_login_timeout',
3395         'Patron Login Timeout (in seconds)',
3396         'coust', 'label'),
3397     oils_i18n_gettext('circ.selfcheck.patron_login_timeout',
3398         'Number of seconds of inactivity before the patron is logged out of the selfcheck interface',
3399         'coust', 'description'),
3400     'integer', null)
3401
3402 ,( 'circ.selfcheck.patron_password_required', 'self',
3403     oils_i18n_gettext('circ.selfcheck.patron_password_required',
3404         'Require Patron Password',
3405         'coust', 'label'),
3406     oils_i18n_gettext('circ.selfcheck.patron_password_required',
3407         'Patron must log in with barcode and password at selfcheck station',
3408         'coust', 'description'),
3409     'bool', null)
3410
3411 ,( 'circ.selfcheck.require_patron_password', 'self',
3412     oils_i18n_gettext('circ.selfcheck.require_patron_password',
3413         'Require patron password',
3414         'coust', 'label'),
3415     oils_i18n_gettext('circ.selfcheck.require_patron_password',
3416         'If true, patrons will be required to enter their password in addition to their username/barcode to log into the selfcheck interface',
3417         'coust', 'description'),
3418     'bool', null)
3419
3420 ,( 'circ.selfcheck.workstation_required', 'self',
3421     oils_i18n_gettext('circ.selfcheck.workstation_required',
3422         'Workstation Required',
3423         'coust', 'label'),
3424     oils_i18n_gettext('circ.selfcheck.workstation_required',
3425         'All selfcheck stations must use a workstation',
3426         'coust', 'description'),
3427     'bool', null)
3428
3429 ,( 'circ.staff_client.actor_on_checkout', 'circ',
3430     oils_i18n_gettext('circ.staff_client.actor_on_checkout',
3431         'Load patron from Checkout',
3432         'coust', 'label'),
3433     oils_i18n_gettext('circ.staff_client.actor_on_checkout',
3434         'When scanning barcodes into Checkout auto-detect if a new patron barcode is scanned and auto-load the new patron.',
3435         'coust', 'description'),
3436     'bool', null)
3437
3438 ,( 'circ.staff_client.do_not_auto_attempt_print', 'prog',
3439     oils_i18n_gettext('circ.staff_client.do_not_auto_attempt_print',
3440         'Disable Automatic Print Attempt Type List',
3441         'coust', 'label'),
3442     oils_i18n_gettext('circ.staff_client.do_not_auto_attempt_print',
3443         'Disable automatic print attempts from staff client interfaces for the receipt types in this list.  Possible values: "Checkout", "Bill Pay", "Hold Slip", "Transit Slip", and "Hold/Transit Slip".  This is different from the Auto-Print checkbox in the pertinent interfaces in that it disables automatic print attempts altogether, rather than encouraging silent printing by suppressing the print dialog.  The Auto-Print checkbox in these interfaces have no effect on the behavior for this setting.  In the case of the Hold, Transit, and Hold/Transit slips, this also suppresses the alert dialogs that precede the print dialog (the ones that offer Print and Do Not Print as options).',
3444         'coust', 'description'),
3445     'array', null)
3446
3447 ,( 'circ.staff_client.receipt.alert_text', 'receipt_template',
3448     oils_i18n_gettext('circ.staff_client.receipt.alert_text',
3449         'Content of alert_text include',
3450         'coust', 'label'),
3451     oils_i18n_gettext('circ.staff_client.receipt.alert_text',
3452         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(alert_text)%',
3453         'coust', 'description'),
3454     'string', null)
3455
3456 ,( 'circ.staff_client.receipt.event_text', 'receipt_template',
3457     oils_i18n_gettext('circ.staff_client.receipt.event_text',
3458         'Content of event_text include',
3459         'coust', 'label'),
3460     oils_i18n_gettext('circ.staff_client.receipt.event_text',
3461         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(event_text)%',
3462         'coust', 'description'),
3463     'string', null)
3464
3465 ,( 'circ.staff_client.receipt.footer_text', 'receipt_template',
3466     oils_i18n_gettext('circ.staff_client.receipt.footer_text',
3467         'Content of footer_text include',
3468         'coust', 'label'),
3469     oils_i18n_gettext('circ.staff_client.receipt.footer_text',
3470         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(footer_text)%',
3471         'coust', 'description'),
3472     'string', null)
3473
3474 ,( 'circ.staff_client.receipt.header_text', 'receipt_template',
3475     oils_i18n_gettext('circ.staff_client.receipt.header_text',
3476         'Content of header_text include',
3477         'coust', 'label'),
3478     oils_i18n_gettext('circ.staff_client.receipt.header_text',
3479         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(header_text)%',
3480         'coust', 'description'),
3481     'string', null)
3482
3483 ,( 'circ.staff_client.receipt.notice_text', 'receipt_template',
3484     oils_i18n_gettext('circ.staff_client.receipt.notice_text',
3485         'Content of notice_text include',
3486         'coust', 'label'),
3487     oils_i18n_gettext('circ.staff_client.receipt.notice_text',
3488         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(notice_text)%',
3489         'coust', 'description'),
3490     'string', null)
3491
3492 ,( 'circ.transit.min_checkin_interval', 'circ',
3493     oils_i18n_gettext('circ.transit.min_checkin_interval',
3494         'Minimum Transit Checkin Interval',
3495         'coust', 'label'),
3496     oils_i18n_gettext('circ.transit.min_checkin_interval',
3497         'In-Transit items checked in this close to the transit start time will be prevented from checking in',
3498         'coust', 'description'),
3499     'interval', null)
3500
3501 ,( 'circ.transit.suppress_hold', 'circ',
3502     oils_i18n_gettext('circ.transit.suppress_hold',
3503         'Suppress Hold Transits Group',
3504         'coust', 'label'),
3505     oils_i18n_gettext('circ.transit.suppress_hold',
3506         'If set to a non-empty value, Hold Transits will be suppressed between this OU and others with the same value. If set to an empty value, transits will not be suppressed.',
3507         'coust', 'description'),
3508     'string', null)
3509
3510 ,( 'circ.transit.suppress_non_hold', 'circ',
3511     oils_i18n_gettext('circ.transit.suppress_non_hold',
3512         'Suppress Non-Hold Transits Group',
3513         'coust', 'label'),
3514     oils_i18n_gettext('circ.transit.suppress_non_hold',
3515         'If set to a non-empty value, Non-Hold Transits will be suppressed between this OU and others with the same value. If set to an empty value, transits will not be suppressed.',
3516         'coust', 'description'),
3517     'string', null)
3518
3519 ,( 'circ.user_merge.deactivate_cards', 'circ',
3520     oils_i18n_gettext('circ.user_merge.deactivate_cards',
3521         'Patron Merge Deactivate Card',
3522         'coust', 'label'),
3523     oils_i18n_gettext('circ.user_merge.deactivate_cards',
3524         'Mark barcode(s) of subordinate user(s) in a patron merge as inactive',
3525         'coust', 'description'),
3526     'bool', null)
3527
3528 ,( 'circ.user_merge.delete_addresses', 'circ',
3529     oils_i18n_gettext('circ.user_merge.delete_addresses',
3530         'Patron Merge Address Delete',
3531         'coust', 'label'),
3532     oils_i18n_gettext('circ.user_merge.delete_addresses',
3533         'Delete address(es) of subordinate user(s) in a patron merge',
3534         'coust', 'description'),
3535     'bool', null)
3536
3537 ,( 'circ.user_merge.delete_cards', 'circ',
3538     oils_i18n_gettext('circ.user_merge.delete_cards',
3539         'Patron Merge Barcode Delete',
3540         'coust', 'label'),
3541     oils_i18n_gettext('circ.user_merge.delete_cards',
3542         'Delete barcode(s) of subordinate user(s) in a patron merge',
3543         'coust', 'description'),
3544     'bool', null)
3545
3546 ,( 'circ.void_lost_on_checkin', 'circ',
3547     oils_i18n_gettext('circ.void_lost_on_checkin',
3548         'Void lost item billing when returned',
3549         'coust', 'label'),
3550     oils_i18n_gettext('circ.void_lost_on_checkin',
3551         'Void lost item billing when returned',
3552         'coust', 'description'),
3553     'bool', null)
3554
3555 ,( 'circ.void_lost_proc_fee_on_checkin', 'circ',
3556     oils_i18n_gettext('circ.void_lost_proc_fee_on_checkin',
3557         'Void processing fee on lost item return',
3558         'coust', 'label'),
3559     oils_i18n_gettext('circ.void_lost_proc_fee_on_checkin',
3560         'Void processing fee when lost item returned',
3561         'coust', 'description'),
3562     'bool', null)
3563
3564 ,( 'circ.void_overdue_on_lost', 'finance',
3565     oils_i18n_gettext('circ.void_overdue_on_lost',
3566         'Void overdue fines when items are marked lost',
3567         'coust', 'label'),
3568     oils_i18n_gettext('circ.void_overdue_on_lost',
3569         'Void overdue fines when items are marked lost',
3570         'coust', 'description'),
3571     'bool', null)
3572
3573 ,( 'credit.payments.allow', 'finance',
3574     oils_i18n_gettext('credit.payments.allow',
3575         'Allow Credit Card Payments',
3576         'coust', 'label'),
3577     oils_i18n_gettext('credit.payments.allow',
3578         'If enabled, patrons will be able to pay fines accrued at this location via credit card',
3579         'coust', 'description'),
3580     'bool', null)
3581
3582 ,( 'credit.processor.authorizenet.enabled', 'credit',
3583     oils_i18n_gettext('credit.processor.authorizenet.enabled',
3584         'Enable AuthorizeNet payments',
3585         'coust', 'label'),
3586     oils_i18n_gettext('credit.processor.authorizenet.enabled',
3587         'Enable AuthorizeNet payments',
3588         'coust', 'description'),
3589     'bool', null)
3590
3591 ,( 'credit.processor.authorizenet.login', 'credit',
3592     oils_i18n_gettext('credit.processor.authorizenet.login',
3593         'AuthorizeNet login',
3594         'coust', 'label'),
3595     oils_i18n_gettext('credit.processor.authorizenet.login',
3596         'AuthorizeNet login',
3597         'coust', 'description'),
3598     'string', null)
3599
3600 ,( 'credit.processor.authorizenet.password', 'credit',
3601     oils_i18n_gettext('credit.processor.authorizenet.password',
3602         'AuthorizeNet password',
3603         'coust', 'label'),
3604     oils_i18n_gettext('credit.processor.authorizenet.password',
3605         'AuthorizeNet password',
3606         'coust', 'description'),
3607     'string', null)
3608
3609 ,( 'credit.processor.authorizenet.server', 'credit',
3610     oils_i18n_gettext('credit.processor.authorizenet.server',
3611         'AuthorizeNet server',
3612         'coust', 'label'),
3613     oils_i18n_gettext('credit.processor.authorizenet.server',
3614         'Required if using a developer/test account with AuthorizeNet',
3615         'coust', 'description'),
3616     'string', null)
3617
3618 ,( 'credit.processor.authorizenet.testmode', 'credit',
3619     oils_i18n_gettext('credit.processor.authorizenet.testmode',
3620         'AuthorizeNet test mode',
3621         'coust', 'label'),
3622     oils_i18n_gettext('credit.processor.authorizenet.testmode',
3623         'AuthorizeNet test mode',
3624         'coust', 'description'),
3625     'bool', null)
3626
3627 ,( 'credit.processor.default', 'credit',
3628     oils_i18n_gettext('credit.processor.default',
3629         'Name default credit processor',
3630         'coust', 'label'),
3631     oils_i18n_gettext('credit.processor.default',
3632         'This might be "AuthorizeNet", "PayPal", etc.',
3633         'coust', 'description'),
3634     'string', null)
3635
3636 ,( 'credit.processor.payflowpro.enabled', 'credit',
3637     oils_i18n_gettext('credit.processor.payflowpro.enabled',
3638         'Enable PayflowPro payments',
3639         'coust', 'label'),
3640     oils_i18n_gettext('credit.processor.payflowpro.enabled',
3641         'This is NOT the same thing as the settings labeled with just "PayPal."',
3642         'coust', 'description'),
3643     'bool', null)
3644
3645 ,( 'credit.processor.payflowpro.login', 'credit',
3646     oils_i18n_gettext('credit.processor.payflowpro.login',
3647         'PayflowPro login/merchant ID',
3648         'coust', 'label'),
3649     oils_i18n_gettext('credit.processor.payflowpro.login',
3650         'Often the same thing as the PayPal manager login',
3651         'coust', 'description'),
3652     'string', null)
3653
3654 ,( 'credit.processor.payflowpro.partner', 'credit',
3655     oils_i18n_gettext('credit.processor.payflowpro.partner',
3656         'PayflowPro partner',
3657         'coust', 'label'),
3658     oils_i18n_gettext('credit.processor.payflowpro.partner',
3659         'Often "PayPal" or "VeriSign", sometimes others',
3660         'coust', 'description'),
3661     'string', null)
3662
3663 ,( 'credit.processor.payflowpro.password', 'credit',
3664     oils_i18n_gettext('credit.processor.payflowpro.password',
3665         'PayflowPro password',
3666         'coust', 'label'),
3667     oils_i18n_gettext('credit.processor.payflowpro.password',
3668         'PayflowPro password',
3669         'coust', 'description'),
3670     'string', null)
3671
3672 ,( 'credit.processor.payflowpro.testmode', 'credit',
3673     oils_i18n_gettext('credit.processor.payflowpro.testmode',
3674         'PayflowPro test mode',
3675         'coust', 'label'),
3676     oils_i18n_gettext('credit.processor.payflowpro.testmode',
3677         'Do not really process transactions, but stay in test mode - uses pilot-payflowpro.paypal.com instead of the usual host',
3678         'coust', 'description'),
3679     'bool', null)
3680
3681 ,( 'credit.processor.payflowpro.vendor', 'credit',
3682     oils_i18n_gettext('credit.processor.payflowpro.vendor',
3683         'PayflowPro vendor',
3684         'coust', 'label'),
3685     oils_i18n_gettext('credit.processor.payflowpro.vendor',
3686         'Often the same thing as the login',
3687         'coust', 'description'),
3688     'string', null)
3689
3690 ,( 'credit.processor.paypal.enabled', 'credit',
3691     oils_i18n_gettext('credit.processor.paypal.enabled',
3692         'Enable PayPal payments',
3693         'coust', 'label'),
3694     oils_i18n_gettext('credit.processor.paypal.enabled',
3695         'Enable PayPal payments',
3696         'coust', 'description'),
3697     'bool', null)
3698
3699 ,( 'credit.processor.paypal.login', 'credit',
3700     oils_i18n_gettext('credit.processor.paypal.login',
3701         'PayPal login',
3702         'coust', 'label'),
3703     oils_i18n_gettext('credit.processor.paypal.login',
3704         'PayPal login',
3705         'coust', 'description'),
3706     'string', null)
3707
3708 ,( 'credit.processor.paypal.password', 'credit',
3709     oils_i18n_gettext('credit.processor.paypal.password',
3710         'PayPal password',
3711         'coust', 'label'),
3712     oils_i18n_gettext('credit.processor.paypal.password',
3713         'PayPal password',
3714         'coust', 'description'),
3715     'string', null)
3716
3717 ,( 'credit.processor.paypal.signature', 'credit',
3718     oils_i18n_gettext('credit.processor.paypal.signature',
3719         'PayPal signature',
3720         'coust', 'label'),
3721     oils_i18n_gettext('credit.processor.paypal.signature',
3722         'PayPal signature',
3723         'coust', 'description'),
3724     'string', null)
3725
3726 ,( 'credit.processor.paypal.testmode', 'credit',
3727     oils_i18n_gettext('credit.processor.paypal.testmode',
3728         'PayPal test mode',
3729         'coust', 'label'),
3730     oils_i18n_gettext('credit.processor.paypal.testmode',
3731         'PayPal test mode',
3732         'coust', 'description'),
3733     'bool', null)
3734
3735 ,( 'format.date', 'gui',
3736     oils_i18n_gettext('format.date',
3737         'Format Dates with this pattern.',
3738         'coust', 'label'),
3739     oils_i18n_gettext('format.date',
3740         'Format Dates with this pattern (examples: "yyyy-MM-dd" for "2010-04-26", "MMM d, yyyy" for "Apr 26, 2010")',
3741         'coust', 'description'),
3742     'string', null)
3743
3744 ,( 'format.time', 'gui',
3745     oils_i18n_gettext('format.time',
3746         'Format Times with this pattern.',
3747         'coust', 'label'),
3748     oils_i18n_gettext('format.time',
3749         'Format Times with this pattern (examples: "h:m:s.SSS a z" for "2:07:20.666 PM Eastern Daylight Time", "HH:mm" for "14:07")',
3750         'coust', 'description'),
3751     'string', null)
3752
3753 ,( 'global.default_locale', 'glob',
3754     oils_i18n_gettext('global.default_locale',
3755         'Global Default Locale',
3756         'coust', 'label'),
3757     oils_i18n_gettext('global.default_locale',
3758         'Global Default Locale',
3759         'coust', 'description'),
3760     'string', null)
3761
3762 ,( 'global.juvenile_age_threshold', 'lib',
3763     oils_i18n_gettext('global.juvenile_age_threshold',
3764         'Juvenile Age Threshold',
3765         'coust', 'label'),
3766     oils_i18n_gettext('global.juvenile_age_threshold',
3767         'The age at which a user is no long considered a juvenile.  For example, "18 years".',
3768         'coust', 'description'),
3769     'interval', null)
3770
3771 ,( 'global.password_regex', 'glob',
3772     oils_i18n_gettext('global.password_regex',
3773         'Password format',
3774         'coust', 'label'),
3775     oils_i18n_gettext('global.password_regex',
3776         'Regular expression defining the password format',
3777         'coust', 'description'),
3778     'string', null)
3779
3780 ,( 'gui.disable_local_save_columns', 'gui',
3781     oils_i18n_gettext('gui.disable_local_save_columns',
3782         'Disable the ability to save list column configurations locally.',
3783         'coust', 'label'),
3784     oils_i18n_gettext('gui.disable_local_save_columns',
3785         'Disable the ability to save list column configurations locally.  If set, columns may still be manipulated, however, the changes do not persist.  Also, existing local configurations are ignored if this setting is true.',
3786         'coust', 'description'),
3787     'bool', null)
3788
3789 ,( 'lib.courier_code', 'lib',
3790     oils_i18n_gettext('lib.courier_code',
3791         'Courier Code',
3792         'coust', 'label'),
3793     oils_i18n_gettext('lib.courier_code',
3794         'Courier Code for the library.  Available in transit slip templates as the %courier_code% macro.',
3795         'coust', 'description'),
3796     'string', null)
3797
3798 ,( 'notice.telephony.callfile_lines', 'lib',
3799     oils_i18n_gettext('notice.telephony.callfile_lines',
3800         'Telephony: Arbitrary line(s) to include in each notice callfile',
3801         'coust', 'label'),
3802     oils_i18n_gettext('notice.telephony.callfile_lines',
3803         '
3804         This overrides lines from opensrf.xml.
3805         Line(s) must be valid for your target server and platform
3806         (e.g. Asterisk 1.4).
3807         ',
3808         'coust', 'description'),
3809     'string', null)
3810
3811 ,( 'opac.allow_pending_address', 'opac',
3812     oils_i18n_gettext('opac.allow_pending_address',
3813         'Allow pending addresses',
3814         'coust', 'label'),
3815     oils_i18n_gettext('opac.allow_pending_address',
3816         'If enabled, patrons can create and edit existing addresses.  Addresses are kept in a pending state until staff approves the changes',
3817         'coust', 'description'),
3818     'bool', null)
3819
3820 ,( 'opac.barcode_regex', 'glob',
3821     oils_i18n_gettext('opac.barcode_regex',
3822         'Patron barcode format',
3823         'coust', 'label'),
3824     oils_i18n_gettext('opac.barcode_regex',
3825         'Regular expression defining the patron barcode format',
3826         'coust', 'description'),
3827     'string', null)
3828
3829 ,( 'opac.fully_compressed_serial_holdings', 'opac',
3830     oils_i18n_gettext('opac.fully_compressed_serial_holdings',
3831         'Use fully compressed serial holdings',
3832         'coust', 'label'),
3833     oils_i18n_gettext('opac.fully_compressed_serial_holdings',
3834         'Show fully compressed serial holdings for all libraries at and below the current context unit',
3835         'coust', 'description'),
3836     'bool', null)
3837
3838 ,( 'opac.lock_usernames', 'glob',
3839     oils_i18n_gettext('opac.lock_usernames',
3840         'Lock Usernames',
3841         'coust', 'label'),
3842     oils_i18n_gettext('opac.lock_usernames',
3843         'If enabled username changing via the OPAC will be disabled',
3844         'coust', 'description'),
3845     'bool', null)
3846
3847 ,( 'opac.org_unit_hiding.depth', 'opac',
3848     oils_i18n_gettext('opac.org_unit_hiding.depth',
3849         'Org Unit Hiding Depth',
3850         'coust', 'label'),
3851     oils_i18n_gettext('opac.org_unit_hiding.depth',
3852         'This will hide certain org units in the public OPAC if the Original Location (url param "ol") for the OPAC inherits this setting.  This setting specifies an org unit depth, that together with the OPAC Original Location determines which section of the Org Hierarchy should be visible in the OPAC.  For example, a stock Evergreen installation will have a 3-tier hierarchy (Consortium/System/Branch), where System has a depth of 1 and Branch has a depth of 2.  If this setting contains a depth of 1 in such an installation, then every library in the System in which the Original Location belongs will be visible, and everything else will be hidden.  A depth of 0 will effectively make every org visible.  The embedded OPAC in the staff client ignores this setting.',
3853         'coust', 'description'),
3854     'integer', null)
3855
3856 ,( 'opac.payment_history_age_limit', 'opac',
3857     oils_i18n_gettext('opac.payment_history_age_limit',
3858         'Payment History Age Limit',
3859         'coust', 'label'),
3860     oils_i18n_gettext('opac.payment_history_age_limit',
3861         'The OPAC should not display payments by patrons that are older than any interval defined here.',
3862         'coust', 'description'),
3863     'interval', null)
3864
3865 ,( 'opac.unlimit_usernames', 'glob',
3866     oils_i18n_gettext('opac.unlimit_usernames',
3867         'Allow multiple username changes',
3868         'coust', 'label'),
3869     oils_i18n_gettext('opac.unlimit_usernames',
3870         'If enabled (and Lock Usernames is not set) patrons will be allowed to change their username when it does not look like a barcode. Otherwise username changing in the OPAC will only be allowed when the patron''s username looks like a barcode.',
3871         'coust', 'description'),
3872     'bool', null)
3873
3874 ,( 'opac.username_regex', 'glob',
3875     oils_i18n_gettext('opac.username_regex',
3876         'Patron username format',
3877         'coust', 'label'),
3878     oils_i18n_gettext('opac.username_regex',
3879         'Regular expression defining the patron username format, used for patron registration and self-service username changing only',
3880         'coust', 'description'),
3881     'string', null)
3882
3883 ,( 'org.bounced_emails', 'prog',
3884     oils_i18n_gettext('org.bounced_emails',
3885         'Sending email address for patron notices',
3886         'coust', 'label'),
3887     oils_i18n_gettext('org.bounced_emails',
3888         'Sending email address for patron notices',
3889         'coust', 'description'),
3890     'string', null)
3891
3892 ,( 'org.patron_opt_boundary', 'sec',
3893     oils_i18n_gettext('org.patron_opt_boundary',
3894         'Patron Opt-In Boundary',
3895         'coust', 'label'),
3896     oils_i18n_gettext('org.patron_opt_boundary',
3897         'This determines at which depth above which patrons must be opted in, and below which patrons will be assumed to be opted in.',
3898         'coust', 'description'),
3899     'integer', null)
3900
3901 ,( 'org.patron_opt_default', 'sec',
3902     oils_i18n_gettext('org.patron_opt_default',
3903         'Patron Opt-In Default',
3904         'coust', 'label'),
3905     oils_i18n_gettext('org.patron_opt_default',
3906         'This is the default depth at which a patron is opted in; it is calculated as an org unit relative to the current workstation.',
3907         'coust', 'description'),
3908     'integer', null)
3909
3910 ,( 'patron.password.use_phone', 'sec',
3911     oils_i18n_gettext('patron.password.use_phone',
3912         'Patron: password from phone #',
3913         'coust', 'label'),
3914     oils_i18n_gettext('patron.password.use_phone',
3915         'By default, use the last 4 alphanumeric characters of the patrons phone number as the default password when creating new users.  The exact characters used may be configured via the "GUI: Regex for day_phone field on patron registration" setting.',
3916         'coust', 'description'),
3917     'bool', null)
3918
3919 ,( 'print.custom_js_file', 'circ',
3920     oils_i18n_gettext('print.custom_js_file',
3921         'Printing: Custom Javascript File',
3922         'coust', 'label'),
3923     oils_i18n_gettext('print.custom_js_file',
3924         'Full URL path to a Javascript File to be loaded when printing. Should'
3925         || ' implement a print_custom function for DOM manipulation. Can change'
3926         || ' the value of the do_print variable to false to cancel printing.',
3927         'coust', 'description'),
3928     'string', null)
3929
3930 ,( 'serial.prev_issuance_copy_location', 'serial',
3931     oils_i18n_gettext('serial.prev_issuance_copy_location',
3932         'Previous Issuance Copy Location',
3933         'coust', 'label'),
3934     oils_i18n_gettext('serial.prev_issuance_copy_location',
3935         'When a serial issuance is received, copies (units) of the previous issuance will be automatically moved into the configured shelving location',
3936         'coust', 'description'),
3937     'link', 'acpl')
3938
3939 ,( 'ui.admin.patron_log.max_entries', 'gui',
3940     oils_i18n_gettext('ui.admin.patron_log.max_entries',
3941         'Work Log: Maximum Patrons Logged',
3942         'coust', 'label'),
3943     oils_i18n_gettext('ui.admin.patron_log.max_entries',
3944         'Maximum entries for "Most Recently Affected Patrons..." section of the Work Log interface.',
3945         'coust', 'description'),
3946     'interval', null)
3947
3948 ,( 'ui.admin.work_log.max_entries', 'gui',
3949     oils_i18n_gettext('ui.admin.work_log.max_entries',
3950         'Work Log: Maximum Actions Logged',
3951         'coust', 'label'),
3952     oils_i18n_gettext('ui.admin.work_log.max_entries',
3953         'Maximum entries for "Most Recent Staff Actions" section of the Work Log interface.',
3954         'coust', 'description'),
3955     'interval', null)
3956
3957 ,( 'ui.cat.volume_copy_editor.horizontal', 'gui',
3958     oils_i18n_gettext('ui.cat.volume_copy_editor.horizontal',
3959         'Horizontal layout for Volume/Copy Creator/Editor.',
3960         'coust', 'label'),
3961     oils_i18n_gettext('ui.cat.volume_copy_editor.horizontal',
3962         'The main entry point for this interface is in Holdings Maintenance, Actions for Selected Rows, Edit Item Attributes / Call Numbers / Replace Barcodes.  This setting changes the top and bottom panes for that interface into left and right panes.',
3963         'coust', 'description'),
3964     'bool', null)
3965
3966 ,( 'ui.circ.billing.uncheck_bills_and_unfocus_payment_box', 'gui',
3967     oils_i18n_gettext('ui.circ.billing.uncheck_bills_and_unfocus_payment_box',
3968         'Uncheck bills by default in the patron billing interface',
3969         'coust', 'label'),
3970     oils_i18n_gettext('ui.circ.billing.uncheck_bills_and_unfocus_payment_box',
3971         'Uncheck bills by default in the patron billing interface, and focus on the Uncheck All button instead of the Payment Received field.',
3972         'coust', 'description'),
3973     'bool', null)
3974
3975 ,( 'ui.circ.in_house_use.entry_cap', 'gui',
3976     oils_i18n_gettext('ui.circ.in_house_use.entry_cap',
3977         'Record In-House Use: Maximum # of uses allowed per entry.',
3978         'coust', 'label'),
3979     oils_i18n_gettext('ui.circ.in_house_use.entry_cap',
3980         'The # of uses entry in the Record In-House Use interface may not exceed the value of this setting.',
3981         'coust', 'description'),
3982     'integer', null)
3983
3984 ,( 'ui.circ.in_house_use.entry_warn', 'gui',
3985     oils_i18n_gettext('ui.circ.in_house_use.entry_warn',
3986         'Record In-House Use: # of uses threshold for Are You Sure? dialog.',
3987         'coust', 'label'),
3988     oils_i18n_gettext('ui.circ.in_house_use.entry_warn',
3989         'In the Record In-House Use interface, a submission attempt will warn if the # of uses field exceeds the value of this setting.',
3990         'coust', 'description'),
3991     'integer', null)
3992
3993 ,( 'ui.circ.patron_summary.horizontal', 'gui',
3994     oils_i18n_gettext('ui.circ.patron_summary.horizontal',
3995         'Patron circulation summary is horizontal',
3996         'coust', 'label'),
3997     oils_i18n_gettext('ui.circ.patron_summary.horizontal',
3998         'Patron circulation summary is horizontal',
3999         'coust', 'description'),
4000     'bool', null)
4001
4002 ,( 'ui.circ.show_billing_tab_on_bills', 'gui',
4003     oils_i18n_gettext('ui.circ.show_billing_tab_on_bills',
4004         'Show billing tab first when bills are present',
4005         'coust', 'label'),
4006     oils_i18n_gettext('ui.circ.show_billing_tab_on_bills',
4007         'If enabled and a patron has outstanding bills and the alert page is not required, show the billing tab by default, instead of the checkout tab, when a patron is loaded',
4008         'coust', 'description'),
4009     'bool', null)
4010
4011 ,( 'ui.circ.suppress_checkin_popups', 'circ',
4012     oils_i18n_gettext('ui.circ.suppress_checkin_popups',
4013         'Suppress popup-dialogs during check-in.',
4014         'coust', 'label'),
4015     oils_i18n_gettext('ui.circ.suppress_checkin_popups',
4016         'Suppress popup-dialogs during check-in.',
4017         'coust', 'description'),
4018     'bool', null)
4019
4020 ,( 'ui.general.button_bar', 'gui',
4021     oils_i18n_gettext('ui.general.button_bar',
4022         'Button bar',
4023         'coust', 'label'),
4024     oils_i18n_gettext('ui.general.button_bar',
4025         'Set to "circ" or "cat" for stock circulator or cataloger toolbar, respectively.',
4026         'coust', 'description'),
4027     'string', null)
4028
4029 ,( 'ui.general.hotkeyset', 'gui',
4030     oils_i18n_gettext('ui.general.hotkeyset',
4031         'Default Hotkeyset',
4032         'coust', 'label'),
4033     oils_i18n_gettext('ui.general.hotkeyset',
4034         'Default Hotkeyset for clients (filename without the .keyset).  Examples: Default, Minimal, and None',
4035         'coust', 'description'),
4036     'string', null)
4037
4038 ,( 'ui.general.idle_timeout', 'gui',
4039     oils_i18n_gettext('ui.general.idle_timeout',
4040         'Idle timeout',
4041         'coust', 'label'),
4042     oils_i18n_gettext('ui.general.idle_timeout',
4043         'If you want staff client windows to be minimized after a certain amount of system idle time, set this to the number of seconds of idle time that you want to allow before minimizing (requires staff client restart).',
4044         'coust', 'description'),
4045     'integer', null)
4046
4047 ,( 'ui.patron.default_country', 'gui',
4048     oils_i18n_gettext('ui.patron.default_country',
4049         'Default Country for New Addresses in Patron Editor',
4050         'coust', 'label'),
4051     oils_i18n_gettext('ui.patron.default_country',
4052         'This is the default Country for new addresses in the patron editor.',
4053         'coust', 'description'),
4054     'string', null)
4055
4056 ,( 'ui.patron.default_ident_type', 'gui',
4057     oils_i18n_gettext('ui.patron.default_ident_type',
4058         'Default Ident Type for Patron Registration',
4059         'coust', 'label'),
4060     oils_i18n_gettext('ui.patron.default_ident_type',
4061         'This is the default Ident Type for new users in the patron editor.',
4062         'coust', 'description'),
4063     'link', 'cit')
4064
4065 ,( 'ui.patron.default_inet_access_level', 'sec',
4066     oils_i18n_gettext('ui.patron.default_inet_access_level',
4067         'Default level of patrons'' internet access',
4068         'coust', 'label'),
4069     oils_i18n_gettext('ui.patron.default_inet_access_level',
4070         'Default level of patrons'' internet access',
4071         'coust', 'description'),
4072     'integer', null)
4073
4074 ,( 'ui.patron.edit.au.active.show', 'gui',
4075     oils_i18n_gettext('ui.patron.edit.au.active.show',
4076         'Show active field on patron registration',
4077         'coust', 'label'),
4078     oils_i18n_gettext('ui.patron.edit.au.active.show',
4079         'The active field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4080         'coust', 'description'),
4081     'bool', null)
4082
4083 ,( 'ui.patron.edit.au.active.suggest', 'gui',
4084     oils_i18n_gettext('ui.patron.edit.au.active.suggest',
4085         'Suggest active field on patron registration',
4086         'coust', 'label'),
4087     oils_i18n_gettext('ui.patron.edit.au.active.suggest',
4088         'The active field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4089         'coust', 'description'),
4090     'bool', null)
4091
4092 ,( 'ui.patron.edit.au.alert_message.show', 'gui',
4093     oils_i18n_gettext('ui.patron.edit.au.alert_message.show',
4094         'Show alert_message field on patron registration',
4095         'coust', 'label'),
4096     oils_i18n_gettext('ui.patron.edit.au.alert_message.show',
4097         'The alert_message field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4098         'coust', 'description'),
4099     'bool', null)
4100
4101 ,( 'ui.patron.edit.au.alert_message.suggest', 'gui',
4102     oils_i18n_gettext('ui.patron.edit.au.alert_message.suggest',
4103         'Suggest alert_message field on patron registration',
4104         'coust', 'label'),
4105     oils_i18n_gettext('ui.patron.edit.au.alert_message.suggest',
4106         'The alert_message field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4107         'coust', 'description'),
4108     'bool', null)
4109
4110 ,( 'ui.patron.edit.au.alias.show', 'gui',
4111     oils_i18n_gettext('ui.patron.edit.au.alias.show',
4112         'Show alias field on patron registration',
4113         'coust', 'label'),
4114     oils_i18n_gettext('ui.patron.edit.au.alias.show',
4115         'The alias field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4116         'coust', 'description'),
4117     'bool', null)
4118
4119 ,( 'ui.patron.edit.au.alias.suggest', 'gui',
4120     oils_i18n_gettext('ui.patron.edit.au.alias.suggest',
4121         'Suggest alias field on patron registration',
4122         'coust', 'label'),
4123     oils_i18n_gettext('ui.patron.edit.au.alias.suggest',
4124         'The alias field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4125         'coust', 'description'),
4126     'bool', null)
4127
4128 ,( 'ui.patron.edit.au.barred.show', 'gui',
4129     oils_i18n_gettext('ui.patron.edit.au.barred.show',
4130         'Show barred field on patron registration',
4131         'coust', 'label'),
4132     oils_i18n_gettext('ui.patron.edit.au.barred.show',
4133         'The barred field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4134         'coust', 'description'),
4135     'bool', null)
4136
4137 ,( 'ui.patron.edit.au.barred.suggest', 'gui',
4138     oils_i18n_gettext('ui.patron.edit.au.barred.suggest',
4139         'Suggest barred field on patron registration',
4140         'coust', 'label'),
4141     oils_i18n_gettext('ui.patron.edit.au.barred.suggest',
4142         'The barred field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4143         'coust', 'description'),
4144     'bool', null)
4145
4146 ,( 'ui.patron.edit.au.claims_never_checked_out_count.show', 'gui',
4147     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.show',
4148         'Show claims_never_checked_out_count field on patron registration',
4149         'coust', 'label'),
4150     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.show',
4151         'The claims_never_checked_out_count field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4152         'coust', 'description'),
4153     'bool', null)
4154
4155 ,( 'ui.patron.edit.au.claims_never_checked_out_count.suggest', 'gui',
4156     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.suggest',
4157         'Suggest claims_never_checked_out_count field on patron registration',
4158         'coust', 'label'),
4159     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.suggest',
4160         'The claims_never_checked_out_count field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4161         'coust', 'description'),
4162     'bool', null)
4163
4164 ,( 'ui.patron.edit.au.claims_returned_count.show', 'gui',
4165     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.show',
4166         'Show claims_returned_count field on patron registration',
4167         'coust', 'label'),
4168     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.show',
4169         'The claims_returned_count field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4170         'coust', 'description'),
4171     'bool', null)
4172
4173 ,( 'ui.patron.edit.au.claims_returned_count.suggest', 'gui',
4174     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.suggest',
4175         'Suggest claims_returned_count field on patron registration',
4176         'coust', 'label'),
4177     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.suggest',
4178         'The claims_returned_count field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4179         'coust', 'description'),
4180     'bool', null)
4181
4182 ,( 'ui.patron.edit.au.day_phone.example', 'gui',
4183     oils_i18n_gettext('ui.patron.edit.au.day_phone.example',
4184         'Example for day_phone field on patron registration',
4185         'coust', 'label'),
4186     oils_i18n_gettext('ui.patron.edit.au.day_phone.example',
4187         'The Example for validation on the day_phone field in patron registration.',
4188         'coust', 'description'),
4189     'string', null)
4190
4191 ,( 'ui.patron.edit.au.day_phone.regex', 'gui',
4192     oils_i18n_gettext('ui.patron.edit.au.day_phone.regex',
4193         'Regex for day_phone field on patron registration',
4194         'coust', 'label'),
4195     oils_i18n_gettext('ui.patron.edit.au.day_phone.regex',
4196         E'The Regular Expression for validation on the day_phone field in patron registration. Note: The first capture group will be used for the "last 4 digits of phone number" feature, if enabled. Ex: "[2-9]\\d{2}-\\d{3}-(\\d{4})( x\\d+)?" will ignore the extension on a NANP number.',
4197         'coust', 'description'),
4198     'string', null)
4199
4200 ,( 'ui.patron.edit.au.day_phone.require', 'gui',
4201     oils_i18n_gettext('ui.patron.edit.au.day_phone.require',
4202         'Require day_phone field on patron registration',
4203         'coust', 'label'),
4204     oils_i18n_gettext('ui.patron.edit.au.day_phone.require',
4205         'The day_phone field will be required on the patron registration screen.',
4206         'coust', 'description'),
4207     'bool', null)
4208
4209 ,( 'ui.patron.edit.au.day_phone.show', 'gui',
4210     oils_i18n_gettext('ui.patron.edit.au.day_phone.show',
4211         'Show day_phone field on patron registration',
4212         'coust', 'label'),
4213     oils_i18n_gettext('ui.patron.edit.au.day_phone.show',
4214         'The day_phone field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4215         'coust', 'description'),
4216     'bool', null)
4217
4218 ,( 'ui.patron.edit.au.day_phone.suggest', 'gui',
4219     oils_i18n_gettext('ui.patron.edit.au.day_phone.suggest',
4220         'Suggest day_phone field on patron registration',
4221         'coust', 'label'),
4222     oils_i18n_gettext('ui.patron.edit.au.day_phone.suggest',
4223         'The day_phone field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4224         'coust', 'description'),
4225     'bool', null)
4226
4227 ,( 'ui.patron.edit.au.dob.calendar', 'gui',
4228     oils_i18n_gettext('ui.patron.edit.au.dob.calendar',
4229         'Show calendar widget for dob field on patron registration',
4230         'coust', 'label'),
4231     oils_i18n_gettext('ui.patron.edit.au.dob.calendar',
4232         'If set the calendar widget will appear when editing the dob field on the patron registration form.',
4233         'coust', 'description'),
4234     'bool', null)
4235
4236 ,( 'ui.patron.edit.au.dob.require', 'gui',
4237     oils_i18n_gettext('ui.patron.edit.au.dob.require',
4238         'Require dob field on patron registration',
4239         'coust', 'label'),
4240     oils_i18n_gettext('ui.patron.edit.au.dob.require',
4241         'The dob field will be required on the patron registration screen.',
4242         'coust', 'description'),
4243     'bool', null)
4244
4245 ,( 'ui.patron.edit.au.dob.show', 'gui',
4246     oils_i18n_gettext('ui.patron.edit.au.dob.show',
4247         'Show dob field on patron registration',
4248         'coust', 'label'),
4249     oils_i18n_gettext('ui.patron.edit.au.dob.show',
4250         'The dob field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4251         'coust', 'description'),
4252     'bool', null)
4253
4254 ,( 'ui.patron.edit.au.dob.suggest', 'gui',
4255     oils_i18n_gettext('ui.patron.edit.au.dob.suggest',
4256         'Suggest dob field on patron registration',
4257         'coust', 'label'),
4258     oils_i18n_gettext('ui.patron.edit.au.dob.suggest',
4259         'The dob field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4260         'coust', 'description'),
4261     'bool', null)
4262
4263 ,( 'ui.patron.edit.au.email.example', 'gui',
4264     oils_i18n_gettext('ui.patron.edit.au.email.example',
4265         'Example for email field on patron registration',
4266         'coust', 'label'),
4267     oils_i18n_gettext('ui.patron.edit.au.email.example',
4268         'The Example for validation on the email field in patron registration.',
4269         'coust', 'description'),
4270     'string', null)
4271
4272 ,( 'ui.patron.edit.au.email.regex', 'gui',
4273     oils_i18n_gettext('ui.patron.edit.au.email.regex',
4274         'Regex for email field on patron registration',
4275         'coust', 'label'),
4276     oils_i18n_gettext('ui.patron.edit.au.email.regex',
4277         'The Regular Expression for validation on the email field in patron registration.',
4278         'coust', 'description'),
4279     'string', null)
4280
4281 ,( 'ui.patron.edit.au.email.require', 'gui',
4282     oils_i18n_gettext('ui.patron.edit.au.email.require',
4283         'Require email field on patron registration',
4284         'coust', 'label'),
4285     oils_i18n_gettext('ui.patron.edit.au.email.require',
4286         'The email field will be required on the patron registration screen.',
4287         'coust', 'description'),
4288     'bool', null)
4289
4290 ,( 'ui.patron.edit.au.email.show', 'gui',
4291     oils_i18n_gettext('ui.patron.edit.au.email.show',
4292         'Show email field on patron registration',
4293         'coust', 'label'),
4294     oils_i18n_gettext('ui.patron.edit.au.email.show',
4295         'The email field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4296         'coust', 'description'),
4297     'bool', null)
4298
4299 ,( 'ui.patron.edit.au.email.suggest', 'gui',
4300     oils_i18n_gettext('ui.patron.edit.au.email.suggest',
4301         'Suggest email field on patron registration',
4302         'coust', 'label'),
4303     oils_i18n_gettext('ui.patron.edit.au.email.suggest',
4304         'The email field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4305         'coust', 'description'),
4306     'bool', null)
4307
4308 ,( 'ui.patron.edit.au.evening_phone.example', 'gui',
4309     oils_i18n_gettext('ui.patron.edit.au.evening_phone.example',
4310         'Example for evening_phone field on patron registration',
4311         'coust', 'label'),
4312     oils_i18n_gettext('ui.patron.edit.au.evening_phone.example',
4313         'The Example for validation on the evening_phone field in patron registration.',
4314         'coust', 'description'),
4315     'string', null)
4316
4317 ,( 'ui.patron.edit.au.evening_phone.regex', 'gui',
4318     oils_i18n_gettext('ui.patron.edit.au.evening_phone.regex',
4319         'Regex for evening_phone field on patron registration',
4320         'coust', 'label'),
4321     oils_i18n_gettext('ui.patron.edit.au.evening_phone.regex',
4322         'The Regular Expression for validation on the evening_phone field in patron registration.',
4323         'coust', 'description'),
4324     'string', null)
4325
4326 ,( 'ui.patron.edit.au.evening_phone.require', 'gui',
4327     oils_i18n_gettext('ui.patron.edit.au.evening_phone.require',
4328         'Require evening_phone field on patron registration',
4329         'coust', 'label'),
4330     oils_i18n_gettext('ui.patron.edit.au.evening_phone.require',
4331         'The evening_phone field will be required on the patron registration screen.',
4332         'coust', 'description'),
4333     'bool', null)
4334
4335 ,( 'ui.patron.edit.au.evening_phone.show', 'gui',
4336     oils_i18n_gettext('ui.patron.edit.au.evening_phone.show',
4337         'Show evening_phone field on patron registration',
4338         'coust', 'label'),
4339     oils_i18n_gettext('ui.patron.edit.au.evening_phone.show',
4340         'The evening_phone field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4341         'coust', 'description'),
4342     'bool', null)
4343
4344 ,( 'ui.patron.edit.au.evening_phone.suggest', 'gui',
4345     oils_i18n_gettext('ui.patron.edit.au.evening_phone.suggest',
4346         'Suggest evening_phone field on patron registration',
4347         'coust', 'label'),
4348     oils_i18n_gettext('ui.patron.edit.au.evening_phone.suggest',
4349         'The evening_phone field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4350         'coust', 'description'),
4351     'bool', null)
4352
4353 ,( 'ui.patron.edit.au.ident_value.show', 'gui',
4354     oils_i18n_gettext('ui.patron.edit.au.ident_value.show',
4355         'Show ident_value field on patron registration',
4356         'coust', 'label'),
4357     oils_i18n_gettext('ui.patron.edit.au.ident_value.show',
4358         'The ident_value field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4359         'coust', 'description'),
4360     'bool', null)
4361
4362 ,( 'ui.patron.edit.au.ident_value.suggest', 'gui',
4363     oils_i18n_gettext('ui.patron.edit.au.ident_value.suggest',
4364         'Suggest ident_value field on patron registration',
4365         'coust', 'label'),
4366     oils_i18n_gettext('ui.patron.edit.au.ident_value.suggest',
4367         'The ident_value field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4368         'coust', 'description'),
4369     'bool', null)
4370
4371 ,( 'ui.patron.edit.au.ident_value2.show', 'gui',
4372     oils_i18n_gettext('ui.patron.edit.au.ident_value2.show',
4373         'Show ident_value2 field on patron registration',
4374         'coust', 'label'),
4375     oils_i18n_gettext('ui.patron.edit.au.ident_value2.show',
4376         'The ident_value2 field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4377         'coust', 'description'),
4378     'bool', null)
4379
4380 ,( 'ui.patron.edit.au.ident_value2.suggest', 'gui',
4381     oils_i18n_gettext('ui.patron.edit.au.ident_value2.suggest',
4382         'Suggest ident_value2 field on patron registration',
4383         'coust', 'label'),
4384     oils_i18n_gettext('ui.patron.edit.au.ident_value2.suggest',
4385         'The ident_value2 field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4386         'coust', 'description'),
4387     'bool', null)
4388
4389 ,( 'ui.patron.edit.au.juvenile.show', 'gui',
4390     oils_i18n_gettext('ui.patron.edit.au.juvenile.show',
4391         'Show juvenile field on patron registration',
4392         'coust', 'label'),
4393     oils_i18n_gettext('ui.patron.edit.au.juvenile.show',
4394         'The juvenile field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4395         'coust', 'description'),
4396     'bool', null)
4397
4398 ,( 'ui.patron.edit.au.juvenile.suggest', 'gui',
4399     oils_i18n_gettext('ui.patron.edit.au.juvenile.suggest',
4400         'Suggest juvenile field on patron registration',
4401         'coust', 'label'),
4402     oils_i18n_gettext('ui.patron.edit.au.juvenile.suggest',
4403         'The juvenile field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4404         'coust', 'description'),
4405     'bool', null)
4406
4407 ,( 'ui.patron.edit.au.master_account.show', 'gui',
4408     oils_i18n_gettext('ui.patron.edit.au.master_account.show',
4409         'Show master_account field on patron registration',
4410         'coust', 'label'),
4411     oils_i18n_gettext('ui.patron.edit.au.master_account.show',
4412         'The master_account field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4413         'coust', 'description'),
4414     'bool', null)
4415
4416 ,( 'ui.patron.edit.au.master_account.suggest', 'gui',
4417     oils_i18n_gettext('ui.patron.edit.au.master_account.suggest',
4418         'Suggest master_account field on patron registration',
4419         'coust', 'label'),
4420     oils_i18n_gettext('ui.patron.edit.au.master_account.suggest',
4421         'The master_account field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4422         'coust', 'description'),
4423     'bool', null)
4424
4425 ,( 'ui.patron.edit.au.other_phone.example', 'gui',
4426     oils_i18n_gettext('ui.patron.edit.au.other_phone.example',
4427         'Example for other_phone field on patron registration',
4428         'coust', 'label'),
4429     oils_i18n_gettext('ui.patron.edit.au.other_phone.example',
4430         'The Example for validation on the other_phone field in patron registration.',
4431         'coust', 'description'),
4432     'string', null)
4433
4434 ,( 'ui.patron.edit.au.other_phone.regex', 'gui',
4435     oils_i18n_gettext('ui.patron.edit.au.other_phone.regex',
4436         'Regex for other_phone field on patron registration',
4437         'coust', 'label'),
4438     oils_i18n_gettext('ui.patron.edit.au.other_phone.regex',
4439         'The Regular Expression for validation on the other_phone field in patron registration.',
4440         'coust', 'description'),
4441     'string', null)
4442
4443 ,( 'ui.patron.edit.au.other_phone.require', 'gui',
4444     oils_i18n_gettext('ui.patron.edit.au.other_phone.require',
4445         'Require other_phone field on patron registration',
4446         'coust', 'label'),
4447     oils_i18n_gettext('ui.patron.edit.au.other_phone.require',
4448         'The other_phone field will be required on the patron registration screen.',
4449         'coust', 'description'),
4450     'bool', null)
4451
4452 ,( 'ui.patron.edit.au.other_phone.show', 'gui',
4453     oils_i18n_gettext('ui.patron.edit.au.other_phone.show',
4454         'Show other_phone field on patron registration',
4455         'coust', 'label'),
4456     oils_i18n_gettext('ui.patron.edit.au.other_phone.show',
4457         'The other_phone field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4458         'coust', 'description'),
4459     'bool', null)
4460
4461 ,( 'ui.patron.edit.au.other_phone.suggest', 'gui',
4462     oils_i18n_gettext('ui.patron.edit.au.other_phone.suggest',
4463         'Suggest other_phone field on patron registration',
4464         'coust', 'label'),
4465     oils_i18n_gettext('ui.patron.edit.au.other_phone.suggest',
4466         'The other_phone field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4467         'coust', 'description'),
4468     'bool', null)
4469
4470 ,( 'ui.patron.edit.au.prefix.require', 'gui',
4471     oils_i18n_gettext('ui.patron.edit.au.prefix.require',
4472         'Require prefix field on patron registration',
4473         'coust', 'label'),
4474     oils_i18n_gettext('ui.patron.edit.au.prefix.require',
4475         'The prefix field will be required on the patron registration screen.',
4476         'coust', 'description'),
4477     'bool', null)
4478         
4479 ,( 'ui.patron.edit.au.prefix.show', 'gui',
4480     oils_i18n_gettext('ui.patron.edit.au.prefix.show',
4481         'Show prefix field on patron registration',
4482         'coust', 'label'),
4483     oils_i18n_gettext('ui.patron.edit.au.prefix.show',
4484         'The prefix field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4485         'coust', 'description'),
4486     'bool', null)
4487
4488 ,( 'ui.patron.edit.au.prefix.suggest', 'gui',
4489     oils_i18n_gettext('ui.patron.edit.au.prefix.suggest',
4490         'Suggest prefix field on patron registration',
4491         'coust', 'label'),
4492     oils_i18n_gettext('ui.patron.edit.au.prefix.suggest',
4493         'The prefix field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4494         'coust', 'description'),
4495     'bool', null)
4496
4497 ,( 'ui.patron.edit.au.second_given_name.show', 'gui',
4498     oils_i18n_gettext('ui.patron.edit.au.second_given_name.show',
4499         'Show second_given_name field on patron registration',
4500         'coust', 'label'),
4501     oils_i18n_gettext('ui.patron.edit.au.second_given_name.show',
4502         'The second_given_name field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4503         'coust', 'description'),
4504     'bool', null)
4505
4506 ,( 'ui.patron.edit.au.second_given_name.suggest', 'gui',
4507     oils_i18n_gettext('ui.patron.edit.au.second_given_name.suggest',
4508         'Suggest second_given_name field on patron registration',
4509         'coust', 'label'),
4510     oils_i18n_gettext('ui.patron.edit.au.second_given_name.suggest',
4511         'The second_given_name field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4512         'coust', 'description'),
4513     'bool', null)
4514
4515 ,( 'ui.patron.edit.au.suffix.show', 'gui',
4516     oils_i18n_gettext('ui.patron.edit.au.suffix.show',
4517         'Show suffix field on patron registration',
4518         'coust', 'label'),
4519     oils_i18n_gettext('ui.patron.edit.au.suffix.show',
4520         'The suffix field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
4521         'coust', 'description'),
4522     'bool', null)
4523
4524 ,( 'ui.patron.edit.au.suffix.suggest', 'gui',
4525     oils_i18n_gettext('ui.patron.edit.au.suffix.suggest',
4526         'Suggest suffix field on patron registration',
4527         'coust', 'label'),
4528     oils_i18n_gettext('ui.patron.edit.au.suffix.suggest',
4529         'The suffix field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
4530         'coust', 'description'),
4531     'bool', null)
4532
4533 ,( 'ui.patron.edit.aua.county.require', 'gui',
4534     oils_i18n_gettext('ui.patron.edit.aua.county.require',
4535         'Require county field on patron registration',
4536         'coust', 'label'),
4537     oils_i18n_gettext('ui.patron.edit.aua.county.require',
4538         'The county field will be required on the patron registration screen.',
4539         'coust', 'description'),
4540     'bool', null)
4541
4542 ,( 'ui.patron.edit.aua.post_code.example', 'gui',
4543     oils_i18n_gettext('ui.patron.edit.aua.post_code.example',
4544         'Example for post_code field on patron registration',
4545         'coust', 'label'),
4546     oils_i18n_gettext('ui.patron.edit.aua.post_code.example',
4547         'The Example for validation on the post_code field in patron registration.',
4548         'coust', 'description'),
4549     'string', null)
4550
4551 ,( 'ui.patron.edit.aua.post_code.regex', 'gui',
4552     oils_i18n_gettext('ui.patron.edit.aua.post_code.regex',
4553         'Regex for post_code field on patron registration',
4554         'coust', 'label'),
4555     oils_i18n_gettext('ui.patron.edit.aua.post_code.regex',
4556         'The Regular Expression for validation on the post_code field in patron registration.',
4557         'coust', 'description'),
4558     'string', null)
4559
4560 ,( 'ui.patron.edit.default_suggested', 'gui',
4561     oils_i18n_gettext('ui.patron.edit.default_suggested',
4562         'Default showing suggested patron registration fields',
4563         'coust', 'label'),
4564     oils_i18n_gettext('ui.patron.edit.default_suggested',
4565         'Instead of All fields, show just suggested fields in patron registration by default.',
4566         'coust', 'description'),
4567     'bool', null)
4568
4569 ,( 'ui.patron.edit.phone.example', 'gui',
4570     oils_i18n_gettext('ui.patron.edit.phone.example',
4571         'Example for phone fields on patron registration',
4572         'coust', 'label'),
4573     oils_i18n_gettext('ui.patron.edit.phone.example',
4574         'The Example for validation on phone fields in patron registration. Applies to all phone fields without their own setting.',
4575         'coust', 'description'),
4576     'string', null)
4577
4578 ,( 'ui.patron.edit.phone.regex', 'gui',
4579     oils_i18n_gettext('ui.patron.edit.phone.regex',
4580         'Regex for phone fields on patron registration',
4581         'coust', 'label'),
4582     oils_i18n_gettext('ui.patron.edit.phone.regex',
4583         'The Regular Expression for validation on phone fields in patron registration. Applies to all phone fields without their own setting. NOTE: See description of the day_phone regex for important information about capture groups with it.',
4584         'coust', 'description'),
4585     'string', null)
4586
4587 ,( 'ui.patron.registration.require_address', 'gui',
4588     oils_i18n_gettext('ui.patron.registration.require_address',
4589         'Require at least one address for Patron Registration',
4590         'coust', 'label'),
4591     oils_i18n_gettext('ui.patron.registration.require_address',
4592         'Enforces a requirement for having at least one address for a patron during registration.',
4593         'coust', 'description'),
4594     'bool', null)
4595
4596 ,( 'ui.patron_search.result_cap', 'gui',
4597     oils_i18n_gettext('ui.patron_search.result_cap',
4598         'Cap results in Patron Search at this number.',
4599         'coust', 'label'),
4600     oils_i18n_gettext('ui.patron_search.result_cap',
4601         'So for example, if you search for John Doe, normally you would get at most 50 results.  This setting allows you to raise or lower that limit.',
4602         'coust', 'description'),
4603     'integer', null)
4604
4605 ,( 'ui.staff.require_initials', 'gui',
4606     oils_i18n_gettext('ui.staff.require_initials',
4607         'Require staff initials for entry/edit of item/patron/penalty notes/messages.',
4608         'coust', 'label'),
4609     oils_i18n_gettext('ui.staff.require_initials',
4610         'Appends staff initials and edit date into note content.',
4611         'coust', 'description'),
4612     'bool', null)
4613
4614 ,( 'ui.unified_volume_copy_editor', 'gui',
4615     oils_i18n_gettext('ui.unified_volume_copy_editor',
4616         'Unified Volume/Item Creator/Editor',
4617         'coust', 'label'),
4618     oils_i18n_gettext('ui.unified_volume_copy_editor',
4619         'If true combines the Volume/Copy Creator and Item Attribute Editor in some instances.',
4620         'coust', 'description'),
4621     'bool', null)
4622
4623 ,( 'url.remote_column_settings', 'gui',
4624     oils_i18n_gettext('url.remote_column_settings',
4625         'URL for remote directory containing list column settings.',
4626         'coust', 'label'),
4627     oils_i18n_gettext('url.remote_column_settings',
4628         'URL for remote directory containing list column settings.  The format and naming convention for the files found in this directory match those in the local settings directory for a given workstation.  An administrator could create the desired settings locally and then copy all the tree_columns_for_* files to the remote directory.',
4629         'coust', 'description'),
4630     'string', null)
4631 ,( 'opac.staff_saved_search.size', 'opac',
4632     oils_i18n_gettext('opac.staff_saved_search.size',
4633         'OPAC: Number of staff client saved searches to display on left side of results and record details pages',
4634         'coust', 'label'),
4635     oils_i18n_gettext('opac.staff_saved_search.size',
4636         'If unset, the OPAC (only when wrapped in the staff client!) will default to showing you your ten most recent searches on the left side of the results and record details pages.  If you actually don''t want to see this feature at all, set this value to zero at the top of your organizational tree.',
4637         'coust', 'description'),
4638     'integer', null)
4639 ,( 'circ.holds.target_when_closed', 'circ',
4640     oils_i18n_gettext('circ.holds.target_when_closed',
4641         'Target copies for a hold even if copy''s circ lib is closed',
4642         'coust', 'label'),
4643     oils_i18n_gettext('circ.holds.target_when_closed',
4644         'If this setting is true at a given org unit or one of its ancestors, the hold targeter will target copies from this org unit even if the org unit is closed (according to the actor.org_unit.closed_date table).',
4645         'coust', 'description'),
4646     'bool', null)
4647 ,( 'circ.holds.target_when_closed_if_at_pickup_lib', 'circ',
4648     oils_i18n_gettext('circ.holds.target_when_closed_if_at_pickup_lib',
4649         'Target copies for a hold even if copy''s circ lib is closed IF the circ lib is the hold''s pickup lib',
4650         'coust', 'label'),
4651     oils_i18n_gettext('circ.holds.target_when_closed_if_at_pickup_lib',
4652         'If this setting is true at a given org unit or one of its ancestors, the hold targeter will target copies from this org unit even if the org unit is closed (according to the actor.org_unit.closed_date table) IF AND ONLY IF the copy''s circ lib is the same as the hold''s pickup lib.',
4653         'coust', 'description'),
4654     'bool', null)
4655
4656
4657 ,( 'opac.staff.jump_to_details_on_single_hit', 'opac',
4658     oils_i18n_gettext('opac.staff.jump_to_details_on_single_hit',
4659         'Jump to details on 1 hit (staff client)',
4660         'coust', 'label'),
4661     oils_i18n_gettext('opac.staff.jump_to_details_on_single_hit',
4662         'When a search yields only 1 result, jump directly to the record details page.  This setting only affects the OPAC within the staff client',
4663         'coust', 'description'),
4664     'bool', null)
4665 ,( 'opac.patron.jump_to_details_on_single_hit', 'opac',
4666     oils_i18n_gettext('opac.patron.jump_to_details_on_single_hit',
4667         'Jump to details on 1 hit (public)',
4668         'coust', 'label'),
4669     oils_i18n_gettext('opac.patron.jump_to_details_on_single_hit',
4670         'When a search yields only 1 result, jump directly to the record details page.  This setting only affects the public OPAC',
4671         'coust', 'description'),
4672     'bool', null)
4673
4674 ,( 'opac.search.tag_circulated_items', 'opac',
4675     oils_i18n_gettext(
4676         'opac.search.tag_circulated_items',
4677         'Tag Circulated Items in Results',
4678         'coust', 'label'
4679     ),
4680     oils_i18n_gettext(
4681         'opac.search.tag_circulated_items',
4682         'When a user is both logged in and has opted in to circulation history tracking, turning on this setting will cause previous (or currently) circulated items to be highlighted in search results',
4683         'coust', 'description'
4684     ),
4685     'bool', null)
4686
4687 ,( 'sms.enable', 'sms',
4688     oils_i18n_gettext(
4689         'sms.enable',
4690         'Enable features that send SMS text messages.',
4691         'coust',
4692         'label'
4693     ),
4694     oils_i18n_gettext(
4695         'sms.enable',
4696         'Current features that use SMS include hold-ready-for-pickup notifications and a "Send Text" action for call numbers in the OPAC. If this setting is not enabled, the SMS options will not be offered to the user.  Unless you are carefully silo-ing patrons and their use of the OPAC, the context org for this setting should be the top org in the org hierarchy, otherwise patrons can trample their user settings when jumping between orgs.',
4697         'coust',
4698         'description'
4699     ),
4700     'bool', null)
4701 ,( 'sms.disable_authentication_requirement.callnumbers', 'sms',
4702     oils_i18n_gettext(
4703         'sms.disable_authentication_requirement.callnumbers',
4704         'Disable auth requirement for texting call numbers.',
4705         'coust',
4706         'label'
4707     ),
4708     oils_i18n_gettext(
4709         'sms.disable_authentication_requirement.callnumbers',
4710         'Disable authentication requirement for sending call number information via SMS from the OPAC.',
4711         'coust',
4712         'description'
4713     ),
4714     'bool', null)
4715 ,( 'serial.default_display_grouping', 'serial',
4716     oils_i18n_gettext(
4717         'serial.default_display_grouping',
4718         'Default display grouping for serials distributions presented in the OPAC.',
4719         'coust',
4720         'label'
4721     ),
4722     oils_i18n_gettext(
4723         'serial.default_display_grouping',
4724         'Default display grouping for serials distributions presented in the OPAC. This can be "enum" or "chron".',
4725         'coust',
4726         'description'
4727     ),
4728     'string', null)
4729 ,( 'vandelay.default_match_set', 'vandelay',
4730     oils_i18n_gettext(
4731         'vandelay.default_match_set',
4732         'Default Record Match Set',
4733         'coust',
4734         'label'
4735     ),
4736     oils_i18n_gettext(
4737         'vandelay.default_match_set',
4738         'Default Record Match Set',
4739         'coust',
4740         'description'
4741     ),
4742     'string', null)
4743
4744 ;
4745
4746 UPDATE config.org_unit_setting_type
4747     SET view_perm = (SELECT id FROM permission.perm_list
4748         WHERE code = 'VIEW_CREDIT_CARD_PROCESSING' LIMIT 1)
4749     WHERE name LIKE 'credit.processor%' AND view_perm IS NULL;
4750
4751 UPDATE config.org_unit_setting_type
4752     SET update_perm = (SELECT id FROM permission.perm_list
4753         WHERE code = 'ADMIN_CREDIT_CARD_PROCESSING' LIMIT 1)
4754     WHERE name LIKE 'credit.processor%' AND update_perm IS NULL;
4755
4756 -- *** Has to go below coust definition to satisfy referential integrity ***
4757 -- In booking, elbow room defines:
4758 --  a) how far in the future you must make a reservation on a given item if
4759 --      that item will have to transit somewhere to fulfill the reservation.
4760 --  b) how soon a reservation must be starting for the reserved item to
4761 --      be op-captured by the checkin interface.
4762 INSERT INTO actor.org_unit_setting (org_unit, name, value) VALUES (
4763     (SELECT id FROM actor.org_unit WHERE parent_ou IS NULL),
4764     'circ.booking_reservation.default_elbow_room',
4765     '"1 day"')
4766     ,(1, 'cat.spine.line.margin', 0)
4767     ,(1, 'cat.spine.line.height', 9)
4768     ,(1, 'cat.spine.line.width', 8)
4769     ,(1, 'cat.label.font.family', '"monospace"')
4770     ,(1, 'cat.label.font.size', 10)
4771     ,(1, 'cat.label.font.weight', '"normal"')
4772     ,(1, 'circ.grace.extend', 'true')
4773 ;
4774
4775
4776 -- Staged Search (for default matchpoints)
4777 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(1, 'first_word', 1.5);
4778 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(1, 'full_match', 20);
4779
4780 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(2, 'first_word', 1.5);
4781 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(2, 'word_order', 10);
4782 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(2, 'full_match', 20);
4783
4784 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(3, 'first_word', 1.5);
4785 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(3, 'word_order', 10);
4786 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(3, 'full_match', 20);
4787
4788 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(4, 'first_word', 1.5);
4789 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(4, 'word_order', 10);
4790 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(4, 'full_match', 20);
4791
4792 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(5, 'first_word', 1.5);
4793 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(5, 'word_order', 10);
4794 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(5, 'full_match', 20);
4795
4796 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(6, 'first_word', 1.5);
4797 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(6, 'word_order', 10);
4798 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(6, 'full_match', 20);
4799
4800 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(7, 'first_word', 1.5);
4801
4802 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(8, 'first_word', 1.5);
4803
4804 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(9, 'first_word', 1.5);
4805
4806 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(10, 'first_word', 1.5);
4807
4808 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(15, 'word_order', 10);
4809
4810 -- Vandelay (for importing and exporting records) 012.schema.vandelay.sql 
4811 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (1, 'title', oils_i18n_gettext(1, 'Title of work', 'vqbrad', 'description'),'//*[@tag="245"]/*[contains("abcmnopr",@code)]');
4812 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (2, 'author', oils_i18n_gettext(2, 'Author of work', 'vqbrad', 'description'),'//*[@tag="100" or @tag="110" or @tag="113"]/*[contains("ad",@code)]');
4813 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (3, 'language', oils_i18n_gettext(3, 'Language of work', 'vqbrad', 'description'),'//*[@tag="240"]/*[@code="l"][1]');
4814 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (4, 'pagination', oils_i18n_gettext(4, 'Pagination', 'vqbrad', 'description'),'//*[@tag="300"]/*[@code="a"][1]');
4815 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath, remove ) VALUES (5, 'isbn',oils_i18n_gettext(5, 'ISBN', 'vqbrad', 'description'),'//*[@tag="020"]/*[@code="a"]', $r$(?:-|\s.+$)$r$);
4816 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath, remove ) VALUES (6, 'issn',oils_i18n_gettext(6, 'ISSN', 'vqbrad', 'description'),'//*[@tag="022"]/*[@code="a"]', $r$(?:-|\s.+$)$r$);
4817 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (7, 'price',oils_i18n_gettext(7, 'Price', 'vqbrad', 'description'),'//*[@tag="020" or @tag="022"]/*[@code="c"][1]');
4818 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath) VALUES (8, 'rec_identifier',oils_i18n_gettext(8, 'Accession Number', 'vqbrad', 'description'),'//*[@tag="001"]');
4819 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath) VALUES (9, 'eg_tcn',oils_i18n_gettext(9, 'TCN Value', 'vqbrad', 'description'),'//*[@tag="901"]/*[@code="a"]');
4820 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath) VALUES (10, 'eg_tcn_source',oils_i18n_gettext(10, 'TCN Source', 'vqbrad', 'description'),'//*[@tag="901"]/*[@code="b"]');
4821 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath) VALUES (11, 'eg_identifier',oils_i18n_gettext(11, 'Internal ID', 'vqbrad', 'description'),'//*[@tag="901"]/*[@code="c"]');
4822 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (12, 'publisher',oils_i18n_gettext(12, 'Publisher', 'vqbrad', 'description'),'//*[@tag="260"]/*[@code="b"][1]');
4823 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath, remove ) VALUES (13, 'pubdate',oils_i18n_gettext(13, 'Publication Date', 'vqbrad', 'description'),'//*[@tag="260"]/*[@code="c"][1]',$r$\D$r$);
4824 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (14, 'edition',oils_i18n_gettext(14, 'Edition', 'vqbrad', 'description'),'//*[@tag="250"]/*[@code="a"][1]');
4825 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (15, 'item_barcode',oils_i18n_gettext(15, 'Item Barcode', 'vqbrad', 'description'),'//*[@tag="852"]/*[@code="p"][1]');
4826 SELECT SETVAL('vandelay.bib_attr_definition_id_seq'::TEXT, 100);
4827
4828 INSERT INTO vandelay.import_item_attr_definition (
4829     owner, name, tag, owning_lib, circ_lib, location,
4830     call_number, circ_modifier, barcode, price, copy_number,
4831     circulate, ref, holdable, opac_visible, status
4832 ) VALUES (
4833     1,
4834     'Evergreen 852 export format',
4835     '852',
4836     '[@code = "b"][1]',
4837     '[@code = "b"][2]',
4838     'c',
4839     'j',
4840     'g',
4841     'p',
4842     'y',
4843     't',
4844     '[@code = "x" and text() = "circulating"]',
4845     '[@code = "x" and text() = "reference"]',
4846     '[@code = "x" and text() = "holdable"]',
4847     '[@code = "x" and text() = "visible"]',
4848     'z'
4849 );
4850
4851 INSERT INTO vandelay.import_item_attr_definition (
4852     owner,
4853     name,
4854     tag,
4855     owning_lib,
4856     location,
4857     call_number,
4858     circ_modifier,
4859     barcode,
4860     price,
4861     status
4862 ) VALUES (
4863     1,
4864     'Unicorn Import format -- 999',
4865     '999',
4866     'm',
4867     'l',
4868     'a',
4869     't',
4870     'i',
4871     'p',
4872     'k'
4873 );
4874
4875 INSERT INTO vandelay.authority_attr_definition (id, code, description, xpath) VALUES (1, 'rec_identifier',oils_i18n_gettext(1, 'Identifier', 'vqarad', 'description'),'//*[@tag="001"]');
4876 SELECT SETVAL('vandelay.authority_attr_definition_id_seq'::TEXT, 100);
4877
4878
4879 INSERT INTO container.copy_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'ccpbt', 'label'));
4880 INSERT INTO container.copy_bucket_type (code,label) VALUES ('staff_client', oils_i18n_gettext('staff_client', 'General Staff Client container', 'ccpbt', 'label'));
4881 INSERT INTO container.copy_bucket_type (code,label) VALUES ( 'circ_history', 'Circulation History' );
4882 INSERT INTO container.call_number_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'ccnbt', 'label'));
4883 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'cbrebt', 'label'));
4884 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('staff_client', oils_i18n_gettext('staff_client', 'General Staff Client container', 'cbrebt', 'label'));
4885 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('bookbag', oils_i18n_gettext('bookbag', 'Book Bag', 'cbrebt', 'label'));
4886 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('reading_list', oils_i18n_gettext('reading_list', 'Reading List', 'cbrebt', 'label'));
4887 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('template_merge',oils_i18n_gettext('template_merge','Template Merge Container', 'cbrebt', 'label'));
4888 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('url_verify', oils_i18n_gettext('url_verify', 'URL Verification Queue', 'cbrebt', 'label'));
4889
4890 INSERT INTO container.user_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'cubt', 'label'));
4891 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks', oils_i18n_gettext('folks', 'Friends', 'cubt', 'label'));
4892 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:pub_book_bags.view', oils_i18n_gettext('folks:pub_book_bags.view', 'List Published Book Bags', 'cubt', 'label'));
4893 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:pub_book_bags.add', oils_i18n_gettext('folks:pub_book_bags.add', 'Add to Published Book Bags', 'cubt', 'label'));
4894 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:circ.view', oils_i18n_gettext('folks:circ.view', 'View Circulations', 'cubt', 'label'));
4895 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:circ.renew', oils_i18n_gettext('folks:circ.renew', 'Renew Circulations', 'cubt', 'label'));
4896 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:circ.checkout', oils_i18n_gettext('folks:circ.checkout', 'Checkout Items', 'cubt', 'label'));
4897 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:hold.view', oils_i18n_gettext('folks:hold.view', 'View Holds', 'cubt', 'label'));
4898 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:hold.cancel', oils_i18n_gettext('folks:hold.cancel', 'Cancel Holds', 'cubt', 'label'));
4899
4900
4901 ----------------------------------
4902 -- MARC21 record structure data --
4903 ----------------------------------
4904
4905 -- Record type map
4906 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('BKS','at','acdm');
4907 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('SER','a','bsi');
4908 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('VIS','gkro','abcdmsi');
4909 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('MIX','p','cdi');
4910 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('MAP','ef','abcdmsi');
4911 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('SCO','cd','abcdmsi');
4912 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('REC','ij','abcdmsi');
4913 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('COM','m','abcdmsi');
4914 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('AUT','z',' ');
4915 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('MFHD','uvxy',' ');
4916
4917
4918 ------ Physical Characteristics
4919
4920 -- Map
4921 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('a','Map');
4922 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','b','1','1','SMD');
4923 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Atlas');
4924 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Diagram');
4925 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Map');
4926 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Profile');
4927 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Model');
4928 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Remote-sensing image');
4929 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Section');
4930 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
4931 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('y',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'View');
4932 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4933 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','d','3','1','Color');
4934 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'One color');
4935 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
4936 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','e','4','1','Physical medium');
4937 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
4938 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
4939 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
4940 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
4941 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
4942 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
4943 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
4944 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
4945 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Flexible base photographic medium, positive');
4946 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Flexible base photographic medium, negative');
4947 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Non-flexible base photographic medium, positive');
4948 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Non-flexible base photographic medium, negative');
4949 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4950 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('y',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other photographic medium');
4951 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4952 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','f','5','1','Type of reproduction');
4953 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Facsimile');
4954 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
4955 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4956 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4957 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','g','6','1','Production/reproduction details');
4958 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Photocopy, blueline print');
4959 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Photocopy');
4960 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Pre-production');
4961 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Film');
4962 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4963 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4964 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','h','7','1','Positive/negative');
4965 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Positive');
4966 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Negative');
4967 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
4968 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
4969
4970 -- Electronic Resource
4971 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('c','Electronic Resource');
4972 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','b','1','1','SMD');
4973 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Tape Cartridge');
4974 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Chip cartridge');
4975 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Computer optical disk cartridge');
4976 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Tape cassette');
4977 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Tape reel');
4978 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic disk');
4979 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magneto-optical disk');
4980 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Optical disk');
4981 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Remote');
4982 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
4983 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4984 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','d','3','1','Color');
4985 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'One color');
4986 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Black-and-white');
4987 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
4988 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Gray scale');
4989 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
4990 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
4991 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4992 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4993 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','e','4','1','Dimensions');
4994 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'3 1/2 in.');
4995 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'12 in.');
4996 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'4 3/4 in. or 12 cm.');
4997 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'1 1/8 x 2 3/8 in.');
4998 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'3 7/8 x 2 1/2 in.');
4999 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5000 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'5 1/4 in.');
5001 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5002 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('v',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'8 in.');
5003 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5004 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','f','5','1','Sound');
5005 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES (' ',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'No sound (Silent)');
5006 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound');
5007 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5008 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','g','6','3','Image bit depth');
5009 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('---',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5010 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('mmm',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multiple');
5011 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('nnn',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5012 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','h','9','1','File formats');
5013 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'One file format');
5014 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multiple file formats');
5015 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5016 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','i','10','1','Quality assurance target(s)');
5017 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Absent');
5018 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5019 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Present');
5020 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5021 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','j','11','1','Antecedent/Source');
5022 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'File reproduced from original');
5023 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'File reproduced from microform');
5024 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'File reproduced from electronic resource');
5025 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'File reproduced from an intermediate (not microform)');
5026 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5027 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5028 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5029 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','k','12','1','Level of compression');
5030 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Uncompressed');
5031 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Lossless');
5032 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Lossy');
5033 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5034 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5035 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','l','13','1','Reformatting quality');
5036 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Access');
5037 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5038 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Preservation');
5039 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Replacement');
5040 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5041
5042 -- Globe
5043 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('d','Globe');
5044 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','b','1','1','SMD');
5045 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Celestial globe');
5046 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Planetary or lunar globe');
5047 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Terrestrial globe');
5048 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Earth moon globe');
5049 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5050 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5051 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','d','3','1','Color');
5052 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'One color');
5053 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5054 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','e','4','1','Physical medium');
5055 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5056 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
5057 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
5058 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
5059 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5060 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
5061 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
5062 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
5063 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5064 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5065 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','f','5','1','Type of reproduction');
5066 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Facsimile');
5067 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5068 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5069 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5070
5071 -- Tactile Material
5072 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('f','Tactile Material');
5073 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','b','1','1','SMD');
5074 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Moon');
5075 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Braille');
5076 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Combination');
5077 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Tactile, with no writing system');
5078 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5079 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5080 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','d','3','2','Class of braille writing');
5081 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Literary braille');
5082 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Format code braille');
5083 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mathematics and scientific braille');
5084 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Computer braille');
5085 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Music braille');
5086 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multiple braille types');
5087 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5088 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5089 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5090 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','e','4','1','Level of contraction');
5091 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Uncontracted');
5092 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Contracted');
5093 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Combination');
5094 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5095 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5096 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5097 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','f','6','3','Braille music format');
5098 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Bar over bar');
5099 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Bar by bar');
5100 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Line over line');
5101 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paragraph');
5102 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Single line');
5103 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Section by section');
5104 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Line by line');
5105 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Open score');
5106 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Spanner short form scoring');
5107 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Short form scoring');
5108 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Outline');
5109 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('l',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Vertical score');
5110 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5111 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5112 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5113 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','g','9','1','Special physical characteristics');
5114 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Print/braille');
5115 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Jumbo or enlarged braille');
5116 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5117 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5118 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5119
5120 -- Projected Graphic
5121 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('g','Projected Graphic');
5122 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','b','1','1','SMD');
5123 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Film cartridge');
5124 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Filmstrip');
5125 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Film filmstrip type');
5126 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Filmstrip roll');
5127 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Slide');
5128 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Transparency');
5129 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5130 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','d','3','1','Color');
5131 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Black-and-white');
5132 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5133 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Hand-colored');
5134 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5135 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5136 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5137 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5138 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','e','4','1','Base of emulsion');
5139 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5140 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5141 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Safety film');
5142 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Film base, other than safety film');
5143 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed collection');
5144 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5145 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5146 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5147 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','f','5','1','Sound on medium or separate');
5148 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound on medium');
5149 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound separate from medium');
5150 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5151 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','g','6','1','Medium for sound');
5152 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Optical sound track on motion picture film');
5153 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic sound track on motion picture film');
5154 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic audio tape in cartridge');
5155 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound disc');
5156 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic audio tape on reel');
5157 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic audio tape in cassette');
5158 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Optical and magnetic sound track on film');
5159 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videotape');
5160 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
5161 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5162 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5163 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','h','7','1','Dimensions');
5164 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Standard 8 mm.');
5165 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Super 8 mm./single 8 mm.');
5166 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'9.5 mm.');
5167 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'16 mm.');
5168 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'28 mm.');
5169 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'35 mm.');
5170 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'70 mm.');
5171 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'2 x 2 in. (5 x 5 cm.)');
5172 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'2 1/4 x 2 1/4 in. (6 x 6 cm.)');
5173 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'4 x 5 in. (10 x 13 cm.)');
5174 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'5 x 7 in. (13 x 18 cm.)');
5175 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5176 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('v',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'8 x 10 in. (21 x 26 cm.)');
5177 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('w',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'9 x 9 in. (23 x 23 cm.)');
5178 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('x',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'10 x 10 in. (26 x 26 cm.)');
5179 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('y',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'7 x 7 in. (18 x 18 cm.)');
5180 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5181 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','i','8','1','Secondary support material');
5182 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Cardboard');
5183 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5184 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5185 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'metal');
5186 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal and glass');
5187 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics and glass');
5188 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed collection');
5189 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5190 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5191
5192 -- Microform
5193 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('h','Microform');
5194 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','b','1','1','SMD');
5195 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Aperture card');
5196 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Microfilm cartridge');
5197 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Microfilm cassette');
5198 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Microfilm reel');
5199 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Microfiche');
5200 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Microfiche cassette');
5201 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Microopaque');
5202 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5203 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5204 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','d','3','1','Positive/negative');
5205 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Positive');
5206 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Negative');
5207 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5208 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5209 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','e','4','1','Dimensions');
5210 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'8 mm.');
5211 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'16 mm.');
5212 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'35 mm.');
5213 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'70mm.');
5214 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'105 mm.');
5215 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('l',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'3 x 5 in. (8 x 13 cm.)');
5216 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'4 x 6 in. (11 x 15 cm.)');
5217 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'6 x 9 in. (16 x 23 cm.)');
5218 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'3 1/4 x 7 3/8 in. (9 x 19 cm.)');
5219 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5220 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5221 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','f','5','4','Reduction ratio range/Reduction ratio');
5222 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Low (1-16x)');
5223 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Normal (16-30x)');
5224 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'High (31-60x)');
5225 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Very high (61-90x)');
5226 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Ultra (90x-)');
5227 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5228 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('v',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Reduction ratio varies');
5229 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','g','9','1','Color');
5230 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Black-and-white');
5231 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5232 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5233 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5234 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5235 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','h','10','1','Emulsion on film');
5236 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Silver halide');
5237 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Diazo');
5238 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Vesicular');
5239 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5240 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5241 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5242 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5243 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','i','11','1','Quality assurance target(s)');
5244 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'1st gen. master');
5245 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Printing master');
5246 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Service copy');
5247 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed generation');
5248 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5249 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','j','12','1','Base of film');
5250 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Safety base, undetermined');
5251 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Safety base, acetate undetermined');
5252 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Safety base, diacetate');
5253 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('l',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Nitrate base');
5254 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed base');
5255 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5256 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Safety base, polyester');
5257 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Safety base, mixed');
5258 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Safety base, triacetate');
5259 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5260 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5261
5262 -- Non-projected Graphic
5263 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('k','Non-projected Graphic');
5264 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','b','1','1','SMD');
5265 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Collage');
5266 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Drawing');
5267 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Painting');
5268 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Photo-mechanical print');
5269 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Photonegative');
5270 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Photoprint');
5271 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Picture');
5272 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Print');
5273 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('l',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Technical drawing');
5274 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Chart');
5275 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Flash/activity card');
5276 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5277 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5278 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','d','3','1','Color');
5279 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'One color');
5280 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Black-and-white');
5281 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5282 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Hand-colored');
5283 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5284 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5285 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5286 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','e','4','1','Primary support material');
5287 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Canvas');
5288 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Bristol board');
5289 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Cardboard/illustration board');
5290 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5291 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5292 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
5293 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
5294 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
5295 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed collection');
5296 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5297 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
5298 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Hardboard');
5299 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Porcelain');
5300 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
5301 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
5302 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5303 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5304 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','f','5','1','Secondary support material');
5305 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Canvas');
5306 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Bristol board');
5307 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Cardboard/illustration board');
5308 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5309 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5310 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
5311 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
5312 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
5313 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed collection');
5314 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5315 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
5316 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Hardboard');
5317 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Porcelain');
5318 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
5319 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
5320 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5321 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5322
5323 -- Motion Picture
5324 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('m','Motion Picture');
5325 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','b','1','1','SMD');
5326 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Film cartridge');
5327 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Film cassette');
5328 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Film reel');
5329 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5330 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5331 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','d','3','1','Color');
5332 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Black-and-white');
5333 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5334 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Hand-colored');
5335 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5336 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5337 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5338 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','e','4','1','Motion picture presentation format');
5339 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Standard sound aperture, reduced frame');
5340 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Nonanamorphic (wide-screen)');
5341 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'3D');
5342 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Anamorphic (wide-screen)');
5343 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other-wide screen format');
5344 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Standard. silent aperture, full frame');
5345 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5346 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5347 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','f','5','1','Sound on medium or separate');
5348 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound on medium');
5349 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound separate from medium');
5350 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5351 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','g','6','1','Medium for sound');
5352 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Optical sound track on motion picture film');
5353 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic sound track on motion picture film');
5354 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic audio tape in cartridge');
5355 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound disc');
5356 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic audio tape on reel');
5357 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic audio tape in cassette');
5358 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Optical and magnetic sound track on film');
5359 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videotape');
5360 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
5361 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5362 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5363 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','h','7','1','Dimensions');
5364 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Standard 8 mm.');
5365 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Super 8 mm./single 8 mm.');
5366 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'9.5 mm.');
5367 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'16 mm.');
5368 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'28 mm.');
5369 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'35 mm.');
5370 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'70 mm.');
5371 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5372 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5373 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','i','8','1','Configuration of playback channels');
5374 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5375 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Monaural');
5376 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5377 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multichannel, surround or quadraphonic');
5378 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stereophonic');
5379 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5380 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5381 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','j','9','1','Production elements');
5382 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Work print');
5383 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Trims');
5384 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Outtakes');
5385 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Rushes');
5386 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixing tracks');
5387 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Title bands/inter-title rolls');
5388 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Production rolls');
5389 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5390 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5391
5392 -- Remote-sensing Image
5393 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('r','Remote-sensing Image');
5394 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','b','1','1','SMD');
5395 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5396 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','d','3','1','Altitude of sensor');
5397 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Surface');
5398 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Airborne');
5399 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Spaceborne');
5400 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5401 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5402 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5403 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','e','4','1','Attitude of sensor');
5404 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Low oblique');
5405 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'High oblique');
5406 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Vertical');
5407 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5408 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5409 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','f','5','1','Cloud cover');
5410 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('0',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'0-09%');
5411 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('1',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'10-19%');
5412 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('2',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'20-29%');
5413 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('3',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'30-39%');
5414 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('4',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'40-49%');
5415 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('5',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'50-59%');
5416 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('6',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'60-69%');
5417 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('7',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'70-79%');
5418 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('8',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'80-89%');
5419 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('9',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'90-100%');
5420 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5421 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5422 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','g','6','1','Platform construction type');
5423 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Balloon');
5424 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Aircraft-low altitude');
5425 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Aircraft-medium altitude');
5426 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Aircraft-high altitude');
5427 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Manned spacecraft');
5428 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unmanned spacecraft');
5429 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Land-based remote-sensing device');
5430 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Water surface-based remote-sensing device');
5431 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Submersible remote-sensing device');
5432 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5433 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5434 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5435 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','h','7','1','Platform use category');
5436 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Meteorological');
5437 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Surface observing');
5438 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Space observing');
5439 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed uses');
5440 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5441 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5442 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5443 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','i','8','1','Sensor type');
5444 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Active');
5445 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Passive');
5446 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5447 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5448 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','j','9','2','Data type');
5449 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('aa',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Visible light');
5450 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('da',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Near infrared');
5451 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('db',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Middle infrared');
5452 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('dc',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Far infrared');
5453 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('dd',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Thermal infrared');
5454 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('de',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Shortwave infrared (SWIR)');
5455 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('df',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Reflective infrared');
5456 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('dv',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Combinations');
5457 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('dz',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other infrared data');
5458 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('ga',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sidelooking airborne radar (SLAR)');
5459 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('gb',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetic aperture radar (SAR-single frequency)');
5460 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('gc',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'SAR-multi-frequency (multichannel)');
5461 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('gd',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'SAR-like polarization');
5462 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('ge',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'SAR-cross polarization');
5463 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('gf',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Infometric SAR');
5464 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('gg',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Polarmetric SAR');
5465 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('gu',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Passive microwave mapping');
5466 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('gz',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other microwave data');
5467 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('ja',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Far ultraviolet');
5468 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('jb',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Middle ultraviolet');
5469 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('jc',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Near ultraviolet');
5470 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('jv',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Ultraviolet combinations');
5471 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('jz',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other ultraviolet data');
5472 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('ma',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multi-spectral, multidata');
5473 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('mb',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multi-temporal');
5474 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('mm',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Combination of various data types');
5475 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('nn',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5476 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('pa',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sonar-water depth');
5477 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('pb',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sonar-bottom topography images, sidescan');
5478 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('pc',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sonar-bottom topography, near-surface');
5479 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('pd',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sonar-bottom topography, near-bottom');
5480 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('pe',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Seismic surveys');
5481 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('pz',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other acoustical data');
5482 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('ra',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Gravity anomales (general)');
5483 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('rb',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Free-air');
5484 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('rc',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Bouger');
5485 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('rd',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Isostatic');
5486 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('sa',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic field');
5487 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('ta',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Radiometric surveys');
5488 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('uu',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5489 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('zz',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5490
5491 -- Sound Recording
5492 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('s','Sound Recording');
5493 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','b','1','1','SMD');
5494 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound disc');
5495 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Cylinder');
5496 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound cartridge');
5497 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound-track film');
5498 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Roll');
5499 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound cassette');
5500 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound-tape reel');
5501 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5502 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('w',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wire recording');
5503 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5504 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','d','3','1','Speed');
5505 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'16 rpm');
5506 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'33 1/3 rpm');
5507 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'45 rpm');
5508 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'78 rpm');
5509 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'8 rpm');
5510 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'1.4 mps');
5511 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'120 rpm');
5512 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'160 rpm');
5513 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'15/16 ips');
5514 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('l',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'1 7/8 ips');
5515 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'3 3/4 ips');
5516 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'7 1/2 ips');
5517 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'15 ips');
5518 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'30 ips');
5519 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5520 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5521 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','e','4','1','Configuration of playback channels');
5522 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Monaural');
5523 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Quadraphonic');
5524 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stereophonic');
5525 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5526 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5527 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','f','5','1','Groove width or pitch');
5528 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Microgroove/fine');
5529 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5530 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Coarse/standard');
5531 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5532 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5533 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','g','6','1','Dimensions');
5534 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'3 in.');
5535 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'5 in.');
5536 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'7 in.');
5537 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'10 in.');
5538 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'12 in.');
5539 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'16 in.');
5540 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'4 3/4 in. (12 cm.)');
5541 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'3 7/8 x 2 1/2 in.');
5542 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5543 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'5 1/4 x 3 7/8 in.');
5544 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'2 3/4 x 4 in.');
5545 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5546 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5547 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','h','7','1','Tape width');
5548 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('l',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'1/8 in.');
5549 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'1/4in.');
5550 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5551 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'1/2 in.');
5552 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'1 in.');
5553 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5554 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5555 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','i','8','1','Tape configuration ');
5556 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Full (1) track');
5557 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Half (2) track');
5558 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Quarter (4) track');
5559 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'8 track');
5560 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'12 track');
5561 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'16 track');
5562 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5563 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5564 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5565 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','m','12','1','Special playback');
5566 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'NAB standard');
5567 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'CCIR standard');
5568 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Dolby-B encoded, standard Dolby');
5569 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'dbx encoded');
5570 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Digital recording');
5571 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Dolby-A encoded');
5572 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Dolby-C encoded');
5573 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'CX encoded');
5574 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5575 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5576 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5577 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','n','13','1','Capture and storage');
5578 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Acoustical capture, direct storage');
5579 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Direct storage, not acoustical');
5580 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Digital storage');
5581 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Analog electrical storage');
5582 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5583 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5584
5585 -- Videorecording
5586 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('v','Videorecording');
5587 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','b','1','1','SMD');
5588 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videocartridge');
5589 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
5590 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videocassette');
5591 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videoreel');
5592 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5593 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5594 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','d','3','1','Color');
5595 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Black-and-white');
5596 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5597 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5598 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5599 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5600 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5601 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','e','4','1','Videorecording format');
5602 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Beta');
5603 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'VHS');
5604 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'U-matic');
5605 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'EIAJ');
5606 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Type C');
5607 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Quadruplex');
5608 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Laserdisc');
5609 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'CED');
5610 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Betacam');
5611 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Betacam SP');
5612 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Super-VHS');
5613 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'M-II');
5614 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'D-2');
5615 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'8 mm.');
5616 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Hi-8 mm.');
5617 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Blu-ray');
5618 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5619 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('v',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'DVD');
5620 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5621 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','f','5','1','Sound on medium or separate');
5622 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound on medium');
5623 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound separate from medium');
5624 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5625 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','g','6','1','Medium for sound');
5626 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Optical sound track on motion picture film');
5627 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic sound track on motion picture film');
5628 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic audio tape in cartridge');
5629 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound disc');
5630 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic audio tape on reel');
5631 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Magnetic audio tape in cassette');
5632 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Optical and magnetic sound track on motion picture film');
5633 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videotape');
5634 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
5635 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5636 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5637 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','h','7','1','Dimensions');
5638 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'8 mm.');
5639 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'1/4 in.');
5640 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'1/2 in.');
5641 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'1 in.');
5642 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'2 in.');
5643 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'3/4 in.');
5644 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5645 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5646 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','i','8','1','Configuration of playback channel');
5647 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5648 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Monaural');
5649 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Not applicable');
5650 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multichannel, surround or quadraphonic');
5651 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stereophonic');
5652 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5653 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5654
5655 -- Fixed Field position data -- 0-based!
5656 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Alph', '006', 'SER', 16, 1, ' ');
5657 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Alph', '008', 'SER', 33, 1, ' ');
5658 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'BKS', 5, 1, ' ');
5659 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'COM', 5, 1, ' ');
5660 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'REC', 5, 1, ' ');
5661 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'SCO', 5, 1, ' ');
5662 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'SER', 5, 1, ' ');
5663 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'VIS', 5, 1, ' ');
5664 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'BKS', 22, 1, ' ');
5665 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'COM', 22, 1, ' ');
5666 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'REC', 22, 1, ' ');
5667 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'SCO', 22, 1, ' ');
5668 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'SER', 22, 1, ' ');
5669 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'VIS', 22, 1, ' ');
5670 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'BKS', 7, 1, 'm');
5671 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'COM', 7, 1, 'm');
5672 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'MAP', 7, 1, 'm');
5673 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'MIX', 7, 1, 'c');
5674 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'REC', 7, 1, 'm');
5675 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'SCO', 7, 1, 'm');
5676 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'SER', 7, 1, 's');
5677 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'VIS', 7, 1, 'm');
5678 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Biog', '006', 'BKS', 17, 1, ' ');
5679 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Biog', '008', 'BKS', 34, 1, ' ');
5680 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '006', 'BKS', 11, 1, ' ');
5681 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '006', 'SER', 11, 1, ' ');
5682 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '008', 'BKS', 29, 1, ' ');
5683 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '008', 'SER', 29, 1, ' ');
5684 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '006', 'BKS', 7, 4, ' ');
5685 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '006', 'SER', 8, 3, ' ');
5686 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '008', 'BKS', 24, 4, ' ');
5687 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '008', 'SER', 25, 3, ' ');
5688 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'BKS', 8, 1, ' ');
5689 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'COM', 8, 1, ' ');
5690 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'MAP', 8, 1, ' ');
5691 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'MIX', 8, 1, ' ');
5692 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'REC', 8, 1, ' ');
5693 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'SCO', 8, 1, ' ');
5694 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'SER', 8, 1, ' ');
5695 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'VIS', 8, 1, ' ');
5696 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'BKS', 15, 3, ' ');
5697 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'COM', 15, 3, ' ');
5698 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'MAP', 15, 3, ' ');
5699 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'MIX', 15, 3, ' ');
5700 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'REC', 15, 3, ' ');
5701 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'SCO', 15, 3, ' ');
5702 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'SER', 15, 3, ' ');
5703 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'VIS', 15, 3, ' ');
5704 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'BKS', 7, 4, ' ');
5705 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'COM', 7, 4, ' ');
5706 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'MAP', 7, 4, ' ');
5707 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'MIX', 7, 4, ' ');
5708 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'REC', 7, 4, ' ');
5709 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'SCO', 7, 4, ' ');
5710 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'SER', 7, 4, ' ');
5711 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'VIS', 7, 4, ' ');
5712 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'BKS', 11, 4, ' ');
5713 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'COM', 11, 4, ' ');
5714 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'MAP', 11, 4, ' ');
5715 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'MIX', 11, 4, ' ');
5716 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'REC', 11, 4, ' ');
5717 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'SCO', 11, 4, ' ');
5718 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'SER', 11, 4, '9');
5719 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'VIS', 11, 4, ' ');
5720 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'BKS', 18, 1, ' ');
5721 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'COM', 18, 1, ' ');
5722 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'MAP', 18, 1, ' ');
5723 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'MIX', 18, 1, ' ');
5724 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'REC', 18, 1, ' ');
5725 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'SCO', 18, 1, ' ');
5726 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'SER', 18, 1, ' ');
5727 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'VIS', 18, 1, ' ');
5728 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'BKS', 6, 1, ' ');
5729 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'COM', 6, 1, ' ');
5730 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'MAP', 6, 1, ' ');
5731 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'MIX', 6, 1, ' ');
5732 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'REC', 6, 1, ' ');
5733 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'SCO', 6, 1, ' ');
5734 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'SER', 6, 1, 'c');
5735 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'VIS', 6, 1, ' ');
5736 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'BKS', 17, 1, ' ');
5737 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'COM', 17, 1, ' ');
5738 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'MAP', 17, 1, ' ');
5739 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'MIX', 17, 1, ' ');
5740 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'REC', 17, 1, ' ');
5741 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'SCO', 17, 1, ' ');
5742 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'SER', 17, 1, ' ');
5743 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'VIS', 17, 1, ' ');
5744 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'AUT', 17, 1, ' ');
5745 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Fest', '006', 'BKS', 13, 1, '0');
5746 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Fest', '008', 'BKS', 30, 1, '0');
5747 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'BKS', 6, 1, ' ');
5748 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'MAP', 12, 1, ' ');
5749 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'MIX', 6, 1, ' ');
5750 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'REC', 6, 1, ' ');
5751 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'SCO', 6, 1, ' ');
5752 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'SER', 6, 1, ' ');
5753 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'VIS', 12, 1, ' ');
5754 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'BKS', 23, 1, ' ');
5755 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'MAP', 29, 1, ' ');
5756 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'MIX', 23, 1, ' ');
5757 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'REC', 23, 1, ' ');
5758 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'SCO', 23, 1, ' ');
5759 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'SER', 23, 1, ' ');
5760 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'VIS', 29, 1, ' ');
5761 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'BKS', 11, 1, ' ');
5762 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'COM', 11, 1, ' ');
5763 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'MAP', 11, 1, ' ');
5764 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'SER', 11, 1, ' ');
5765 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'VIS', 11, 1, ' ');
5766 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'BKS', 28, 1, ' ');
5767 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'COM', 28, 1, ' ');
5768 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'MAP', 28, 1, ' ');
5769 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'SER', 28, 1, ' ');
5770 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'VIS', 28, 1, ' ');
5771 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills', '006', 'BKS', 1, 4, ' ');
5772 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills', '008', 'BKS', 18, 4, ' ');
5773 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '006', 'BKS', 14, 1, '0');
5774 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '006', 'MAP', 14, 1, '0');
5775 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '008', 'BKS', 31, 1, '0');
5776 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '008', 'MAP', 31, 1, '0');
5777 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'BKS', 35, 3, ' ');
5778 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'COM', 35, 3, ' ');
5779 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'MAP', 35, 3, ' ');
5780 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'MIX', 35, 3, ' ');
5781 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'REC', 35, 3, ' ');
5782 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'SCO', 35, 3, ' ');
5783 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'SER', 35, 3, ' ');
5784 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'VIS', 35, 3, ' ');
5785 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LitF', '006', 'BKS', 16, 1, '0');
5786 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LitF', '008', 'BKS', 33, 1, '0');
5787 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'BKS', 38, 1, ' ');
5788 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'COM', 38, 1, ' ');
5789 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'MAP', 38, 1, ' ');
5790 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'MIX', 38, 1, ' ');
5791 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'REC', 38, 1, ' ');
5792 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'SCO', 38, 1, ' ');
5793 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'SER', 38, 1, ' ');
5794 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'VIS', 38, 1, ' ');
5795 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('S/L', '006', 'SER', 17, 1, '0');
5796 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('S/L', '008', 'SER', 34, 1, '0');
5797 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TMat', '006', 'VIS', 16, 1, ' ');
5798 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TMat', '008', 'VIS', 33, 1, ' ');
5799 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'BKS', 6, 1, 'a');
5800 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'COM', 6, 1, 'm');
5801 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'MAP', 6, 1, 'e');
5802 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'MIX', 6, 1, 'p');
5803 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'REC', 6, 1, 'i');
5804 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'SCO', 6, 1, 'c');
5805 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'SER', 6, 1, 'a');
5806 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'VIS', 6, 1, 'g');
5807 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Subj', '008', 'AUT', 11, 1, '|');
5808 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('RecStat', 'ldr', 'AUT', 5, 1, 'n');
5809
5810 -- record attributes
5811 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('alph','Alph','Alph');
5812 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('audience','Audn','Audn');
5813 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('bib_level','BLvl','BLvl');
5814 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('biog','Biog','Biog');
5815 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('conf','Conf','Conf');
5816 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('control_type','Ctrl','Ctrl');
5817 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('ctry','Ctry','Ctry');
5818 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('date1','Date1','Date1');
5819 INSERT INTO config.record_attr_definition (name,label,fixed_field,sorter,filter) values ('pubdate','Pub Date','Date1',TRUE,FALSE);
5820 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('date2','Date2','Date2');
5821 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('cat_form','Desc','Desc');
5822 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('pub_status','DtSt','DtSt');
5823 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('enc_level','ELvl','ELvl');
5824 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('fest','Fest','Fest');
5825 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('item_form','Form','Form');
5826 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('gpub','GPub','GPub');
5827 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('ills','Ills','Ills');
5828 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('indx','Indx','Indx');
5829 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('item_lang','Lang','Lang');
5830 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('language','Language (2.0 compat version)','Lang');
5831 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('lit_form','LitF','LitF');
5832 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('mrec','MRec','MRec');
5833 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('ff_sl','S/L','S/L');
5834 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('type_mat','TMat','TMat');
5835 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('item_type','Type','Type');
5836 INSERT INTO config.record_attr_definition (name,label,phys_char_sf) values ('vr_format','Videorecording format',72);
5837 INSERT INTO config.record_attr_definition (name,label,sorter,filter,tag) values ('titlesort','Title',TRUE,FALSE,'tnf');
5838 INSERT INTO config.record_attr_definition (name,label,sorter,filter,tag,sf_list) values ('authorsort','Author',TRUE,FALSE,'1%','abcdefgklmnopqrstvxyz');
5839
5840 -- TO-DO: Auto-generate these values from CLDR
5841 -- XXX These are the values used in MARC records ... does that match CLDR, including deprecated languages?
5842 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
5843     (1, 'item_lang', 'aar', oils_i18n_gettext('aar', 'Afar', 'ccvm', 'value')),
5844     (2, 'item_lang', 'abk', oils_i18n_gettext('abk', 'Abkhaz', 'ccvm', 'value')),
5845     (3, 'item_lang', 'ace', oils_i18n_gettext('ace', 'Achinese', 'ccvm', 'value')),
5846     (4, 'item_lang', 'ach', oils_i18n_gettext('ach', 'Acoli', 'ccvm', 'value')),
5847     (5, 'item_lang', 'ada', oils_i18n_gettext('ada', 'Adangme', 'ccvm', 'value')),
5848     (6, 'item_lang', 'ady', oils_i18n_gettext('ady', 'Adygei', 'ccvm', 'value')),
5849     (7, 'item_lang', 'afa', oils_i18n_gettext('afa', 'Afroasiatic (Other)', 'ccvm', 'value')),
5850     (8, 'item_lang', 'afh', oils_i18n_gettext('afh', 'Afrihili (Artificial language)', 'ccvm', 'value')),
5851     (9, 'item_lang', 'afr', oils_i18n_gettext('afr', 'Afrikaans', 'ccvm', 'value')),
5852     (10, 'item_lang', '-ajm', oils_i18n_gettext('-ajm', 'Aljamía', 'ccvm', 'value')),
5853     (11, 'item_lang', 'aka', oils_i18n_gettext('aka', 'Akan', 'ccvm', 'value')),
5854     (12, 'item_lang', 'akk', oils_i18n_gettext('akk', 'Akkadian', 'ccvm', 'value')),
5855     (13, 'item_lang', 'alb', oils_i18n_gettext('alb', 'Albanian', 'ccvm', 'value')),
5856     (14, 'item_lang', 'ale', oils_i18n_gettext('ale', 'Aleut', 'ccvm', 'value')),
5857     (15, 'item_lang', 'alg', oils_i18n_gettext('alg', 'Algonquian (Other)', 'ccvm', 'value')),
5858     (16, 'item_lang', 'amh', oils_i18n_gettext('amh', 'Amharic', 'ccvm', 'value')),
5859     (17, 'item_lang', 'ang', oils_i18n_gettext('ang', 'English, Old (ca. 450-1100)', 'ccvm', 'value')),
5860     (18, 'item_lang', 'apa', oils_i18n_gettext('apa', 'Apache languages', 'ccvm', 'value')),
5861     (19, 'item_lang', 'ara', oils_i18n_gettext('ara', 'Arabic', 'ccvm', 'value')),
5862     (20, 'item_lang', 'arc', oils_i18n_gettext('arc', 'Aramaic', 'ccvm', 'value')),
5863     (21, 'item_lang', 'arg', oils_i18n_gettext('arg', 'Aragonese Spanish', 'ccvm', 'value')),
5864     (22, 'item_lang', 'arm', oils_i18n_gettext('arm', 'Armenian', 'ccvm', 'value')),
5865     (23, 'item_lang', 'arn', oils_i18n_gettext('arn', 'Mapuche', 'ccvm', 'value')),
5866     (24, 'item_lang', 'arp', oils_i18n_gettext('arp', 'Arapaho', 'ccvm', 'value')),
5867     (25, 'item_lang', 'art', oils_i18n_gettext('art', 'Artificial (Other)', 'ccvm', 'value')),
5868     (26, 'item_lang', 'arw', oils_i18n_gettext('arw', 'Arawak', 'ccvm', 'value')),
5869     (27, 'item_lang', 'asm', oils_i18n_gettext('asm', 'Assamese', 'ccvm', 'value')),
5870     (28, 'item_lang', 'ast', oils_i18n_gettext('ast', 'Bable', 'ccvm', 'value')),
5871     (29, 'item_lang', 'ath', oils_i18n_gettext('ath', 'Athapascan (Other)', 'ccvm', 'value')),
5872     (30, 'item_lang', 'aus', oils_i18n_gettext('aus', 'Australian languages', 'ccvm', 'value')),
5873     (31, 'item_lang', 'ava', oils_i18n_gettext('ava', 'Avaric', 'ccvm', 'value')),
5874     (32, 'item_lang', 'ave', oils_i18n_gettext('ave', 'Avestan', 'ccvm', 'value')),
5875     (33, 'item_lang', 'awa', oils_i18n_gettext('awa', 'Awadhi', 'ccvm', 'value')),
5876     (34, 'item_lang', 'aym', oils_i18n_gettext('aym', 'Aymara', 'ccvm', 'value')),
5877     (35, 'item_lang', 'aze', oils_i18n_gettext('aze', 'Azerbaijani', 'ccvm', 'value')),
5878     (36, 'item_lang', 'bad', oils_i18n_gettext('bad', 'Banda', 'ccvm', 'value')),
5879     (37, 'item_lang', 'bai', oils_i18n_gettext('bai', 'Bamileke languages', 'ccvm', 'value')),
5880     (38, 'item_lang', 'bak', oils_i18n_gettext('bak', 'Bashkir', 'ccvm', 'value')),
5881     (39, 'item_lang', 'bal', oils_i18n_gettext('bal', 'Baluchi', 'ccvm', 'value')),
5882     (40, 'item_lang', 'bam', oils_i18n_gettext('40', 'Bambara', 'ccvm', 'value')),
5883     (41, 'item_lang', 'ban', oils_i18n_gettext('41', 'Balinese', 'ccvm', 'value')),
5884     (42, 'item_lang', 'baq', oils_i18n_gettext('42', 'Basque', 'ccvm', 'value')),
5885     (43, 'item_lang', 'bas', oils_i18n_gettext('43', 'Basa', 'ccvm', 'value')),
5886     (44, 'item_lang', 'bat', oils_i18n_gettext('44', 'Baltic (Other)', 'ccvm', 'value')),
5887     (45, 'item_lang', 'bej', oils_i18n_gettext('45', 'Beja', 'ccvm', 'value')),
5888     (46, 'item_lang', 'bel', oils_i18n_gettext('46', 'Belarusian', 'ccvm', 'value')),
5889     (47, 'item_lang', 'bem', oils_i18n_gettext('47', 'Bemba', 'ccvm', 'value')),
5890     (48, 'item_lang', 'ben', oils_i18n_gettext('48', 'Bengali', 'ccvm', 'value')),
5891     (49, 'item_lang', 'ber', oils_i18n_gettext('49', 'Berber (Other)', 'ccvm', 'value')),
5892     (50, 'item_lang', 'bho', oils_i18n_gettext('50', 'Bhojpuri', 'ccvm', 'value')),
5893     (51, 'item_lang', 'bih', oils_i18n_gettext('51', 'Bihari', 'ccvm', 'value')),
5894     (52, 'item_lang', 'bik', oils_i18n_gettext('52', 'Bikol', 'ccvm', 'value')),
5895     (53, 'item_lang', 'bin', oils_i18n_gettext('53', 'Edo', 'ccvm', 'value')),
5896     (54, 'item_lang', 'bis', oils_i18n_gettext('54', 'Bislama', 'ccvm', 'value')),
5897     (55, 'item_lang', 'bla', oils_i18n_gettext('55', 'Siksika', 'ccvm', 'value')),
5898     (56, 'item_lang', 'bnt', oils_i18n_gettext('56', 'Bantu (Other)', 'ccvm', 'value')),
5899     (57, 'item_lang', 'bos', oils_i18n_gettext('57', 'Bosnian', 'ccvm', 'value')),
5900     (58, 'item_lang', 'bra', oils_i18n_gettext('58', 'Braj', 'ccvm', 'value')),
5901     (59, 'item_lang', 'bre', oils_i18n_gettext('59', 'Breton', 'ccvm', 'value')),
5902     (60, 'item_lang', 'btk', oils_i18n_gettext('60', 'Batak', 'ccvm', 'value')),
5903     (61, 'item_lang', 'bua', oils_i18n_gettext('61', 'Buriat', 'ccvm', 'value')),
5904     (62, 'item_lang', 'bug', oils_i18n_gettext('62', 'Bugis', 'ccvm', 'value')),
5905     (63, 'item_lang', 'bul', oils_i18n_gettext('63', 'Bulgarian', 'ccvm', 'value')),
5906     (64, 'item_lang', 'bur', oils_i18n_gettext('64', 'Burmese', 'ccvm', 'value')),
5907     (65, 'item_lang', 'cad', oils_i18n_gettext('65', 'Caddo', 'ccvm', 'value')),
5908     (66, 'item_lang', 'cai', oils_i18n_gettext('66', 'Central American Indian (Other)', 'ccvm', 'value')),
5909     (67, 'item_lang', '-cam', oils_i18n_gettext('67', 'Khmer', 'ccvm', 'value')),
5910     (68, 'item_lang', 'car', oils_i18n_gettext('68', 'Carib', 'ccvm', 'value')),
5911     (69, 'item_lang', 'cat', oils_i18n_gettext('69', 'Catalan', 'ccvm', 'value')),
5912     (70, 'item_lang', 'cau', oils_i18n_gettext('70', 'Caucasian (Other)', 'ccvm', 'value')),
5913     (71, 'item_lang', 'ceb', oils_i18n_gettext('71', 'Cebuano', 'ccvm', 'value')),
5914     (72, 'item_lang', 'cel', oils_i18n_gettext('72', 'Celtic (Other)', 'ccvm', 'value')),
5915     (73, 'item_lang', 'cha', oils_i18n_gettext('73', 'Chamorro', 'ccvm', 'value')),
5916     (74, 'item_lang', 'chb', oils_i18n_gettext('74', 'Chibcha', 'ccvm', 'value')),
5917     (75, 'item_lang', 'che', oils_i18n_gettext('75', 'Chechen', 'ccvm', 'value')),
5918     (76, 'item_lang', 'chg', oils_i18n_gettext('76', 'Chagatai', 'ccvm', 'value')),
5919     (77, 'item_lang', 'chi', oils_i18n_gettext('77', 'Chinese', 'ccvm', 'value')),
5920     (78, 'item_lang', 'chk', oils_i18n_gettext('78', 'Truk', 'ccvm', 'value')),
5921     (79, 'item_lang', 'chm', oils_i18n_gettext('79', 'Mari', 'ccvm', 'value')),
5922     (80, 'item_lang', 'chn', oils_i18n_gettext('80', 'Chinook jargon', 'ccvm', 'value')),
5923     (81, 'item_lang', 'cho', oils_i18n_gettext('81', 'Choctaw', 'ccvm', 'value')),
5924     (82, 'item_lang', 'chp', oils_i18n_gettext('82', 'Chipewyan', 'ccvm', 'value')),
5925     (83, 'item_lang', 'chr', oils_i18n_gettext('83', 'Cherokee', 'ccvm', 'value')),
5926     (84, 'item_lang', 'chu', oils_i18n_gettext('84', 'Church Slavic', 'ccvm', 'value')),
5927     (85, 'item_lang', 'chv', oils_i18n_gettext('85', 'Chuvash', 'ccvm', 'value')),
5928     (86, 'item_lang', 'chy', oils_i18n_gettext('86', 'Cheyenne', 'ccvm', 'value')),
5929     (87, 'item_lang', 'cmc', oils_i18n_gettext('87', 'Chamic languages', 'ccvm', 'value')),
5930     (88, 'item_lang', 'cop', oils_i18n_gettext('88', 'Coptic', 'ccvm', 'value')),
5931     (89, 'item_lang', 'cor', oils_i18n_gettext('89', 'Cornish', 'ccvm', 'value')),
5932     (90, 'item_lang', 'cos', oils_i18n_gettext('90', 'Corsican', 'ccvm', 'value')),
5933     (91, 'item_lang', 'cpe', oils_i18n_gettext('91', 'Creoles and Pidgins, English-based (Other)', 'ccvm', 'value')),
5934     (92, 'item_lang', 'cpf', oils_i18n_gettext('92', 'Creoles and Pidgins, French-based (Other)', 'ccvm', 'value')),
5935     (93, 'item_lang', 'cpp', oils_i18n_gettext('93', 'Creoles and Pidgins, Portuguese-based (Other)', 'ccvm', 'value')),
5936     (94, 'item_lang', 'cre', oils_i18n_gettext('94', 'Cree', 'ccvm', 'value')),
5937     (95, 'item_lang', 'crh', oils_i18n_gettext('95', 'Crimean Tatar', 'ccvm', 'value')),
5938     (96, 'item_lang', 'crp', oils_i18n_gettext('96', 'Creoles and Pidgins (Other)', 'ccvm', 'value')),
5939     (97, 'item_lang', 'cus', oils_i18n_gettext('97', 'Cushitic (Other)', 'ccvm', 'value')),
5940     (98, 'item_lang', 'cze', oils_i18n_gettext('98', 'Czech', 'ccvm', 'value')),
5941     (99, 'item_lang', 'dak', oils_i18n_gettext('99', 'Dakota', 'ccvm', 'value')),
5942     (100, 'item_lang', 'dan', oils_i18n_gettext('100', 'Danish', 'ccvm', 'value')),
5943     (101, 'item_lang', 'dar', oils_i18n_gettext('101', 'Dargwa', 'ccvm', 'value')),
5944     (102, 'item_lang', 'day', oils_i18n_gettext('102', 'Dayak', 'ccvm', 'value')),
5945     (103, 'item_lang', 'del', oils_i18n_gettext('103', 'Delaware', 'ccvm', 'value')),
5946     (104, 'item_lang', 'den', oils_i18n_gettext('104', 'Slave', 'ccvm', 'value')),
5947     (105, 'item_lang', 'dgr', oils_i18n_gettext('105', 'Dogrib', 'ccvm', 'value')),
5948     (106, 'item_lang', 'din', oils_i18n_gettext('106', 'Dinka', 'ccvm', 'value')),
5949     (107, 'item_lang', 'div', oils_i18n_gettext('107', 'Divehi', 'ccvm', 'value')),
5950     (108, 'item_lang', 'doi', oils_i18n_gettext('108', 'Dogri', 'ccvm', 'value')),
5951     (109, 'item_lang', 'dra', oils_i18n_gettext('109', 'Dravidian (Other)', 'ccvm', 'value')),
5952     (110, 'item_lang', 'dua', oils_i18n_gettext('110', 'Duala', 'ccvm', 'value')),
5953     (111, 'item_lang', 'dum', oils_i18n_gettext('111', 'Dutch, Middle (ca. 1050-1350)', 'ccvm', 'value')),
5954     (112, 'item_lang', 'dut', oils_i18n_gettext('112', 'Dutch', 'ccvm', 'value')),
5955     (113, 'item_lang', 'dyu', oils_i18n_gettext('113', 'Dyula', 'ccvm', 'value')),
5956     (114, 'item_lang', 'dzo', oils_i18n_gettext('114', 'Dzongkha', 'ccvm', 'value')),
5957     (115, 'item_lang', 'efi', oils_i18n_gettext('115', 'Efik', 'ccvm', 'value')),
5958     (116, 'item_lang', 'egy', oils_i18n_gettext('116', 'Egyptian', 'ccvm', 'value')),
5959     (117, 'item_lang', 'eka', oils_i18n_gettext('117', 'Ekajuk', 'ccvm', 'value')),
5960     (118, 'item_lang', 'elx', oils_i18n_gettext('118', 'Elamite', 'ccvm', 'value')),
5961     (119, 'item_lang', 'eng', oils_i18n_gettext('119', 'English', 'ccvm', 'value')),
5962     (120, 'item_lang', 'enm', oils_i18n_gettext('120', 'English, Middle (1100-1500)', 'ccvm', 'value')),
5963     (121, 'item_lang', 'epo', oils_i18n_gettext('121', 'Esperanto', 'ccvm', 'value')),
5964     (122, 'item_lang', '-esk', oils_i18n_gettext('122', 'Eskimo languages', 'ccvm', 'value')),
5965     (123, 'item_lang', '-esp', oils_i18n_gettext('123', 'Esperanto', 'ccvm', 'value')),
5966     (124, 'item_lang', 'est', oils_i18n_gettext('124', 'Estonian', 'ccvm', 'value')),
5967     (125, 'item_lang', '-eth', oils_i18n_gettext('125', 'Ethiopic', 'ccvm', 'value')),
5968     (126, 'item_lang', 'ewe', oils_i18n_gettext('126', 'Ewe', 'ccvm', 'value')),
5969     (127, 'item_lang', 'ewo', oils_i18n_gettext('127', 'Ewondo', 'ccvm', 'value')),
5970     (128, 'item_lang', 'fan', oils_i18n_gettext('128', 'Fang', 'ccvm', 'value')),
5971     (129, 'item_lang', 'fao', oils_i18n_gettext('129', 'Faroese', 'ccvm', 'value')),
5972     (130, 'item_lang', '-far', oils_i18n_gettext('130', 'Faroese', 'ccvm', 'value')),
5973     (131, 'item_lang', 'fat', oils_i18n_gettext('131', 'Fanti', 'ccvm', 'value')),
5974     (132, 'item_lang', 'fij', oils_i18n_gettext('132', 'Fijian', 'ccvm', 'value')),
5975     (133, 'item_lang', 'fin', oils_i18n_gettext('133', 'Finnish', 'ccvm', 'value')),
5976     (134, 'item_lang', 'fiu', oils_i18n_gettext('134', 'Finno-Ugrian (Other)', 'ccvm', 'value')),
5977     (135, 'item_lang', 'fon', oils_i18n_gettext('135', 'Fon', 'ccvm', 'value')),
5978     (136, 'item_lang', 'fre', oils_i18n_gettext('136', 'French', 'ccvm', 'value')),
5979     (137, 'item_lang', '-fri', oils_i18n_gettext('137', 'Frisian', 'ccvm', 'value')),
5980     (138, 'item_lang', 'frm', oils_i18n_gettext('138', 'French, Middle (ca. 1400-1600)', 'ccvm', 'value')),
5981     (139, 'item_lang', 'fro', oils_i18n_gettext('139', 'French, Old (ca. 842-1400)', 'ccvm', 'value')),
5982     (140, 'item_lang', 'fry', oils_i18n_gettext('140', 'Frisian', 'ccvm', 'value')),
5983     (141, 'item_lang', 'ful', oils_i18n_gettext('141', 'Fula', 'ccvm', 'value')),
5984     (142, 'item_lang', 'fur', oils_i18n_gettext('142', 'Friulian', 'ccvm', 'value')),
5985     (143, 'item_lang', 'gaa', oils_i18n_gettext('143', 'Gã', 'ccvm', 'value')),
5986     (144, 'item_lang', '-gae', oils_i18n_gettext('144', 'Scottish Gaelic', 'ccvm', 'value')),
5987     (145, 'item_lang', '-gag', oils_i18n_gettext('145', 'Galician', 'ccvm', 'value')),
5988     (146, 'item_lang', '-gal', oils_i18n_gettext('146', 'Oromo', 'ccvm', 'value')),
5989     (147, 'item_lang', 'gay', oils_i18n_gettext('147', 'Gayo', 'ccvm', 'value')),
5990     (148, 'item_lang', 'gba', oils_i18n_gettext('148', 'Gbaya', 'ccvm', 'value')),
5991     (149, 'item_lang', 'gem', oils_i18n_gettext('149', 'Germanic (Other)', 'ccvm', 'value')),
5992     (150, 'item_lang', 'geo', oils_i18n_gettext('150', 'Georgian', 'ccvm', 'value')),
5993     (151, 'item_lang', 'ger', oils_i18n_gettext('151', 'German', 'ccvm', 'value')),
5994     (152, 'item_lang', 'gez', oils_i18n_gettext('152', 'Ethiopic', 'ccvm', 'value')),
5995     (153, 'item_lang', 'gil', oils_i18n_gettext('153', 'Gilbertese', 'ccvm', 'value')),
5996     (154, 'item_lang', 'gla', oils_i18n_gettext('154', 'Scottish Gaelic', 'ccvm', 'value')),
5997     (155, 'item_lang', 'gle', oils_i18n_gettext('155', 'Irish', 'ccvm', 'value')),
5998     (156, 'item_lang', 'glg', oils_i18n_gettext('156', 'Galician', 'ccvm', 'value')),
5999     (157, 'item_lang', 'glv', oils_i18n_gettext('157', 'Manx', 'ccvm', 'value')),
6000     (158, 'item_lang', 'gmh', oils_i18n_gettext('158', 'German, Middle High (ca. 1050-1500)', 'ccvm', 'value')),
6001     (159, 'item_lang', 'goh', oils_i18n_gettext('159', 'German, Old High (ca. 750-1050)', 'ccvm', 'value')),
6002     (160, 'item_lang', 'gon', oils_i18n_gettext('160', 'Gondi', 'ccvm', 'value')),
6003     (161, 'item_lang', 'gor', oils_i18n_gettext('161', 'Gorontalo', 'ccvm', 'value')),
6004     (162, 'item_lang', 'got', oils_i18n_gettext('162', 'Gothic', 'ccvm', 'value')),
6005     (163, 'item_lang', 'grb', oils_i18n_gettext('163', 'Grebo', 'ccvm', 'value')),
6006     (164, 'item_lang', 'grc', oils_i18n_gettext('164', 'Greek, Ancient (to 1453)', 'ccvm', 'value')),
6007     (165, 'item_lang', 'gre', oils_i18n_gettext('165', 'Greek, Modern (1453- )', 'ccvm', 'value')),
6008     (166, 'item_lang', 'grn', oils_i18n_gettext('166', 'Guarani', 'ccvm', 'value')),
6009     (167, 'item_lang', '-gua', oils_i18n_gettext('167', 'Guarani', 'ccvm', 'value')),
6010     (168, 'item_lang', 'guj', oils_i18n_gettext('168', 'Gujarati', 'ccvm', 'value')),
6011     (169, 'item_lang', 'gwi', oils_i18n_gettext('169', 'Gwich', 'ccvm', 'value''in')),
6012     (170, 'item_lang', 'hai', oils_i18n_gettext('170', 'Haida', 'ccvm', 'value')),
6013     (171, 'item_lang', 'hat', oils_i18n_gettext('171', 'Haitian French Creole', 'ccvm', 'value')),
6014     (172, 'item_lang', 'hau', oils_i18n_gettext('172', 'Hausa', 'ccvm', 'value')),
6015     (173, 'item_lang', 'haw', oils_i18n_gettext('173', 'Hawaiian', 'ccvm', 'value')),
6016     (174, 'item_lang', 'heb', oils_i18n_gettext('174', 'Hebrew', 'ccvm', 'value')),
6017     (175, 'item_lang', 'her', oils_i18n_gettext('175', 'Herero', 'ccvm', 'value')),
6018     (176, 'item_lang', 'hil', oils_i18n_gettext('176', 'Hiligaynon', 'ccvm', 'value')),
6019     (177, 'item_lang', 'him', oils_i18n_gettext('177', 'Himachali', 'ccvm', 'value')),
6020     (178, 'item_lang', 'hin', oils_i18n_gettext('178', 'Hindi', 'ccvm', 'value')),
6021     (179, 'item_lang', 'hit', oils_i18n_gettext('179', 'Hittite', 'ccvm', 'value')),
6022     (180, 'item_lang', 'hmn', oils_i18n_gettext('180', 'Hmong', 'ccvm', 'value')),
6023     (181, 'item_lang', 'hmo', oils_i18n_gettext('181', 'Hiri Motu', 'ccvm', 'value')),
6024     (182, 'item_lang', 'hun', oils_i18n_gettext('182', 'Hungarian', 'ccvm', 'value')),
6025     (183, 'item_lang', 'hup', oils_i18n_gettext('183', 'Hupa', 'ccvm', 'value')),
6026     (184, 'item_lang', 'iba', oils_i18n_gettext('184', 'Iban', 'ccvm', 'value')),
6027     (185, 'item_lang', 'ibo', oils_i18n_gettext('185', 'Igbo', 'ccvm', 'value')),
6028     (186, 'item_lang', 'ice', oils_i18n_gettext('186', 'Icelandic', 'ccvm', 'value')),
6029     (187, 'item_lang', 'ido', oils_i18n_gettext('187', 'Ido', 'ccvm', 'value')),
6030     (188, 'item_lang', 'iii', oils_i18n_gettext('188', 'Sichuan Yi', 'ccvm', 'value')),
6031     (189, 'item_lang', 'ijo', oils_i18n_gettext('189', 'Ijo', 'ccvm', 'value')),
6032     (190, 'item_lang', 'iku', oils_i18n_gettext('190', 'Inuktitut', 'ccvm', 'value')),
6033     (191, 'item_lang', 'ile', oils_i18n_gettext('191', 'Interlingue', 'ccvm', 'value')),
6034     (192, 'item_lang', 'ilo', oils_i18n_gettext('192', 'Iloko', 'ccvm', 'value')),
6035     (193, 'item_lang', 'ina', oils_i18n_gettext('193', 'Interlingua (International Auxiliary Language Association)', 'ccvm', 'value')),
6036     (194, 'item_lang', 'inc', oils_i18n_gettext('194', 'Indic (Other)', 'ccvm', 'value')),
6037     (195, 'item_lang', 'ind', oils_i18n_gettext('195', 'Indonesian', 'ccvm', 'value')),
6038     (196, 'item_lang', 'ine', oils_i18n_gettext('196', 'Indo-European (Other)', 'ccvm', 'value')),
6039     (197, 'item_lang', 'inh', oils_i18n_gettext('197', 'Ingush', 'ccvm', 'value')),
6040     (198, 'item_lang', '-int', oils_i18n_gettext('198', 'Interlingua (International Auxiliary Language Association)', 'ccvm', 'value')),
6041     (199, 'item_lang', 'ipk', oils_i18n_gettext('199', 'Inupiaq', 'ccvm', 'value')),
6042     (200, 'item_lang', 'ira', oils_i18n_gettext('200', 'Iranian (Other)', 'ccvm', 'value')),
6043     (201, 'item_lang', '-iri', oils_i18n_gettext('201', 'Irish', 'ccvm', 'value')),
6044     (202, 'item_lang', 'iro', oils_i18n_gettext('202', 'Iroquoian (Other)', 'ccvm', 'value')),
6045     (203, 'item_lang', 'ita', oils_i18n_gettext('203', 'Italian', 'ccvm', 'value')),
6046     (204, 'item_lang', 'jav', oils_i18n_gettext('204', 'Javanese', 'ccvm', 'value')),
6047     (205, 'item_lang', 'jpn', oils_i18n_gettext('205', 'Japanese', 'ccvm', 'value')),
6048     (206, 'item_lang', 'jpr', oils_i18n_gettext('206', 'Judeo-Persian', 'ccvm', 'value')),
6049     (207, 'item_lang', 'jrb', oils_i18n_gettext('207', 'Judeo-Arabic', 'ccvm', 'value')),
6050     (208, 'item_lang', 'kaa', oils_i18n_gettext('208', 'Kara-Kalpak', 'ccvm', 'value')),
6051     (209, 'item_lang', 'kab', oils_i18n_gettext('209', 'Kabyle', 'ccvm', 'value')),
6052     (210, 'item_lang', 'kac', oils_i18n_gettext('210', 'Kachin', 'ccvm', 'value')),
6053     (211, 'item_lang', 'kal', oils_i18n_gettext('211', 'Kalâtdlisut', 'ccvm', 'value')),
6054     (212, 'item_lang', 'kam', oils_i18n_gettext('212', 'Kamba', 'ccvm', 'value')),
6055     (213, 'item_lang', 'kan', oils_i18n_gettext('213', 'Kannada', 'ccvm', 'value')),
6056     (214, 'item_lang', 'kar', oils_i18n_gettext('214', 'Karen', 'ccvm', 'value')),
6057     (215, 'item_lang', 'kas', oils_i18n_gettext('215', 'Kashmiri', 'ccvm', 'value')),
6058     (216, 'item_lang', 'kau', oils_i18n_gettext('216', 'Kanuri', 'ccvm', 'value')),
6059     (217, 'item_lang', 'kaw', oils_i18n_gettext('217', 'Kawi', 'ccvm', 'value')),
6060     (218, 'item_lang', 'kaz', oils_i18n_gettext('218', 'Kazakh', 'ccvm', 'value')),
6061     (219, 'item_lang', 'kbd', oils_i18n_gettext('219', 'Kabardian', 'ccvm', 'value')),
6062     (220, 'item_lang', 'kha', oils_i18n_gettext('220', 'Khasi', 'ccvm', 'value')),
6063     (221, 'item_lang', 'khi', oils_i18n_gettext('221', 'Khoisan (Other)', 'ccvm', 'value')),
6064     (222, 'item_lang', 'khm', oils_i18n_gettext('222', 'Khmer', 'ccvm', 'value')),
6065     (223, 'item_lang', 'kho', oils_i18n_gettext('223', 'Khotanese', 'ccvm', 'value')),
6066     (224, 'item_lang', 'kik', oils_i18n_gettext('224', 'Kikuyu', 'ccvm', 'value')),
6067     (225, 'item_lang', 'kin', oils_i18n_gettext('225', 'Kinyarwanda', 'ccvm', 'value')),
6068     (226, 'item_lang', 'kir', oils_i18n_gettext('226', 'Kyrgyz', 'ccvm', 'value')),
6069     (227, 'item_lang', 'kmb', oils_i18n_gettext('227', 'Kimbundu', 'ccvm', 'value')),
6070     (228, 'item_lang', 'kok', oils_i18n_gettext('228', 'Konkani', 'ccvm', 'value')),
6071     (229, 'item_lang', 'kom', oils_i18n_gettext('229', 'Komi', 'ccvm', 'value')),
6072     (230, 'item_lang', 'kon', oils_i18n_gettext('230', 'Kongo', 'ccvm', 'value')),
6073     (231, 'item_lang', 'kor', oils_i18n_gettext('231', 'Korean', 'ccvm', 'value')),
6074     (232, 'item_lang', 'kos', oils_i18n_gettext('232', 'Kusaie', 'ccvm', 'value')),
6075     (233, 'item_lang', 'kpe', oils_i18n_gettext('233', 'Kpelle', 'ccvm', 'value')),
6076     (234, 'item_lang', 'kro', oils_i18n_gettext('234', 'Kru', 'ccvm', 'value')),
6077     (235, 'item_lang', 'kru', oils_i18n_gettext('235', 'Kurukh', 'ccvm', 'value')),
6078     (236, 'item_lang', 'kua', oils_i18n_gettext('236', 'Kuanyama', 'ccvm', 'value')),
6079     (237, 'item_lang', 'kum', oils_i18n_gettext('237', 'Kumyk', 'ccvm', 'value')),
6080     (238, 'item_lang', 'kur', oils_i18n_gettext('238', 'Kurdish', 'ccvm', 'value')),
6081     (239, 'item_lang', '-kus', oils_i18n_gettext('239', 'Kusaie', 'ccvm', 'value')),
6082     (240, 'item_lang', 'kut', oils_i18n_gettext('240', 'Kutenai', 'ccvm', 'value')),
6083     (241, 'item_lang', 'lad', oils_i18n_gettext('241', 'Ladino', 'ccvm', 'value')),
6084     (242, 'item_lang', 'lah', oils_i18n_gettext('242', 'Lahnda', 'ccvm', 'value')),
6085     (243, 'item_lang', 'lam', oils_i18n_gettext('243', 'Lamba', 'ccvm', 'value')),
6086     (244, 'item_lang', '-lan', oils_i18n_gettext('244', 'Occitan (post-1500)', 'ccvm', 'value')),
6087     (245, 'item_lang', 'lao', oils_i18n_gettext('245', 'Lao', 'ccvm', 'value')),
6088     (246, 'item_lang', '-lap', oils_i18n_gettext('246', 'Sami', 'ccvm', 'value')),
6089     (247, 'item_lang', 'lat', oils_i18n_gettext('247', 'Latin', 'ccvm', 'value')),
6090     (248, 'item_lang', 'lav', oils_i18n_gettext('248', 'Latvian', 'ccvm', 'value')),
6091     (249, 'item_lang', 'lez', oils_i18n_gettext('249', 'Lezgian', 'ccvm', 'value')),
6092     (250, 'item_lang', 'lim', oils_i18n_gettext('250', 'Limburgish', 'ccvm', 'value')),
6093     (251, 'item_lang', 'lin', oils_i18n_gettext('251', 'Lingala', 'ccvm', 'value')),
6094     (252, 'item_lang', 'lit', oils_i18n_gettext('252', 'Lithuanian', 'ccvm', 'value')),
6095     (253, 'item_lang', 'lol', oils_i18n_gettext('253', 'Mongo-Nkundu', 'ccvm', 'value')),
6096     (254, 'item_lang', 'loz', oils_i18n_gettext('254', 'Lozi', 'ccvm', 'value')),
6097     (255, 'item_lang', 'ltz', oils_i18n_gettext('255', 'Letzeburgesch', 'ccvm', 'value')),
6098     (256, 'item_lang', 'lua', oils_i18n_gettext('256', 'Luba-Lulua', 'ccvm', 'value')),
6099     (257, 'item_lang', 'lub', oils_i18n_gettext('257', 'Luba-Katanga', 'ccvm', 'value')),
6100     (258, 'item_lang', 'lug', oils_i18n_gettext('258', 'Ganda', 'ccvm', 'value')),
6101     (259, 'item_lang', 'lui', oils_i18n_gettext('259', 'Luiseño', 'ccvm', 'value')),
6102     (260, 'item_lang', 'lun', oils_i18n_gettext('260', 'Lunda', 'ccvm', 'value')),
6103     (261, 'item_lang', 'luo', oils_i18n_gettext('261', 'Luo (Kenya and Tanzania)', 'ccvm', 'value')),
6104     (262, 'item_lang', 'lus', oils_i18n_gettext('262', 'Lushai', 'ccvm', 'value')),
6105     (263, 'item_lang', 'mac', oils_i18n_gettext('263', 'Macedonian', 'ccvm', 'value')),
6106     (264, 'item_lang', 'mad', oils_i18n_gettext('264', 'Madurese', 'ccvm', 'value')),
6107     (265, 'item_lang', 'mag', oils_i18n_gettext('265', 'Magahi', 'ccvm', 'value')),
6108     (266, 'item_lang', 'mah', oils_i18n_gettext('266', 'Marshallese', 'ccvm', 'value')),
6109     (267, 'item_lang', 'mai', oils_i18n_gettext('267', 'Maithili', 'ccvm', 'value')),
6110     (268, 'item_lang', 'mak', oils_i18n_gettext('268', 'Makasar', 'ccvm', 'value')),
6111     (269, 'item_lang', 'mal', oils_i18n_gettext('269', 'Malayalam', 'ccvm', 'value')),
6112     (270, 'item_lang', 'man', oils_i18n_gettext('270', 'Mandingo', 'ccvm', 'value')),
6113     (271, 'item_lang', 'mao', oils_i18n_gettext('271', 'Maori', 'ccvm', 'value')),
6114     (272, 'item_lang', 'map', oils_i18n_gettext('272', 'Austronesian (Other)', 'ccvm', 'value')),
6115     (273, 'item_lang', 'mar', oils_i18n_gettext('273', 'Marathi', 'ccvm', 'value')),
6116     (274, 'item_lang', 'mas', oils_i18n_gettext('274', 'Masai', 'ccvm', 'value')),
6117     (275, 'item_lang', '-max', oils_i18n_gettext('275', 'Manx', 'ccvm', 'value')),
6118     (276, 'item_lang', 'may', oils_i18n_gettext('276', 'Malay', 'ccvm', 'value')),
6119     (277, 'item_lang', 'mdr', oils_i18n_gettext('277', 'Mandar', 'ccvm', 'value')),
6120     (278, 'item_lang', 'men', oils_i18n_gettext('278', 'Mende', 'ccvm', 'value')),
6121     (279, 'item_lang', 'mga', oils_i18n_gettext('279', 'Irish, Middle (ca. 1100-1550)', 'ccvm', 'value')),
6122     (280, 'item_lang', 'mic', oils_i18n_gettext('280', 'Micmac', 'ccvm', 'value')),
6123     (281, 'item_lang', 'min', oils_i18n_gettext('281', 'Minangkabau', 'ccvm', 'value')),
6124     (282, 'item_lang', 'mis', oils_i18n_gettext('282', 'Miscellaneous languages', 'ccvm', 'value')),
6125     (283, 'item_lang', 'mkh', oils_i18n_gettext('283', 'Mon-Khmer (Other)', 'ccvm', 'value')),
6126     (284, 'item_lang', '-mla', oils_i18n_gettext('284', 'Malagasy', 'ccvm', 'value')),
6127     (285, 'item_lang', 'mlg', oils_i18n_gettext('285', 'Malagasy', 'ccvm', 'value')),
6128     (286, 'item_lang', 'mlt', oils_i18n_gettext('286', 'Maltese', 'ccvm', 'value')),
6129     (287, 'item_lang', 'mnc', oils_i18n_gettext('287', 'Manchu', 'ccvm', 'value')),
6130     (288, 'item_lang', 'mni', oils_i18n_gettext('288', 'Manipuri', 'ccvm', 'value')),
6131     (289, 'item_lang', 'mno', oils_i18n_gettext('289', 'Manobo languages', 'ccvm', 'value')),
6132     (290, 'item_lang', 'moh', oils_i18n_gettext('290', 'Mohawk', 'ccvm', 'value')),
6133     (291, 'item_lang', 'mol', oils_i18n_gettext('291', 'Moldavian', 'ccvm', 'value')),
6134     (292, 'item_lang', 'mon', oils_i18n_gettext('292', 'Mongolian', 'ccvm', 'value')),
6135     (293, 'item_lang', 'mos', oils_i18n_gettext('293', 'Mooré', 'ccvm', 'value')),
6136     (294, 'item_lang', 'mul', oils_i18n_gettext('294', 'Multiple languages', 'ccvm', 'value')),
6137     (295, 'item_lang', 'mun', oils_i18n_gettext('295', 'Munda (Other)', 'ccvm', 'value')),
6138     (296, 'item_lang', 'mus', oils_i18n_gettext('296', 'Creek', 'ccvm', 'value')),
6139     (297, 'item_lang', 'mwr', oils_i18n_gettext('297', 'Marwari', 'ccvm', 'value')),
6140     (298, 'item_lang', 'myn', oils_i18n_gettext('298', 'Mayan languages', 'ccvm', 'value')),
6141     (299, 'item_lang', 'nah', oils_i18n_gettext('299', 'Nahuatl', 'ccvm', 'value')),
6142     (300, 'item_lang', 'nai', oils_i18n_gettext('300', 'North American Indian (Other)', 'ccvm', 'value')),
6143     (301, 'item_lang', 'nap', oils_i18n_gettext('301', 'Neapolitan Italian', 'ccvm', 'value')),
6144     (302, 'item_lang', 'nau', oils_i18n_gettext('302', 'Nauru', 'ccvm', 'value')),
6145     (303, 'item_lang', 'nav', oils_i18n_gettext('303', 'Navajo', 'ccvm', 'value')),
6146     (304, 'item_lang', 'nbl', oils_i18n_gettext('304', 'Ndebele (South Africa)', 'ccvm', 'value')),
6147     (305, 'item_lang', 'nde', oils_i18n_gettext('305', 'Ndebele (Zimbabwe)  ', 'ccvm', 'value')),
6148     (306, 'item_lang', 'ndo', oils_i18n_gettext('306', 'Ndonga', 'ccvm', 'value')),
6149     (307, 'item_lang', 'nds', oils_i18n_gettext('307', 'Low German', 'ccvm', 'value')),
6150     (308, 'item_lang', 'nep', oils_i18n_gettext('308', 'Nepali', 'ccvm', 'value')),
6151     (309, 'item_lang', 'new', oils_i18n_gettext('309', 'Newari', 'ccvm', 'value')),
6152     (310, 'item_lang', 'nia', oils_i18n_gettext('310', 'Nias', 'ccvm', 'value')),
6153     (311, 'item_lang', 'nic', oils_i18n_gettext('311', 'Niger-Kordofanian (Other)', 'ccvm', 'value')),
6154     (312, 'item_lang', 'niu', oils_i18n_gettext('312', 'Niuean', 'ccvm', 'value')),
6155     (313, 'item_lang', 'nno', oils_i18n_gettext('313', 'Norwegian (Nynorsk)', 'ccvm', 'value')),
6156     (314, 'item_lang', 'nob', oils_i18n_gettext('314', 'Norwegian (BokmÃ¥l)', 'ccvm', 'value')),
6157     (315, 'item_lang', 'nog', oils_i18n_gettext('315', 'Nogai', 'ccvm', 'value')),
6158     (316, 'item_lang', 'non', oils_i18n_gettext('316', 'Old Norse', 'ccvm', 'value')),
6159     (317, 'item_lang', 'nor', oils_i18n_gettext('317', 'Norwegian', 'ccvm', 'value')),
6160     (318, 'item_lang', 'nso', oils_i18n_gettext('318', 'Northern Sotho', 'ccvm', 'value')),
6161     (319, 'item_lang', 'nub', oils_i18n_gettext('319', 'Nubian languages', 'ccvm', 'value')),
6162     (320, 'item_lang', 'nya', oils_i18n_gettext('320', 'Nyanja', 'ccvm', 'value')),
6163     (321, 'item_lang', 'nym', oils_i18n_gettext('321', 'Nyamwezi', 'ccvm', 'value')),
6164     (322, 'item_lang', 'nyn', oils_i18n_gettext('322', 'Nyankole', 'ccvm', 'value')),
6165     (323, 'item_lang', 'nyo', oils_i18n_gettext('323', 'Nyoro', 'ccvm', 'value')),
6166     (324, 'item_lang', 'nzi', oils_i18n_gettext('324', 'Nzima', 'ccvm', 'value')),
6167     (325, 'item_lang', 'oci', oils_i18n_gettext('325', 'Occitan (post-1500)', 'ccvm', 'value')),
6168     (326, 'item_lang', 'oji', oils_i18n_gettext('326', 'Ojibwa', 'ccvm', 'value')),
6169     (327, 'item_lang', 'ori', oils_i18n_gettext('327', 'Oriya', 'ccvm', 'value')),
6170     (328, 'item_lang', 'orm', oils_i18n_gettext('328', 'Oromo', 'ccvm', 'value')),
6171     (329, 'item_lang', 'osa', oils_i18n_gettext('329', 'Osage', 'ccvm', 'value')),
6172     (330, 'item_lang', 'oss', oils_i18n_gettext('330', 'Ossetic', 'ccvm', 'value')),
6173     (331, 'item_lang', 'ota', oils_i18n_gettext('331', 'Turkish, Ottoman', 'ccvm', 'value')),
6174     (332, 'item_lang', 'oto', oils_i18n_gettext('332', 'Otomian languages', 'ccvm', 'value')),
6175     (333, 'item_lang', 'paa', oils_i18n_gettext('333', 'Papuan (Other)', 'ccvm', 'value')),
6176     (334, 'item_lang', 'pag', oils_i18n_gettext('334', 'Pangasinan', 'ccvm', 'value')),
6177     (335, 'item_lang', 'pal', oils_i18n_gettext('335', 'Pahlavi', 'ccvm', 'value')),
6178     (336, 'item_lang', 'pam', oils_i18n_gettext('336', 'Pampanga', 'ccvm', 'value')),
6179     (337, 'item_lang', 'pan', oils_i18n_gettext('337', 'Panjabi', 'ccvm', 'value')),
6180     (338, 'item_lang', 'pap', oils_i18n_gettext('338', 'Papiamento', 'ccvm', 'value')),
6181     (339, 'item_lang', 'pau', oils_i18n_gettext('339', 'Palauan', 'ccvm', 'value')),
6182     (340, 'item_lang', 'peo', oils_i18n_gettext('340', 'Old Persian (ca. 600-400 B.C.)', 'ccvm', 'value')),
6183     (341, 'item_lang', 'per', oils_i18n_gettext('341', 'Persian', 'ccvm', 'value')),
6184     (342, 'item_lang', 'phi', oils_i18n_gettext('342', 'Philippine (Other)', 'ccvm', 'value')),
6185     (343, 'item_lang', 'phn', oils_i18n_gettext('343', 'Phoenician', 'ccvm', 'value')),
6186     (344, 'item_lang', 'pli', oils_i18n_gettext('344', 'Pali', 'ccvm', 'value')),
6187     (345, 'item_lang', 'pol', oils_i18n_gettext('345', 'Polish', 'ccvm', 'value')),
6188     (346, 'item_lang', 'pon', oils_i18n_gettext('346', 'Ponape', 'ccvm', 'value')),
6189     (347, 'item_lang', 'por', oils_i18n_gettext('347', 'Portuguese', 'ccvm', 'value')),
6190     (348, 'item_lang', 'pra', oils_i18n_gettext('348', 'Prakrit languages', 'ccvm', 'value')),
6191     (349, 'item_lang', 'pro', oils_i18n_gettext('349', 'Provençal (to 1500)', 'ccvm', 'value')),
6192     (350, 'item_lang', 'pus', oils_i18n_gettext('350', 'Pushto', 'ccvm', 'value')),
6193     (351, 'item_lang', 'que', oils_i18n_gettext('351', 'Quechua', 'ccvm', 'value')),
6194     (352, 'item_lang', 'raj', oils_i18n_gettext('352', 'Rajasthani', 'ccvm', 'value')),
6195     (353, 'item_lang', 'rap', oils_i18n_gettext('353', 'Rapanui', 'ccvm', 'value')),
6196     (354, 'item_lang', 'rar', oils_i18n_gettext('354', 'Rarotongan', 'ccvm', 'value')),
6197     (355, 'item_lang', 'roa', oils_i18n_gettext('355', 'Romance (Other)', 'ccvm', 'value')),
6198     (356, 'item_lang', 'roh', oils_i18n_gettext('356', 'Raeto-Romance', 'ccvm', 'value')),
6199     (357, 'item_lang', 'rom', oils_i18n_gettext('357', 'Romani', 'ccvm', 'value')),
6200     (358, 'item_lang', 'rum', oils_i18n_gettext('358', 'Romanian', 'ccvm', 'value')),
6201     (359, 'item_lang', 'run', oils_i18n_gettext('359', 'Rundi', 'ccvm', 'value')),
6202     (360, 'item_lang', 'rus', oils_i18n_gettext('360', 'Russian', 'ccvm', 'value')),
6203     (361, 'item_lang', 'sad', oils_i18n_gettext('361', 'Sandawe', 'ccvm', 'value')),
6204     (362, 'item_lang', 'sag', oils_i18n_gettext('362', 'Sango (Ubangi Creole)', 'ccvm', 'value')),
6205     (363, 'item_lang', 'sah', oils_i18n_gettext('363', 'Yakut', 'ccvm', 'value')),
6206     (364, 'item_lang', 'sai', oils_i18n_gettext('364', 'South American Indian (Other)', 'ccvm', 'value')),
6207     (365, 'item_lang', 'sal', oils_i18n_gettext('365', 'Salishan languages', 'ccvm', 'value')),
6208     (366, 'item_lang', 'sam', oils_i18n_gettext('366', 'Samaritan Aramaic', 'ccvm', 'value')),
6209     (367, 'item_lang', 'san', oils_i18n_gettext('367', 'Sanskrit', 'ccvm', 'value')),
6210     (368, 'item_lang', '-sao', oils_i18n_gettext('368', 'Samoan', 'ccvm', 'value')),
6211     (369, 'item_lang', 'sas', oils_i18n_gettext('369', 'Sasak', 'ccvm', 'value')),
6212     (370, 'item_lang', 'sat', oils_i18n_gettext('370', 'Santali', 'ccvm', 'value')),
6213     (371, 'item_lang', 'scc', oils_i18n_gettext('371', 'Serbian', 'ccvm', 'value')),
6214     (372, 'item_lang', 'sco', oils_i18n_gettext('372', 'Scots', 'ccvm', 'value')),
6215     (373, 'item_lang', 'scr', oils_i18n_gettext('373', 'Croatian', 'ccvm', 'value')),
6216     (374, 'item_lang', 'sel', oils_i18n_gettext('374', 'Selkup', 'ccvm', 'value')),
6217     (375, 'item_lang', 'sem', oils_i18n_gettext('375', 'Semitic (Other)', 'ccvm', 'value')),
6218     (376, 'item_lang', 'sga', oils_i18n_gettext('376', 'Irish, Old (to 1100)', 'ccvm', 'value')),
6219     (377, 'item_lang', 'sgn', oils_i18n_gettext('377', 'Sign languages', 'ccvm', 'value')),
6220     (378, 'item_lang', 'shn', oils_i18n_gettext('378', 'Shan', 'ccvm', 'value')),
6221     (379, 'item_lang', '-sho', oils_i18n_gettext('379', 'Shona', 'ccvm', 'value')),
6222     (380, 'item_lang', 'sid', oils_i18n_gettext('380', 'Sidamo', 'ccvm', 'value')),
6223     (381, 'item_lang', 'sin', oils_i18n_gettext('381', 'Sinhalese', 'ccvm', 'value')),
6224     (382, 'item_lang', 'sio', oils_i18n_gettext('382', 'Siouan (Other)', 'ccvm', 'value')),
6225     (383, 'item_lang', 'sit', oils_i18n_gettext('383', 'Sino-Tibetan (Other)', 'ccvm', 'value')),
6226     (384, 'item_lang', 'sla', oils_i18n_gettext('384', 'Slavic (Other)', 'ccvm', 'value')),
6227     (385, 'item_lang', 'slo', oils_i18n_gettext('385', 'Slovak', 'ccvm', 'value')),
6228     (386, 'item_lang', 'slv', oils_i18n_gettext('386', 'Slovenian', 'ccvm', 'value')),
6229     (387, 'item_lang', 'sma', oils_i18n_gettext('387', 'Southern Sami', 'ccvm', 'value')),
6230     (388, 'item_lang', 'sme', oils_i18n_gettext('388', 'Northern Sami', 'ccvm', 'value')),
6231     (389, 'item_lang', 'smi', oils_i18n_gettext('389', 'Sami', 'ccvm', 'value')),
6232     (390, 'item_lang', 'smj', oils_i18n_gettext('390', 'Lule Sami', 'ccvm', 'value')),
6233     (391, 'item_lang', 'smn', oils_i18n_gettext('391', 'Inari Sami', 'ccvm', 'value')),
6234     (392, 'item_lang', 'smo', oils_i18n_gettext('392', 'Samoan', 'ccvm', 'value')),
6235     (393, 'item_lang', 'sms', oils_i18n_gettext('393', 'Skolt Sami', 'ccvm', 'value')),
6236     (394, 'item_lang', 'sna', oils_i18n_gettext('394', 'Shona', 'ccvm', 'value')),
6237     (395, 'item_lang', 'snd', oils_i18n_gettext('395', 'Sindhi', 'ccvm', 'value')),
6238     (396, 'item_lang', '-snh', oils_i18n_gettext('396', 'Sinhalese', 'ccvm', 'value')),
6239     (397, 'item_lang', 'snk', oils_i18n_gettext('397', 'Soninke', 'ccvm', 'value')),
6240     (398, 'item_lang', 'sog', oils_i18n_gettext('398', 'Sogdian', 'ccvm', 'value')),
6241     (399, 'item_lang', 'som', oils_i18n_gettext('399', 'Somali', 'ccvm', 'value')),
6242     (400, 'item_lang', 'son', oils_i18n_gettext('400', 'Songhai', 'ccvm', 'value')),
6243     (401, 'item_lang', 'sot', oils_i18n_gettext('401', 'Sotho', 'ccvm', 'value')),
6244     (402, 'item_lang', 'spa', oils_i18n_gettext('402', 'Spanish', 'ccvm', 'value')),
6245     (403, 'item_lang', 'srd', oils_i18n_gettext('403', 'Sardinian', 'ccvm', 'value')),
6246     (404, 'item_lang', 'srr', oils_i18n_gettext('404', 'Serer', 'ccvm', 'value')),
6247     (405, 'item_lang', 'ssa', oils_i18n_gettext('405', 'Nilo-Saharan (Other)', 'ccvm', 'value')),
6248     (406, 'item_lang', '-sso', oils_i18n_gettext('406', 'Sotho', 'ccvm', 'value')),
6249     (407, 'item_lang', 'ssw', oils_i18n_gettext('407', 'Swazi', 'ccvm', 'value')),
6250     (408, 'item_lang', 'suk', oils_i18n_gettext('408', 'Sukuma', 'ccvm', 'value')),
6251     (409, 'item_lang', 'sun', oils_i18n_gettext('409', 'Sundanese', 'ccvm', 'value')),
6252     (410, 'item_lang', 'sus', oils_i18n_gettext('410', 'Susu', 'ccvm', 'value')),
6253     (411, 'item_lang', 'sux', oils_i18n_gettext('411', 'Sumerian', 'ccvm', 'value')),
6254     (412, 'item_lang', 'swa', oils_i18n_gettext('412', 'Swahili', 'ccvm', 'value')),
6255     (413, 'item_lang', 'swe', oils_i18n_gettext('413', 'Swedish', 'ccvm', 'value')),
6256     (414, 'item_lang', '-swz', oils_i18n_gettext('414', 'Swazi', 'ccvm', 'value')),
6257     (415, 'item_lang', 'syr', oils_i18n_gettext('415', 'Syriac', 'ccvm', 'value')),
6258     (416, 'item_lang', '-tag', oils_i18n_gettext('416', 'Tagalog', 'ccvm', 'value')),
6259     (417, 'item_lang', 'tah', oils_i18n_gettext('417', 'Tahitian', 'ccvm', 'value')),
6260     (418, 'item_lang', 'tai', oils_i18n_gettext('418', 'Tai (Other)', 'ccvm', 'value')),
6261     (419, 'item_lang', '-taj', oils_i18n_gettext('419', 'Tajik', 'ccvm', 'value')),
6262     (420, 'item_lang', 'tam', oils_i18n_gettext('420', 'Tamil', 'ccvm', 'value')),
6263     (421, 'item_lang', '-tar', oils_i18n_gettext('421', 'Tatar', 'ccvm', 'value')),
6264     (422, 'item_lang', 'tat', oils_i18n_gettext('422', 'Tatar', 'ccvm', 'value')),
6265     (423, 'item_lang', 'tel', oils_i18n_gettext('423', 'Telugu', 'ccvm', 'value')),
6266     (424, 'item_lang', 'tem', oils_i18n_gettext('424', 'Temne', 'ccvm', 'value')),
6267     (425, 'item_lang', 'ter', oils_i18n_gettext('425', 'Terena', 'ccvm', 'value')),
6268     (426, 'item_lang', 'tet', oils_i18n_gettext('426', 'Tetum', 'ccvm', 'value')),
6269     (427, 'item_lang', 'tgk', oils_i18n_gettext('427', 'Tajik', 'ccvm', 'value')),
6270     (428, 'item_lang', 'tgl', oils_i18n_gettext('428', 'Tagalog', 'ccvm', 'value')),
6271     (429, 'item_lang', 'tha', oils_i18n_gettext('429', 'Thai', 'ccvm', 'value')),
6272     (430, 'item_lang', 'tib', oils_i18n_gettext('430', 'Tibetan', 'ccvm', 'value')),
6273     (431, 'item_lang', 'tig', oils_i18n_gettext('431', 'Tigré', 'ccvm', 'value')),
6274     (432, 'item_lang', 'tir', oils_i18n_gettext('432', 'Tigrinya', 'ccvm', 'value')),
6275     (433, 'item_lang', 'tiv', oils_i18n_gettext('433', 'Tiv', 'ccvm', 'value')),
6276     (434, 'item_lang', 'tkl', oils_i18n_gettext('434', 'Tokelauan', 'ccvm', 'value')),
6277     (435, 'item_lang', 'tli', oils_i18n_gettext('435', 'Tlingit', 'ccvm', 'value')),
6278     (436, 'item_lang', 'tmh', oils_i18n_gettext('436', 'Tamashek', 'ccvm', 'value')),
6279     (437, 'item_lang', 'tog', oils_i18n_gettext('437', 'Tonga (Nyasa)', 'ccvm', 'value')),
6280     (438, 'item_lang', 'ton', oils_i18n_gettext('438', 'Tongan', 'ccvm', 'value')),
6281     (439, 'item_lang', 'tpi', oils_i18n_gettext('439', 'Tok Pisin', 'ccvm', 'value')),
6282     (440, 'item_lang', '-tru', oils_i18n_gettext('440', 'Truk', 'ccvm', 'value')),
6283     (441, 'item_lang', 'tsi', oils_i18n_gettext('441', 'Tsimshian', 'ccvm', 'value')),
6284     (442, 'item_lang', 'tsn', oils_i18n_gettext('442', 'Tswana', 'ccvm', 'value')),
6285     (443, 'item_lang', 'tso', oils_i18n_gettext('443', 'Tsonga', 'ccvm', 'value')),
6286     (444, 'item_lang', '-tsw', oils_i18n_gettext('444', 'Tswana', 'ccvm', 'value')),
6287     (445, 'item_lang', 'tuk', oils_i18n_gettext('445', 'Turkmen', 'ccvm', 'value')),
6288     (446, 'item_lang', 'tum', oils_i18n_gettext('446', 'Tumbuka', 'ccvm', 'value')),
6289     (447, 'item_lang', 'tup', oils_i18n_gettext('447', 'Tupi languages', 'ccvm', 'value')),
6290     (448, 'item_lang', 'tur', oils_i18n_gettext('448', 'Turkish', 'ccvm', 'value')),
6291     (449, 'item_lang', 'tut', oils_i18n_gettext('449', 'Altaic (Other)', 'ccvm', 'value')),
6292     (450, 'item_lang', 'tvl', oils_i18n_gettext('450', 'Tuvaluan', 'ccvm', 'value')),
6293     (451, 'item_lang', 'twi', oils_i18n_gettext('451', 'Twi', 'ccvm', 'value')),
6294     (452, 'item_lang', 'tyv', oils_i18n_gettext('452', 'Tuvinian', 'ccvm', 'value')),
6295     (453, 'item_lang', 'udm', oils_i18n_gettext('453', 'Udmurt', 'ccvm', 'value')),
6296     (454, 'item_lang', 'uga', oils_i18n_gettext('454', 'Ugaritic', 'ccvm', 'value')),
6297     (455, 'item_lang', 'uig', oils_i18n_gettext('455', 'Uighur', 'ccvm', 'value')),
6298     (456, 'item_lang', 'ukr', oils_i18n_gettext('456', 'Ukrainian', 'ccvm', 'value')),
6299     (457, 'item_lang', 'umb', oils_i18n_gettext('457', 'Umbundu', 'ccvm', 'value')),
6300     (458, 'item_lang', 'und', oils_i18n_gettext('458', 'Undetermined', 'ccvm', 'value')),
6301     (459, 'item_lang', 'urd', oils_i18n_gettext('459', 'Urdu', 'ccvm', 'value')),
6302     (460, 'item_lang', 'uzb', oils_i18n_gettext('460', 'Uzbek', 'ccvm', 'value')),
6303     (461, 'item_lang', 'vai', oils_i18n_gettext('461', 'Vai', 'ccvm', 'value')),
6304     (462, 'item_lang', 'ven', oils_i18n_gettext('462', 'Venda', 'ccvm', 'value')),
6305     (463, 'item_lang', 'vie', oils_i18n_gettext('463', 'Vietnamese', 'ccvm', 'value')),
6306     (464, 'item_lang', 'vol', oils_i18n_gettext('464', 'Volapük', 'ccvm', 'value')),
6307     (465, 'item_lang', 'vot', oils_i18n_gettext('465', 'Votic', 'ccvm', 'value')),
6308     (466, 'item_lang', 'wak', oils_i18n_gettext('466', 'Wakashan languages', 'ccvm', 'value')),
6309     (467, 'item_lang', 'wal', oils_i18n_gettext('467', 'Walamo', 'ccvm', 'value')),
6310     (468, 'item_lang', 'war', oils_i18n_gettext('468', 'Waray', 'ccvm', 'value')),
6311     (469, 'item_lang', 'was', oils_i18n_gettext('469', 'Washo', 'ccvm', 'value')),
6312     (470, 'item_lang', 'wel', oils_i18n_gettext('470', 'Welsh', 'ccvm', 'value')),
6313     (471, 'item_lang', 'wen', oils_i18n_gettext('471', 'Sorbian languages', 'ccvm', 'value')),
6314     (472, 'item_lang', 'wln', oils_i18n_gettext('472', 'Walloon', 'ccvm', 'value')),
6315     (473, 'item_lang', 'wol', oils_i18n_gettext('473', 'Wolof', 'ccvm', 'value')),
6316     (474, 'item_lang', 'xal', oils_i18n_gettext('474', 'Kalmyk', 'ccvm', 'value')),
6317     (475, 'item_lang', 'xho', oils_i18n_gettext('475', 'Xhosa', 'ccvm', 'value')),
6318     (476, 'item_lang', 'yao', oils_i18n_gettext('476', 'Yao (Africa)', 'ccvm', 'value')),
6319     (477, 'item_lang', 'yap', oils_i18n_gettext('477', 'Yapese', 'ccvm', 'value')),
6320     (478, 'item_lang', 'yid', oils_i18n_gettext('478', 'Yiddish', 'ccvm', 'value')),
6321     (479, 'item_lang', 'yor', oils_i18n_gettext('479', 'Yoruba', 'ccvm', 'value')),
6322     (480, 'item_lang', 'ypk', oils_i18n_gettext('480', 'Yupik languages', 'ccvm', 'value')),
6323     (481, 'item_lang', 'zap', oils_i18n_gettext('481', 'Zapotec', 'ccvm', 'value')),
6324     (482, 'item_lang', 'zen', oils_i18n_gettext('482', 'Zenaga', 'ccvm', 'value')),
6325     (483, 'item_lang', 'zha', oils_i18n_gettext('483', 'Zhuang', 'ccvm', 'value')),
6326     (484, 'item_lang', 'znd', oils_i18n_gettext('484', 'Zande', 'ccvm', 'value')),
6327     (485, 'item_lang', 'zul', oils_i18n_gettext('485', 'Zulu', 'ccvm', 'value')),
6328     (486, 'item_lang', 'zun', oils_i18n_gettext('486', 'Zuni', 'ccvm', 'value'));
6329
6330 INSERT INTO config.coded_value_map (id, ctype, code, value, description) VALUES 
6331     (487,'audience', ' ', oils_i18n_gettext('487', 'Unknown or unspecified', 'ccvm', 'value'),  oils_i18n_gettext('487', 'The target audience for the item not known or not specified.', 'ccvm', 'description')),
6332     (488,'audience', 'a', oils_i18n_gettext('488', 'Preschool', 'ccvm', 'value'),               oils_i18n_gettext('488', 'The item is intended for children, approximate ages 0-5 years.', 'ccvm', 'description')),
6333     (489,'audience', 'b', oils_i18n_gettext('489', 'Primary', 'ccvm', 'value'),                 oils_i18n_gettext('489', 'The item is intended for children, approximate ages 6-8 years.', 'ccvm', 'description')),
6334     (490,'audience', 'c', oils_i18n_gettext('490', 'Pre-adolescent', 'ccvm', 'value'),          oils_i18n_gettext('490', 'The item is intended for young people, approximate ages 9-13 years.', 'ccvm', 'description')),
6335     (491,'audience', 'd', oils_i18n_gettext('491', 'Adolescent', 'ccvm', 'value'),              oils_i18n_gettext('491', 'The item is intended for young people, approximate ages 14-17 years.', 'ccvm', 'description')),
6336     (492,'audience', 'e', oils_i18n_gettext('492', 'Adult', 'ccvm', 'value'),                   oils_i18n_gettext('492', 'The item is intended for adults.', 'ccvm', 'description')),
6337     (493,'audience', 'f', oils_i18n_gettext('493', 'Specialized', 'ccvm', 'value'),             oils_i18n_gettext('493', 'The item is aimed at a particular audience and the nature of the presentation makes the item of little interest to another audience.', 'ccvm', 'description')),
6338     (494,'audience', 'g', oils_i18n_gettext('494', 'General', 'ccvm', 'value'),                 oils_i18n_gettext('494', 'The item is of general interest and not aimed at an audience of a particular intellectual level.', 'ccvm', 'description')),
6339     (495,'audience', 'j', oils_i18n_gettext('495', 'Juvenile', 'ccvm', 'value'),                oils_i18n_gettext('495', 'The item is intended for children and young people, approximate ages 0-15 years.', 'ccvm', 'description'));
6340
6341 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
6342     (496, 'item_type', 'a', oils_i18n_gettext('496', 'Language material', 'ccvm', 'value')),
6343     (497, 'item_type', 't', oils_i18n_gettext('497', 'Manuscript language material', 'ccvm', 'value')),
6344     (498, 'item_type', 'g', oils_i18n_gettext('498', 'Projected medium', 'ccvm', 'value')),
6345     (499, 'item_type', 'k', oils_i18n_gettext('499', 'Two-dimensional nonprojectable graphic', 'ccvm', 'value')),
6346     (500, 'item_type', 'r', oils_i18n_gettext('500', 'Three-dimensional artifact or naturally occurring object', 'ccvm', 'value')),
6347     (501, 'item_type', 'o', oils_i18n_gettext('501', 'Kit', 'ccvm', 'value')),
6348     (502, 'item_type', 'p', oils_i18n_gettext('502', 'Mixed materials', 'ccvm', 'value')),
6349     (503, 'item_type', 'e', oils_i18n_gettext('503', 'Cartographic material', 'ccvm', 'value')),
6350     (504, 'item_type', 'f', oils_i18n_gettext('504', 'Manuscript cartographic material', 'ccvm', 'value')),
6351     (505, 'item_type', 'c', oils_i18n_gettext('505', 'Notated music', 'ccvm', 'value')),
6352     (506, 'item_type', 'd', oils_i18n_gettext('506', 'Manuscript notated music', 'ccvm', 'value')),
6353     (507, 'item_type', 'i', oils_i18n_gettext('507', 'Nonmusical sound recording', 'ccvm', 'value')),
6354     (508, 'item_type', 'j', oils_i18n_gettext('508', 'Musical sound recording', 'ccvm', 'value')),
6355     (509, 'item_type', 'm', oils_i18n_gettext('509', 'Computer file', 'ccvm', 'value'));
6356
6357 INSERT INTO config.coded_value_map (id, ctype, code, value, description) VALUES 
6358     (510, 'lit_form', '0', oils_i18n_gettext('510', 'Not fiction (not further specified)', 'ccvm', 'value'), oils_i18n_gettext('510', 'The item is not a work of fiction and no further identification of the literary form is desired', 'ccvm', 'description')),
6359     (511, 'lit_form', '1', oils_i18n_gettext('511', 'Fiction (not further specified)', 'ccvm', 'value'),     oils_i18n_gettext('511', 'The item is a work of fiction and no further identification of the literary form is desired', 'ccvm', 'description')),
6360     (512, 'lit_form', 'c', oils_i18n_gettext('512', 'Comic strips', 'ccvm', 'value'), NULL),
6361     (513, 'lit_form', 'd', oils_i18n_gettext('513', 'Dramas', 'ccvm', 'value'), NULL),
6362     (514, 'lit_form', 'e', oils_i18n_gettext('514', 'Essays', 'ccvm', 'value'), NULL),
6363     (515, 'lit_form', 'f', oils_i18n_gettext('515', 'Novels', 'ccvm', 'value'), NULL),
6364     (516, 'lit_form', 'h', oils_i18n_gettext('516', 'Humor, satires, etc.', 'ccvm', 'value'),                oils_i18n_gettext('516', 'The item is a humorous work, satire or of similar literary form.', 'ccvm', 'description')),
6365     (517, 'lit_form', 'i', oils_i18n_gettext('517', 'Letters', 'ccvm', 'value'),                             oils_i18n_gettext('517', 'The item is a single letter or collection of correspondence.', 'ccvm', 'description')),
6366     (518, 'lit_form', 'j', oils_i18n_gettext('518', 'Short stories', 'ccvm', 'value'),                       oils_i18n_gettext('518', 'The item is a short story or collection of short stories.', 'ccvm', 'description')),
6367     (519, 'lit_form', 'm', oils_i18n_gettext('519', 'Mixed forms', 'ccvm', 'value'),                         oils_i18n_gettext('519', 'The item is a variety of literary forms (e.g., poetry and short stories).', 'ccvm', 'description')),
6368     (520, 'lit_form', 'p', oils_i18n_gettext('520', 'Poetry', 'ccvm', 'value'),                              oils_i18n_gettext('520', 'The item is a poem or collection of poems.', 'ccvm', 'description')),
6369     (521, 'lit_form', 's', oils_i18n_gettext('521', 'Speeches', 'ccvm', 'value'),                            oils_i18n_gettext('521', 'The item is a speech or collection of speeches.', 'ccvm', 'description')),
6370     (522, 'lit_form', 'u', oils_i18n_gettext('522', 'Unknown', 'ccvm', 'value'),                             oils_i18n_gettext('522', 'The literary form of the item is unknown.', 'ccvm', 'description'));
6371
6372
6373 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
6374     (523, 'item_form', 'a', oils_i18n_gettext('523', 'Microfilm', 'ccvm', 'value')),
6375     (524, 'item_form', 'b', oils_i18n_gettext('524', 'Microfiche', 'ccvm', 'value')),
6376     (525, 'item_form', 'c', oils_i18n_gettext('525', 'Microopaque', 'ccvm', 'value')),
6377     (526, 'item_form', 'd', oils_i18n_gettext('526', 'Large print', 'ccvm', 'value')),
6378     (527, 'item_form', 'f', oils_i18n_gettext('527', 'Braille', 'ccvm', 'value')),
6379     (528, 'item_form', 'r', oils_i18n_gettext('528', 'Regular print reproduction', 'ccvm', 'value')),
6380     (529, 'item_form', 's', oils_i18n_gettext('529', 'Electronic', 'ccvm', 'value'));
6381
6382 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
6383     (530, 'bib_level', 'a', oils_i18n_gettext('530', 'Monographic component part', 'ccvm', 'value')),
6384     (531, 'bib_level', 'b', oils_i18n_gettext('531', 'Serial component part', 'ccvm', 'value')),
6385     (532, 'bib_level', 'c', oils_i18n_gettext('532', 'Collection', 'ccvm', 'value')),
6386     (533, 'bib_level', 'd', oils_i18n_gettext('533', 'Subunit', 'ccvm', 'value')),
6387     (534, 'bib_level', 'i', oils_i18n_gettext('534', 'Integrating resource', 'ccvm', 'value')),
6388     (535, 'bib_level', 'm', oils_i18n_gettext('535', 'Monograph/Item', 'ccvm', 'value')),
6389     (536, 'bib_level', 's', oils_i18n_gettext('536', 'Serial', 'ccvm', 'value'));
6390
6391 INSERT INTO config.coded_value_map(id, ctype, code, value) VALUES
6392     (537, 'vr_format', 'a', oils_i18n_gettext('537', 'Beta', 'ccvm', 'value')),
6393     (538, 'vr_format', 'b', oils_i18n_gettext('538', 'VHS', 'ccvm', 'value')),
6394     (539, 'vr_format', 'c', oils_i18n_gettext('539', 'U-matic', 'ccvm', 'value')),
6395     (540, 'vr_format', 'd', oils_i18n_gettext('540', 'EIAJ', 'ccvm', 'value')),
6396     (541, 'vr_format', 'e', oils_i18n_gettext('541', 'Type C', 'ccvm', 'value')),
6397     (542, 'vr_format', 'f', oils_i18n_gettext('542', 'Quadruplex', 'ccvm', 'value')),
6398     (543, 'vr_format', 'g', oils_i18n_gettext('543', 'Laserdisc', 'ccvm', 'value')),
6399     (544, 'vr_format', 'h', oils_i18n_gettext('544', 'CED videodisc', 'ccvm', 'value')),
6400     (545, 'vr_format', 'i', oils_i18n_gettext('545', 'Betacam', 'ccvm', 'value')),
6401     (546, 'vr_format', 'j', oils_i18n_gettext('546', 'Betacam SP', 'ccvm', 'value')),
6402     (547, 'vr_format', 'k', oils_i18n_gettext('547', 'Super-VHS', 'ccvm', 'value')),
6403     (548, 'vr_format', 'm', oils_i18n_gettext('548', 'M-II', 'ccvm', 'value')),
6404     (549, 'vr_format', 'o', oils_i18n_gettext('549', 'D-2', 'ccvm', 'value')),
6405     (550, 'vr_format', 'p', oils_i18n_gettext('550', '8 mm.', 'ccvm', 'value')),
6406     (551, 'vr_format', 'q', oils_i18n_gettext('551', 'Hi-8 mm.', 'ccvm', 'value')),
6407     (552, 'vr_format', 's', oils_i18n_gettext('552', 'Blu-ray disc', 'ccvm', 'value')),
6408     (553, 'vr_format', 'u', oils_i18n_gettext('553', 'Unknown', 'ccvm', 'value')),
6409     (554, 'vr_format', 'v', oils_i18n_gettext('554', 'DVD', 'ccvm', 'value')),
6410     (555, 'vr_format', 'z', oils_i18n_gettext('555', 'Other', 'ccvm', 'value')),
6411     (556, 'vr_format', ' ', oils_i18n_gettext('556', 'Unspecified', 'ccvm', 'value'));
6412
6413 SELECT SETVAL('config.coded_value_map_id_seq'::TEXT, (SELECT max(id) FROM config.coded_value_map));
6414
6415 -- Trigger Event Definitions -------------------------------------------------
6416
6417 -- Sample Overdue Notice --
6418
6419 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, template) 
6420     VALUES (1, 'f', 1, '7 Day Overdue Email Notification', 'checkout.due', 'CircIsOverdue', 'SendEmail', '7 days', 'due_date', 'usr', '8 days', 
6421 $$
6422 [%- USE date -%]
6423 [%- user = target.0.usr -%]
6424 To: [%- params.recipient_email || user.email %]
6425 From: [%- params.sender_email || default_sender %]
6426 Subject: Overdue Notification
6427
6428 Dear [% user.family_name %], [% user.first_given_name %]
6429 Our records indicate the following items are overdue.
6430
6431 [% FOR circ IN target %]
6432     [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
6433     Title: [% copy_details.title %]
6434     Author: [% copy_details.author %]
6435     Call Number: [% circ.target_copy.call_number.label %]
6436     Barcode: [% circ.target_copy.barcode %]
6437     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
6438     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
6439     Total Owed For Transaction: [% circ.billable_transaction.summary.balance_owed %]
6440     Library: [% circ.circ_lib.name %]
6441
6442 [% END %]
6443
6444 $$);
6445
6446 INSERT INTO action_trigger.environment (event_def, path) VALUES 
6447     (1, 'target_copy.call_number'),
6448     (1, 'target_copy.location'),
6449     (1, 'usr'),
6450     (1, 'billable_transaction.summary'),
6451     (1, 'circ_lib.billing_address');
6452
6453 -- Sample Mark Long-Overdue Item Lost --
6454
6455 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field) 
6456     VALUES (2, 'f', 1, '90 Day Overdue Mark Lost', 'checkout.due', 'CircIsOverdue', 'MarkItemLost', '90 days', 'due_date');
6457
6458 INSERT INTO action_trigger.event_params (event_def, param, value) VALUES
6459     (2, 'editor', '''1''');
6460
6461 -- Sample Auto Mark Lost Notice --
6462
6463 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, template) 
6464     VALUES (3, 'f', 1, '90 Day Overdue Mark Lost Notice', 'lost.auto', 'NOOP_True', 'SendEmail', 'usr',
6465 $$
6466 [%- USE date -%]
6467 [%- user = target.0.usr -%]
6468 To: [%- params.recipient_email || user.email %]
6469 From: [%- params.sender_email || default_sender %]
6470 Subject: Overdue Items Marked Lost
6471
6472 Dear [% user.family_name %], [% user.first_given_name %]
6473 The following items are 90 days overdue and have been marked LOST.
6474
6475 [% FOR circ IN target %]
6476     [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
6477     Title: [% copy_details.title %], by [% copy_details.author %]
6478     Call Number: [% circ.target_copy.call_number.label %]
6479     Shelving Location: [% circ.target_copy.location.name %]
6480     Barcode: [% circ.target_copy.barcode %]
6481     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
6482     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
6483     Total Owed For Transaction: [% circ.billable_transaction.summary.balance_owed %]
6484     Library: [% circ.circ_lib.name %]
6485
6486 [% END %]
6487
6488 $$);
6489
6490
6491 INSERT INTO action_trigger.environment (event_def, path) VALUES 
6492     (3, 'target_copy.call_number'),
6493     (3, 'usr'),
6494     (3, 'billable_transaction.summary'),
6495     (3, 'circ_lib.billing_address'),
6496     (3, 'target_copy.location');
6497
6498
6499 -- Sample Purchase Order HTML Template --
6500
6501 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, template) 
6502     VALUES (4, 't', 1, 'PO HTML', 'format.po.html', 'NOOP_True', 'ProcessTemplate', 
6503 $$
6504 [%- USE date -%]
6505 [%-
6506     # find a lineitem attribute by name and optional type
6507     BLOCK get_li_attr;
6508         FOR attr IN li.attributes;
6509             IF attr.attr_name == attr_name;
6510                 IF !attr_type OR attr_type == attr.attr_type;
6511                     attr.attr_value;
6512                     LAST;
6513                 END;
6514             END;
6515         END;
6516     END
6517 -%]
6518
6519 <h2>Purchase Order [% target.id %]</h2>
6520 <br/>
6521 date <b>[% date.format(date.now, '%Y%m%d') %]</b>
6522 <br/>
6523
6524 <style>
6525     table td { padding:5px; border:1px solid #aaa;}
6526     table { width:95%; border-collapse:collapse; }
6527     #vendor-notes { padding:5px; border:1px solid #aaa; }
6528 </style>
6529 <table id='vendor-table'>
6530   <tr>
6531     <td valign='top'>Vendor</td>
6532     <td>
6533       <div>[% target.provider.name %]</div>
6534       <div>[% target.provider.addresses.0.street1 %]</div>
6535       <div>[% target.provider.addresses.0.street2 %]</div>
6536       <div>[% target.provider.addresses.0.city %]</div>
6537       <div>[% target.provider.addresses.0.state %]</div>
6538       <div>[% target.provider.addresses.0.country %]</div>
6539       <div>[% target.provider.addresses.0.post_code %]</div>
6540     </td>
6541     <td valign='top'>Ship to / Bill to</td>
6542     <td>
6543       <div>[% target.ordering_agency.name %]</div>
6544       <div>[% target.ordering_agency.billing_address.street1 %]</div>
6545       <div>[% target.ordering_agency.billing_address.street2 %]</div>
6546       <div>[% target.ordering_agency.billing_address.city %]</div>
6547       <div>[% target.ordering_agency.billing_address.state %]</div>
6548       <div>[% target.ordering_agency.billing_address.country %]</div>
6549       <div>[% target.ordering_agency.billing_address.post_code %]</div>
6550     </td>
6551   </tr>
6552 </table>
6553
6554 <br/><br/>
6555 <fieldset id='vendor-notes'>
6556     <legend>Notes to the Vendor</legend>
6557     <ul>
6558     [% FOR note IN target.notes %]
6559         [% IF note.vendor_public == 't' %]
6560             <li>[% note.value %]</li>
6561         [% END %]
6562     [% END %]
6563     </ul>
6564 </fieldset>
6565 <br/><br/>
6566
6567 <table>
6568   <thead>
6569     <tr>
6570       <th>PO#</th>
6571       <th>ISBN or Item #</th>
6572       <th>Title</th>
6573       <th>Quantity</th>
6574       <th>Unit Price</th>
6575       <th>Line Total</th>
6576       <th>Notes</th>
6577     </tr>
6578   </thead>
6579   <tbody>
6580
6581   [% subtotal = 0 %]
6582   [% FOR li IN target.lineitems %]
6583
6584   <tr>
6585     [% count = li.lineitem_details.size %]
6586     [% price = li.estimated_unit_price %]
6587     [% litotal = (price * count) %]
6588     [% subtotal = subtotal + litotal %]
6589     [% 
6590         ident_attr = helpers.get_li_order_ident(li.attributes);
6591         SET ident_value = ident_attr.attr_value IF ident_attr;
6592     %]
6593     <td>[% target.id %]</td>
6594     <td>[% ident_value %]</td>
6595     <td>[% PROCESS get_li_attr attr_name = 'title' %]</td>
6596     <td>[% count %]</td>
6597     <td>[% price %]</td>
6598     <td>[% litotal %]</td>
6599     <td>
6600         <ul>
6601         [% FOR note IN li.lineitem_notes %]
6602             [% IF note.vendor_public == 't' %]
6603                 <li>[% note.value %]</li>
6604             [% END %]
6605         [% END %]
6606         </ul>
6607     </td>
6608   </tr>
6609   [% END %]
6610   <tr>
6611     <td/><td/><td/><td/>
6612     <td>Subtotal</td>
6613     <td>[% subtotal %]</td>
6614   </tr>
6615   </tbody>
6616 </table>
6617
6618 <br/>
6619
6620 Total Line Item Count: [% target.lineitems.size %]
6621 $$);
6622
6623 INSERT INTO action_trigger.environment (event_def, path) VALUES 
6624     (4, 'lineitems.lineitem_details.fund'),
6625     (4, 'lineitems.lineitem_details.location'),
6626     (4, 'lineitems.lineitem_details.owning_lib'),
6627     (4, 'ordering_agency.mailing_address'),
6628     (4, 'ordering_agency.billing_address'),
6629     (4, 'provider.addresses'),
6630     (4, 'lineitems.attributes'),
6631     (4, 'lineitems.lineitem_notes'),
6632     (4, 'notes');
6633
6634 INSERT INTO action_trigger.cleanup ( module, description ) VALUES (
6635     'CreateHoldNotification',
6636     oils_i18n_gettext(
6637         'CreateHoldNotification',
6638         'Creates a hold_notification record for each notified hold',
6639         'atclean',
6640         'description'
6641     )
6642 );
6643
6644 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, cleanup_success, template)
6645     VALUES (5, 'f', 1, 'Hold Ready for Pickup Email Notification', 'hold.available', 'HoldIsAvailable', 'SendEmail', '30 minutes', 'shelf_time', 'usr', 'CreateHoldNotification',
6646 $$
6647 [%- USE date -%]
6648 [%- user = target.0.usr -%]
6649 To: [%- params.recipient_email || user.email %]
6650 From: [%- params.sender_email || default_sender %]
6651 Subject: Hold Available Notification
6652
6653 Dear [% user.family_name %], [% user.first_given_name %]
6654 The item(s) you requested are available for pickup from the Library.
6655
6656 [% FOR hold IN target %]
6657     [%- copy_details = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
6658     Title: [% copy_details.title %]
6659     Author: [% copy_details.author %]
6660     Call Number: [% hold.current_copy.call_number.label %]
6661     Barcode: [% hold.current_copy.barcode %]
6662     Library: [% hold.pickup_lib.name %]
6663 [% END %]
6664
6665 $$);
6666
6667 INSERT INTO action_trigger.event_params (event_def, param, value)
6668     VALUES (5, 'check_email_notify', 1);
6669
6670 INSERT INTO action_trigger.hook (
6671         key,
6672         core_type,
6673         description,
6674         passive
6675     ) VALUES (
6676         'hold_request.shelf_expires_soon',
6677         'ahr',
6678         'A hold on the shelf will expire there soon.',
6679         TRUE
6680     );
6681
6682 INSERT INTO action_trigger.environment (event_def, path) VALUES
6683     (5, 'current_copy.call_number'),
6684     (5, 'usr'),
6685     (5, 'pickup_lib.billing_address');
6686
6687
6688 INSERT INTO action_trigger.event_definition (
6689         id,
6690         active,
6691         owner,
6692         name,
6693         hook,
6694         validator,
6695         reactor,
6696         delay,
6697         delay_field,
6698         group_field,
6699         template
6700     ) VALUES (
6701         7,
6702         FALSE,
6703         1,
6704         'Hold Expires from Shelf Soon',
6705         'hold_request.shelf_expires_soon',
6706         'HoldIsAvailable',
6707         'SendEmail',
6708         '- 1 DAY',
6709         'shelf_expire_time',
6710         'usr',
6711 $$
6712 [%- USE date -%]
6713 [%- user = target.0.usr -%]
6714 To: [%- params.recipient_email || user.email %]
6715 From: [%- params.sender_email || default_sender %]
6716 Subject: Hold Available Notification
6717
6718 Dear [% user.family_name %], [% user.first_given_name %]
6719 You requested holds on the following item(s), which are available for
6720 pickup, but these holds will soon expire.
6721
6722 [% FOR hold IN target %]
6723     [%- data = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
6724     Title: [% data.title %]
6725     Author: [% data.author %]
6726     Library: [% hold.pickup_lib.name %]
6727 [% END %]
6728 $$
6729 );
6730
6731 INSERT INTO action_trigger.event_params (event_def, param, value)
6732     VALUES (7, 'check_email_notify', 1);
6733
6734 INSERT INTO action_trigger.environment (
6735         event_def,
6736         path
6737     ) VALUES
6738     ( 7, 'current_copy'),
6739     ( 7, 'pickup_lib.billing_address'),
6740     ( 7, 'usr');
6741
6742 -- long wait hold request notifications
6743
6744 INSERT INTO action_trigger.hook (
6745         key,
6746         core_type,
6747         description,
6748         passive
6749     ) VALUES (
6750         'hold_request.long_wait',
6751         'ahr',
6752         'A patron has been waiting on a hold to be fulfilled for a long time.',
6753         TRUE
6754     );
6755
6756 INSERT INTO action_trigger.validator (module,description) VALUES
6757     ('HoldNotifyCheck',
6758     oils_i18n_gettext(
6759         'HoldNotifyCheck',
6760         'Check Hold notification flag(s)',
6761         'atval',
6762         'description'
6763     ));
6764
6765 INSERT INTO action_trigger.event_definition (
6766         id,
6767         active,
6768         owner,
6769         name,
6770         hook,
6771         validator,
6772         reactor,
6773         delay,
6774         delay_field,
6775         group_field,
6776         template
6777     ) VALUES (
6778         9,
6779         FALSE,
6780         1,
6781         'Hold waiting for pickup for long time',
6782         'hold_request.long_wait',
6783         'HoldNotifyCheck',
6784         'SendEmail',
6785         '6 MONTHS',
6786         'request_time',
6787         'usr',
6788 $$
6789 [%- USE date -%]
6790 [%- user = target.0.usr -%]
6791 To: [%- params.recipient_email || user.email %]
6792 From: [%- params.sender_email || default_sender %]
6793 Subject: Long Wait Hold Notification
6794
6795 Dear [% user.family_name %], [% user.first_given_name %]
6796
6797 You requested hold(s) on the following item(s), but unfortunately
6798 we have not been able to fulfill your request after a considerable
6799 length of time.  If you would still like to receive these items,
6800 no action is required.
6801
6802 [% FOR hold IN target %]
6803     [%- copy_details = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
6804     Title: [% copy_details.title %]
6805     Author: [% copy_details.author %]
6806 [% END %]
6807 $$
6808 );
6809
6810 INSERT INTO action_trigger.environment (event_def, path)
6811     VALUES
6812     (9, 'pickup_lib'),
6813     (9, 'usr'),
6814     (9, 'current_copy.call_number');
6815
6816 INSERT INTO action_trigger.event_params (event_def, param, value)
6817     VALUES (9, 'check_email_notify', 1);
6818
6819 -- trigger data related to acq user requests
6820
6821 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
6822         'aur.ordered',
6823         'aur', 
6824         oils_i18n_gettext(
6825             'aur.ordered',
6826             'A patron acquisition request has been marked On-Order.',
6827             'ath',
6828             'description'
6829         ), 
6830         TRUE
6831     ), (
6832         'aur.received', 
6833         'aur', 
6834         oils_i18n_gettext(
6835             'aur.received', 
6836             'A patron acquisition request has been marked Received.',
6837             'ath',
6838             'description'
6839         ),
6840         TRUE
6841     ), (
6842         'aur.cancelled',
6843         'aur',
6844         oils_i18n_gettext(
6845             'aur.cancelled',
6846             'A patron acquisition request has been marked Cancelled.',
6847             'ath',
6848             'description'
6849         ),
6850         TRUE
6851     ), (
6852         'aur.created',
6853         'aur',
6854         oils_i18n_gettext(
6855             'aur.created',
6856             'A patron has made an acquisitions request.',
6857             'ath',
6858             'description'
6859         ),
6860         TRUE
6861     ), (
6862         'aur.rejected',
6863         'aur',
6864         oils_i18n_gettext(
6865             'aur.rejected',
6866             'A patron acquisition request has been rejected.',
6867             'ath',
6868             'description'
6869         ),
6870         TRUE
6871     )
6872 ;
6873
6874 INSERT INTO action_trigger.validator (module,description) VALUES (
6875         'Acq::UserRequestOrdered',
6876         oils_i18n_gettext(
6877             'Acq::UserRequestOrdered',
6878             'Tests to see if the corresponding Line Item has a state of "on-order".',
6879             'atval',
6880             'description'
6881         )
6882     ), (
6883         'Acq::UserRequestReceived',
6884         oils_i18n_gettext(
6885             'Acq::UserRequestReceived',
6886             'Tests to see if the corresponding Line Item has a state of "received".',
6887             'atval',
6888             'description'
6889         )
6890     ), (
6891         'Acq::UserRequestCancelled',
6892         oils_i18n_gettext(
6893             'Acq::UserRequestCancelled',
6894             'Tests to see if the corresponding Line Item has a state of "cancelled".',
6895             'atval',
6896             'description'
6897         )
6898     )
6899 ;
6900
6901 INSERT INTO action_trigger.event_definition (
6902         id,
6903         active,
6904         owner,
6905         name,
6906         hook,
6907         validator,
6908         reactor,
6909         template
6910     ) VALUES (
6911         15,
6912         FALSE,
6913         1,
6914         'Email Notice: Patron Acquisition Request marked On-Order.',
6915         'aur.ordered',
6916         'Acq::UserRequestOrdered',
6917         'SendEmail',
6918 $$
6919 [%- USE date -%]
6920 [%- SET li = target.lineitem; -%]
6921 [%- SET user = target.usr -%]
6922 [%- SET title = helpers.get_li_attr("title", "", li.attributes) -%]
6923 [%- SET author = helpers.get_li_attr("author", "", li.attributes) -%]
6924 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) -%]
6925 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) -%]
6926 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
6927 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
6928
6929 To: [%- params.recipient_email || user.email %]
6930 From: [%- params.sender_email || default_sender %]
6931 Subject: Acquisition Request Notification
6932
6933 Dear [% user.family_name %], [% user.first_given_name %]
6934 Our records indicate the following acquisition request has been placed on order.
6935
6936 Title: [% title %]
6937 [% IF author %]Author: [% author %][% END %]
6938 [% IF edition %]Edition: [% edition %][% END %]
6939 [% IF isbn %]ISBN: [% isbn %][% END %]
6940 [% IF publisher %]Publisher: [% publisher %][% END %]
6941 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
6942 Lineitem ID: [% li.id %]
6943 $$
6944     ), (
6945         16,
6946         FALSE,
6947         1,
6948         'Email Notice: Patron Acquisition Request marked Received.',
6949         'aur.received',
6950         'Acq::UserRequestReceived',
6951         'SendEmail',
6952 $$
6953 [%- USE date -%]
6954 [%- SET li = target.lineitem; -%]
6955 [%- SET user = target.usr -%]
6956 [%- SET title = helpers.get_li_attr("title", "", li.attributes) %]
6957 [%- SET author = helpers.get_li_attr("author", "", li.attributes) %]
6958 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) %]
6959 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) %]
6960 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
6961 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
6962
6963 To: [%- params.recipient_email || user.email %]
6964 From: [%- params.sender_email || default_sender %]
6965 Subject: Acquisition Request Notification
6966
6967 Dear [% user.family_name %], [% user.first_given_name %]
6968 Our records indicate the materials for the following acquisition request have been received.
6969
6970 Title: [% title %]
6971 [% IF author %]Author: [% author %][% END %]
6972 [% IF edition %]Edition: [% edition %][% END %]
6973 [% IF isbn %]ISBN: [% isbn %][% END %]
6974 [% IF publisher %]Publisher: [% publisher %][% END %]
6975 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
6976 Lineitem ID: [% li.id %]
6977 $$
6978     ), (
6979         17,
6980         FALSE,
6981         1,
6982         'Email Notice: Patron Acquisition Request marked Cancelled.',
6983         'aur.cancelled',
6984         'Acq::UserRequestCancelled',
6985         'SendEmail',
6986 $$
6987 [%- USE date -%]
6988 [%- SET li = target.lineitem; -%]
6989 [%- SET user = target.usr -%]
6990 [%- SET title = helpers.get_li_attr("title", "", li.attributes) %]
6991 [%- SET author = helpers.get_li_attr("author", "", li.attributes) %]
6992 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) %]
6993 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) %]
6994 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
6995 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
6996
6997 To: [%- params.recipient_email || user.email %]
6998 From: [%- params.sender_email || default_sender %]
6999 Subject: Acquisition Request Notification
7000
7001 Dear [% user.family_name %], [% user.first_given_name %]
7002 Our records indicate the following acquisition request has been cancelled.
7003
7004 Title: [% title %]
7005 [% IF author %]Author: [% author %][% END %]
7006 [% IF edition %]Edition: [% edition %][% END %]
7007 [% IF isbn %]ISBN: [% isbn %][% END %]
7008 [% IF publisher %]Publisher: [% publisher %][% END %]
7009 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7010 Lineitem ID: [% li.id %]
7011 $$
7012     ), (
7013         18,
7014         FALSE,
7015         1,
7016         'Email Notice: Acquisition Request created.',
7017         'aur.created',
7018         'NOOP_True',
7019         'SendEmail',
7020 $$
7021 [%- USE date -%]
7022 [%- SET user = target.usr -%]
7023 [%- SET title = target.title -%]
7024 [%- SET author = target.author -%]
7025 [%- SET isxn = target.isxn -%]
7026 [%- SET publisher = target.publisher -%]
7027 [%- SET pubdate = target.pubdate -%]
7028
7029 To: [%- params.recipient_email || user.email %]
7030 From: [%- params.sender_email || default_sender %]
7031 Subject: Acquisition Request Notification
7032
7033 Dear [% user.family_name %], [% user.first_given_name %]
7034 Our records indicate that you have made the following acquisition request:
7035
7036 Title: [% title %]
7037 [% IF author %]Author: [% author %][% END %]
7038 [% IF edition %]Edition: [% edition %][% END %]
7039 [% IF isbn %]ISXN: [% isxn %][% END %]
7040 [% IF publisher %]Publisher: [% publisher %][% END %]
7041 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7042 $$
7043     ), (
7044         19,
7045         FALSE,
7046         1,
7047         'Email Notice: Acquisition Request Rejected.',
7048         'aur.rejected',
7049         'NOOP_True',
7050         'SendEmail',
7051 $$
7052 [%- USE date -%]
7053 [%- SET user = target.usr -%]
7054 [%- SET title = target.title -%]
7055 [%- SET author = target.author -%]
7056 [%- SET isxn = target.isxn -%]
7057 [%- SET publisher = target.publisher -%]
7058 [%- SET pubdate = target.pubdate -%]
7059 [%- SET cancel_reason = target.cancel_reason.description -%]
7060
7061 To: [%- params.recipient_email || user.email %]
7062 From: [%- params.sender_email || default_sender %]
7063 Subject: Acquisition Request Notification
7064
7065 Dear [% user.family_name %], [% user.first_given_name %]
7066 Our records indicate the following acquisition request has been rejected for this reason: [% cancel_reason %]
7067
7068 Title: [% title %]
7069 [% IF author %]Author: [% author %][% END %]
7070 [% IF edition %]Edition: [% edition %][% END %]
7071 [% IF isbn %]ISBN: [% isbn %][% END %]
7072 [% IF publisher %]Publisher: [% publisher %][% END %]
7073 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7074 $$
7075     )
7076 ;
7077
7078 INSERT INTO action_trigger.environment (
7079         event_def,
7080         path
7081     ) VALUES 
7082         ( 15, 'lineitem' ),
7083         ( 15, 'lineitem.attributes' ),
7084         ( 15, 'usr' ),
7085
7086         ( 16, 'lineitem' ),
7087         ( 16, 'lineitem.attributes' ),
7088         ( 16, 'usr' ),
7089
7090         ( 17, 'lineitem' ),
7091         ( 17, 'lineitem.attributes' ),
7092         ( 17, 'usr' ),
7093
7094         ( 18, 'usr' ),
7095         ( 19, 'usr' ),
7096         ( 19, 'cancel_reason' )
7097     ;
7098
7099 INSERT INTO action_trigger.hook (key,core_type,description) VALUES ('password.reset_request','aupr','Patron has requested a self-serve password reset');
7100 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, template) 
7101     VALUES (20, 'f', 1, 'Password reset request notification', 'password.reset_request', 'NOOP_True', 'SendEmail', '00:00:01',
7102 $$
7103 [%- USE date -%]
7104 [%- user = target.usr -%]
7105 To: [%- params.recipient_email || user.email %]
7106 From: [%- params.sender_email || user.home_ou.email || default_sender %]
7107 Subject: [% user.home_ou.name %]: library account password reset request
7108
7109 You have received this message because you, or somebody else, requested a reset
7110 of your library system password. If you did not request a reset of your library
7111 system password, just ignore this message and your current password will
7112 continue to work.
7113
7114 If you did request a reset of your library system password, please perform
7115 the following steps to continue the process of resetting your password:
7116
7117 1. Open the following link in a web browser: https://[% params.hostname %]/eg/opac/password_reset/[% target.uuid %]
7118 The browser displays a password reset form.
7119
7120 2. Enter your new password in the password reset form in the browser. You must
7121 enter the password twice to ensure that you do not make a mistake. If the
7122 passwords match, you will then be able to log in to your library system account
7123 with the new password.
7124
7125 $$);
7126 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7127     ( 20, 'usr' );
7128 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7129     ( 20, 'usr.home_ou' );
7130
7131
7132 INSERT INTO action_trigger.hook (key, core_type, description, passive)
7133     VALUES (
7134         'format.acqcle.html',
7135         'acqcle',
7136         'Formats claim events into a voucher',
7137         TRUE
7138     );
7139
7140 INSERT INTO action_trigger.event_definition (
7141         id, active, owner, name, hook, group_field,
7142         validator, reactor, granularity, template
7143     ) VALUES (
7144         21,
7145         TRUE,
7146         1,
7147         'Claim Voucher',
7148         'format.acqcle.html',
7149         'claim',
7150         'NOOP_True',
7151         'ProcessTemplate',
7152         'print-on-demand',
7153 $$
7154 [%- USE date -%]
7155 [%- SET claim = target.0.claim -%]
7156 <!-- This will need refined/prettified. -->
7157 <div class="acq-claim-voucher">
7158     <h2>Claim: [% claim.id %] ([% claim.type.code %])</h2>
7159     <h3>Against: [%- helpers.get_li_attr("title", "", claim.lineitem_detail.lineitem.attributes) -%]</h3>
7160     <ul>
7161         [% FOR event IN target %]
7162         <li>
7163             Event type: [% event.type.code %]
7164             [% IF event.type.library_initiated %](Library initiated)[% END %]
7165             <br />
7166             Event date: [% event.event_date %]<br />
7167             Order date: [% event.claim.lineitem_detail.lineitem.purchase_order.order_date %]<br />
7168             Expected receive date: [% event.claim.lineitem_detail.lineitem.expected_recv_time %]<br />
7169             Initiated by: [% event.creator.family_name %], [% event.creator.first_given_name %] [% event.creator.second_given_name %]<br />
7170             Barcode: [% event.claim.lineitem_detail.barcode %]; Fund:
7171             [% event.claim.lineitem_detail.fund.code %]
7172             ([% event.claim.lineitem_detail.fund.year %])
7173         </li>
7174         [% END %]
7175     </ul>
7176 </div>
7177 $$
7178 );
7179
7180 INSERT INTO action_trigger.environment (event_def, path) VALUES
7181     (21, 'claim'),
7182     (21, 'claim.type'),
7183     (21, 'claim.lineitem_detail'),
7184     (21, 'claim.lineitem_detail.fund'),
7185     (21, 'claim.lineitem_detail.lineitem.attributes'),
7186     (21, 'claim.lineitem_detail.lineitem.purchase_order'),
7187     (21, 'creator'),
7188     (21, 'type')
7189 ;
7190
7191
7192 INSERT INTO action_trigger.hook (key, core_type, description, passive)
7193     VALUES (
7194         'format.acqinv.html',
7195         'acqinv',
7196         'Formats invoices into a voucher',
7197         TRUE
7198     );
7199
7200 INSERT INTO action_trigger.event_definition (
7201         id, active, owner, name, hook,
7202         validator, reactor, granularity, template
7203     ) VALUES (
7204         22,
7205         TRUE,
7206         1,
7207         'Invoice',
7208         'format.acqinv.html',
7209         'NOOP_True',
7210         'ProcessTemplate',
7211         'print-on-demand',
7212 $$
7213 [% FILTER collapse %]
7214 [%- SET invoice = target -%]
7215 <!-- This lacks general refinement -->
7216 <div class="acq-invoice-voucher">
7217     <h1>Invoice</h1>
7218     <div>
7219         <strong>No.</strong> [% invoice.inv_ident %]
7220         [% IF invoice.inv_type %]
7221             / <strong>Type:</strong>[% invoice.inv_type %]
7222         [% END %]
7223     </div>
7224     <div>
7225         <dl>
7226             [% BLOCK ent_with_address %]
7227             <dt>[% ent_label %]: [% ent.name %] ([% ent.code %])</dt>
7228             <dd>
7229                 [% IF ent.addresses.0 %]
7230                     [% SET addr = ent.addresses.0 %]
7231                     [% addr.street1 %]<br />
7232                     [% IF addr.street2 %][% addr.street2 %]<br />[% END %]
7233                     [% addr.city %],
7234                     [% IF addr.county %] [% addr.county %], [% END %]
7235                     [% IF addr.state %] [% addr.state %] [% END %]
7236                     [% IF addr.post_code %][% addr.post_code %][% END %]<br />
7237                     [% IF addr.country %] [% addr.country %] [% END %]
7238                 [% END %]
7239                 <p>
7240                     [% IF ent.phone %] Phone: [% ent.phone %]<br />[% END %]
7241                     [% IF ent.fax_phone %] Fax: [% ent.fax_phone %]<br />[% END %]
7242                     [% IF ent.url %] URL: [% ent.url %]<br />[% END %]
7243                     [% IF ent.email %] E-mail: [% ent.email %] [% END %]
7244                 </p>
7245             </dd>
7246             [% END %]
7247             [% INCLUDE ent_with_address
7248                 ent = invoice.provider
7249                 ent_label = "Provider" %]
7250             [% INCLUDE ent_with_address
7251                 ent = invoice.shipper
7252                 ent_label = "Shipper" %]
7253             <dt>Receiver</dt>
7254             <dd>
7255                 [% invoice.receiver.name %] ([% invoice.receiver.shortname %])
7256             </dd>
7257             <dt>Received</dt>
7258             <dd>
7259                 [% helpers.format_date(invoice.recv_date) %] by
7260                 [% invoice.recv_method %]
7261             </dd>
7262             [% IF invoice.note %]
7263                 <dt>Note</dt>
7264                 <dd>
7265                     [% invoice.note %]
7266                 </dd>
7267             [% END %]
7268         </dl>
7269     </div>
7270     <ul>
7271         [% FOR entry IN invoice.entries %]
7272             <li>
7273                 [% IF entry.lineitem %]
7274                     Title: [% helpers.get_li_attr(
7275                         "title", "", entry.lineitem.attributes
7276                     ) %]<br />
7277                     Author: [% helpers.get_li_attr(
7278                         "author", "", entry.lineitem.attributes
7279                     ) %]
7280                 [% END %]
7281                 [% IF entry.purchase_order %]
7282                     (PO: [% entry.purchase_order.name %])
7283                 [% END %]<br />
7284                 Invoice item count: [% entry.inv_item_count %]
7285                 [% IF entry.phys_item_count %]
7286                     / Physical item count: [% entry.phys_item_count %]
7287                 [% END %]
7288                 <br />
7289                 [% IF entry.cost_billed %]
7290                     Cost billed: [% entry.cost_billed %]
7291                     [% IF entry.billed_per_item %](per item)[% END %]
7292                     <br />
7293                 [% END %]
7294                 [% IF entry.actual_cost %]
7295                     Actual cost: [% entry.actual_cost %]<br />
7296                 [% END %]
7297                 [% IF entry.amount_paid %]
7298                     Amount paid: [% entry.amount_paid %]<br />
7299                 [% END %]
7300                 [% IF entry.note %]Note: [% entry.note %][% END %]
7301             </li>
7302         [% END %]
7303         [% FOR item IN invoice.items %]
7304             <li>
7305                 [% IF item.inv_item_type %]
7306                     Item Type: [% item.inv_item_type %]<br />
7307                 [% END %]
7308                 [% IF item.title %]Title/Description:
7309                     [% item.title %]<br />
7310                 [% END %]
7311                 [% IF item.author %]Author: [% item.author %]<br />[% END %]
7312                 [% IF item.purchase_order %]PO: [% item.purchase_order %]<br />[% END %]
7313                 [% IF item.note %]Note: [% item.note %]<br />[% END %]
7314                 [% IF item.cost_billed %]
7315                     Cost billed: [% item.cost_billed %]<br />
7316                 [% END %]
7317                 [% IF item.actual_cost %]
7318                     Actual cost: [% item.actual_cost %]<br />
7319                 [% END %]
7320                 [% IF item.amount_paid %]
7321                     Amount paid: [% item.amount_paid %]<br />
7322                 [% END %]
7323             </li>
7324         [% END %]
7325     </ul>
7326     <div>
7327         Amounts spent per fund:
7328         <table>
7329         [% FOR blob IN user_data %]
7330             <tr>
7331                 <th style="text-align: left;">[% blob.fund.code %] ([% blob.fund.year %]):</th>
7332                 <td>$[% blob.total %]</td>
7333             </tr>
7334         [% END %]
7335         </table>
7336     </div>
7337 </div>
7338 [% END %]$$
7339 );
7340
7341
7342 INSERT INTO action_trigger.environment (event_def, path) VALUES
7343     (22, 'provider'),
7344     (22, 'provider.addresses'),
7345     (22, 'shipper'),
7346     (22, 'shipper.addresses'),
7347     (22, 'receiver'),
7348     (22, 'entries'),
7349     (22, 'entries.purchase_order'),
7350     (22, 'entries.lineitem'),
7351     (22, 'entries.lineitem.attributes'),
7352     (22, 'items')
7353 ;
7354
7355 SELECT SETVAL('action_trigger.event_definition_id_seq'::TEXT, 100);
7356
7357 -- Hold cancel action/trigger hooks
7358
7359 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7360     'hold_request.cancel.expire_no_target',
7361     'ahr',
7362     'A hold is cancelled because no copies were found'
7363 );
7364
7365 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7366     'hold_request.cancel.expire_holds_shelf',
7367     'ahr',
7368     'A hold is cancelled because it was on the holds shelf too long'
7369 );
7370
7371 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7372     'hold_request.cancel.staff',
7373     'ahr',
7374     'A hold is cancelled because it was cancelled by staff'
7375 );
7376
7377 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7378     'hold_request.cancel.patron',
7379     'ahr',
7380     'A hold is cancelled by the patron'
7381 );
7382
7383
7384 -- in-db indexing normalizers
7385 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7386         'NACO Normalize',
7387         'Apply NACO normalization rules to the extracted text.  See http://www.loc.gov/catdir/pcc/naco/normrule-2.html for details.',
7388         'naco_normalize',
7389         0
7390 );
7391
7392 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7393         'Normalize date range',
7394         'Split date ranges in the form of "XXXX-YYYY" into "XXXX YYYY" for proper index.',
7395         'split_date_range',
7396         0
7397 );
7398
7399 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7400         'NACO Normalize -- retain first comma',
7401         'Apply NACO normalization rules to the extracted text, retaining the first comma.  See http://www.loc.gov/catdir/pcc/naco/normrule-2.html for details.',
7402         'naco_normalize_keep_comma',
7403         0
7404 );
7405
7406 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7407         'Strip Diacritics',
7408         'Convert text to NFD form and remove non-spacing combining marks.',
7409         'remove_diacritics',
7410         0
7411 );
7412
7413 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7414         'Remove Parenthesized Substring',
7415         'Remove any parenthesized substrings from the extracted text, such as the agency code preceding authority record control numbers in subfield 0.',
7416         'remove_paren_substring',
7417         0
7418 );
7419
7420 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7421         'Up-case',
7422         'Convert text upper case.',
7423         'uppercase',
7424         0
7425 );
7426
7427 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7428         'Down-case',
7429         'Convert text lower case.',
7430         'lowercase',
7431         0
7432 );
7433
7434 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7435         'Extract Dewey-like number',
7436         'Extract a string of numeric characters that resembles a DDC number.',
7437         'call_number_dewey',
7438         0
7439 );
7440
7441 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7442         'Left truncation',
7443         'Discard the specified number of characters from the left side of the string.',
7444         'left_trunc',
7445         1
7446 );
7447
7448 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7449         'Right truncation',
7450         'Include only the specified number of characters from the left side of the string.',
7451         'right_trunc',
7452         1
7453 );
7454
7455 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7456         'First word',
7457         'Include only the first space-separated word of a string.',
7458         'first_word',
7459         0
7460 );
7461
7462 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7463         'ISBN 10/13 conversion',
7464         'Translate ISBN10 to ISBN13 and vice versa.',
7465         'translate_isbn1013',
7466         0
7467 );
7468
7469 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7470         'Replace',
7471         'Replace all occurences of first parameter in the string with the second parameter.',
7472         'replace',
7473         2
7474 );
7475
7476 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7477         'Trim Surrounding Space',
7478         'Trim leading and trailing spaces from extracted text.',
7479         'btrim',
7480         0
7481 );
7482
7483 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7484     'Generic Mapping Normalizer', 
7485     'Map values or sets of values to new values',
7486     'generic_map_normalizer', 
7487     1
7488 );
7489
7490 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7491     'Coded Value Map Normalizer', 
7492     'Applies coded_value_map mapping of values',
7493     'coded_value_map_normalizer', 
7494     1
7495 );
7496
7497 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7498         'Search Normalize',
7499         'Apply search normalization rules to the extracted text. A less extreme version of NACO normalization.',
7500         'search_normalize',
7501         0
7502 );
7503
7504 -- make use of the index normalizers
7505
7506 INSERT INTO config.metabib_field_index_norm_map (field,norm)
7507     SELECT  m.id,
7508             i.id
7509       FROM  config.metabib_field m,
7510         config.index_normalizer i
7511       WHERE i.func IN ('search_normalize','split_date_range')
7512             AND m.id NOT IN (18, 19);
7513
7514 INSERT INTO config.metabib_field_index_norm_map (field,norm,pos)
7515     SELECT  m.id,
7516             i.id,
7517             2
7518       FROM  config.metabib_field m,
7519             config.index_normalizer i
7520       WHERE i.func IN ('translate_isbn1013')
7521             AND m.id IN (18);
7522
7523 INSERT INTO config.metabib_field_index_norm_map (field,norm,params)
7524     SELECT  m.id,
7525             i.id,
7526             $$["-",""]$$
7527       FROM  config.metabib_field m,
7528             config.index_normalizer i
7529       WHERE i.func IN ('replace')
7530             AND m.id IN (19);
7531
7532 INSERT INTO config.metabib_field_index_norm_map (field,norm,pos)
7533     SELECT  m.id,
7534             i.id,
7535             -1
7536       FROM  config.metabib_field m,
7537             config.index_normalizer i
7538       WHERE i.func = 'remove_paren_substring'
7539             AND m.id IN (28);
7540
7541 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7542     SELECT  m.name, i.id, 0
7543       FROM  config.record_attr_definition m,
7544             config.index_normalizer i
7545       WHERE i.func IN ('content_or_null')
7546             AND m.name IN ('titlesort', 'authorsort');
7547
7548 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7549     SELECT  m.name, i.id, 0
7550       FROM  config.record_attr_definition m,
7551             config.index_normalizer i
7552       WHERE i.func IN ('integer_or_null')
7553             AND m.name IN ('date1', 'date2', 'pubdate');
7554
7555 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7556     SELECT  m.name, i.id, 0
7557       FROM  config.record_attr_definition m,
7558             config.index_normalizer i
7559       WHERE i.func IN ('approximate_low_date')
7560             AND m.name IN ('date1', 'pubdate');
7561
7562 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7563     SELECT  m.name, i.id, 0
7564       FROM  config.record_attr_definition m,
7565             config.index_normalizer i
7566       WHERE i.func IN ('approximate_high_date')
7567             AND m.name IN ('date2');
7568
7569 -- Sample Pre-due Notice --
7570
7571 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, template) 
7572     VALUES (6, 'f', 1, '3 Day Courtesy Notice', 'checkout.due', 'CircIsOpen', 'SendEmail', '-3 days', 'due_date', 'usr', '-2 days',
7573 $$
7574 [%- USE date -%]
7575 [%- user = target.0.usr -%]
7576 To: [%- params.recipient_email || user.email %]
7577 From: [%- params.sender_email || default_sender %]
7578 Subject: Courtesy Notice
7579
7580 Dear [% user.family_name %], [% user.first_given_name %]
7581 As a reminder, the following items are due in 3 days.
7582
7583 [% FOR circ IN target %]
7584     [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
7585     Title: [% copy_details.title %]
7586     Author: [% copy_details.author %]
7587     Barcode: [% circ.target_copy.barcode %] 
7588     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
7589     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
7590     Library: [% circ.circ_lib.name %]
7591     Library Phone: [% circ.circ_lib.phone %]
7592
7593 [% END %]
7594
7595 $$);
7596
7597 INSERT INTO action_trigger.environment (event_def, path) VALUES 
7598     (6, 'target_copy.call_number'),
7599     (6, 'usr'),
7600     (6, 'circ_lib.billing_address');
7601
7602 -- Additional A/T Reactors
7603
7604 INSERT INTO action_trigger.reactor (module,description) VALUES
7605 (   'ApplyPatronPenalty',
7606     oils_i18n_gettext(
7607         'ApplyPatronPenalty',
7608         'Applies the configured penalty to a patron.  Required named environment variables are "user", which refers to the user object, and "context_org", which refers to the org_unit object that acts as the focus for the penalty.',
7609         'atreact',
7610         'description'
7611     )
7612 );
7613
7614 INSERT INTO action_trigger.reactor (module,description) VALUES
7615 (   'SendFile',
7616     oils_i18n_gettext(
7617         'SendFile',
7618         'Build and transfer a file to a remote server.  Required parameter "remote_host" specifying target server.  Optional parameters: remote_user, remote_password, remote_account, port, type (FTP, SFTP or SCP), and debug.',
7619         'atreact',
7620         'description'
7621     )
7622 );
7623
7624 -- self-check checkout receipt
7625
7626 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7627     VALUES (
7628         'format.selfcheck.checkout',
7629         'circ',
7630         'Formats circ objects for self-checkout receipt',
7631         TRUE
7632     );
7633
7634 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
7635     VALUES (
7636         10,
7637         TRUE,
7638         1,
7639         'Self-Checkout Receipt',
7640         'format.selfcheck.checkout',
7641         'NOOP_True',
7642         'ProcessTemplate',
7643         'usr',
7644         'print-on-demand',
7645 $$
7646 [%- USE date -%]
7647 [%- SET user = target.0.usr -%]
7648 [%- SET lib = target.0.circ_lib -%]
7649 [%- SET lib_addr = target.0.circ_lib.billing_address -%]
7650 [%- SET hours = lib.hours_of_operation -%]
7651 <div>
7652     <style> li { padding: 8px; margin 5px; }</style>
7653     <div>[% date.format %]</div>
7654     <div>[% lib.name %]</div>
7655     <div>[% lib_addr.street1 %] [% lib_addr.street2 %]</div>
7656     <div>[% lib_addr.city %], [% lib_addr.state %] [% lb_addr.post_code %]</div>
7657     <div>[% lib.phone %]</div>
7658     <br/>
7659
7660     [% user.family_name %], [% user.first_given_name %]
7661     <ol>
7662     [% FOR circ IN target %]
7663         [%-
7664             SET idx = loop.count - 1;
7665             SET udata =  user_data.$idx
7666         -%]
7667         <li>
7668             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
7669             <div>Barcode: [% circ.target_copy.barcode %]</div>
7670             [% IF user_data.renewal_failure %]
7671                 <div style='color:red;'>Renewal Failed</div>
7672             [% ELSE %]
7673                 <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
7674             [% END %]
7675         </li>
7676     [% END %]
7677     </ol>
7678     
7679     <div>
7680         Library Hours
7681         [%- BLOCK format_time; date.format(time _ ' 1/1/1000', format='%I:%M %p'); END -%]
7682         <div>
7683             Monday 
7684             [% PROCESS format_time time = hours.dow_0_open %] 
7685             [% PROCESS format_time time = hours.dow_0_close %] 
7686         </div>
7687         <div>
7688             Tuesday 
7689             [% PROCESS format_time time = hours.dow_1_open %] 
7690             [% PROCESS format_time time = hours.dow_1_close %] 
7691         </div>
7692         <div>
7693             Wednesday 
7694             [% PROCESS format_time time = hours.dow_2_open %] 
7695             [% PROCESS format_time time = hours.dow_2_close %] 
7696         </div>
7697         <div>
7698             Thursday
7699             [% PROCESS format_time time = hours.dow_3_open %] 
7700             [% PROCESS format_time time = hours.dow_3_close %] 
7701         </div>
7702         <div>
7703             Friday
7704             [% PROCESS format_time time = hours.dow_4_open %] 
7705             [% PROCESS format_time time = hours.dow_4_close %] 
7706         </div>
7707         <div>
7708             Saturday
7709             [% PROCESS format_time time = hours.dow_5_open %] 
7710             [% PROCESS format_time time = hours.dow_5_close %] 
7711         </div>
7712         <div>
7713             Sunday 
7714             [% PROCESS format_time time = hours.dow_6_open %] 
7715             [% PROCESS format_time time = hours.dow_6_close %] 
7716         </div>
7717     </div>
7718 </div>
7719 $$
7720 );
7721
7722
7723 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7724     ( 10, 'target_copy'),
7725     ( 10, 'circ_lib.billing_address'),
7726     ( 10, 'circ_lib.hours_of_operation'),
7727     ( 10, 'usr');
7728
7729
7730 -- items out selfcheck receipt
7731
7732 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7733     VALUES (
7734         'format.selfcheck.items_out',
7735         'circ',
7736         'Formats items out for self-checkout receipt',
7737         TRUE
7738     );
7739
7740 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
7741     VALUES (
7742         11,
7743         TRUE,
7744         1,
7745         'Self-Checkout Items Out Receipt',
7746         'format.selfcheck.items_out',
7747         'NOOP_True',
7748         'ProcessTemplate',
7749         'usr',
7750         'print-on-demand',
7751 $$
7752 [%- USE date -%]
7753 [%- SET user = target.0.usr -%]
7754 <div>
7755     <style> li { padding: 8px; margin 5px; }</style>
7756     <div>[% date.format %]</div>
7757     <br/>
7758
7759     [% user.family_name %], [% user.first_given_name %]
7760     <ol>
7761     [% FOR circ IN target %]
7762         <li>
7763             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
7764             <div>Barcode: [% circ.target_copy.barcode %]</div>
7765             <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
7766         </li>
7767     [% END %]
7768     </ol>
7769 </div>
7770 $$
7771 );
7772
7773
7774 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7775     ( 11, 'target_copy'),
7776     ( 11, 'circ_lib.billing_address'),
7777     ( 11, 'circ_lib.hours_of_operation'),
7778     ( 11, 'usr');
7779
7780 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7781     VALUES (
7782         'format.selfcheck.holds',
7783         'ahr',
7784         'Formats holds for self-checkout receipt',
7785         TRUE
7786     );
7787
7788 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
7789     VALUES (
7790         12,
7791         TRUE,
7792         1,
7793         'Self-Checkout Holds Receipt',
7794         'format.selfcheck.holds',
7795         'NOOP_True',
7796         'ProcessTemplate',
7797         'usr',
7798         'print-on-demand',
7799 $$
7800 [%- USE date -%]
7801 [%- SET user = target.0.usr -%]
7802 <div>
7803     <style> li { padding: 8px; margin 5px; }</style>
7804     <div>[% date.format %]</div>
7805     <br/>
7806
7807     [% user.family_name %], [% user.first_given_name %]
7808     <ol>
7809     [% FOR hold IN target %]
7810         [%-
7811             SET idx = loop.count - 1;
7812             SET udata =  user_data.$idx
7813         -%]
7814         <li>
7815             <div>Title: [% hold.bib_rec.bib_record.simple_record.title %]</div>
7816             <div>Author: [% hold.bib_rec.bib_record.simple_record.author %]</div>
7817             <div>Pickup Location: [% hold.pickup_lib.name %]</div>
7818             <div>Status: 
7819                 [%- IF udata.ready -%]
7820                     Ready for pickup
7821                 [% ELSE %]
7822                     #[% udata.queue_position %] of [% udata.potential_copies %] copies.
7823                 [% END %]
7824             </div>
7825         </li>
7826     [% END %]
7827     </ol>
7828 </div>
7829 $$
7830 );
7831
7832
7833 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7834     ( 12, 'bib_rec.bib_record.simple_record'),
7835     ( 12, 'pickup_lib'),
7836     ( 12, 'usr');
7837
7838 -- fines receipt
7839
7840 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7841     VALUES (
7842         'format.selfcheck.fines',
7843         'au',
7844         'Formats fines for self-checkout receipt',
7845         TRUE
7846     );
7847
7848 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, granularity, template )
7849     VALUES (
7850         13,
7851         TRUE,
7852         1,
7853         'Self-Checkout Fines Receipt',
7854         'format.selfcheck.fines',
7855         'NOOP_True',
7856         'ProcessTemplate',
7857         'print-on-demand',
7858 $$
7859 [%- USE date -%]
7860 [%- SET user = target -%]
7861 <div>
7862     <style> li { padding: 8px; margin 5px; }</style>
7863     <div>[% date.format %]</div>
7864     <br/>
7865
7866     [% user.family_name %], [% user.first_given_name %]
7867     <ol>
7868     [% FOR xact IN user.open_billable_transactions_summary %]
7869         <li>
7870             <div>Details: 
7871                 [% IF xact.xact_type == 'circulation' %]
7872                     [%- helpers.get_copy_bib_basics(xact.circulation.target_copy).title -%]
7873                 [% ELSE %]
7874                     [%- xact.last_billing_type -%]
7875                 [% END %]
7876             </div>
7877             <div>Total Billed: [% xact.total_owed %]</div>
7878             <div>Total Paid: [% xact.total_paid %]</div>
7879             <div>Balance Owed : [% xact.balance_owed %]</div>
7880         </li>
7881     [% END %]
7882     </ol>
7883 </div>
7884 $$
7885 );
7886
7887 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7888     VALUES (
7889         'format.acqli.html',
7890         'jub',
7891         'Formats lineitem worksheet for titles received',
7892         TRUE
7893     );
7894
7895 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, granularity, template)
7896     VALUES (
7897         14,
7898         TRUE,
7899         1,
7900         'Lineitem Worksheet',
7901         'format.acqli.html',
7902         'NOOP_True',
7903         'ProcessTemplate',
7904         'print-on-demand',
7905 $$
7906 [%- USE date -%]
7907 [%- SET li = target; -%]
7908 <div class="wrapper">
7909     <div class="summary" style='font-size:110%; font-weight:bold;'>
7910
7911         <div>Title: [% helpers.get_li_attr("title", "", li.attributes) %]</div>
7912         <div>Author: [% helpers.get_li_attr("author", "", li.attributes) %]</div>
7913         <div class="count">Item Count: [% li.lineitem_details.size %]</div>
7914         <div class="lineid">Lineitem ID: [% li.id %]</div>
7915         <div>Open Holds: [% helpers.bre_open_hold_count(li.eg_bib_id) %]</div>
7916
7917         [% IF li.distribution_formulas.size > 0 %]
7918             [% SET forms = [] %]
7919             [% FOREACH form IN li.distribution_formulas; forms.push(form.formula.name); END %]
7920             <div>Distribution Formulas: [% forms.join(',') %]</div>
7921         [% END %]
7922
7923         [% IF li.lineitem_notes.size > 0 %]
7924             Lineitem Notes:
7925             <ul>
7926                 [%- FOR note IN li.lineitem_notes -%]
7927                     <li>
7928                     [% IF note.alert_text %]
7929                         [% note.alert_text.code -%] 
7930                         [% IF note.value -%]
7931                             : [% note.value %]
7932                         [% END %]
7933                     [% ELSE %]
7934                         [% note.value -%] 
7935                     [% END %]
7936                     </li>
7937                 [% END %]
7938             </ul>
7939         [% END %]
7940     </div>
7941     <br/>
7942     <table>
7943         <thead>
7944             <tr>
7945                 <th>Branch</th>
7946                 <th>Barcode</th>
7947                 <th>Call Number</th>
7948                 <th>Fund</th>
7949                 <th>Shelving Location</th>
7950                 <th>Recd.</th>
7951                 <th>Notes</th>
7952             </tr>
7953         </thead>
7954         <tbody>
7955         [% FOREACH detail IN li.lineitem_details.sort('owning_lib') %]
7956             [% 
7957                 IF detail.eg_copy_id;
7958                     SET copy = detail.eg_copy_id;
7959                     SET cn_label = copy.call_number.label;
7960                 ELSE; 
7961                     SET copy = detail; 
7962                     SET cn_label = detail.cn_label;
7963                 END 
7964             %]
7965             <tr>
7966                 <!-- acq.lineitem_detail.id = [%- detail.id -%] -->
7967                 <td style='padding:5px;'>[% detail.owning_lib.shortname %]</td>
7968                 <td style='padding:5px;'>[% IF copy.barcode   %]<span class="barcode"  >[% detail.barcode   %]</span>[% END %]</td>
7969                 <td style='padding:5px;'>[% IF cn_label %]<span class="cn_label" >[% cn_label  %]</span>[% END %]</td>
7970                 <td style='padding:5px;'>[% IF detail.fund %]<span class="fund">[% detail.fund.code %] ([% detail.fund.year %])</span>[% END %]</td>
7971                 <td style='padding:5px;'>[% copy.location.name %]</td>
7972                 <td style='padding:5px;'>[% IF detail.recv_time %]<span class="recv_time">[% detail.recv_time %]</span>[% END %]</td>
7973                 <td style='padding:5px;'>[% detail.note %]</td>
7974             </tr>
7975         [% END %]
7976         </tbody>
7977     </table>
7978 </div>
7979 $$
7980 );
7981
7982
7983 INSERT INTO action_trigger.environment (event_def, path) VALUES
7984     ( 14, 'attributes' ),
7985     ( 14, 'lineitem_notes' ),
7986     ( 14, 'lineitem_notes.alert_text' ),
7987     ( 14, 'distribution_formulas.formula' ),
7988     ( 14, 'lineitem_details' ),
7989     ( 14, 'lineitem_details.owning_lib' ),
7990     ( 14, 'lineitem_details.fund' ),
7991     ( 14, 'lineitem_details.location' ),
7992     ( 14, 'lineitem_details.eg_copy_id' ),
7993     ( 14, 'lineitem_details.eg_copy_id.call_number' ),
7994     ( 14, 'lineitem_details.eg_copy_id.location' )
7995 ;
7996
7997 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7998     ( 13, 'open_billable_transactions_summary.circulation' );
7999
8000
8001 INSERT INTO action_trigger.validator (module, description) 
8002     VALUES (
8003         'Acq::PurchaseOrderEDIRequired',
8004         oils_i18n_gettext(
8005             'Acq::PurchaseOrderEDIRequired',
8006             'Purchase order is delivered via EDI',
8007             'atval',
8008             'description'
8009         )
8010     );
8011
8012 INSERT INTO action_trigger.reactor (module, description)
8013     VALUES (
8014         'GeneratePurchaseOrderJEDI',
8015         oils_i18n_gettext(
8016             'GeneratePurchaseOrderJEDI',
8017             'Creates purchase order JEDI (JSON EDI) for subsequent EDI processing',
8018             'atreact',
8019             'description'
8020         )
8021     );
8022
8023
8024 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, cleanup_success, cleanup_failure, delay, delay_field, group_field, template) 
8025     VALUES (23, true, 1, 'PO JEDI', 'acqpo.activated', 'Acq::PurchaseOrderEDIRequired', 'GeneratePurchaseOrderJEDI', NULL, NULL, '00:00:00', NULL, NULL,
8026 $$
8027 [%- USE date -%]
8028 [%
8029     # extract some commonly used variables
8030
8031     VENDOR_SAN = target.provider.san;
8032     VENDCODE = target.provider.edi_default.vendcode;
8033     VENDACCT = target.provider.edi_default.vendacct;
8034     ORG_UNIT_SAN = target.ordering_agency.mailing_address.san;
8035
8036     # set the vendor / provider
8037
8038     VENDOR_BT      = 0; # Baker & Taylor
8039     VENDOR_INGRAM  = 0;
8040     VENDOR_BRODART = 0;
8041     VENDOR_MW_TAPE = 0; # Midwest Tape
8042     VENDOR_RB      = 0; # Recorded Books
8043     VENDOR_ULS     = 0; # ULS
8044
8045     IF    VENDOR_SAN == '1556150'; VENDOR_BT = 1;
8046     ELSIF VENDOR_SAN == '1697684'; VENDOR_BRODART = 1;
8047     ELSIF VENDOR_SAN == '1697978'; VENDOR_INGRAM = 1;
8048     ELSIF VENDOR_SAN == '2549913'; VENDOR_MW_TAPE = 1;
8049     ELSIF VENDOR_SAN == '1113984'; VENDOR_RB = 1;
8050     ELSIF VENDOR_SAN == '1699342'; VENDOR_ULS = 1;
8051     END;
8052
8053     # if true, pass the PO name as a secondary identifier
8054     # RFF+LI:<name>/li_id
8055     INC_PO_NAME = 0;
8056     IF VENDOR_INGRAM;
8057         INC_PO_NAME = 1;
8058     END;
8059
8060     # GIR configuration --------------------------------------
8061
8062     INC_COPIES = 1; # copies on/off switch
8063     INC_FUND = 0;
8064     INC_CALLNUMBER = 0;
8065     INC_ITEM_TYPE = 1;
8066     INC_LOCATION = 0;
8067     INC_COLLECTION_CODE = 1;
8068     INC_OWNING_LIB = 1;
8069     INC_QUANTITY = 1;
8070     INC_COPY_ID = 0;
8071
8072     IF VENDOR_BT;
8073         INC_CALLNUMBER = 1;
8074     END;
8075
8076     IF VENDOR_BRODART;
8077         INC_FUND = 1;
8078     END;
8079
8080     IF VENDOR_MW_TAPE;
8081         INC_FUND = 1;
8082         INC_COLLECTION_CODE = 0;
8083         INC_ITEM_TYPE = 0;
8084     END;
8085
8086     # END GIR configuration ---------------------------------
8087
8088 -%]
8089 [%- BLOCK big_block -%]
8090 {
8091    "recipient":"[% VENDOR_SAN %]",
8092    "sender":"[% ORG_UNIT_SAN %]",
8093    "body": [{
8094      "ORDERS":[ "order", {
8095
8096         "po_number":[% target.id %],
8097
8098         [% IF INC_PO_NAME %]
8099         "po_name":"[% target.name | replace('\/', ' ') | replace('"', '\"') %]",
8100         [% END %]
8101
8102         "date":"[% date.format(date.now, '%Y%m%d') %]",
8103
8104         "buyer":[
8105             [% IF VENDOR_BT %]
8106                 {"id-qualifier": 91, "id":"[% ORG_UNIT_SAN %] [% VENDCODE %]"}
8107             [% ELSE %]
8108                 {"id":"[% ORG_UNIT_SAN %]"},
8109                 {"id-qualifier": 91, "id":"[% VENDACCT %]"}
8110             [% END %]
8111         ],
8112
8113         "vendor":[
8114             "[% VENDOR_SAN %]",
8115             {"id-qualifier": 92, "id":"[% target.provider.id %]"}
8116         ],
8117
8118         "currency":"[% target.provider.currency_type %]",
8119                 
8120         "items":[
8121         [%- FOR li IN target.lineitems %]
8122         {
8123             "line_index":"[% li.id %]",
8124             "identifiers":[   
8125             [%- 
8126                 idval = '';
8127                 idqual = 'EN'; # default ISBN/UPC/EAN-13
8128                 ident_attr = helpers.get_li_order_ident(li.attributes);
8129                 IF ident_attr;
8130                     idname = ident_attr.attr_name;
8131                     idval = ident_attr.attr_value;
8132                     IF idname == 'isbn' AND idval.length != 13;
8133                         idqual = 'IB';
8134                     ELSIF idname == 'issn';
8135                         idqual = 'IS';
8136                     END;
8137                 ELSE;
8138                     idqual = 'IN';
8139                     idval = li.id;
8140                 END -%]
8141                 {"id-qualifier":"[% idqual %]","id":"[% idval %]"}
8142             ],
8143             "price":[% li.estimated_unit_price || '0.00' %],
8144             "desc":[
8145                 {"BTI":"[% helpers.get_li_attr_jedi('title',     '', li.attributes) %]"},
8146                 {"BPU":"[% helpers.get_li_attr_jedi('publisher', '', li.attributes) %]"},
8147                 {"BPD":"[% helpers.get_li_attr_jedi('pubdate',   '', li.attributes) %]"},
8148                 [% IF VENDOR_ULS -%]
8149                 {"BEN":"[% helpers.get_li_attr_jedi('edition',   '', li.attributes) %]"},
8150                 {"BAU":"[% helpers.get_li_attr_jedi('author',    '', li.attributes) %]"}
8151                 [%- ELSE -%]
8152                 {"BPH":"[% helpers.get_li_attr_jedi('pagination','', li.attributes) %]"}
8153                 [%- END %]
8154             ],
8155             [%- ftx_vals = []; 
8156                 FOR note IN li.lineitem_notes;
8157                     NEXT UNLESS note.vendor_public == 't'; 
8158                     ftx_vals.push(note.value); 
8159                 END; 
8160                 IF VENDOR_BRODART; # look for copy-level spec code
8161                     FOR lid IN li.lineitem_details;
8162                         IF lid.note;
8163                             spec_note = lid.note.match('spec code ([a-zA-Z0-9_])');
8164                             IF spec_note.0; ftx_vals.push(spec_note.0); END;
8165                         END;
8166                     END;
8167                 END; 
8168                 IF xtra_ftx;           ftx_vals.unshift(xtra_ftx); END; 
8169
8170                 # BT & ULS want FTX+LIN for every LI, even if empty
8171                 IF ((VENDOR_BT OR VENDOR_ULS) AND ftx_vals.size == 0);
8172                     ftx_vals.unshift('');
8173                 END;  
8174             -%]
8175
8176             "free-text":[ 
8177                 [% FOR note IN ftx_vals -%] "[% note %]"[% UNLESS loop.last %], [% END %][% END %] 
8178             ],            
8179
8180             "quantity":[% li.lineitem_details.size %]
8181
8182             [%- IF INC_COPIES -%]
8183             ,"copies" : [
8184                 [%- compressed_copies = [];
8185                     FOR lid IN li.lineitem_details;
8186                         fund = lid.fund.code;
8187                         item_type = lid.circ_modifier;
8188                         callnumber = lid.cn_label;
8189                         owning_lib = lid.owning_lib.shortname;
8190                         location = lid.location;
8191                         collection_code = lid.collection_code;
8192     
8193                         # when we have real copy data, treat it as authoritative for some fields
8194                         acp = lid.eg_copy_id;
8195                         IF acp;
8196                             item_type = acp.circ_modifier;
8197                             callnumber = acp.call_number.label;
8198                             location = acp.location.name;
8199                         END ;
8200
8201
8202                         # collapse like copies into groups w/ quantity
8203
8204                         found_match = 0;
8205                         IF !INC_COPY_ID; # INC_COPY_ID implies 1 copy per GIR
8206                             FOR copy IN compressed_copies;
8207                                 IF  (fund == copy.fund OR (!fund AND !copy.fund)) AND
8208                                     (item_type == copy.item_type OR (!item_type AND !copy.item_type)) AND
8209                                     (callnumber == copy.callnumber OR (!callnumber AND !copy.callnumber)) AND
8210                                     (owning_lib == copy.owning_lib OR (!owning_lib AND !copy.owning_lib)) AND
8211                                     (location == copy.location OR (!location AND !copy.location)) AND
8212                                     (collection_code == copy.collection_code OR (!collection_code AND !copy.collection_code));
8213
8214                                     copy.quantity = copy.quantity + 1;
8215                                     found_match = 1;
8216                                 END;
8217                             END;
8218                         END;
8219
8220                         IF !found_match;
8221                             compressed_copies.push({
8222                                 fund => fund,
8223                                 item_type => item_type,
8224                                 callnumber => callnumber,
8225                                 owning_lib => owning_lib,
8226                                 location => location,
8227                                 collection_code => collection_code,
8228                                 copy_id => lid.id, # for INC_COPY_ID
8229                                 quantity => 1
8230                             });
8231                         END;
8232                     END;
8233                     FOR copy IN compressed_copies;
8234
8235                     # If we assume owning_lib is required and set, 
8236                     # it is safe to prepend each following copy field w/ a ","
8237
8238                     # B&T EDI requires expected GIR fields to be 
8239                     # present regardless of whether a value exists.  
8240                     # some fields are required to have a value in ACQ, 
8241                     # though, so they are not forced into place below.
8242
8243                  %]{[%- IF INC_OWNING_LIB AND copy.owning_lib %] "owning_lib":"[% copy.owning_lib %]"[% END -%]
8244                     [%- IF INC_FUND AND copy.fund %],"fund":"[% copy.fund %]"[% END -%]
8245                     [%- IF INC_CALLNUMBER AND (VENDOR_BT OR copy.callnumber) %],"call_number":"[% copy.callnumber %]"[% END -%]
8246                     [%- IF INC_ITEM_TYPE AND (VENDOR_BT OR copy.item_type) %],"item_type":"[% copy.item_type %]"[% END -%]
8247                     [%- IF INC_LOCATION AND copy.location %],"copy_location":"[% copy.location %]"[% END -%]
8248                     [%- IF INC_COLLECTION_CODE AND (VENDOR_BT OR copy.collection_code) %],"collection_code":"[% copy.collection_code %]"[% END -%]
8249                     [%- IF INC_QUANTITY %],"quantity":"[% copy.quantity %]"[% END -%]
8250                     [%- IF INC_COPY_ID %],"copy_id":"[% copy.copy_id %]" [% END %]}[% ',' UNLESS loop.last -%]
8251                 [%- END -%] [%# FOR compressed_copies -%]
8252             ]
8253             [%- END -%] [%# IF INC_COPIES %]
8254
8255         }[% UNLESS loop.last %],[% END -%]
8256
8257         [% END %] [%# END lineitems %]
8258         ],
8259         "line_items":[% target.lineitems.size %]
8260      }]  [%# close ORDERS array %]
8261    }]    [%# close  body  array %]
8262 }
8263 [% END %]
8264 [% tempo = PROCESS big_block; helpers.escape_json(tempo) %]
8265 $$
8266 );
8267
8268 INSERT INTO action_trigger.environment (event_def, path) VALUES 
8269   (23, 'lineitems.attributes'), 
8270   (23, 'lineitems.lineitem_details.owning_lib'),
8271   (23, 'lineitems.lineitem_details.location'),
8272   (23, 'lineitems.lineitem_details.fund'),
8273   (23, 'lineitems.lineitem_details.eg_copy_id.location'),
8274   (23, 'lineitems.lineitem_details.eg_copy_id.call_number'),
8275   (23, 'lineitems.lineitem_notes'), 
8276   (23, 'ordering_agency.mailing_address'), 
8277   (23, 'provider'),
8278   (23, 'provider.edi_default');
8279
8280 INSERT INTO action_trigger.reactor (module, description) VALUES (
8281     'AstCall', 'Possibly place a phone call with Asterisk'
8282 );
8283
8284 INSERT INTO
8285     action_trigger.event_definition (
8286         id, active, owner, name, hook, validator, reactor,
8287         cleanup_success, cleanup_failure, delay, delay_field, group_field,
8288         max_delay, granularity, usr_field, opt_in_setting, template
8289     ) VALUES (
8290         24,
8291         FALSE,
8292         1,
8293         'Telephone Overdue Notice',
8294         'checkout.due', 'NOOP_True', 'AstCall',
8295         DEFAULT, DEFAULT, '5 seconds', 'due_date', 'usr',
8296         DEFAULT, DEFAULT, DEFAULT, DEFAULT,
8297         $$
8298 [% phone = target.0.usr.day_phone | replace('[\s\-\(\)]', '') -%]
8299 [% IF phone.match('^[2-9]') %][% country = 1 %][% ELSE %][% country = '' %][% END -%]
8300 Channel: [% channel_prefix %]/[% country %][% phone %]
8301 Context: overdue-test
8302 MaxRetries: 1
8303 RetryTime: 60
8304 WaitTime: 30
8305 Extension: 10
8306 Archive: 1
8307 Set: eg_user_id=[% target.0.usr.id %]
8308 Set: items=[% target.size %]
8309 Set: titlestring=[% titles = [] %][% FOR circ IN target %][% titles.push(circ.target_copy.call_number.record.simple_record.title) %][% END %][% titles.join(". ") %]
8310 $$
8311     );
8312
8313 INSERT INTO
8314     action_trigger.environment (id, event_def, path)
8315     VALUES
8316         (DEFAULT, 24, 'target_copy.call_number.record.simple_record'),
8317         (DEFAULT, 24, 'usr')
8318     ;
8319
8320 -- 0285.data.history_format.sql
8321
8322 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8323         'circ.format.history.email',
8324         'circ', 
8325         oils_i18n_gettext(
8326             'circ.format.history.email',
8327             'An email has been requested for a circ history.',
8328             'ath',
8329             'description'
8330         ), 
8331         FALSE
8332     )
8333     ,(
8334         'circ.format.history.print',
8335         'circ', 
8336         oils_i18n_gettext(
8337             'circ.format.history.print',
8338             'A circ history needs to be formatted for printing.',
8339             'ath',
8340             'description'
8341         ), 
8342         FALSE
8343     )
8344     ,(
8345         'ahr.format.history.email',
8346         'ahr', 
8347         oils_i18n_gettext(
8348             'ahr.format.history.email',
8349             'An email has been requested for a hold request history.',
8350             'ath',
8351             'description'
8352         ), 
8353         FALSE
8354     )
8355     ,(
8356         'ahr.format.history.print',
8357         'ahr', 
8358         oils_i18n_gettext(
8359             'ahr.format.history.print',
8360             'A hold request history needs to be formatted for printing.',
8361             'ath',
8362             'description'
8363         ), 
8364         FALSE
8365     )
8366
8367 ;
8368
8369 INSERT INTO action_trigger.event_definition (
8370         id,
8371         active,
8372         owner,
8373         name,
8374         hook,
8375         validator,
8376         reactor,
8377         group_field,
8378         granularity,
8379         template
8380     ) VALUES (
8381         25,
8382         TRUE,
8383         1,
8384         'circ.history.email',
8385         'circ.format.history.email',
8386         'NOOP_True',
8387         'SendEmail',
8388         'usr',
8389         NULL,
8390 $$
8391 [%- USE date -%]
8392 [%- SET user = target.0.usr -%]
8393 To: [%- params.recipient_email || user.email %]
8394 From: [%- params.sender_email || default_sender %]
8395 Subject: Circulation History
8396
8397     [% FOR circ IN target %]
8398             [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
8399             Barcode: [% circ.target_copy.barcode %]
8400             Checked Out: [% date.format(helpers.format_date(circ.xact_start), '%Y-%m-%d') %]
8401             Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
8402             Returned: [% date.format(helpers.format_date(circ.checkin_time), '%Y-%m-%d') %]
8403     [% END %]
8404 $$
8405     )
8406     ,(
8407         26,
8408         TRUE,
8409         1,
8410         'circ.history.print',
8411         'circ.format.history.print',
8412         'NOOP_True',
8413         'ProcessTemplate',
8414         'usr',
8415         'print-on-demand',
8416 $$
8417 [%- USE date -%]
8418 <div>
8419     <style> li { padding: 8px; margin 5px; }</style>
8420     <div>[% date.format %]</div>
8421     <br/>
8422
8423     [% user.family_name %], [% user.first_given_name %]
8424     <ol>
8425     [% FOR circ IN target %]
8426         <li>
8427             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
8428             <div>Barcode: [% circ.target_copy.barcode %]</div>
8429             <div>Checked Out: [% date.format(helpers.format_date(circ.xact_start), '%Y-%m-%d') %]</div>
8430             <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
8431             <div>Returned: [% date.format(helpers.format_date(circ.checkin_time), '%Y-%m-%d') %]</div>
8432         </li>
8433     [% END %]
8434     </ol>
8435 </div>
8436 $$
8437     )
8438     ,(
8439         27,
8440         TRUE,
8441         1,
8442         'ahr.history.email',
8443         'ahr.format.history.email',
8444         'NOOP_True',
8445         'SendEmail',
8446         'usr',
8447         NULL,
8448 $$
8449 [%- USE date -%]
8450 [%- SET user = target.0.usr -%]
8451 To: [%- params.recipient_email || user.email %]
8452 From: [%- params.sender_email || default_sender %]
8453 Subject: Hold Request History
8454
8455     [% FOR hold IN target %]
8456             [% helpers.get_copy_bib_basics(hold.current_copy.id).title %]
8457             Requested: [% date.format(helpers.format_date(hold.request_time), '%Y-%m-%d') %]
8458             [% IF hold.fulfillment_time %]Fulfilled: [% date.format(helpers.format_date(hold.fulfillment_time), '%Y-%m-%d') %][% END %]
8459     [% END %]
8460 $$
8461     )
8462     ,(
8463         28,
8464         TRUE,
8465         1,
8466         'ahr.history.print',
8467         'ahr.format.history.print',
8468         'NOOP_True',
8469         'ProcessTemplate',
8470         'usr',
8471         'print-on-demand',
8472 $$
8473 [%- USE date -%]
8474 <div>
8475     <style> li { padding: 8px; margin 5px; }</style>
8476     <div>[% date.format %]</div>
8477     <br/>
8478
8479     [% user.family_name %], [% user.first_given_name %]
8480     <ol>
8481     [% FOR hold IN target %]
8482         <li>
8483             <div>[% helpers.get_copy_bib_basics(hold.current_copy.id).title %]</div>
8484             <div>Requested: [% date.format(helpers.format_date(hold.request_time), '%Y-%m-%d') %]</div>
8485             [% IF hold.fulfillment_time %]<div>Fulfilled: [% date.format(helpers.format_date(hold.fulfillment_time), '%Y-%m-%d') %]</div>[% END %]
8486         </li>
8487     [% END %]
8488     </ol>
8489 </div>
8490 $$
8491     )
8492
8493 ;
8494
8495 INSERT INTO action_trigger.environment (
8496         event_def,
8497         path
8498     ) VALUES 
8499          ( 25, 'target_copy')
8500         ,( 25, 'usr' )
8501         ,( 26, 'target_copy' )
8502         ,( 26, 'usr' )
8503         ,( 27, 'current_copy' )
8504         ,( 27, 'usr' )
8505         ,( 28, 'current_copy' )
8506         ,( 28, 'usr' )
8507 ;
8508
8509 -- 0289.data.payment_receipt_format.sql
8510 -- 0326.data.payment_receipt_format.sql
8511
8512 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8513         'money.format.payment_receipt.email',
8514         'mp', 
8515         oils_i18n_gettext(
8516             'money.format.payment_receipt.email',
8517             'An email has been requested for a payment receipt.',
8518             'ath',
8519             'description'
8520         ), 
8521         FALSE
8522     )
8523     ,(
8524         'money.format.payment_receipt.print',
8525         'mp', 
8526         oils_i18n_gettext(
8527             'money.format.payment_receipt.print',
8528             'A payment receipt needs to be formatted for printing.',
8529             'ath',
8530             'description'
8531         ), 
8532         FALSE
8533     )
8534 ;
8535
8536 INSERT INTO action_trigger.event_definition (
8537         id,
8538         active,
8539         owner,
8540         name,
8541         hook,
8542         validator,
8543         reactor,
8544         group_field,
8545         granularity,
8546         template
8547     ) VALUES (
8548         29,
8549         TRUE,
8550         1,
8551         'money.payment_receipt.email',
8552         'money.format.payment_receipt.email',
8553         'NOOP_True',
8554         'SendEmail',
8555         'xact.usr',
8556         NULL,
8557 $$
8558 [%- USE date -%]
8559 [%- SET user = target.0.xact.usr -%]
8560 To: [%- params.recipient_email || user.email %]
8561 From: [%- params.sender_email || default_sender %]
8562 Subject: Payment Receipt
8563
8564 [% date.format -%]
8565 [%- SET xact_mp_hash = {} -%]
8566 [%- FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions -%]
8567     [%- SET xact_id = mp.xact.id -%]
8568     [%- IF ! xact_mp_hash.defined( xact_id ) -%][%- xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } -%][%- END -%]
8569     [%- xact_mp_hash.$xact_id.payments.push(mp) -%]
8570 [%- END -%]
8571 [%- FOR xact_id IN xact_mp_hash.keys.sort -%]
8572     [%- SET xact = xact_mp_hash.$xact_id.xact %]
8573 Transaction ID: [% xact_id %]
8574     [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %]
8575     [% ELSE %]Miscellaneous
8576     [% END %]
8577     Line item billings:
8578         [%- SET mb_type_hash = {} -%]
8579         [%- FOR mb IN xact.billings %][%# Group billings by their btype -%]
8580             [%- IF mb.voided == 'f' -%]
8581                 [%- SET mb_type = mb.btype.id -%]
8582                 [%- IF ! mb_type_hash.defined( mb_type ) -%][%- mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } -%][%- END -%]
8583                 [%- IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) -%][%- mb_type_hash.$mb_type.first_ts = mb.billing_ts -%][%- END -%]
8584                 [%- mb_type_hash.$mb_type.last_ts = mb.billing_ts -%]
8585                 [%- mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount -%]
8586                 [%- mb_type_hash.$mb_type.billings.push( mb ) -%]
8587             [%- END -%]
8588         [%- END -%]
8589         [%- FOR mb_type IN mb_type_hash.keys.sort -%]
8590             [%- IF mb_type == 1 %][%-# Consolidated view of overdue billings -%]
8591                 $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] 
8592                     on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %]
8593             [%- ELSE -%][%# all other billings show individually %]
8594                 [% FOR mb IN mb_type_hash.$mb_type.billings %]
8595                     $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %]
8596                 [% END %]
8597             [% END %]
8598         [% END %]
8599     Line item payments:
8600         [% FOR mp IN xact_mp_hash.$xact_id.payments %]
8601             Payment ID: [% mp.id %]
8602                 Paid [% mp.amount %] via [% SWITCH mp.payment_type -%]
8603                     [% CASE "cash_payment" %]cash
8604                     [% CASE "check_payment" %]check
8605                     [% CASE "credit_card_payment" %]credit card (
8606                         [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%]
8607                         [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] 
8608                         [% cc_chunks.last -%]
8609                         exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%]
8610                     )
8611                     [% CASE "credit_payment" %]credit
8612                     [% CASE "forgive_payment" %]forgiveness
8613                     [% CASE "goods_payment" %]goods
8614                     [% CASE "work_payment" %]work
8615                 [%- END %] on [% mp.payment_ts %] [% mp.note %]
8616         [% END %]
8617 [% END %]
8618 $$
8619     )
8620     ,(
8621         30,
8622         TRUE,
8623         1,
8624         'money.payment_receipt.print',
8625         'money.format.payment_receipt.print',
8626         'NOOP_True',
8627         'ProcessTemplate',
8628         'xact.usr',
8629         'print-on-demand',
8630 $$
8631 [%- USE date -%][%- SET user = target.0.xact.usr -%]
8632 <div style="li { padding: 8px; margin 5px; }">
8633     <div>[% date.format %]</div><br/>
8634     <ol>
8635     [% SET xact_mp_hash = {} %]
8636     [% FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions %]
8637         [% SET xact_id = mp.xact.id %]
8638         [% IF ! xact_mp_hash.defined( xact_id ) %][% xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } %][% END %]
8639         [% xact_mp_hash.$xact_id.payments.push(mp) %]
8640     [% END %]
8641     [% FOR xact_id IN xact_mp_hash.keys.sort %]
8642         [% SET xact = xact_mp_hash.$xact_id.xact %]
8643         <li>Transaction ID: [% xact_id %]
8644             [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %]
8645             [% ELSE %]Miscellaneous
8646             [% END %]
8647             Line item billings:<ol>
8648                 [% SET mb_type_hash = {} %]
8649                 [% FOR mb IN xact.billings %][%# Group billings by their btype %]
8650                     [% IF mb.voided == 'f' %]
8651                         [% SET mb_type = mb.btype.id %]
8652                         [% IF ! mb_type_hash.defined( mb_type ) %][% mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } %][% END %]
8653                         [% IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) %][% mb_type_hash.$mb_type.first_ts = mb.billing_ts %][% END %]
8654                         [% mb_type_hash.$mb_type.last_ts = mb.billing_ts %]
8655                         [% mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount %]
8656                         [% mb_type_hash.$mb_type.billings.push( mb ) %]
8657                     [% END %]
8658                 [% END %]
8659                 [% FOR mb_type IN mb_type_hash.keys.sort %]
8660                     <li>[% IF mb_type == 1 %][%# Consolidated view of overdue billings %]
8661                         $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] 
8662                             on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %]
8663                     [% ELSE %][%# all other billings show individually %]
8664                         [% FOR mb IN mb_type_hash.$mb_type.billings %]
8665                             $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %]
8666                         [% END %]
8667                     [% END %]</li>
8668                 [% END %]
8669             </ol>
8670             Line item payments:<ol>
8671                 [% FOR mp IN xact_mp_hash.$xact_id.payments %]
8672                     <li>Payment ID: [% mp.id %]
8673                         Paid [% mp.amount %] via [% SWITCH mp.payment_type -%]
8674                             [% CASE "cash_payment" %]cash
8675                             [% CASE "check_payment" %]check
8676                             [% CASE "credit_card_payment" %]credit card (
8677                                 [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%]
8678                                 [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] 
8679                                 [% cc_chunks.last -%]
8680                                 exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%]
8681                             )
8682                             [% CASE "credit_payment" %]credit
8683                             [% CASE "forgive_payment" %]forgiveness
8684                             [% CASE "goods_payment" %]goods
8685                             [% CASE "work_payment" %]work
8686                         [%- END %] on [% mp.payment_ts %] [% mp.note %]
8687                     </li>
8688                 [% END %]
8689             </ol>
8690         </li>
8691     [% END %]
8692     </ol>
8693 </div>
8694 $$
8695     )
8696 ;
8697
8698 INSERT INTO action_trigger.environment (
8699         event_def,
8700         path
8701     ) VALUES -- for fleshing mp objects
8702          ( 29, 'xact')
8703         ,( 29, 'xact.usr')
8704         ,( 29, 'xact.grocery' )
8705         ,( 29, 'xact.circulation' )
8706         ,( 29, 'xact.summary' )
8707         ,( 29, 'credit_card_payment')
8708         ,( 29, 'xact.billings')
8709         ,( 29, 'xact.billings.btype')
8710         ,( 30, 'xact')
8711         ,( 30, 'xact.usr')
8712         ,( 30, 'xact.grocery' )
8713         ,( 30, 'xact.circulation' )
8714         ,( 30, 'xact.summary' )
8715         ,( 30, 'credit_card_payment')
8716         ,( 30, 'xact.billings')
8717         ,( 30, 'xact.billings.btype')
8718 ;
8719
8720 -- 0294.data.bre_format.sql
8721
8722 INSERT INTO container.biblio_record_entry_bucket_type( code, label ) VALUES (
8723     'temp',
8724     oils_i18n_gettext(
8725         'temp',
8726         'Temporary bucket which gets deleted after use.',
8727         'cbrebt',
8728         'label'
8729     )
8730 );
8731
8732 INSERT INTO action_trigger.cleanup ( module, description ) VALUES (
8733     'DeleteTempBiblioBucket',
8734     oils_i18n_gettext(
8735         'DeleteTempBiblioBucket',
8736         'Deletes a cbreb object used as a target if it has a btype of "temp"',
8737         'atclean',
8738         'description'
8739     )
8740 );
8741
8742 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8743         'biblio.format.record_entry.email',
8744         'cbreb', 
8745         oils_i18n_gettext(
8746             'biblio.format.record_entry.email',
8747             'An email has been requested for one or more biblio record entries.',
8748             'ath',
8749             'description'
8750         ), 
8751         FALSE
8752     )
8753     ,(
8754         'biblio.format.record_entry.print',
8755         'cbreb', 
8756         oils_i18n_gettext(
8757             'biblio.format.record_entry.print',
8758             'One or more biblio record entries need to be formatted for printing.',
8759             'ath',
8760             'description'
8761         ), 
8762         FALSE
8763     )
8764 ;
8765
8766 INSERT INTO action_trigger.event_definition (
8767         id,
8768         active,
8769         owner,
8770         name,
8771         hook,
8772         validator,
8773         reactor,
8774         cleanup_success,
8775         cleanup_failure,
8776         group_field,
8777         granularity,
8778         delay,
8779         template
8780     ) VALUES (
8781         31,
8782         TRUE,
8783         1,
8784         'biblio.record_entry.email',
8785         'biblio.format.record_entry.email',
8786         'NOOP_True',
8787         'SendEmail',
8788         'DeleteTempBiblioBucket',
8789         'DeleteTempBiblioBucket',
8790         'owner',
8791         NULL,
8792         '00:00:00',
8793 $$
8794 [%- SET user = target.0.owner -%]
8795 To: [%- params.recipient_email || user.email %]
8796 From: [%- params.sender_email || default_sender %]
8797 Subject: Bibliographic Records
8798
8799 [% FOR cbreb IN target %]
8800 [% FOR item IN cbreb.items;
8801     bre_id = item.target_biblio_record_entry;
8802
8803     bibxml = helpers.unapi_bre(bre_id, {flesh => '{mra}'});
8804     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
8805         title = title _ part.textContent;
8806     END;
8807
8808     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
8809     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
8810     publisher = bibxml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent;
8811     pubdate = bibxml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent;
8812     isbn = bibxml.findnodes('//*[@tag="020"]/*[@code="a"]').textContent;
8813     issn = bibxml.findnodes('//*[@tag="022"]/*[@code="a"]').textContent;
8814     upc = bibxml.findnodes('//*[@tag="024"]/*[@code="a"]').textContent;
8815 %]
8816
8817 [% loop.count %]/[% loop.size %].  Bib ID# [% bre_id %] 
8818 [% IF isbn %]ISBN: [% isbn _ "\n" %][% END -%]
8819 [% IF issn %]ISSN: [% issn _ "\n" %][% END -%]
8820 [% IF upc  %]UPC:  [% upc _ "\n" %] [% END -%]
8821 Title: [% title %]
8822 Author: [% author %]
8823 Publication Info: [% publisher %] [% pubdate %]
8824 Item Type: [% item_type %]
8825
8826 [% END %]
8827 [% END %]
8828 $$
8829     )
8830     ,(
8831         32,
8832         TRUE,
8833         1,
8834         'biblio.record_entry.print',
8835         'biblio.format.record_entry.print',
8836         'NOOP_True',
8837         'ProcessTemplate',
8838         'DeleteTempBiblioBucket',
8839         'DeleteTempBiblioBucket',
8840         'owner',
8841         'print-on-demand',
8842         '00:00:00',
8843 $$
8844 <div>
8845     <style> li { padding: 8px; margin 5px; }</style>
8846     <ol>
8847     [% FOR cbreb IN target %]
8848     [% FOR item IN cbreb.items;
8849         bre_id = item.target_biblio_record_entry;
8850
8851         bibxml = helpers.unapi_bre(bre_id, {flesh => '{mra}'});
8852         FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
8853             title = title _ part.textContent;
8854         END;
8855
8856         author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
8857         item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
8858         publisher = bibxml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent;
8859         pubdate = bibxml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent;
8860         isbn = bibxml.findnodes('//*[@tag="020"]/*[@code="a"]').textContent;
8861         %]
8862
8863         <li>
8864             Bib ID# [% bre_id %] ISBN: [% isbn %]<br />
8865             Title: [% title %]<br />
8866             Author: [% author %]<br />
8867             Publication Info: [% publisher %] [% pubdate %]<br/>
8868             Item Type: [% item_type %]
8869         </li>
8870     [% END %]
8871     [% END %]
8872     </ol>
8873 </div>
8874 $$
8875     )
8876 ;
8877
8878 INSERT INTO action_trigger.environment (
8879         event_def,
8880         path
8881     ) VALUES -- for fleshing cbreb objects
8882          ( 31, 'owner' )
8883         ,( 31, 'items' )
8884         ,( 32, 'items' )
8885 ;
8886
8887 INSERT INTO acq.invoice_item_type (code,name) VALUES ('TAX',oils_i18n_gettext('TAX', 'Tax', 'aiit', 'name'));
8888 INSERT INTO acq.invoice_item_type (code,name) VALUES ('PRO',oils_i18n_gettext('PRO', 'Processing Fee', 'aiit', 'name'));
8889 INSERT INTO acq.invoice_item_type (code,name) VALUES ('SHP',oils_i18n_gettext('SHP', 'Shipping Charge', 'aiit', 'name'));
8890 INSERT INTO acq.invoice_item_type (code,name) VALUES ('HND',oils_i18n_gettext('HND', 'Handling Charge', 'aiit', 'name'));
8891 INSERT INTO acq.invoice_item_type (code,name) VALUES ('ITM',oils_i18n_gettext('ITM', 'Non-library Item', 'aiit', 'name'));
8892 INSERT INTO acq.invoice_item_type (code,name) VALUES ('SUB',oils_i18n_gettext('SUB', 'Serial Subscription', 'aiit', 'name'));
8893
8894 INSERT INTO acq.invoice_method (code,name) VALUES ('EDI',oils_i18n_gettext('EDI', 'EDI', 'acqim', 'name'));
8895 INSERT INTO acq.invoice_method (code,name) VALUES ('PPR',oils_i18n_gettext('PPR', 'Paper', 'acqit', 'name'));
8896
8897 INSERT INTO acq.cancel_reason ( id, org_unit, label, description ) VALUES (
8898     1, 1, 'invalid_isbn', oils_i18n_gettext( 1, 'ISBN is unrecognizable', 'acqcr', 'label' ));
8899 INSERT INTO acq.cancel_reason ( id, org_unit, label, description ) VALUES (
8900     2, 1, 'postpone', oils_i18n_gettext( 2, 'Title has been postponed', 'acqcr', 'label' ));
8901 INSERT INTO acq.cancel_reason ( id, org_unit, label, description, keep_debits ) VALUES (
8902     3, 1, 'delivered_but_lost',
8903         oils_i18n_gettext( 2, 'Delivered but not received; presumed lost', 'acqcr', 'label' ), TRUE );
8904
8905 INSERT INTO acq.cancel_reason (keep_debits, id, org_unit, label, description) VALUES 
8906 ('f',(  2+1000), 1, 'Deleted',   'The information is to be or has been deleted.'),
8907 ('t',(  3+1000), 1, 'Changed',   'The information is to be or has been changed.'),
8908 ('t',(  4+1000), 1, 'No action',                  'This line item is not affected by the actual message.'),
8909 ('t',(  5+1000), 1, 'Accepted without amendment', 'This line item is entirely accepted by the seller.'),
8910 ('f',(  7+1000), 1, 'Not accepted',               'This line item is not accepted by the seller.'),
8911 ('f',( 10+1000), 1, 'Not found',   'This line item is not found in the referenced message.'),
8912 ('t',( 24+1000), 1, 'Accepted with amendment, no confirmation required', 'Accepted with changes which require no confirmation.');
8913
8914 INSERT INTO acq.cancel_reason (org_unit, keep_debits, id, label, description) VALUES 
8915 (1, 't', 1211, 'Split quantity', 'Part of the whole quantity.'),
8916 (1, 't', 1221, 'Ordered quantity', '[6024] The quantity which has been ordered.'),
8917 (1, 't', 1246, 'Pieces delivered', 'Number of pieces actually received at the final destination.'),
8918 (1, 't', 1283, 'Backorder quantity', 'The quantity of goods that is on back-order.');
8919
8920 INSERT INTO config.global_flag (name, label, enabled)
8921     VALUES (
8922         'circ.holds.usr_not_requestor',
8923         oils_i18n_gettext(
8924             'circ.holds.usr_not_requestor',
8925             'Holds: When testing hold matrix matchpoints, use the profile group of the receiving user instead of that of the requestor (affects staff-placed holds)',
8926             'cgf',
8927             'label'
8928         ),
8929         TRUE
8930     );
8931
8932 INSERT INTO config.global_flag (name, label, enabled)
8933     VALUES (
8934         'circ.holds.empty_issuance_ok',
8935         oils_i18n_gettext(
8936             'circ.holds.empty_issuance_ok',
8937             'Holds: Allow holds on empty issuances',
8938             'cgf',
8939             'label'
8940         ),
8941         TRUE
8942     );
8943
8944 INSERT INTO config.global_flag (name, label) -- defaults to enabled=FALSE
8945     VALUES (
8946         'ingest.disable_authority_linking',
8947         oils_i18n_gettext(
8948             'ingest.disable_authority_linking',
8949             'Authority Automation: Disable bib-authority link tracking',
8950             'cgf', 
8951             'label'
8952         )
8953     );
8954
8955 INSERT INTO config.global_flag (name, label) -- defaults to enabled=FALSE
8956     VALUES (
8957         'ingest.disable_authority_auto_update',
8958         oils_i18n_gettext(
8959             'ingest.disable_authority_auto_update',
8960             'Authority Automation: Disable automatic authority updating (requires link tracking)',
8961             'cgf', 
8962             'label'
8963         )
8964     );
8965
8966 INSERT INTO config.global_flag (name, label, enabled)
8967     VALUES (
8968         'cat.bib.use_id_for_tcn',
8969         oils_i18n_gettext(
8970             'cat.bib.use_id_for_tcn',
8971             'Cat: Use Internal ID for TCN Value',
8972             'cgf', 
8973             'label'
8974         ),
8975         TRUE
8976     );
8977
8978 INSERT INTO config.global_flag (name,label,enabled)
8979     VALUES (
8980         'history.circ.retention_age',
8981         oils_i18n_gettext('history.circ.retention_age', 'Historical Circulation Retention Age', 'cgf', 'label'),
8982         TRUE
8983     ),(
8984         'history.circ.retention_count',
8985         oils_i18n_gettext('history.circ.retention_count', 'Historical Circulations per Copy', 'cgf', 'label'),
8986         TRUE
8987     );
8988
8989 INSERT INTO config.global_flag (name, label, enabled)
8990     VALUES (
8991         'cat.maintain_control_numbers',
8992         oils_i18n_gettext(
8993             'cat.maintain_control_numbers',
8994             'Cat: Maintain 001/003/035 according to the MARC21 specification',
8995             'cgf', 
8996             'label'
8997         ),
8998         TRUE
8999     );
9000
9001 INSERT INTO config.global_flag (name, label, enabled)
9002     VALUES (
9003         'circ.opac_renewal.use_original_circ_lib',
9004         oils_i18n_gettext(
9005             'circ.opac_renewal.use_original_circ_lib',
9006             'Circ: Use original circulation library on opac renewal instead of user home library',
9007             'cgf',
9008             'label'
9009         ),
9010         FALSE
9011     );
9012
9013 INSERT INTO config.global_flag (name, label, value, enabled)
9014     VALUES (
9015         'opac.use_autosuggest',
9016         oils_i18n_gettext(
9017             'opac.use_autosuggest',
9018             'OPAC: Show auto-completing suggestions dialog under basic search box (put ''opac_visible'' into the value field to limit suggestions to OPAC-visible items, or blank the field for a possible performance improvement)',
9019             'cgf',
9020             'label'
9021         ),
9022         'opac_visible',
9023         TRUE
9024     );
9025
9026
9027 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
9028     VALUES (
9029         'history.circ.retention_age',
9030         TRUE,
9031         oils_i18n_gettext('history.circ.retention_age','Historical Circulation Retention Age','cust','label'),
9032         oils_i18n_gettext('history.circ.retention_age','Historical Circulation Retention Age','cust','description'),
9033         'interval'
9034     ),(
9035         'history.circ.retention_start',
9036         FALSE,
9037         oils_i18n_gettext('history.circ.retention_start','Historical Circulation Retention Start Date','cust','label'),
9038         oils_i18n_gettext('history.circ.retention_start','Historical Circulation Retention Start Date','cust','description'),
9039         'date'
9040     );
9041
9042 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
9043     VALUES (
9044         'history.hold.retention_age',
9045         TRUE,
9046         oils_i18n_gettext('history.hold.retention_age','Historical Hold Retention Age','cust','label'),
9047         oils_i18n_gettext('history.hold.retention_age','Historical Hold Retention Age','cust','description'),
9048         'interval'
9049     ),(
9050         'history.hold.retention_start',
9051         TRUE,
9052         oils_i18n_gettext('history.hold.retention_start','Historical Hold Retention Start Date','cust','label'),
9053         oils_i18n_gettext('history.hold.retention_start','Historical Hold Retention Start Date','cust','description'),
9054         'interval'
9055     ),(
9056         'history.hold.retention_count',
9057         TRUE,
9058         oils_i18n_gettext('history.hold.retention_count','Historical Hold Retention Count','cust','label'),
9059         oils_i18n_gettext('history.hold.retention_count','Historical Hold Retention Count','cust','description'),
9060         'integer'
9061     );
9062
9063 -- 0311.data.query-seed-datatypes.sql
9064 -- Define the most common datatypes in query.datatype.  Note that none of
9065 -- these stock datatypes specifies a width or precision.
9066
9067 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9068   VALUES (1, 'SMALLINT', true);
9069  
9070 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9071   VALUES (2, 'INTEGER', true);
9072  
9073 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9074   VALUES (3, 'BIGINT', true);
9075  
9076 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9077   VALUES (4, 'DECIMAL', true);
9078  
9079 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9080   VALUES (5, 'NUMERIC', true);
9081  
9082 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9083   VALUES (6, 'REAL', true);
9084  
9085 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9086   VALUES (7, 'DOUBLE PRECISION', true);
9087  
9088 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9089   VALUES (8, 'SERIAL', true);
9090  
9091 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9092   VALUES (9, 'BIGSERIAL', true);
9093  
9094 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9095   VALUES (10, 'MONEY', false);
9096  
9097 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9098   VALUES (11, 'VARCHAR', false);
9099  
9100 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9101   VALUES (12, 'CHAR', false);
9102  
9103 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9104   VALUES (13, 'TEXT', false);
9105  
9106 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9107   VALUES (14, '"char"', false);
9108  
9109 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9110   VALUES (15, 'NAME', false);
9111  
9112 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9113   VALUES (16, 'BYTEA', false);
9114  
9115 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9116   VALUES (17, 'TIMESTAMP WITHOUT TIME ZONE', false);
9117  
9118 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9119   VALUES (18, 'TIMESTAMP WITH TIME ZONE', false);
9120  
9121 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9122   VALUES (19, 'DATE', false);
9123  
9124 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9125   VALUES (20, 'TIME WITHOUT TIME ZONE', false);
9126  
9127 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9128   VALUES (21, 'TIME WITH TIME ZONE', false);
9129  
9130 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9131   VALUES (22, 'INTERVAL', false);
9132  
9133 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9134   VALUES (23, 'BOOLEAN', false);
9135
9136 INSERT INTO config.usr_setting_type (name, opac_visible, label, description, datatype) 
9137     VALUES (
9138         'opac.default_sort',
9139         TRUE,
9140         oils_i18n_gettext(
9141             'opac.default_sort',
9142             'OPAC Default Search Sort',
9143             'cust',
9144             'label'
9145         ),
9146         oils_i18n_gettext(
9147             'opac.default_sort',
9148             'OPAC Default Search Sort',
9149             'cust',
9150             'description'
9151         ),
9152         'string'
9153     );
9154
9155 -- 0355.data.missing_pieces_format.sql
9156
9157 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES 
9158     (   'circ.format.missing_pieces.slip.print',
9159         'circ', 
9160         oils_i18n_gettext(
9161             'circ.format.missing_pieces.slip.print',
9162             'A missing pieces slip needs to be formatted for printing.',
9163             'ath',
9164             'description'
9165         ), 
9166         FALSE
9167     )
9168     ,(  'circ.format.missing_pieces.letter.print',
9169         'circ', 
9170         oils_i18n_gettext(
9171             'circ.format.missing_pieces.letter.print',
9172             'A missing pieces patron letter needs to be formatted for printing.',
9173             'ath',
9174             'description'
9175         ), 
9176         FALSE
9177     )
9178 ;
9179
9180 INSERT INTO action_trigger.event_definition (
9181         id,
9182         active,
9183         owner,
9184         name,
9185         hook,
9186         validator,
9187         reactor,
9188         group_field,
9189         granularity,
9190         template
9191     ) VALUES (
9192         33,
9193         TRUE,
9194         1,
9195         'circ.missing_pieces.slip.print',
9196         'circ.format.missing_pieces.slip.print',
9197         'NOOP_True',
9198         'ProcessTemplate',
9199         'usr',
9200         'print-on-demand',
9201 $$
9202 [%- USE date -%]
9203 [%- SET user = target.0.usr -%]
9204 <div style="li { padding: 8px; margin 5px; }">
9205     <div>[% date.format %]</div><br/>
9206     Missing pieces for:
9207     <ol>
9208     [% FOR circ IN target %]
9209         <li>Barcode: [% circ.target_copy.barcode %] Transaction ID: [% circ.id %] Due: [% circ.due_date.format %]<br />
9210             [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
9211         </li>
9212     [% END %]
9213     </ol>
9214 </div>
9215 $$
9216     )
9217     ,(
9218         34,
9219         TRUE,
9220         1,
9221         'circ.missing_pieces.letter.print',
9222         'circ.format.missing_pieces.letter.print',
9223         'NOOP_True',
9224         'ProcessTemplate',
9225         'usr',
9226         'print-on-demand',
9227 $$
9228 [%- USE date -%]
9229 [%- SET user = target.0.usr -%]
9230 [% date.format %]
9231 Dear [% user.prefix %] [% user.first_given_name %] [% user.family_name %],
9232
9233 We are missing pieces for the following returned items:
9234 [% FOR circ IN target %]
9235 Barcode: [% circ.target_copy.barcode %] Transaction ID: [% circ.id %] Due: [% circ.due_date.format %]
9236 [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
9237 [% END %]
9238
9239 Please return these pieces as soon as possible.
9240
9241 Thanks!
9242
9243 Library Staff
9244 $$
9245     )
9246 ;
9247
9248 INSERT INTO action_trigger.environment (
9249         event_def,
9250         path
9251     ) VALUES -- for fleshing circ objects
9252          ( 33, 'usr')
9253         ,( 33, 'target_copy')
9254         ,( 33, 'target_copy.circ_lib')
9255         ,( 33, 'target_copy.circ_lib.mailing_address')
9256         ,( 33, 'target_copy.circ_lib.billing_address')
9257         ,( 33, 'target_copy.call_number')
9258         ,( 33, 'target_copy.call_number.owning_lib')
9259         ,( 33, 'target_copy.call_number.owning_lib.mailing_address')
9260         ,( 33, 'target_copy.call_number.owning_lib.billing_address')
9261         ,( 33, 'circ_lib')
9262         ,( 33, 'circ_lib.mailing_address')
9263         ,( 33, 'circ_lib.billing_address')
9264         ,( 34, 'usr')
9265         ,( 34, 'target_copy')
9266         ,( 34, 'target_copy.circ_lib')
9267         ,( 34, 'target_copy.circ_lib.mailing_address')
9268         ,( 34, 'target_copy.circ_lib.billing_address')
9269         ,( 34, 'target_copy.call_number')
9270         ,( 34, 'target_copy.call_number.owning_lib')
9271         ,( 34, 'target_copy.call_number.owning_lib.mailing_address')
9272         ,( 34, 'target_copy.call_number.owning_lib.billing_address')
9273         ,( 34, 'circ_lib')
9274         ,( 34, 'circ_lib.mailing_address')
9275         ,( 34, 'circ_lib.billing_address')
9276 ;
9277
9278 -- 0384.data.hold_pull_list_template.sql
9279
9280 INSERT INTO action_trigger.hook (key,core_type,description,passive) 
9281     VALUES (   
9282         'ahr.format.pull_list',
9283         'ahr', 
9284         oils_i18n_gettext(
9285             'ahr.format.pull_list',
9286             'Format holds pull list for printing',
9287             'ath',
9288             'description'
9289         ), 
9290         FALSE
9291     );
9292
9293 INSERT INTO action_trigger.event_definition (
9294         id,
9295         active,
9296         owner,
9297         name,
9298         hook,
9299         validator,
9300         reactor,
9301         group_field,
9302         granularity,
9303         template
9304     ) VALUES (
9305         35,
9306         TRUE,
9307         1,
9308         'Holds Pull List',
9309         'ahr.format.pull_list',
9310         'NOOP_True',
9311         'ProcessTemplate',
9312         'pickup_lib',
9313         'print-on-demand',
9314 $$
9315 [%- USE date -%]
9316 <style>
9317     table { border-collapse: collapse; }
9318     td { padding: 5px; border-bottom: 1px solid #888; }
9319     th { font-weight: bold; }
9320 </style>
9321 [%
9322     # Sort the holds into copy-location buckets
9323     # In the main print loop, sort each bucket by callnumber before printing
9324     SET holds_list = [];
9325     SET loc_data = [];
9326     SET current_location = target.0.current_copy.location.id;
9327     FOR hold IN target;
9328         IF current_location != hold.current_copy.location.id;
9329             SET current_location = hold.current_copy.location.id;
9330             holds_list.push(loc_data);
9331             SET loc_data = [];
9332         END;
9333         SET hold_data = {
9334             'hold' => hold,
9335             'callnumber' => hold.current_copy.call_number.label
9336         };
9337         loc_data.push(hold_data);
9338     END;
9339     holds_list.push(loc_data)
9340 %]
9341 <table>
9342     <thead>
9343         <tr>
9344             <th>Title</th>
9345             <th>Author</th>
9346             <th>Shelving Location</th>
9347             <th>Call Number</th>
9348             <th>Barcode/Part</th>
9349             <th>Patron</th>
9350         </tr>
9351     </thead>
9352     <tbody>
9353     [% FOR loc_data IN holds_list  %]
9354         [% FOR hold_data IN loc_data.sort('callnumber') %]
9355             [%
9356                 SET hold = hold_data.hold;
9357                 SET copy_data = helpers.get_copy_bib_basics(hold.current_copy.id);
9358             %]
9359             <tr>
9360                 <td>[% copy_data.title | truncate %]</td>
9361                 <td>[% copy_data.author | truncate %]</td>
9362                 <td>[% hold.current_copy.location.name %]</td>
9363                 <td>[% hold.current_copy.call_number.label %]</td>
9364                 <td>[% hold.current_copy.barcode %]
9365                     [% FOR part IN hold.current_copy.parts %]
9366                        [% part.part.label %]
9367                     [% END %]
9368                 </td>
9369                 <td>[% hold.usr.card.barcode %]</td>
9370             </tr>
9371         [% END %]
9372     [% END %]
9373     <tbody>
9374 </table>
9375 $$
9376 );
9377
9378 INSERT INTO action_trigger.environment (
9379         event_def,
9380         path
9381     ) VALUES
9382         (35, 'current_copy.location'),
9383         (35, 'current_copy.call_number'),
9384         (35, 'usr.card'),
9385         (35, 'pickup_lib'),
9386         (35, 'current_copy.parts'),
9387         (35, 'current_copy.parts.part')
9388 ;
9389
9390 -- 0412.data.trigger.validator.HoldIsCancelled.sql
9391
9392 INSERT INTO action_trigger.validator (module, description) VALUES (
9393     'HoldIsCancelled',
9394     oils_i18n_gettext(
9395         'HoldIsCancelled',
9396         'Check whether a hold request is cancelled.',
9397         'atval',
9398         'description'
9399     )
9400 );
9401
9402 -- 0448.data.trigger.circ.staff_age_to_lost.sql
9403
9404 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES 
9405     (   'circ.staff_age_to_lost',
9406         'circ', 
9407         oils_i18n_gettext(
9408             'circ.staff_age_to_lost',
9409             'An overdue circulation should be aged to a Lost status.',
9410             'ath',
9411             'description'
9412         ), 
9413         TRUE
9414     )
9415 ;
9416
9417 INSERT INTO action_trigger.event_definition (
9418         id,
9419         active,
9420         owner,
9421         name,
9422         hook,
9423         validator,
9424         reactor,
9425         delay_field
9426     ) VALUES (
9427         36,
9428         FALSE,
9429         1,
9430         'circ.staff_age_to_lost',
9431         'circ.staff_age_to_lost',
9432         'CircIsOverdue',
9433         'MarkItemLost',
9434         'due_date'
9435     )
9436 ;
9437
9438 INSERT INTO action_trigger.hook (key,core_type,description)
9439     VALUES ('circ.recall.target', 'circ', 'A checked-out copy has been recalled for a hold.');
9440
9441 INSERT INTO action_trigger.event_definition (id, owner, name, hook, validator, reactor, group_field, template)
9442     VALUES (37, 1, 'Item Recall Email Notice', 'circ.recall.target', 'NOOP_True', 'SendEmail', 'usr', 
9443 $$
9444 [%- USE date -%]
9445 [%- user = target.0.usr -%]
9446 To: [%- params.recipient_email || user.email %]
9447 From: [%- params.sender_email || default_sender %]
9448 Subject: Item Recall Notification 
9449
9450 Dear [% user.family_name %], [% user.first_given_name %]
9451
9452 The following item which you have checked out has been recalled so that
9453 another patron can have access to the item:
9454
9455 [% FOR circ IN target %]
9456     Title: [% circ.target_copy.call_number.record.simple_record.title %] 
9457     Barcode: [% circ.target_copy.barcode %] 
9458     Now Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
9459     Library: [% circ.circ_lib.name %]
9460
9461     If this item is not returned by the new due date, fines will be assessed at
9462     the rate of [% circ.recurring_fine %] every [% circ.fine_interval %].
9463 [% END %]
9464 $$
9465 );
9466
9467 INSERT INTO action_trigger.environment (event_def, path) VALUES
9468     (37, 'target_copy.call_number.record.simple_record'),
9469     (37, 'usr'),
9470     (37, 'circ_lib.billing_address')
9471 ;
9472
9473 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'general.unknown', oils_i18n_gettext('general.unknown', 'Import or Overlay failed', 'vie', 'description') );
9474 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.item.duplicate.barcode', oils_i18n_gettext('import.item.duplicate.barcode', 'Import failed due to barcode collision', 'vie', 'description') );
9475 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.item.invalid.circ_modifier', oils_i18n_gettext('import.item.invalid.circ_modifier', 'Import failed due to invalid circulation modifier', 'vie', 'description') );
9476 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.item.invalid.location', oils_i18n_gettext('import.item.invalid.location', 'Import failed due to invalid copy location', 'vie', 'description') );
9477 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.duplicate.sysid', oils_i18n_gettext('import.duplicate.sysid', 'Import failed due to system id collision', 'vie', 'description') );
9478 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.duplicate.tcn', oils_i18n_gettext('import.duplicate.sysid', 'Import failed due to system id collision', 'vie', 'description') );
9479 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'overlay.missing.sysid', oils_i18n_gettext('overlay.missing.sysid', 'Overlay failed due to missing system id', 'vie', 'description') );
9480 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.auth.duplicate.acn', oils_i18n_gettext('import.auth.duplicate.acn', 'Import failed due to Accession Number collision', 'vie', 'description') );
9481 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.xml.malformed', oils_i18n_gettext('import.xml.malformed', 'Malformed record cause Import failure', 'vie', 'description') );
9482 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'overlay.xml.malformed', oils_i18n_gettext('overlay.xml.malformed', 'Malformed record cause Overlay failure', 'vie', 'description') );
9483 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'overlay.record.quality', oils_i18n_gettext('overlay.record.quality', 'New record had insufficient quality', 'vie', 'description') );
9484
9485 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9486     'import.item.invalid.status', oils_i18n_gettext('import.item.invalid.status', 'Invalid value for "status"', 'vie', 'description') );
9487 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9488     'import.item.invalid.price', oils_i18n_gettext('import.item.invalid.price', 'Invalid value for "price"', 'vie', 'description') );
9489 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9490     'import.item.invalid.deposit_amount', oils_i18n_gettext('import.item.invalid.deposit_amount', 'Invalid value for "deposit_amount"', 'vie', 'description') );
9491 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9492     'import.item.invalid.owning_lib', oils_i18n_gettext('import.item.invalid.owning_lib', 'Invalid value for "owning_lib"', 'vie', 'description') );
9493 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9494     'import.item.invalid.circ_lib', oils_i18n_gettext('import.item.invalid.circ_lib', 'Invalid value for "circ_lib"', 'vie', 'description') );
9495 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9496     'import.item.invalid.copy_number', oils_i18n_gettext('import.item.invalid.copy_number', 'Invalid value for "copy_number"', 'vie', 'description') );
9497 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9498     'import.item.invalid.circ_as_type', oils_i18n_gettext('import.item.invalid.circ_as_type', 'Invalid value for "circ_as_type"', 'vie', 'description') );
9499 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9500     'import.record.perm_failure', oils_i18n_gettext('import.record.perm_failure', 'Perm failure creating a record', 'vie', 'description') );
9501
9502 -- Event def for email notice for hold cancelled due to lack of target -----
9503
9504 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, template)
9505     VALUES (38, FALSE, 1, 
9506         'Hold Cancelled (No Target) Email Notification', 
9507         'hold_request.cancel.expire_no_target', 
9508         'HoldIsCancelled', 'SendEmail', '30 minutes', 'cancel_time', 'usr',
9509 $$
9510 [%- USE date -%]
9511 [%- user = target.0.usr -%]
9512 To: [%- params.recipient_email || user.email %]
9513 From: [%- params.sender_email || default_sender %]
9514 Subject: Hold Request Cancelled
9515
9516 Dear [% user.family_name %], [% user.first_given_name %]
9517 The following holds were cancelled because no items were found to fullfil the hold.
9518
9519 [% FOR hold IN target %]
9520     Title: [% hold.bib_rec.bib_record.simple_record.title %]
9521     Author: [% hold.bib_rec.bib_record.simple_record.author %]
9522     Library: [% hold.pickup_lib.name %]
9523     Request Date: [% date.format(helpers.format_date(hold.rrequest_time), '%Y-%m-%d') %]
9524 [% END %]
9525
9526 $$);
9527
9528 INSERT INTO action_trigger.environment (event_def, path) VALUES
9529     (38, 'usr'),
9530     (38, 'pickup_lib'),
9531     (38, 'bib_rec.bib_record.simple_record');
9532
9533 INSERT INTO action_trigger.event_params (event_def, param, value)
9534     VALUES (38, 'check_email_notify', 1);
9535
9536 ----------------------------------------------------------------
9537 -- Seed data for queued record/item exports
9538 ----------------------------------------------------------------
9539
9540 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
9541         'vandelay.queued_bib_record.print',
9542         'vqbr', 
9543         oils_i18n_gettext(
9544             'vandelay.queued_bib_record.print',
9545             'Print output has been requested for records in an Importer Bib Queue.',
9546             'ath',
9547             'description'
9548         ), 
9549         FALSE
9550     )
9551     ,(
9552         'vandelay.queued_bib_record.csv',
9553         'vqbr', 
9554         oils_i18n_gettext(
9555             'vandelay.queued_bib_record.csv',
9556             'CSV output has been requested for records in an Importer Bib Queue.',
9557             'ath',
9558             'description'
9559         ), 
9560         FALSE
9561     )
9562     ,(
9563         'vandelay.queued_bib_record.email',
9564         'vqbr', 
9565         oils_i18n_gettext(
9566             'vandelay.queued_bib_record.email',
9567             'An email has been requested for records in an Importer Bib Queue.',
9568             'ath',
9569             'description'
9570         ), 
9571         FALSE
9572     )
9573     ,(
9574         'vandelay.queued_auth_record.print',
9575         'vqar', 
9576         oils_i18n_gettext(
9577             'vandelay.queued_auth_record.print',
9578             'Print output has been requested for records in an Importer Authority Queue.',
9579             'ath',
9580             'description'
9581         ), 
9582         FALSE
9583     )
9584     ,(
9585         'vandelay.queued_auth_record.csv',
9586         'vqar', 
9587         oils_i18n_gettext(
9588             'vandelay.queued_auth_record.csv',
9589             'CSV output has been requested for records in an Importer Authority Queue.',
9590             'ath',
9591             'description'
9592         ), 
9593         FALSE
9594     )
9595     ,(
9596         'vandelay.queued_auth_record.email',
9597         'vqar', 
9598         oils_i18n_gettext(
9599             'vandelay.queued_auth_record.email',
9600             'An email has been requested for records in an Importer Authority Queue.',
9601             'ath',
9602             'description'
9603         ), 
9604         FALSE
9605     )
9606     ,(
9607         'vandelay.import_items.print',
9608         'vii', 
9609         oils_i18n_gettext(
9610             'vandelay.import_items.print',
9611             'Print output has been requested for Import Items from records in an Importer Bib Queue.',
9612             'ath',
9613             'description'
9614         ), 
9615         FALSE
9616     )
9617     ,(
9618         'vandelay.import_items.csv',
9619         'vii', 
9620         oils_i18n_gettext(
9621             'vandelay.import_items.csv',
9622             'CSV output has been requested for Import Items from records in an Importer Bib Queue.',
9623             'ath',
9624             'description'
9625         ), 
9626         FALSE
9627     )
9628     ,(
9629         'vandelay.import_items.email',
9630         'vii', 
9631         oils_i18n_gettext(
9632             'vandelay.import_items.email',
9633             'An email has been requested for Import Items from records in an Importer Bib Queue.',
9634             'ath',
9635             'description'
9636         ), 
9637         FALSE
9638     )
9639 ;
9640
9641 INSERT INTO action_trigger.event_definition (
9642         id,
9643         active,
9644         owner,
9645         name,
9646         hook,
9647         validator,
9648         reactor,
9649         group_field,
9650         granularity,
9651         template
9652     ) VALUES (
9653         39,
9654         TRUE,
9655         1,
9656         'Print Output for Queued Bib Records',
9657         'vandelay.queued_bib_record.print',
9658         'NOOP_True',
9659         'ProcessTemplate',
9660         'queue.owner',
9661         'print-on-demand',
9662 $$
9663 [%- USE date -%]
9664 <pre>
9665 Queue ID: [% target.0.queue.id %]
9666 Queue Name: [% target.0.queue.name %]
9667 Queue Type: [% target.0.queue.queue_type %]
9668 Complete? [% target.0.queue.complete %]
9669
9670     [% FOR vqbr IN target %]
9671 =-=-=
9672  Title of work    | [% helpers.get_queued_bib_attr('title',vqbr.attributes) %]
9673  Author of work   | [% helpers.get_queued_bib_attr('author',vqbr.attributes) %]
9674  Language of work | [% helpers.get_queued_bib_attr('language',vqbr.attributes) %]
9675  Pagination       | [% helpers.get_queued_bib_attr('pagination',vqbr.attributes) %]
9676  ISBN             | [% helpers.get_queued_bib_attr('isbn',vqbr.attributes) %]
9677  ISSN             | [% helpers.get_queued_bib_attr('issn',vqbr.attributes) %]
9678  Price            | [% helpers.get_queued_bib_attr('price',vqbr.attributes) %]
9679  Accession Number | [% helpers.get_queued_bib_attr('rec_identifier',vqbr.attributes) %]
9680  TCN Value        | [% helpers.get_queued_bib_attr('eg_tcn',vqbr.attributes) %]
9681  TCN Source       | [% helpers.get_queued_bib_attr('eg_tcn_source',vqbr.attributes) %]
9682  Internal ID      | [% helpers.get_queued_bib_attr('eg_identifier',vqbr.attributes) %]
9683  Publisher        | [% helpers.get_queued_bib_attr('publisher',vqbr.attributes) %]
9684  Publication Date | [% helpers.get_queued_bib_attr('pubdate',vqbr.attributes) %]
9685  Edition          | [% helpers.get_queued_bib_attr('edition',vqbr.attributes) %]
9686  Item Barcode     | [% helpers.get_queued_bib_attr('item_barcode',vqbr.attributes) %]
9687  Import Error     | [% vqbr.import_error %]
9688  Error Detail     | [% vqbr.error_detail %]
9689  Match Count      | [% vqbr.matches.size %]
9690
9691     [% END %]
9692 </pre>
9693 $$
9694     )
9695 ;
9696
9697 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9698     39, 'attributes')
9699     ,( 39, 'queue')
9700     ,( 39, 'matches')
9701 ;
9702
9703 INSERT INTO action_trigger.event_definition (
9704         id,
9705         active,
9706         owner,
9707         name,
9708         hook,
9709         validator,
9710         reactor,
9711         group_field,
9712         granularity,
9713         template
9714     ) VALUES (
9715         40,
9716         TRUE,
9717         1,
9718         'CSV Output for Queued Bib Records',
9719         'vandelay.queued_bib_record.csv',
9720         'NOOP_True',
9721         'ProcessTemplate',
9722         'queue.owner',
9723         'print-on-demand',
9724 $$
9725 [%- USE date -%]
9726 "Title of work","Author of work","Language of work","Pagination","ISBN","ISSN","Price","Accession Number","TCN Value","TCN Source","Internal ID","Publisher","Publication Date","Edition","Item Barcode","Import Error","Error Detail","Match Count"
9727 [% FOR vqbr IN target %]"[% helpers.get_queued_bib_attr('title',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('author',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('language',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('pagination',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('isbn',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('issn',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('price',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('rec_identifier',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('eg_tcn',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('eg_tcn_source',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('eg_identifier',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('publisher',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('pubdate',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('edition',vqbr.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('item_barcode',vqbr.attributes) | replace('"', '""') %]","[% vqbr.import_error | replace('"', '""') %]","[% vqbr.error_detail | replace('"', '""') %]","[% vqbr.matches.size %]"
9728 [% END %]
9729 $$
9730     )
9731 ;
9732
9733 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9734     40, 'attributes')
9735     ,( 40, 'queue')
9736     ,( 40, 'matches')
9737 ;
9738
9739 INSERT INTO action_trigger.event_definition (
9740         id,
9741         active,
9742         owner,
9743         name,
9744         hook,
9745         validator,
9746         reactor,
9747         group_field,
9748         granularity,
9749         template
9750     ) VALUES (
9751         41,
9752         TRUE,
9753         1,
9754         'Email Output for Queued Bib Records',
9755         'vandelay.queued_bib_record.email',
9756         'NOOP_True',
9757         'SendEmail',
9758         'queue.owner',
9759         NULL,
9760 $$
9761 [%- USE date -%]
9762 [%- SET user = target.0.queue.owner -%]
9763 To: [%- params.recipient_email || user.email || 'root@localhost' %]
9764 From: [%- params.sender_email || default_sender %]
9765 Subject: Bibs from Import Queue
9766
9767 Queue ID: [% target.0.queue.id %]
9768 Queue Name: [% target.0.queue.name %]
9769 Queue Type: [% target.0.queue.queue_type %]
9770 Complete? [% target.0.queue.complete %]
9771
9772     [% FOR vqbr IN target %]
9773 =-=-=
9774  Title of work    | [% helpers.get_queued_bib_attr('title',vqbr.attributes) %]
9775  Author of work   | [% helpers.get_queued_bib_attr('author',vqbr.attributes) %]
9776  Language of work | [% helpers.get_queued_bib_attr('language',vqbr.attributes) %]
9777  Pagination       | [% helpers.get_queued_bib_attr('pagination',vqbr.attributes) %]
9778  ISBN             | [% helpers.get_queued_bib_attr('isbn',vqbr.attributes) %]
9779  ISSN             | [% helpers.get_queued_bib_attr('issn',vqbr.attributes) %]
9780  Price            | [% helpers.get_queued_bib_attr('price',vqbr.attributes) %]
9781  Accession Number | [% helpers.get_queued_bib_attr('rec_identifier',vqbr.attributes) %]
9782  TCN Value        | [% helpers.get_queued_bib_attr('eg_tcn',vqbr.attributes) %]
9783  TCN Source       | [% helpers.get_queued_bib_attr('eg_tcn_source',vqbr.attributes) %]
9784  Internal ID      | [% helpers.get_queued_bib_attr('eg_identifier',vqbr.attributes) %]
9785  Publisher        | [% helpers.get_queued_bib_attr('publisher',vqbr.attributes) %]
9786  Publication Date | [% helpers.get_queued_bib_attr('pubdate',vqbr.attributes) %]
9787  Edition          | [% helpers.get_queued_bib_attr('edition',vqbr.attributes) %]
9788  Item Barcode     | [% helpers.get_queued_bib_attr('item_barcode',vqbr.attributes) %]
9789
9790     [% END %]
9791
9792 $$
9793     )
9794 ;
9795
9796 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9797     41, 'attributes')
9798     ,( 41, 'queue')
9799     ,( 41, 'queue.owner')
9800 ;
9801
9802 INSERT INTO action_trigger.event_definition (
9803         id,
9804         active,
9805         owner,
9806         name,
9807         hook,
9808         validator,
9809         reactor,
9810         group_field,
9811         granularity,
9812         template
9813     ) VALUES (
9814         42,
9815         TRUE,
9816         1,
9817         'Print Output for Queued Authority Records',
9818         'vandelay.queued_auth_record.print',
9819         'NOOP_True',
9820         'ProcessTemplate',
9821         'queue.owner',
9822         'print-on-demand',
9823 $$
9824 [%- USE date -%]
9825 <pre>
9826 Queue ID: [% target.0.queue.id %]
9827 Queue Name: [% target.0.queue.name %]
9828 Queue Type: [% target.0.queue.queue_type %]
9829 Complete? [% target.0.queue.complete %]
9830
9831     [% FOR vqar IN target %]
9832 =-=-=
9833  Record Identifier | [% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) %]
9834
9835     [% END %]
9836 </pre>
9837 $$
9838     )
9839 ;
9840
9841 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9842     42, 'attributes')
9843     ,( 42, 'queue')
9844 ;
9845
9846 INSERT INTO action_trigger.event_definition (
9847         id,
9848         active,
9849         owner,
9850         name,
9851         hook,
9852         validator,
9853         reactor,
9854         group_field,
9855         granularity,
9856         template
9857     ) VALUES (
9858         43,
9859         TRUE,
9860         1,
9861         'CSV Output for Queued Authority Records',
9862         'vandelay.queued_auth_record.csv',
9863         'NOOP_True',
9864         'ProcessTemplate',
9865         'queue.owner',
9866         'print-on-demand',
9867 $$
9868 [%- USE date -%]
9869 "Record Identifier"
9870 [% FOR vqar IN target %]"[% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) | replace('"', '""') %]"
9871 [% END %]
9872 $$
9873     )
9874 ;
9875
9876 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9877     43, 'attributes')
9878     ,( 43, 'queue')
9879 ;
9880
9881 INSERT INTO action_trigger.event_definition (
9882         id,
9883         active,
9884         owner,
9885         name,
9886         hook,
9887         validator,
9888         reactor,
9889         group_field,
9890         granularity,
9891         template
9892     ) VALUES (
9893         44,
9894         TRUE,
9895         1,
9896         'Email Output for Queued Authority Records',
9897         'vandelay.queued_auth_record.email',
9898         'NOOP_True',
9899         'SendEmail',
9900         'queue.owner',
9901         NULL,
9902 $$
9903 [%- USE date -%]
9904 [%- SET user = target.0.queue.owner -%]
9905 To: [%- params.recipient_email || user.email || 'root@localhost' %]
9906 From: [%- params.sender_email || default_sender %]
9907 Subject: Authorities from Import Queue
9908
9909 Queue ID: [% target.0.queue.id %]
9910 Queue Name: [% target.0.queue.name %]
9911 Queue Type: [% target.0.queue.queue_type %]
9912 Complete? [% target.0.queue.complete %]
9913
9914     [% FOR vqar IN target %]
9915 =-=-=
9916  Record Identifier | [% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) %]
9917
9918     [% END %]
9919
9920 $$
9921     )
9922 ;
9923
9924 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9925     44, 'attributes')
9926     ,( 44, 'queue')
9927     ,( 44, 'queue.owner')
9928 ;
9929
9930 INSERT INTO action_trigger.event_definition (
9931         id,
9932         active,
9933         owner,
9934         name,
9935         hook,
9936         validator,
9937         reactor,
9938         group_field,
9939         granularity,
9940         template
9941     ) VALUES (
9942         45,
9943         TRUE,
9944         1,
9945         'Print Output for Import Items from Queued Bib Records',
9946         'vandelay.import_items.print',
9947         'NOOP_True',
9948         'ProcessTemplate',
9949         'record.queue.owner',
9950         'print-on-demand',
9951 $$
9952 [%- USE date -%]
9953 <pre>
9954 Queue ID: [% target.0.record.queue.id %]
9955 Queue Name: [% target.0.record.queue.name %]
9956 Queue Type: [% target.0.record.queue.queue_type %]
9957 Complete? [% target.0.record.queue.complete %]
9958
9959     [% FOR vii IN target %]
9960 =-=-=
9961  Import Item ID         | [% vii.id %]
9962  Title of work          | [% helpers.get_queued_bib_attr('title',vii.record.attributes) %]
9963  ISBN                   | [% helpers.get_queued_bib_attr('isbn',vii.record.attributes) %]
9964  Attribute Definition   | [% vii.definition %]
9965  Import Error           | [% vii.import_error %]
9966  Import Error Detail    | [% vii.error_detail %]
9967  Owning Library         | [% vii.owning_lib %]
9968  Circulating Library    | [% vii.circ_lib %]
9969  Call Number            | [% vii.call_number %]
9970  Copy Number            | [% vii.copy_number %]
9971  Status                 | [% vii.status.name %]
9972  Shelving Location      | [% vii.location.name %]
9973  Circulate              | [% vii.circulate %]
9974  Deposit                | [% vii.deposit %]
9975  Deposit Amount         | [% vii.deposit_amount %]
9976  Reference              | [% vii.ref %]
9977  Holdable               | [% vii.holdable %]
9978  Price                  | [% vii.price %]
9979  Barcode                | [% vii.barcode %]
9980  Circulation Modifier   | [% vii.circ_modifier %]
9981  Circulate As MARC Type | [% vii.circ_as_type %]
9982  Alert Message          | [% vii.alert_message %]
9983  Public Note            | [% vii.pub_note %]
9984  Private Note           | [% vii.priv_note %]
9985  OPAC Visible           | [% vii.opac_visible %]
9986
9987     [% END %]
9988 </pre>
9989 $$
9990     )
9991 ;
9992
9993 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9994     45, 'record')
9995     ,( 45, 'record.attributes')
9996     ,( 45, 'record.queue')
9997     ,( 45, 'record.queue.owner')
9998 ;
9999
10000 INSERT INTO action_trigger.event_definition (
10001         id,
10002         active,
10003         owner,
10004         name,
10005         hook,
10006         validator,
10007         reactor,
10008         group_field,
10009         granularity,
10010         template
10011     ) VALUES (
10012         46,
10013         TRUE,
10014         1,
10015         'CSV Output for Import Items from Queued Bib Records',
10016         'vandelay.import_items.csv',
10017         'NOOP_True',
10018         'ProcessTemplate',
10019         'record.queue.owner',
10020         'print-on-demand',
10021 $$
10022 [%- USE date -%]
10023 "Import Item ID","Title of work","ISBN","Attribute Definition","Import Error","Import Error Detail","Owning Library","Circulating Library","Call Number","Copy Number","Status","Shelving Location","Circulate","Deposit","Deposit Amount","Reference","Holdable","Price","Barcode","Circulation Modifier","Circulate As MARC Type","Alert Message","Public Note","Private Note","OPAC Visible"
10024 [% FOR vii IN target %]"[% vii.id | replace('"', '""') %]","[% helpers.get_queued_bib_attr('title',vii.record.attributes) | replace('"', '""') %]","[% helpers.get_queued_bib_attr('isbn',vii.record.attributes) | replace('"', '""') %]","[% vii.definition | replace('"', '""') %]","[% vii.import_error | replace('"', '""') %]","[% vii.error_detail | replace('"', '""') %]","[% vii.owning_lib | replace('"', '""') %]","[% vii.circ_lib | replace('"', '""') %]","[% vii.call_number | replace('"', '""') %]","[% vii.copy_number | replace('"', '""') %]","[% vii.status.name | replace('"', '""') %]","[% vii.location.name | replace('"', '""') %]","[% vii.circulate | replace('"', '""') %]","[% vii.deposit | replace('"', '""') %]","[% vii.deposit_amount | replace('"', '""') %]","[% vii.ref | replace('"', '""') %]","[% vii.holdable | replace('"', '""') %]","[% vii.price | replace('"', '""') %]","[% vii.barcode | replace('"', '""') %]","[% vii.circ_modifier | replace('"', '""') %]","[% vii.circ_as_type | replace('"', '""') %]","[% vii.alert_message | replace('"', '""') %]","[% vii.pub_note | replace('"', '""') %]","[% vii.priv_note | replace('"', '""') %]","[% vii.opac_visible | replace('"', '""') %]"
10025 [% END %]
10026 $$
10027     )
10028 ;
10029
10030 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10031     46, 'record')
10032     ,( 46, 'record.attributes')
10033     ,( 46, 'record.queue')
10034     ,( 46, 'record.queue.owner')
10035 ;
10036
10037 INSERT INTO action_trigger.event_definition (
10038         id,
10039         active,
10040         owner,
10041         name,
10042         hook,
10043         validator,
10044         reactor,
10045         group_field,
10046         granularity,
10047         template
10048     ) VALUES (
10049         47,
10050         TRUE,
10051         1,
10052         'Email Output for Import Items from Queued Bib Records',
10053         'vandelay.import_items.email',
10054         'NOOP_True',
10055         'SendEmail',
10056         'record.queue.owner',
10057         NULL,
10058 $$
10059 [%- USE date -%]
10060 [%- SET user = target.0.record.queue.owner -%]
10061 To: [%- params.recipient_email || user.email || 'root@localhost' %]
10062 From: [%- params.sender_email || default_sender %]
10063 Subject: Import Items from Import Queue
10064
10065 Queue ID: [% target.0.record.queue.id %]
10066 Queue Name: [% target.0.record.queue.name %]
10067 Queue Type: [% target.0.record.queue.queue_type %]
10068 Complete? [% target.0.record.queue.complete %]
10069
10070     [% FOR vii IN target %]
10071 =-=-=
10072  Import Item ID         | [% vii.id %]
10073  Title of work          | [% helpers.get_queued_bib_attr('title',vii.record.attributes) %]
10074  ISBN                   | [% helpers.get_queued_bib_attr('isbn',vii.record.attributes) %]
10075  Attribute Definition   | [% vii.definition %]
10076  Import Error           | [% vii.import_error %]
10077  Import Error Detail    | [% vii.error_detail %]
10078  Owning Library         | [% vii.owning_lib %]
10079  Circulating Library    | [% vii.circ_lib %]
10080  Call Number            | [% vii.call_number %]
10081  Copy Number            | [% vii.copy_number %]
10082  Status                 | [% vii.status.name %]
10083  Shelving Location      | [% vii.location.name %]
10084  Circulate              | [% vii.circulate %]
10085  Deposit                | [% vii.deposit %]
10086  Deposit Amount         | [% vii.deposit_amount %]
10087  Reference              | [% vii.ref %]
10088  Holdable               | [% vii.holdable %]
10089  Price                  | [% vii.price %]
10090  Barcode                | [% vii.barcode %]
10091  Circulation Modifier   | [% vii.circ_modifier %]
10092  Circulate As MARC Type | [% vii.circ_as_type %]
10093  Alert Message          | [% vii.alert_message %]
10094  Public Note            | [% vii.pub_note %]
10095  Private Note           | [% vii.priv_note %]
10096  OPAC Visible           | [% vii.opac_visible %]
10097
10098     [% END %]
10099 $$
10100     )
10101 ;
10102
10103 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10104     47, 'record')
10105     ,( 47, 'record.attributes')
10106     ,( 47, 'record.queue')
10107     ,( 47, 'record.queue.owner')
10108 ;
10109
10110 INSERT INTO action_trigger.hook (key, core_type, description, passive)
10111 VALUES (
10112     'container.biblio_record_entry_bucket.csv',
10113     'cbreb',
10114     oils_i18n_gettext(
10115         'container.biblio_record_entry_bucket.csv',
10116         'Produce a CSV file representing a bookbag',
10117         'ath',
10118         'description'
10119     ),
10120     FALSE
10121 );
10122
10123 INSERT INTO action_trigger.reactor (module, description)
10124 VALUES (
10125     'ContainerCSV',
10126     oils_i18n_gettext(
10127         'ContainerCSV',
10128         'Facilitates produce a CSV file representing a bookbag by introducing an "items" variable into the TT environment, sorted as dictated according to user params',
10129         'atr',
10130         'description'
10131     )
10132 );
10133
10134 INSERT INTO action_trigger.event_definition (
10135     id, active, owner,
10136     name, hook, reactor,
10137     validator, template
10138 ) VALUES (
10139     48, TRUE, 1,
10140     'Bookbag CSV', 'container.biblio_record_entry_bucket.csv', 'ContainerCSV',
10141     'NOOP_True',
10142 $$
10143 [%-
10144 # target is the bookbag itself. The 'items' variable does not need to be in
10145 # the environment because a special reactor will take care of filling it in.
10146
10147 FOR item IN items;
10148     bibxml = helpers.unapi_bre(item.target_biblio_record_entry, {flesh => '{mra}'});
10149     title = "";
10150     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
10151         title = title _ part.textContent;
10152     END;
10153     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
10154     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
10155     pub_date = "";
10156     FOR pdatum IN bibxml.findnodes('//*[@tag="260"]/*[@code="c"]');
10157         IF pub_date ;
10158             pub_date = pub_date _ ", " _ pdatum.textContent;
10159         ELSE ;
10160             pub_date = pdatum.textContent;
10161         END;
10162     END;
10163     helpers.csv_datum(title) %],[% helpers.csv_datum(author) %],[% helpers.csv_datum(pub_date) %],[% helpers.csv_datum(item_type) %],[% FOR note IN item.notes; helpers.csv_datum(note.note); ","; END; "\n";
10164 END -%]
10165 $$
10166 );
10167
10168 SELECT SETVAL('authority.control_set_id_seq'::TEXT, 100);
10169 SELECT SETVAL('authority.control_set_authority_field_id_seq'::TEXT, 1000);
10170 SELECT SETVAL('authority.control_set_bib_field_id_seq'::TEXT, 1000);
10171
10172 INSERT INTO authority.control_set (id, name, description) VALUES (
10173     1,
10174     oils_i18n_gettext('1','LoC','acs','name'),
10175     oils_i18n_gettext('1','Library of Congress standard authority record control semantics','acs','description')
10176 );
10177
10178 -- Entries that need to respect an NFI
10179 INSERT INTO authority.control_set_authority_field (id, control_set, main_entry, tag, sf_list, name, nfi) VALUES
10180     (4, 1, NULL, '130', 'adfgklmnoprstvxyz', oils_i18n_gettext('4','Heading -- Uniform Title','acsaf','name'), '2'),
10181     (24, 1, 4, '530', 'adfgiklmnoprstvwxyz4', oils_i18n_gettext('24','See Also From Tracing -- Uniform Title','acsaf','name'), '2'),
10182     (44, 1, 4, '730', 'adfghklmnoprstvwxyz25', oils_i18n_gettext('44','Established Heading Linking Entry -- Uniform Title','acsaf','name'), '2'),
10183     (64, 1, 4, '430', 'adfgiklmnoprstvwxyz4', oils_i18n_gettext('64','See Also Tracing -- Uniform Title','acsaf','name'), '2');
10184
10185 INSERT INTO authority.control_set_authority_field (id, control_set, main_entry, tag, sf_list, name) VALUES
10186
10187 -- Main entries
10188     (1, 1, NULL, '100', 'abcdefklmnopqrstvxyz', oils_i18n_gettext('1','Heading -- Personal Name','acsaf','name')),
10189     (2, 1, NULL, '110', 'abcdefgklmnoprstvxyz', oils_i18n_gettext('2','Heading -- Corporate Name','acsaf','name')),
10190     (3, 1, NULL, '111', 'acdefgklnpqstvxyz', oils_i18n_gettext('3','Heading -- Meeting Name','acsaf','name')),
10191     (5, 1, NULL, '150', 'abvxyz', oils_i18n_gettext('5','Heading -- Topical Term','acsaf','name')),
10192     (6, 1, NULL, '151', 'avxyz', oils_i18n_gettext('6','Heading -- Geographic Name','acsaf','name')),
10193     (7, 1, NULL, '155', 'avxyz', oils_i18n_gettext('7','Heading -- Genre/Form Term','acsaf','name')),
10194     (8, 1, NULL, '180', 'vxyz', oils_i18n_gettext('8','Heading -- General Subdivision','acsaf','name')),
10195     (9, 1, NULL, '181', 'vxyz', oils_i18n_gettext('9','Heading -- Geographic Subdivision','acsaf','name')),
10196     (10, 1, NULL, '182', 'vxyz', oils_i18n_gettext('10','Heading -- Chronological Subdivision','acsaf','name')),
10197     (11, 1, NULL, '185', 'vxyz', oils_i18n_gettext('11','Heading -- Form Subdivision','acsaf','name')),
10198     (12, 1, NULL, '148', 'avxyz', oils_i18n_gettext('12','Heading -- Chronological Term','acsaf','name')),
10199
10200 -- See Also From tracings
10201     (21, 1, 1, '500', 'abcdefiklmnopqrstvwxyz4', oils_i18n_gettext('21','See Also From Tracing -- Personal Name','acsaf','name')),
10202     (22, 1, 2, '510', 'abcdefgiklmnoprstvwxyz4', oils_i18n_gettext('22','See Also From Tracing -- Corporate Name','acsaf','name')),
10203     (23, 1, 3, '511', 'acdefgiklnpqstvwxyz4', oils_i18n_gettext('23','See Also From Tracing -- Meeting Name','acsaf','name')),
10204     (25, 1, 5, '550', 'abivwxyz4', oils_i18n_gettext('25','See Also From Tracing -- Topical Term','acsaf','name')),
10205     (26, 1, 6, '551', 'aivwxyz4', oils_i18n_gettext('26','See Also From Tracing -- Geographic Name','acsaf','name')),
10206     (27, 1, 7, '555', 'aivwxyz4', oils_i18n_gettext('27','See Also From Tracing -- Genre/Form Term','acsaf','name')),
10207     (28, 1, 8, '580', 'ivwxyz4', oils_i18n_gettext('28','See Also From Tracing -- General Subdivision','acsaf','name')),
10208     (29, 1, 9, '581', 'ivwxyz4', oils_i18n_gettext('29','See Also From Tracing -- Geographic Subdivision','acsaf','name')),
10209     (30, 1, 10, '582', 'ivwxyz4', oils_i18n_gettext('30','See Also From Tracing -- Chronological Subdivision','acsaf','name')),
10210     (31, 1, 11, '585', 'ivwxyz4', oils_i18n_gettext('31','See Also From Tracing -- Form Subdivision','acsaf','name')),
10211     (32, 1, 12, '548', 'aivwxyz4', oils_i18n_gettext('32','See Also From Tracing -- Chronological Term','acsaf','name')),
10212
10213 -- Linking entries
10214     (41, 1, 1, '700', 'abcdefghjklmnopqrstvwxyz25', oils_i18n_gettext('41','Established Heading Linking Entry -- Personal Name','acsaf','name')),
10215     (42, 1, 2, '710', 'abcdefghklmnoprstvwxyz25', oils_i18n_gettext('42','Established Heading Linking Entry -- Corporate Name','acsaf','name')),
10216     (43, 1, 3, '711', 'acdefghklnpqstvwxyz25', oils_i18n_gettext('43','Established Heading Linking Entry -- Meeting Name','acsaf','name')),
10217     (45, 1, 5, '750', 'abvwxyz25', oils_i18n_gettext('45','Established Heading Linking Entry -- Topical Term','acsaf','name')),
10218     (46, 1, 6, '751', 'avwxyz25', oils_i18n_gettext('46','Established Heading Linking Entry -- Geographic Name','acsaf','name')),
10219     (47, 1, 7, '755', 'avwxyz25', oils_i18n_gettext('47','Established Heading Linking Entry -- Genre/Form Term','acsaf','name')),
10220     (48, 1, 8, '780', 'vwxyz25', oils_i18n_gettext('48','Subdivision Linking Entry -- General Subdivision','acsaf','name')),
10221     (49, 1, 9, '781', 'vwxyz25', oils_i18n_gettext('49','Subdivision Linking Entry -- Geographic Subdivision','acsaf','name')),
10222     (50, 1, 10, '782', 'vwxyz25', oils_i18n_gettext('50','Subdivision Linking Entry -- Chronological Subdivision','acsaf','name')),
10223     (51, 1, 11, '785', 'vwxyz25', oils_i18n_gettext('51','Subdivision Linking Entry -- Form Subdivision','acsaf','name')),
10224     (52, 1, 12, '748', 'avwxyz25', oils_i18n_gettext('52','Established Heading Linking Entry -- Chronological Term','acsaf','name')),
10225
10226 -- See From tracings
10227     (61, 1, 1, '400', 'abcdefiklmnopqrstvwxyz4', oils_i18n_gettext('61','See Also Tracing -- Personal Name','acsaf','name')),
10228     (62, 1, 2, '410', 'abcdefgiklmnoprstvwxyz4', oils_i18n_gettext('62','See Also Tracing -- Corporate Name','acsaf','name')),
10229     (63, 1, 3, '411', 'acdefgiklnpqstvwxyz4', oils_i18n_gettext('63','See Also Tracing -- Meeting Name','acsaf','name')),
10230     (65, 1, 5, '450', 'abivwxyz4', oils_i18n_gettext('65','See Also Tracing -- Topical Term','acsaf','name')),
10231     (66, 1, 6, '451', 'aivwxyz4', oils_i18n_gettext('66','See Also Tracing -- Geographic Name','acsaf','name')),
10232     (67, 1, 7, '455', 'aivwxyz4', oils_i18n_gettext('67','See Also Tracing -- Genre/Form Term','acsaf','name')),
10233     (68, 1, 8, '480', 'ivwxyz4', oils_i18n_gettext('68','See Also Tracing -- General Subdivision','acsaf','name')),
10234     (69, 1, 9, '481', 'ivwxyz4', oils_i18n_gettext('69','See Also Tracing -- Geographic Subdivision','acsaf','name')),
10235     (70, 1, 10, '482', 'ivwxyz4', oils_i18n_gettext('70','See Also Tracing -- Chronological Subdivision','acsaf','name')),
10236     (71, 1, 11, '485', 'ivwxyz4', oils_i18n_gettext('71','See Also Tracing -- Form Subdivision','acsaf','name')),
10237     (72, 1, 12, '448', 'aivwxyz4', oils_i18n_gettext('72','See Also Tracing -- Chronological Term','acsaf','name'));
10238
10239 INSERT INTO authority.browse_axis (code,name,description,sorter) VALUES
10240     ('title','Title','Title axis','titlesort'),
10241     ('author','Author','Author axis','titlesort'),
10242     ('subject','Subject','Subject axis','titlesort'),
10243     ('topic','Topic','Topic Subject axis','titlesort');
10244
10245 INSERT INTO authority.browse_axis_authority_field_map (axis,field) VALUES
10246     ('author',  1 ),
10247     ('author',  2 ),
10248     ('author',  3 ),
10249     ('title',   4 ),
10250     ('topic',   5 ),
10251     ('subject', 5 ),
10252     ('subject', 6 ),
10253     ('subject', 7 ),
10254     ('subject', 12);
10255
10256 INSERT INTO authority.control_set_bib_field (tag, authority_field) 
10257     SELECT '100', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10258         UNION
10259     SELECT '600', id FROM authority.control_set_authority_field WHERE tag IN ('100','180','181','182','185')
10260         UNION
10261     SELECT '700', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10262         UNION
10263     SELECT '800', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10264         UNION
10265
10266     SELECT '110', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10267         UNION
10268     SELECT '610', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10269         UNION
10270     SELECT '710', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10271         UNION
10272     SELECT '810', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10273         UNION
10274
10275     SELECT '111', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10276         UNION
10277     SELECT '611', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10278         UNION
10279     SELECT '711', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10280         UNION
10281     SELECT '811', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10282         UNION
10283
10284     SELECT '130', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10285         UNION
10286     SELECT '240', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10287         UNION
10288     SELECT '630', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10289         UNION
10290     SELECT '730', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10291         UNION
10292     SELECT '830', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10293         UNION
10294
10295     SELECT '648', id FROM authority.control_set_authority_field WHERE tag IN ('148')
10296         UNION
10297
10298     SELECT '650', id FROM authority.control_set_authority_field WHERE tag IN ('150','180','181','182','185')
10299         UNION
10300     SELECT '651', id FROM authority.control_set_authority_field WHERE tag IN ('151','180','181','182','185')
10301         UNION
10302     SELECT '655', id FROM authority.control_set_authority_field WHERE tag IN ('155','180','181','182','185')
10303 ;
10304
10305 INSERT INTO authority.thesaurus (code, name, control_set) VALUES
10306     ('a', oils_i18n_gettext('a','Library of Congress Subject Headings','at','name'), 1),
10307     ('b', oils_i18n_gettext('b','LC subject headings for children''s literature','at','name'), 1), 
10308     ('c', oils_i18n_gettext('c','Medical Subject Headings','at','name'), 1),
10309     ('d', oils_i18n_gettext('d','National Agricultural Library subject authority file','at','name'), 1),
10310     ('k', oils_i18n_gettext('k','Canadian Subject Headings','at','name'), 1),
10311     ('n', oils_i18n_gettext('n','Not applicable','at','name'), 1),
10312     ('r', oils_i18n_gettext('r','Art and Architecture Thesaurus','at','name'), 1),
10313     ('s', oils_i18n_gettext('s','Sears List of Subject Headings','at','name'), 1),
10314     ('v', oils_i18n_gettext('v','Repertoire de vedettes-matiere','at','name'), 1),
10315     ('z', oils_i18n_gettext('z','Other','at','name'), 1),
10316     ('|', oils_i18n_gettext('|','No attempt to code','at','name'), NULL),
10317     (' ', oils_i18n_gettext(' ','Alternate no attempt to code','at','name'), NULL);
10318
10319 INSERT INTO action_trigger.hook ( key, core_type, description, passive ) VALUES (
10320     'reservation.available',
10321     'bresv',
10322     'A reservation is available for pickup',
10323     false
10324 );
10325
10326 INSERT INTO action_trigger.validator ( module, description ) VALUES (
10327     'ReservationIsAvailable',
10328     'Checked that a reserved resource is available for checkout'
10329 );
10330
10331 INSERT INTO container.biblio_record_entry_bucket_type (code, label) VALUES (
10332     'vandelay_queue',
10333     oils_i18n_gettext('vandelay_queue', 'Vandelay Queue', 'cbrebt', 'label')
10334 );
10335
10336 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype,fm_class) VALUES (
10337     'opac.default_sms_carrier',
10338     'sms',
10339     TRUE,
10340     oils_i18n_gettext(
10341         'opac.default_sms_carrier',
10342         'Default SMS/Text Carrier',
10343         'cust',
10344         'label'
10345     ),
10346     oils_i18n_gettext(
10347         'opac.default_sms_carrier',
10348         'Default SMS/Text Carrier',
10349         'cust',
10350         'description'
10351     ),
10352     'link',
10353     'csc'
10354 );
10355
10356 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10357     'opac.default_sms_notify',
10358     'sms',
10359     TRUE,
10360     oils_i18n_gettext(
10361         'opac.default_sms_notify',
10362         'Default SMS/Text Number',
10363         'cust',
10364         'label'
10365     ),
10366     oils_i18n_gettext(
10367         'opac.default_sms_notify',
10368         'Default SMS/Text Number',
10369         'cust',
10370         'description'
10371     ),
10372     'string'
10373 );
10374
10375 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10376     'opac.default_phone',
10377     'opac',
10378     TRUE,
10379     oils_i18n_gettext(
10380         'opac.default_phone',
10381         'Default Phone Number',
10382         'cust',
10383         'label'
10384     ),
10385     oils_i18n_gettext(
10386         'opac.default_phone',
10387         'Default Phone Number',
10388         'cust',
10389         'description'
10390     ),
10391     'string'
10392 );
10393
10394 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10395     'ui.grid_columns.circ.hold_pull_list',
10396     'gui',
10397     FALSE,
10398     oils_i18n_gettext(
10399         'ui.grid_columns.circ.hold_pull_list',
10400         'Hold Pull List',
10401         'cust',
10402         'label'
10403     ),
10404     oils_i18n_gettext(
10405         'ui.grid_columns.circ.hold_pull_list',
10406         'Hold Pull List Saved Column Settings',
10407         'cust',
10408         'description'
10409     ),
10410     'string'
10411 ), (
10412     'ui.grid_columns.actor.user.event_log',
10413     'gui',
10414     FALSE,
10415     oils_i18n_gettext(
10416         'ui.grid_columns.actor.user.event_log',
10417         'User Event Log',
10418         'cust',
10419         'label'
10420     ),
10421     oils_i18n_gettext(
10422         'ui.grid_columns.actor.user.event_log',
10423         'User Event Log Saved Column Settings',
10424         'cust',
10425         'description'
10426     ),
10427     'string'
10428 ) ;
10429
10430 SELECT setval( 'config.sms_carrier_id_seq', 1000 );
10431 INSERT INTO config.sms_carrier VALUES
10432
10433     -- Testing
10434     (
10435         1,
10436         oils_i18n_gettext(
10437             1,
10438             'Local',
10439             'csc',
10440             'region'
10441         ),
10442         oils_i18n_gettext(
10443             1,
10444             'Test Carrier',
10445             'csc',
10446             'name'
10447         ),
10448         'opensrf+$number@localhost',
10449         FALSE
10450     ),
10451
10452     -- Canada & USA
10453     (
10454         2,
10455         oils_i18n_gettext(
10456             2,
10457             'Canada & USA',
10458             'csc',
10459             'region'
10460         ),
10461         oils_i18n_gettext(
10462             2,
10463             'Rogers Wireless',
10464             'csc',
10465             'name'
10466         ),
10467         '$number@pcs.rogers.com',
10468         TRUE
10469     ),
10470     (
10471         3,
10472         oils_i18n_gettext(
10473             3,
10474             'Canada & USA',
10475             'csc',
10476             'region'
10477         ),
10478         oils_i18n_gettext(
10479             3,
10480             'Rogers Wireless (Alternate)',
10481             'csc',
10482             'name'
10483         ),
10484         '1$number@mms.rogers.com',
10485         TRUE
10486     ),
10487     (
10488         4,
10489         oils_i18n_gettext(
10490             4,
10491             'Canada & USA',
10492             'csc',
10493             'region'
10494         ),
10495         oils_i18n_gettext(
10496             4,
10497             'Telus Mobility',
10498             'csc',
10499             'name'
10500         ),
10501         '$number@msg.telus.com',
10502         TRUE
10503     ),
10504
10505     -- Canada
10506     (
10507         5,
10508         oils_i18n_gettext(
10509             5,
10510             'Canada',
10511             'csc',
10512             'region'
10513         ),
10514         oils_i18n_gettext(
10515             5,
10516             'Koodo Mobile',
10517             'csc',
10518             'name'
10519         ),
10520         '$number@msg.telus.com',
10521         TRUE
10522     ),
10523     (
10524         6,
10525         oils_i18n_gettext(
10526             6,
10527             'Canada',
10528             'csc',
10529             'region'
10530         ),
10531         oils_i18n_gettext(
10532             6,
10533             'Fido',
10534             'csc',
10535             'name'
10536         ),
10537         '$number@fido.ca',
10538         TRUE
10539     ),
10540     (
10541         7,
10542         oils_i18n_gettext(
10543             7,
10544             'Canada',
10545             'csc',
10546             'region'
10547         ),
10548         oils_i18n_gettext(
10549             7,
10550             'Bell Mobility & Solo Mobile',
10551             'csc',
10552             'name'
10553         ),
10554         '$number@txt.bell.ca',
10555         TRUE
10556     ),
10557     (
10558         8,
10559         oils_i18n_gettext(
10560             8,
10561             'Canada',
10562             'csc',
10563             'region'
10564         ),
10565         oils_i18n_gettext(
10566             8,
10567             'Bell Mobility & Solo Mobile (Alternate)',
10568             'csc',
10569             'name'
10570         ),
10571         '$number@txt.bellmobility.ca',
10572         TRUE
10573     ),
10574     (
10575         9,
10576         oils_i18n_gettext(
10577             9,
10578             'Canada',
10579             'csc',
10580             'region'
10581         ),
10582         oils_i18n_gettext(
10583             9,
10584             'Aliant',
10585             'csc',
10586             'name'
10587         ),
10588         '$number@sms.wirefree.informe.ca',
10589         TRUE
10590     ),
10591     (
10592         10,
10593         oils_i18n_gettext(
10594             10,
10595             'Canada',
10596             'csc',
10597             'region'
10598         ),
10599         oils_i18n_gettext(
10600             10,
10601             'PC Telecom',
10602             'csc',
10603             'name'
10604         ),
10605         '$number@mobiletxt.ca',
10606         TRUE
10607     ),
10608     (
10609         11,
10610         oils_i18n_gettext(
10611             11,
10612             'Canada',
10613             'csc',
10614             'region'
10615         ),
10616         oils_i18n_gettext(
10617             11,
10618             'SaskTel',
10619             'csc',
10620             'name'
10621         ),
10622         '$number@sms.sasktel.com',
10623         TRUE
10624     ),
10625     (
10626         12,
10627         oils_i18n_gettext(
10628             12,
10629             'Canada',
10630             'csc',
10631             'region'
10632         ),
10633         oils_i18n_gettext(
10634             12,
10635             'MTS Mobility',
10636             'csc',
10637             'name'
10638         ),
10639         '$number@text.mtsmobility.com',
10640         TRUE
10641     ),
10642     (
10643         13,
10644         oils_i18n_gettext(
10645             13,
10646             'Canada',
10647             'csc',
10648             'region'
10649         ),
10650         oils_i18n_gettext(
10651             13,
10652             'Virgin Mobile',
10653             'csc',
10654             'name'
10655         ),
10656         '$number@vmobile.ca',
10657         TRUE
10658     ),
10659
10660     -- International
10661     (
10662         14,
10663         oils_i18n_gettext(
10664             14,
10665             'International',
10666             'csc',
10667             'region'
10668         ),
10669         oils_i18n_gettext(
10670             14,
10671             'Iridium',
10672             'csc',
10673             'name'
10674         ),
10675         '$number@msg.iridium.com',
10676         TRUE
10677     ),
10678     (
10679         15,
10680         oils_i18n_gettext(
10681             15,
10682             'International',
10683             'csc',
10684             'region'
10685         ),
10686         oils_i18n_gettext(
10687             15,
10688             'Globalstar',
10689             'csc',
10690             'name'
10691         ),
10692         '$number@msg.globalstarusa.com',
10693         TRUE
10694     ),
10695     (
10696         16,
10697         oils_i18n_gettext(
10698             16,
10699             'International',
10700             'csc',
10701             'region'
10702         ),
10703         oils_i18n_gettext(
10704             16,
10705             'Bulletin.net',
10706             'csc',
10707             'name'
10708         ),
10709         '$number@bulletinmessenger.net', -- International Formatted number
10710         TRUE
10711     ),
10712     (
10713         17,
10714         oils_i18n_gettext(
10715             17,
10716             'International',
10717             'csc',
10718             'region'
10719         ),
10720         oils_i18n_gettext(
10721             17,
10722             'Panacea Mobile',
10723             'csc',
10724             'name'
10725         ),
10726         '$number@api.panaceamobile.com',
10727         TRUE
10728     ),
10729
10730     -- USA
10731     (
10732         18,
10733         oils_i18n_gettext(
10734             18,
10735             'USA',
10736             'csc',
10737             'region'
10738         ),
10739         oils_i18n_gettext(
10740             18,
10741             'C Beyond',
10742             'csc',
10743             'name'
10744         ),
10745         '$number@cbeyond.sprintpcs.com',
10746         TRUE
10747     ),
10748     (
10749         19,
10750         oils_i18n_gettext(
10751             19,
10752             'Alaska, USA',
10753             'csc',
10754             'region'
10755         ),
10756         oils_i18n_gettext(
10757             19,
10758             'General Communications, Inc.',
10759             'csc',
10760             'name'
10761         ),
10762         '$number@mobile.gci.net',
10763         TRUE
10764     ),
10765     (
10766         20,
10767         oils_i18n_gettext(
10768             20,
10769             'California, USA',
10770             'csc',
10771             'region'
10772         ),
10773         oils_i18n_gettext(
10774             20,
10775             'Golden State Cellular',
10776             'csc',
10777             'name'
10778         ),
10779         '$number@gscsms.com',
10780         TRUE
10781     ),
10782     (
10783         21,
10784         oils_i18n_gettext(
10785             21,
10786             'Cincinnati, Ohio, USA',
10787             'csc',
10788             'region'
10789         ),
10790         oils_i18n_gettext(
10791             21,
10792             'Cincinnati Bell',
10793             'csc',
10794             'name'
10795         ),
10796         '$number@gocbw.com',
10797         TRUE
10798     ),
10799     (
10800         22,
10801         oils_i18n_gettext(
10802             22,
10803             'Hawaii, USA',
10804             'csc',
10805             'region'
10806         ),
10807         oils_i18n_gettext(
10808             22,
10809             'Hawaiian Telcom Wireless',
10810             'csc',
10811             'name'
10812         ),
10813         '$number@hawaii.sprintpcs.com',
10814         TRUE
10815     ),
10816     (
10817         23,
10818         oils_i18n_gettext(
10819             23,
10820             'Midwest, USA',
10821             'csc',
10822             'region'
10823         ),
10824         oils_i18n_gettext(
10825             23,
10826             'i wireless (T-Mobile)',
10827             'csc',
10828             'name'
10829         ),
10830         '$number.iws@iwspcs.net',
10831         TRUE
10832     ),
10833     (
10834         24,
10835         oils_i18n_gettext(
10836             24,
10837             'USA',
10838             'csc',
10839             'region'
10840         ),
10841         oils_i18n_gettext(
10842             24,
10843             'i-wireless (Sprint PCS)',
10844             'csc',
10845             'name'
10846         ),
10847         '$number@iwirelesshometext.com',
10848         TRUE
10849     ),
10850     (
10851         25,
10852         oils_i18n_gettext(
10853             25,
10854             'USA',
10855             'csc',
10856             'region'
10857         ),
10858         oils_i18n_gettext(
10859             25,
10860             'MetroPCS',
10861             'csc',
10862             'name'
10863         ),
10864         '$number@mymetropcs.com',
10865         TRUE
10866     ),
10867     (
10868         26,
10869         oils_i18n_gettext(
10870             26,
10871             'USA',
10872             'csc',
10873             'region'
10874         ),
10875         oils_i18n_gettext(
10876             26,
10877             'Kajeet',
10878             'csc',
10879             'name'
10880         ),
10881         '$number@mobile.kajeet.net',
10882         TRUE
10883     ),
10884     (
10885         27,
10886         oils_i18n_gettext(
10887             27,
10888             'USA',
10889             'csc',
10890             'region'
10891         ),
10892         oils_i18n_gettext(
10893             27,
10894             'Element Mobile',
10895             'csc',
10896             'name'
10897         ),
10898         '$number@SMS.elementmobile.net',
10899         TRUE
10900     ),
10901     (
10902         28,
10903         oils_i18n_gettext(
10904             28,
10905             'USA',
10906             'csc',
10907             'region'
10908         ),
10909         oils_i18n_gettext(
10910             28,
10911             'Esendex',
10912             'csc',
10913             'name'
10914         ),
10915         '$number@echoemail.net',
10916         TRUE
10917     ),
10918     (
10919         29,
10920         oils_i18n_gettext(
10921             29,
10922             'USA',
10923             'csc',
10924             'region'
10925         ),
10926         oils_i18n_gettext(
10927             29,
10928             'Boost Mobile',
10929             'csc',
10930             'name'
10931         ),
10932         '$number@myboostmobile.com',
10933         TRUE
10934     ),
10935     (
10936         30,
10937         oils_i18n_gettext(
10938             30,
10939             'USA',
10940             'csc',
10941             'region'
10942         ),
10943         oils_i18n_gettext(
10944             30,
10945             'BellSouth',
10946             'csc',
10947             'name'
10948         ),
10949         '$number@bellsouth.com',
10950         TRUE
10951     ),
10952     (
10953         31,
10954         oils_i18n_gettext(
10955             31,
10956             'USA',
10957             'csc',
10958             'region'
10959         ),
10960         oils_i18n_gettext(
10961             31,
10962             'Bluegrass Cellular',
10963             'csc',
10964             'name'
10965         ),
10966         '$number@sms.bluecell.com',
10967         TRUE
10968     ),
10969     (
10970         32,
10971         oils_i18n_gettext(
10972             32,
10973             'USA',
10974             'csc',
10975             'region'
10976         ),
10977         oils_i18n_gettext(
10978             32,
10979             'AT&T Enterprise Paging',
10980             'csc',
10981             'name'
10982         ),
10983         '$number@page.att.net',
10984         TRUE
10985     ),
10986     (
10987         33,
10988         oils_i18n_gettext(
10989             33,
10990             'USA',
10991             'csc',
10992             'region'
10993         ),
10994         oils_i18n_gettext(
10995             33,
10996             'AT&T Mobility/Wireless',
10997             'csc',
10998             'name'
10999         ),
11000         '$number@txt.att.net',
11001         TRUE
11002     ),
11003     (
11004         34,
11005         oils_i18n_gettext(
11006             34,
11007             'USA',
11008             'csc',
11009             'region'
11010         ),
11011         oils_i18n_gettext(
11012             34,
11013             'AT&T Global Smart Messaging Suite',
11014             'csc',
11015             'name'
11016         ),
11017         '$number@sms.smartmessagingsuite.com',
11018         TRUE
11019     ),
11020     (
11021         35,
11022         oils_i18n_gettext(
11023             35,
11024             'USA',
11025             'csc',
11026             'region'
11027         ),
11028         oils_i18n_gettext(
11029             35,
11030             'Alltel (Allied Wireless)',
11031             'csc',
11032             'name'
11033         ),
11034         '$number@sms.alltelwireless.com',
11035         TRUE
11036     ),
11037     (
11038         36,
11039         oils_i18n_gettext(
11040             36,
11041             'USA',
11042             'csc',
11043             'region'
11044         ),
11045         oils_i18n_gettext(
11046             36,
11047             'Alaska Communications',
11048             'csc',
11049             'name'
11050         ),
11051         '$number@msg.acsalaska.com',
11052         TRUE
11053     ),
11054     (
11055         37,
11056         oils_i18n_gettext(
11057             37,
11058             'USA',
11059             'csc',
11060             'region'
11061         ),
11062         oils_i18n_gettext(
11063             37,
11064             'Ameritech',
11065             'csc',
11066             'name'
11067         ),
11068         '$number@paging.acswireless.com',
11069         TRUE
11070     ),
11071     (
11072         38,
11073         oils_i18n_gettext(
11074             38,
11075             'USA',
11076             'csc',
11077             'region'
11078         ),
11079         oils_i18n_gettext(
11080             38,
11081             'Cingular (GoPhone prepaid)',
11082             'csc',
11083             'name'
11084         ),
11085         '$number@cingulartext.com',
11086         TRUE
11087     ),
11088     (
11089         39,
11090         oils_i18n_gettext(
11091             39,
11092             'USA',
11093             'csc',
11094             'region'
11095         ),
11096         oils_i18n_gettext(
11097             39,
11098             'Cingular (Postpaid)',
11099             'csc',
11100             'name'
11101         ),
11102         '$number@cingular.com',
11103         TRUE
11104     ),
11105     (
11106         40,
11107         oils_i18n_gettext(
11108             40,
11109             'USA',
11110             'csc',
11111             'region'
11112         ),
11113         oils_i18n_gettext(
11114             40,
11115             'Cellular One (Dobson) / O2 / Orange',
11116             'csc',
11117             'name'
11118         ),
11119         '$number@mobile.celloneusa.com',
11120         TRUE
11121     ),
11122     (
11123         41,
11124         oils_i18n_gettext(
11125             41,
11126             'USA',
11127             'csc',
11128             'region'
11129         ),
11130         oils_i18n_gettext(
11131             41,
11132             'Cellular South',
11133             'csc',
11134             'name'
11135         ),
11136         '$number@csouth1.com',
11137         TRUE
11138     ),
11139     (
11140         42,
11141         oils_i18n_gettext(
11142             42,
11143             'USA',
11144             'csc',
11145             'region'
11146         ),
11147         oils_i18n_gettext(
11148             42,
11149             'Cellcom',
11150             'csc',
11151             'name'
11152         ),
11153         '$number@cellcom.quiktxt.com',
11154         TRUE
11155     ),
11156     (
11157         43,
11158         oils_i18n_gettext(
11159             43,
11160             'USA',
11161             'csc',
11162             'region'
11163         ),
11164         oils_i18n_gettext(
11165             43,
11166             'Chariton Valley Wireless',
11167             'csc',
11168             'name'
11169         ),
11170         '$number@sms.cvalley.net',
11171         TRUE
11172     ),
11173     (
11174         44,
11175         oils_i18n_gettext(
11176             44,
11177             'USA',
11178             'csc',
11179             'region'
11180         ),
11181         oils_i18n_gettext(
11182             44,
11183             'Cricket',
11184             'csc',
11185             'name'
11186         ),
11187         '$number@sms.mycricket.com',
11188         TRUE
11189     ),
11190     (
11191         45,
11192         oils_i18n_gettext(
11193             45,
11194             'USA',
11195             'csc',
11196             'region'
11197         ),
11198         oils_i18n_gettext(
11199             45,
11200             'Cleartalk Wireless',
11201             'csc',
11202             'name'
11203         ),
11204         '$number@sms.cleartalk.us',
11205         TRUE
11206     ),
11207     (
11208         46,
11209         oils_i18n_gettext(
11210             46,
11211             'USA',
11212             'csc',
11213             'region'
11214         ),
11215         oils_i18n_gettext(
11216             46,
11217             'Edge Wireless',
11218             'csc',
11219             'name'
11220         ),
11221         '$number@sms.edgewireless.com',
11222         TRUE
11223     ),
11224     (
11225         47,
11226         oils_i18n_gettext(
11227             47,
11228             'USA',
11229             'csc',
11230             'region'
11231         ),
11232         oils_i18n_gettext(
11233             47,
11234             'Syringa Wireless',
11235             'csc',
11236             'name'
11237         ),
11238         '$number@rinasms.com',
11239         TRUE
11240     ),
11241     (
11242         48,
11243         oils_i18n_gettext(
11244             48,
11245             'USA',
11246             'csc',
11247             'region'
11248         ),
11249         oils_i18n_gettext(
11250             48,
11251             'T-Mobile',
11252             'csc',
11253             'name'
11254         ),
11255         '$number@tmomail.net',
11256         TRUE
11257     ),
11258     (
11259         49,
11260         oils_i18n_gettext(
11261             49,
11262             'USA',
11263             'csc',
11264             'region'
11265         ),
11266         oils_i18n_gettext(
11267             49,
11268             'Straight Talk / PagePlus Cellular',
11269             'csc',
11270             'name'
11271         ),
11272         '$number@vtext.com',
11273         TRUE
11274     ),
11275     (
11276         50,
11277         oils_i18n_gettext(
11278             50,
11279             'USA',
11280             'csc',
11281             'region'
11282         ),
11283         oils_i18n_gettext(
11284             50,
11285             'South Central Communications',
11286             'csc',
11287             'name'
11288         ),
11289         '$number@rinasms.com',
11290         TRUE
11291     ),
11292     (
11293         51,
11294         oils_i18n_gettext(
11295             51,
11296             'USA',
11297             'csc',
11298             'region'
11299         ),
11300         oils_i18n_gettext(
11301             51,
11302             'Simple Mobile',
11303             'csc',
11304             'name'
11305         ),
11306         '$number@smtext.com',
11307         TRUE
11308     ),
11309     (
11310         52,
11311         oils_i18n_gettext(
11312             52,
11313             'USA',
11314             'csc',
11315             'region'
11316         ),
11317         oils_i18n_gettext(
11318             52,
11319             'Sprint (PCS)',
11320             'csc',
11321             'name'
11322         ),
11323         '$number@messaging.sprintpcs.com',
11324         TRUE
11325     ),
11326     (
11327         53,
11328         oils_i18n_gettext(
11329             53,
11330             'USA',
11331             'csc',
11332             'region'
11333         ),
11334         oils_i18n_gettext(
11335             53,
11336             'Nextel',
11337             'csc',
11338             'name'
11339         ),
11340         '$number@messaging.nextel.com',
11341         TRUE
11342     ),
11343     (
11344         54,
11345         oils_i18n_gettext(
11346             54,
11347             'USA',
11348             'csc',
11349             'region'
11350         ),
11351         oils_i18n_gettext(
11352             54,
11353             'Pioneer Cellular',
11354             'csc',
11355             'name'
11356         ),
11357         '$number@zsend.com', -- nine digit number
11358         TRUE
11359     ),
11360     (
11361         55,
11362         oils_i18n_gettext(
11363             55,
11364             'USA',
11365             'csc',
11366             'region'
11367         ),
11368         oils_i18n_gettext(
11369             55,
11370             'Qwest Wireless',
11371             'csc',
11372             'name'
11373         ),
11374         '$number@qwestmp.com',
11375         TRUE
11376     ),
11377     (
11378         56,
11379         oils_i18n_gettext(
11380             56,
11381             'USA',
11382             'csc',
11383             'region'
11384         ),
11385         oils_i18n_gettext(
11386             56,
11387             'US Cellular',
11388             'csc',
11389             'name'
11390         ),
11391         '$number@email.uscc.net',
11392         TRUE
11393     ),
11394     (
11395         57,
11396         oils_i18n_gettext(
11397             57,
11398             'USA',
11399             'csc',
11400             'region'
11401         ),
11402         oils_i18n_gettext(
11403             57,
11404             'Unicel',
11405             'csc',
11406             'name'
11407         ),
11408         '$number@utext.com',
11409         TRUE
11410     ),
11411     (
11412         58,
11413         oils_i18n_gettext(
11414             58,
11415             'USA',
11416             'csc',
11417             'region'
11418         ),
11419         oils_i18n_gettext(
11420             58,
11421             'Teleflip',
11422             'csc',
11423             'name'
11424         ),
11425         '$number@teleflip.com',
11426         TRUE
11427     ),
11428     (
11429         59,
11430         oils_i18n_gettext(
11431             59,
11432             'USA',
11433             'csc',
11434             'region'
11435         ),
11436         oils_i18n_gettext(
11437             59,
11438             'Virgin Mobile',
11439             'csc',
11440             'name'
11441         ),
11442         '$number@vmobl.com',
11443         TRUE
11444     ),
11445     (
11446         60,
11447         oils_i18n_gettext(
11448             60,
11449             'USA',
11450             'csc',
11451             'region'
11452         ),
11453         oils_i18n_gettext(
11454             60,
11455             'Verizon Wireless',
11456             'csc',
11457             'name'
11458         ),
11459         '$number@vtext.com',
11460         TRUE
11461     ),
11462     (
11463         61,
11464         oils_i18n_gettext(
11465             61,
11466             'USA',
11467             'csc',
11468             'region'
11469         ),
11470         oils_i18n_gettext(
11471             61,
11472             'USA Mobility',
11473             'csc',
11474             'name'
11475         ),
11476         '$number@usamobility.net',
11477         TRUE
11478     ),
11479     (
11480         62,
11481         oils_i18n_gettext(
11482             62,
11483             'USA',
11484             'csc',
11485             'region'
11486         ),
11487         oils_i18n_gettext(
11488             62,
11489             'Viaero',
11490             'csc',
11491             'name'
11492         ),
11493         '$number@viaerosms.com',
11494         TRUE
11495     ),
11496     (
11497         63,
11498         oils_i18n_gettext(
11499             63,
11500             'USA',
11501             'csc',
11502             'region'
11503         ),
11504         oils_i18n_gettext(
11505             63,
11506             'TracFone',
11507             'csc',
11508             'name'
11509         ),
11510         '$number@mmst5.tracfone.com',
11511         TRUE
11512     ),
11513     (
11514         64,
11515         oils_i18n_gettext(
11516             64,
11517             'USA',
11518             'csc',
11519             'region'
11520         ),
11521         oils_i18n_gettext(
11522             64,
11523             'Centennial Wireless',
11524             'csc',
11525             'name'
11526         ),
11527         '$number@cwemail.com',
11528         TRUE
11529     ),
11530
11531     -- South Korea and USA
11532     (
11533         65,
11534         oils_i18n_gettext(
11535             65,
11536             'South Korea and USA',
11537             'csc',
11538             'region'
11539         ),
11540         oils_i18n_gettext(
11541             65,
11542             'Helio',
11543             'csc',
11544             'name'
11545         ),
11546         '$number@myhelio.com',
11547         TRUE
11548     )
11549 ;
11550
11551 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
11552     SELECT
11553         pgt.id, perm.id, aout.depth, TRUE
11554     FROM
11555         permission.grp_tree pgt,
11556         permission.perm_list perm,
11557         actor.org_unit_type aout
11558     WHERE
11559         pgt.name = 'Global Administrator' AND
11560         aout.name = 'Consortium' AND
11561         perm.code = 'ADMIN_SMS_CARRIER';
11562
11563 INSERT INTO action_trigger.reactor (
11564     module,
11565     description
11566 ) VALUES (
11567     'SendSMS',
11568     'Send an SMS text message based on a user-defined template'
11569 );
11570
11571 INSERT INTO action_trigger.event_definition (
11572     active,
11573     owner,
11574     name,
11575     hook,
11576     validator,
11577     reactor,
11578     cleanup_success,
11579     delay,
11580     delay_field,
11581     group_field,
11582     template
11583 ) VALUES (
11584     true,
11585     1, -- admin
11586     'Hold Ready for Pickup SMS Notification',
11587     'hold.available',
11588     'HoldIsAvailable',
11589     'SendSMS',
11590     'CreateHoldNotification',
11591     '00:30:00',
11592     'shelf_time',
11593     'sms_notify',
11594     '[%- USE date -%]
11595 [%- user = target.0.usr -%]
11596 From: [%- params.sender_email || default_sender %]
11597 To: [%- params.recipient_email || helpers.get_sms_gateway_email(target.0.sms_carrier,target.0.sms_notify) %]
11598 Subject: [% target.size %] hold(s) ready
11599
11600 [% FOR hold IN target %][%-
11601   bibxml = helpers.xml_doc( hold.current_copy.call_number.record.marc );
11602   title = "";
11603   FOR part IN bibxml.findnodes(''//*[@tag="245"]/*[@code="a"]'');
11604     title = title _ part.textContent;
11605   END;
11606   author = bibxml.findnodes(''//*[@tag="100"]/*[@code="a"]'').textContent;
11607 %][% hold.usr.first_given_name %]:[% title %] @ [% hold.pickup_lib.name %]
11608 [% END %]
11609 '
11610 );
11611
11612 INSERT INTO action_trigger.environment (
11613     event_def,
11614     path
11615 ) VALUES (
11616     currval('action_trigger.event_definition_id_seq'),
11617     'current_copy.call_number.record.simple_record'
11618 ), (
11619     currval('action_trigger.event_definition_id_seq'),
11620     'usr'
11621 ), (
11622     currval('action_trigger.event_definition_id_seq'),
11623     'pickup_lib.billing_address'
11624 );
11625
11626 INSERT INTO action_trigger.event_params (event_def, param, value)
11627     VALUES (currval('action_trigger.event_definition_id_seq'), 'check_sms_notify', 1);
11628
11629 INSERT INTO action_trigger.hook(
11630     key,
11631     core_type,
11632     description,
11633     passive
11634 ) VALUES (
11635     'acn.format.sms_text',
11636     'acn',
11637     oils_i18n_gettext(
11638         'acn.format.sms_text',
11639         'A text message has been requested for a call number.',
11640         'ath',
11641         'description'
11642     ),
11643     FALSE
11644 );
11645
11646 INSERT INTO action_trigger.event_definition (
11647     active,
11648     owner,
11649     name,
11650     hook,
11651     validator,
11652     reactor,
11653     template
11654 ) VALUES (
11655     true,
11656     1, -- admin
11657     'SMS Call Number',
11658     'acn.format.sms_text',
11659     'NOOP_True',
11660     'SendSMS',
11661     '[%- USE date -%]
11662 From: [%- params.sender_email || default_sender %]
11663 To: [%- params.recipient_email || helpers.get_sms_gateway_email(user_data.sms_carrier,user_data.sms_notify) %]
11664 Subject: Call Number
11665
11666 [%-
11667   bibxml = helpers.xml_doc( target.record.marc );
11668   title = "";
11669   FOR part IN bibxml.findnodes(''//*[@tag="245"]/*[@code="a" or @code="b"]'');
11670     title = title _ part.textContent;
11671   END;
11672   author = bibxml.findnodes(''//*[@tag="100"]/*[@code="a"]'').textContent;
11673 %]
11674 Call Number: [% target.label %]
11675 Location: [% helpers.get_most_populous_location( target.id ).name %]
11676 Library: [% target.owning_lib.name %]
11677 [%- IF title %]
11678 Title: [% title %]
11679 [%- END %]
11680 [%- IF author %]
11681 Author: [% author %]
11682 [%- END %]
11683 '
11684 );
11685
11686 INSERT INTO action_trigger.environment (
11687     event_def,
11688     path
11689 ) VALUES (
11690     currval('action_trigger.event_definition_id_seq'),
11691     'record.simple_record'
11692 ), (
11693     currval('action_trigger.event_definition_id_seq'),
11694     'owning_lib.billing_address'
11695 );
11696
11697 INSERT INTO vandelay.merge_profile (owner, name, replace_spec) 
11698     VALUES (1, 'Match-Only Merge', '901c');
11699
11700 INSERT INTO vandelay.merge_profile (owner, name, preserve_spec) 
11701     VALUES (1, 'Full Overlay', '901c');
11702
11703 -- user activity seed data --
11704
11705 INSERT INTO config.usr_activity_type (id, ewho, ewhat, ehow, egroup, label) VALUES
11706
11707      -- authen/authz actions
11708      -- note: "opensrf" is the default ingress/ehow
11709      (1,  NULL, 'login',  'opensrf',      'authen', oils_i18n_gettext(1 , 'Login via opensrf', 'cuat', 'label'))
11710     ,(2,  NULL, 'login',  'srfsh',        'authen', oils_i18n_gettext(2 , 'Login via srfsh', 'cuat', 'label'))
11711     ,(3,  NULL, 'login',  'gateway-v1',   'authen', oils_i18n_gettext(3 , 'Login via gateway-v1', 'cuat', 'label'))
11712     ,(4,  NULL, 'login',  'translator-v1','authen', oils_i18n_gettext(4 , 'Login via translator-v1', 'cuat', 'label'))
11713     ,(5,  NULL, 'login',  'xmlrpc',       'authen', oils_i18n_gettext(5 , 'Login via xmlrpc', 'cuat', 'label'))
11714     ,(6,  NULL, 'login',  'remoteauth',   'authen', oils_i18n_gettext(6 , 'Login via remoteauth', 'cuat', 'label'))
11715     ,(7,  NULL, 'login',  'sip2',         'authen', oils_i18n_gettext(7 , 'SIP2 Proxy Login', 'cuat', 'label'))
11716     ,(8,  NULL, 'login',  'apache',       'authen', oils_i18n_gettext(8 , 'Login via Apache module', 'cuat', 'label'))
11717
11718     ,(9,  NULL, 'verify', 'opensrf',      'authz',  oils_i18n_gettext(9 , 'Verification via opensrf', 'cuat', 'label'))
11719     ,(10, NULL, 'verify', 'srfsh',        'authz',  oils_i18n_gettext(10, 'Verification via srfsh', 'cuat', 'label'))
11720     ,(11, NULL, 'verify', 'gateway-v1',   'authz',  oils_i18n_gettext(11, 'Verification via gateway-v1', 'cuat', 'label'))
11721     ,(12, NULL, 'verify', 'translator-v1','authz',  oils_i18n_gettext(12, 'Verification via translator-v1', 'cuat', 'label'))
11722     ,(13, NULL, 'verify', 'xmlrpc',       'authz',  oils_i18n_gettext(13, 'Verification via xmlrpc', 'cuat', 'label'))
11723     ,(14, NULL, 'verify', 'remoteauth',   'authz',  oils_i18n_gettext(14, 'Verification via remoteauth', 'cuat', 'label'))
11724     ,(15, NULL, 'verify', 'sip2',         'authz',  oils_i18n_gettext(15, 'SIP2 User Verification', 'cuat', 'label'))
11725
11726      -- authen/authz actions w/ known uses of "who"
11727     ,(16, 'opac',        'login',  'gateway-v1',   'authen', oils_i18n_gettext(16, 'OPAC Login (jspac)', 'cuat', 'label'))
11728     ,(17, 'opac',        'login',  'apache',       'authen', oils_i18n_gettext(17, 'OPAC Login (tpac)', 'cuat', 'label'))
11729     ,(18, 'staffclient', 'login',  'gateway-v1',   'authen', oils_i18n_gettext(18, 'Staff Client Login', 'cuat', 'label'))
11730     ,(19, 'selfcheck',   'login',  'translator-v1','authen', oils_i18n_gettext(19, 'Self-Check Proxy Login', 'cuat', 'label'))
11731     ,(20, 'ums',         'login',  'xmlrpc',       'authen', oils_i18n_gettext(20, 'Unique Mgt Login', 'cuat', 'label'))
11732     ,(21, 'authproxy',   'login',  'apache',       'authen', oils_i18n_gettext(21, 'Apache Auth Proxy Login', 'cuat', 'label'))
11733     ,(22, 'libraryelf',  'login',  'xmlrpc',       'authz',  oils_i18n_gettext(22, 'LibraryElf Login', 'cuat', 'label'))
11734
11735     ,(23, 'selfcheck',   'verify', 'translator-v1','authz',  oils_i18n_gettext(23, 'Self-Check User Verification', 'cuat', 'label'))
11736     ,(24, 'ezproxy',     'verify', 'remoteauth',   'authz',  oils_i18n_gettext(24, 'EZProxy Verification', 'cuat', 'label'))
11737     -- ...
11738     ;
11739
11740 -- reserve the first 1000 slots
11741 SELECT SETVAL('config.usr_activity_type_id_seq'::TEXT, 1000);
11742
11743 INSERT INTO config.org_unit_setting_type 
11744     (name, label, description, grp, datatype) 
11745     VALUES (
11746         'circ.fines.charge_when_closed',
11747          oils_i18n_gettext(
11748             'circ.fines.charge_when_closed',
11749             'Charge fines on overdue circulations when closed',
11750             'coust', 
11751             'label'
11752         ),
11753         oils_i18n_gettext(
11754             'circ.fines.charge_when_closed',
11755             'Normally, fines are not charged when a library is closed.  When set to True, fines will be charged during scheduled closings and normal weekly closed days.',
11756             'coust', 
11757             'description'
11758         ),
11759         'circ',
11760         'bool'
11761     );
11762
11763 INSERT INTO config.org_unit_setting_type 
11764     (name, label, description, grp, datatype) 
11765     VALUES (
11766         'circ.patron.usr_activity_retrieve.max',
11767          oils_i18n_gettext(
11768             'circ.patron.usr_activity_retrieve.max',
11769             'Max user activity entries to retrieve (staff client)',
11770             'coust', 
11771             'label'
11772         ),
11773         oils_i18n_gettext(
11774             'circ.patron.usr_activity_retrieve.max',
11775             'Sets the maxinum number of recent user activity entries to retrieve for display in the staff client.  0 means show none, -1 means show all.  Default is 1.',
11776             'coust', 
11777             'description'
11778         ),
11779         'gui',
11780         'integer'
11781     );
11782 -- circ export csv export --
11783
11784 INSERT INTO action_trigger.hook (key, core_type, description, passive)
11785 VALUES (
11786     'circ.format.history.csv',
11787     'circ',
11788     oils_i18n_gettext(
11789         'circ.format.history.csv',
11790         'Produce CSV of circulation history',
11791         'ath',
11792         'description'
11793     ),
11794     FALSE
11795 );
11796
11797 INSERT INTO action_trigger.event_definition (
11798     active, owner, name, hook, reactor, validator, group_field, template) 
11799 VALUES (
11800     TRUE, 1, 'Circ History CSV', 'circ.format.history.csv', 'ProcessTemplate', 'NOOP_True', 'usr',
11801 $$
11802 Title,Author,Call Number,Barcode,Format
11803 [%-
11804 FOR circ IN target;
11805     bibxml = helpers.unapi_bre(circ.target_copy.call_number.record, {flesh => '{mra}'});
11806     title = "";
11807     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
11808         title = title _ part.textContent;
11809     END;
11810     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
11811     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value') %]
11812
11813     [%- helpers.csv_datum(title) -%],
11814     [%- helpers.csv_datum(author) -%],
11815     [%- helpers.csv_datum(circ.target_copy.call_number.label) -%],
11816     [%- helpers.csv_datum(circ.target_copy.barcode) -%],
11817     [%- helpers.csv_datum(item_type) %]
11818 [%- END -%]
11819 $$
11820 );
11821
11822 INSERT INTO action_trigger.environment (event_def, path)
11823     VALUES (
11824         currval('action_trigger.event_definition_id_seq'),
11825         'target_copy.call_number'
11826     );
11827
11828 INSERT INTO actor.toolbar(org,label,layout) VALUES
11829     ( 1, 'circ', '["circ_checkout","circ_checkin","toolbarseparator.1","search_opac","copy_status","toolbarseparator.2","patron_search","patron_register","toolbarspacer.3","hotkeys_toggle"]' ),
11830     ( 1, 'cat', '["circ_checkin","toolbarseparator.1","search_opac","copy_status","toolbarseparator.2","create_marc","authority_manage","retrieve_last_record","toolbarspacer.3","hotkeys_toggle"]' );
11831
11832 INSERT INTO config.global_flag (name, enabled, label) 
11833     VALUES (
11834         'opac.org_unit.non_inherited_visibility',
11835         FALSE,
11836         oils_i18n_gettext(
11837             'opac.org_unit.non_inherited_visibility',
11838             'Org Units Do Not Inherit Visibility',
11839             'cgf',
11840             'label'
11841         )
11842     );
11843
11844 INSERT INTO config.org_unit_setting_type ( name, label, description, datatype, grp, update_perm )
11845     VALUES (
11846         'ui.hide_copy_editor_fields',
11847         oils_i18n_gettext(
11848             'ui.hide_copy_editor_fields',
11849             'GUI: Hide these fields within the Item Attribute Editor',
11850             'coust',
11851             'label'
11852         ),
11853         oils_i18n_gettext(
11854             'ui.hide_copy_editor_fields',
11855             'This setting may be best maintained with the dedicated configuration'
11856             || ' interface within the Item Attribute Editor.  However, here it'
11857             || ' shows up as comma separated list of field identifiers to hide.',
11858             'coust',
11859             'description'
11860         ),
11861         'array',
11862         'gui',
11863         539
11864     );
11865
11866 INSERT into config.org_unit_setting_type 
11867     (name, grp, label, description, datatype) 
11868     VALUES ( 
11869         'opac.patron.auto_overide_hold_events', 
11870         'opac',
11871         oils_i18n_gettext(
11872             'opac.patron.auto_overide_hold_events',
11873             'Auto-Override Permitted Hold Blocks (Patrons)',
11874             'coust', 
11875             'label'
11876         ),
11877         oils_i18n_gettext(
11878             'opac.patron.auto_overide_hold_events',
11879             'When a patron places a hold that fails and the patron has the correct permission ' || 
11880             'to override the hold, automatically override the hold without presenting a message ' || 
11881             'to the patron and requiring that the patron make a decision to override',
11882             'coust', 
11883             'description'
11884         ),
11885         'bool'
11886     );
11887
11888 INSERT into config.org_unit_setting_type
11889     (name, grp, label, description, datatype)
11890     VALUES (
11891         'opac.patron.temporary_list_warn',
11892         'opac',
11893         oils_i18n_gettext(
11894             'opac.patron.temporary_list_warn',
11895             'Warn patrons when adding to a temporary book list',
11896             'coust',
11897             'label'
11898         ),
11899         oils_i18n_gettext(
11900             'opac.patron.temporary_list_warn',
11901             'Present a warning dialog to the patron when a patron adds a book to a temporary book bag.',
11902             'coust',
11903             'description'
11904         ),
11905         'bool'
11906     );
11907
11908 INSERT INTO config.usr_setting_type
11909     (name,grp,opac_visible,label,description,datatype)
11910 VALUES (
11911     'opac.temporary_list_no_warn',
11912     'opac',
11913     TRUE,
11914     oils_i18n_gettext(
11915         'opac.temporary_list_no_warn',
11916         'Opt out of warning when adding a book to a temporary book list',
11917         'cust',
11918         'label'
11919     ),
11920     oils_i18n_gettext(
11921         'opac.temporary_list_no_warn',
11922         'Opt out of warning when adding a book to a temporary book list',
11923         'cust',
11924         'description'
11925     ),
11926     'bool'
11927 );
11928
11929 INSERT INTO config.usr_setting_type
11930     (name,grp,opac_visible,label,description,datatype)
11931 VALUES (
11932     'opac.default_list',
11933     'opac',
11934     FALSE,
11935     oils_i18n_gettext(
11936         'opac.default_list',
11937         'Default list to use when adding to a bookbag',
11938         'cust',
11939         'label'
11940     ),
11941     oils_i18n_gettext(
11942         'opac.default_list',
11943         'Default list to use when adding to a bookbag',
11944         'cust',
11945         'description'
11946     ),
11947     'integer'
11948 );
11949
11950 INSERT INTO config.org_unit_setting_type (
11951     name, grp, label, description, datatype
11952 ) VALUES (
11953     'circ.staff.max_visible_event_age',
11954     'circ',
11955     'Maximum visible age of User Trigger Events in Staff Interfaces',
11956     'If this is unset, staff can view User Trigger Events regardless of age. When this is set to an interval, it represents the age of the oldest possible User Trigger Event that can be viewed.',
11957     'interval'
11958 );
11959
11960 -- kid's opac main search filter
11961
11962 INSERT INTO actor.search_filter_group (owner, code, label) 
11963     VALUES (1, 'kpac_main', 'Kid''s OPAC Search Filter');
11964
11965 INSERT INTO actor.search_query (label, query_text) 
11966     VALUES ('Children''s Materials', 'audience(a,b,c)');
11967 INSERT INTO actor.search_query (label, query_text) 
11968     VALUES ('Young Adult Materials', 'audience(j,d)');
11969 INSERT INTO actor.search_query (label, query_text) 
11970     VALUES ('General/Adult Materials',  'audience(e,f,g, )');
11971
11972 INSERT INTO actor.search_filter_group_entry (grp, query, pos)
11973     VALUES (
11974         (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
11975         (SELECT id FROM actor.search_query WHERE label = 'Children''s Materials'),
11976         0
11977     ); INSERT INTO actor.search_filter_group_entry (grp, query, pos) VALUES (
11978         (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
11979         (SELECT id FROM actor.search_query WHERE label = 'Young Adult Materials'),
11980         1
11981     );
11982 INSERT INTO actor.search_filter_group_entry (grp, query, pos) 
11983     VALUES (
11984         (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
11985         (SELECT id FROM actor.search_query WHERE label = 'General/Adult Materials'),
11986         2
11987     );
11988 INSERT into config.org_unit_setting_type
11989     (name, grp, label, description, datatype)
11990     VALUES (
11991         'acq.fund.allow_rollover_without_money',
11992         'acq',
11993         oils_i18n_gettext(
11994             'acq.fund.allow_rollover_without_money',
11995             'Allow funds to be rolled over without bringing the money along',
11996             'coust',
11997             'label'
11998         ),
11999         oils_i18n_gettext(
12000             'acq.fund.allow_rollover_without_money',
12001             'Allow funds to be rolled over without bringing the money along.  This makes money left in the old fund disappear, modeling its return to some outside entity.',
12002             'coust',
12003             'description'
12004         ),
12005         'bool'
12006     );
12007
12008 INSERT INTO config.org_unit_setting_type
12009     (name, grp, label, description, datatype)
12010     VALUES (
12011         'circ.lost.xact_open_on_zero',
12012         'finance',
12013         oils_i18n_gettext(
12014             'circ.lost.xact_open_on_zero',
12015             'Leave transaction open when lost balance equals zero',
12016             'coust',
12017             'label'
12018         ),
12019         oils_i18n_gettext(
12020             'circ.lost.xact_open_on_zero',
12021             'Leave transaction open when lost balance equals zero.  This leaves the lost copy on the patron record when it is paid',
12022             'coust',
12023             'description'
12024         ),
12025         'bool'
12026     );
12027
12028 INSERT INTO config.org_unit_setting_type
12029     (name, grp, label, description, datatype)
12030     VALUES (
12031         'circ.patron_expires_soon_warning',
12032         'circ',
12033         oils_i18n_gettext(
12034             'circ.patron_expires_soon_warning',
12035             'Warn when patron account is about to expire',
12036             'coust',
12037             'label'
12038         ),
12039         oils_i18n_gettext(
12040             'circ.patron_expires_soon_warning',
12041             'Warn when patron account is about to expire. If set, the staff client displays a warning this many days before the expiry of a patron account. Value is in number of days, for example: 3 for 3 days.',
12042             'coust',
12043             'description'
12044         ),
12045         'integer'
12046     );
12047
12048 INSERT INTO config.org_unit_setting_type (
12049     name, label, grp, datatype
12050 ) VALUES (
12051     'circ.fines.truncate_to_max_fine',
12052     oils_i18n_gettext(
12053         'circ.fines.truncate_to_max_fine',
12054         'Truncate fines to max fine amount',
12055         'coust',
12056         'label'
12057     ),
12058     'circ',
12059     'bool'
12060 );
12061
12062
12063 INSERT INTO config.settings_group (name, label)
12064     VALUES (
12065         'url_verify',
12066         oils_i18n_gettext(
12067             'url_verify',
12068             'URL Verify',
12069             'csg',
12070             'label'
12071         )
12072     );
12073
12074 INSERT INTO config.org_unit_setting_type
12075     (name, grp, label, description, datatype, update_perm)
12076     VALUES (
12077         'url_verify.url_verification_delay',
12078         'url_verify',
12079         oils_i18n_gettext(
12080             'url_verify.url_verification_delay',
12081             'Number of seconds to wait between URL test attempts.',
12082             'coust',
12083             'label'
12084         ),
12085         oils_i18n_gettext(
12086             'url_verify.url_verification_delay',
12087             'Throttling mechanism for batch URL verification runs.  Each running process will wait this number of seconds after a URL test before performing the next.',
12088             'coust',
12089             'description'
12090         ),
12091         'integer',
12092         544
12093     );
12094
12095 INSERT INTO config.org_unit_setting_type
12096     (name, grp, label, description, datatype, update_perm)
12097     VALUES (
12098         'url_verify.url_verification_max_redirects',
12099         'url_verify',
12100         oils_i18n_gettext(
12101             'url_verify.url_verification_max_redirects',
12102             'Maximum redirect lookups',
12103             'coust',
12104             'label'
12105         ),
12106         oils_i18n_gettext(
12107             'url_verify.url_verification_max_redirects',
12108             'For URLs returning 3XX redirects, this is the maximum number of redirects we will follow before giving up.',
12109             'coust',
12110             'description'
12111         ),
12112         'integer',
12113         544
12114     );
12115
12116 INSERT INTO config.org_unit_setting_type
12117     (name, grp, label, description, datatype, update_perm)
12118     VALUES (
12119         'url_verify.url_verification_max_wait',
12120         'url_verify',
12121         oils_i18n_gettext(
12122             'url_verify.url_verification_max_wait',
12123             'Maximum wait time (in seconds) for a URL to lookup',
12124             'coust',
12125             'label'
12126         ),
12127         oils_i18n_gettext(
12128             'url_verify.url_verification_max_wait',
12129             'If we exceed the wait time, the URL is marked as a "timeout" and the system moves on to the next URL',
12130             'coust',
12131             'description'
12132         ),
12133         'integer',
12134         544
12135     );
12136
12137 INSERT INTO config.filter_dialog_interface (key, description) VALUES (
12138     'url_verify',
12139     oils_i18n_gettext(
12140         'url_verify',
12141         'All Link Checker filter dialogs',
12142         'cfdi',
12143         'description'
12144     )
12145 );
12146
12147 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
12148     'ui.grid_columns.url_verify.select_urls',
12149     'gui',
12150     FALSE,
12151     oils_i18n_gettext(
12152         'ui.grid_columns.url_verify.select_urls',
12153         'Link Checker''s URL Selection interface''s saved columns',
12154         'cust',
12155         'label'
12156     ),
12157     oils_i18n_gettext(
12158         'ui.grid_columns.url_verify.select_urls',
12159         'Link Checker''s URL Selection interface''s saved columns',
12160         'cust',
12161         'description'
12162     ),
12163     'string'
12164 );
12165
12166 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
12167     'ui.grid_columns.url_verify.review_attempt',
12168     'gui',
12169     FALSE,
12170     oils_i18n_gettext(
12171         'ui.grid_columns.url_verify.review_attempt',
12172         'Link Checker''s Review Attempt interface''s saved columns',
12173         'cust',
12174         'label'
12175     ),
12176     oils_i18n_gettext(
12177         'ui.grid_columns.url_verify.review_attempt',
12178         'Link Checker''s Review Attempt interface''s saved columns',
12179         'cust',
12180         'description'
12181     ),
12182     'string'
12183 );
12184
12185 INSERT INTO config.org_unit_setting_type
12186     (name, grp, label, description, datatype, update_perm)
12187     VALUES (
12188         'url_verify.verification_batch_size',
12189         'url_verify',
12190         oils_i18n_gettext(
12191             'url_verify.verification_batch_size',
12192             'Number of URLs to test in parallel',
12193             'coust',
12194             'label'
12195         ),
12196         oils_i18n_gettext(
12197             'url_verify.verification_batch_size',
12198             'URLs are tested in batches.  This number defines the size of each batch and it directly relates to the number of back-end processes performing URL verification.',
12199             'coust',
12200             'description'
12201         ),
12202         'integer',
12203         544
12204     );
12205
12206 INSERT INTO config.org_unit_setting_type
12207     (name, label, description, grp, datatype, fm_class) 
12208 VALUES (
12209     'acq.upload.default.create_po',
12210     oils_i18n_gettext(
12211         'acq.upload.default.create_po',
12212         'Upload Create PO',
12213         'coust',
12214         'label'
12215     ),
12216      oils_i18n_gettext(
12217         'acq.upload.default.create_po',
12218         'Create a purchase order by default during ACQ file upload',
12219         'coust',
12220         'description'
12221     ),
12222    'acq',
12223     'bool',
12224     NULL
12225 ), (
12226     'acq.upload.default.activate_po',
12227     oils_i18n_gettext(
12228         'acq.upload.default.activate_po',
12229         'Upload Activate PO',
12230         'coust',
12231         'label'
12232     ),
12233      oils_i18n_gettext(
12234         'acq.upload.default.activate_po',
12235         'Activate the purchase order by default during ACQ file upload',
12236         'coust',
12237         'description'
12238     ),
12239     'acq',
12240     'bool',
12241     NULL
12242 ), (
12243     'acq.upload.default.provider',
12244     oils_i18n_gettext(
12245         'acq.upload.default.provider',
12246         'Upload Default Provider',
12247         'coust',
12248         'label'
12249     ),
12250      oils_i18n_gettext(
12251         'acq.upload.default.provider',
12252         'Default provider to use during ACQ file upload',
12253         'coust',
12254         'description'
12255     ),
12256     'acq',
12257     'link',
12258     'acqpro'
12259 ), (
12260     'acq.upload.default.vandelay.match_set',
12261     oils_i18n_gettext(
12262         'acq.upload.default.vandelay.match_set',
12263         'Upload Default Match Set',
12264         'coust',
12265         'label'
12266     ),
12267      oils_i18n_gettext(
12268         'acq.upload.default.vandelay.match_set',
12269         'Default match set to use during ACQ file upload',
12270         'coust',
12271         'description'
12272     ),
12273     'acq',
12274     'link',
12275     'vms'
12276 ), (
12277     'acq.upload.default.vandelay.merge_profile',
12278     oils_i18n_gettext(
12279         'acq.upload.default.vandelay.merge_profile',
12280         'Upload Default Merge Profile',
12281         'coust',
12282         'label'
12283     ),
12284      oils_i18n_gettext(
12285         'acq.upload.default.vandelay.merge_profile',
12286         'Default merge profile to use during ACQ file upload',
12287         'coust',
12288         'description'
12289     ),
12290     'acq',
12291     'link',
12292     'vmp'
12293 ), (
12294     'acq.upload.default.vandelay.import_non_matching',
12295     oils_i18n_gettext(
12296         'acq.upload.default.vandelay.import_non_matching',
12297         'Upload Import Non Matching by Default',
12298         'coust',
12299         'label'
12300     ),
12301      oils_i18n_gettext(
12302         'acq.upload.default.vandelay.import_non_matching',
12303         'Import non-matching records by default during ACQ file upload',
12304         'coust',
12305         'description'
12306     ),
12307     'acq',
12308     'bool',
12309     NULL
12310 ), (
12311     'acq.upload.default.vandelay.merge_on_exact',
12312     oils_i18n_gettext(
12313         'acq.upload.default.vandelay.merge_on_exact',
12314         'Upload Merge on Exact Match by Default',
12315         'coust',
12316         'label'
12317     ),
12318      oils_i18n_gettext(
12319         'acq.upload.default.vandelay.merge_on_exact',
12320         'Merge records on exact match by default during ACQ file upload',
12321         'coust',
12322         'description'
12323     ),
12324     'acq',
12325     'bool',
12326     NULL
12327 ), (
12328     'acq.upload.default.vandelay.merge_on_best',
12329     oils_i18n_gettext(
12330         'acq.upload.default.vandelay.merge_on_best',
12331         'Upload Merge on Best Match by Default',
12332         'coust',
12333         'label'
12334     ),
12335      oils_i18n_gettext(
12336         'acq.upload.default.vandelay.merge_on_best',
12337         'Merge records on best match by default during ACQ file upload',
12338         'coust',
12339         'description'
12340     ),
12341     'acq',
12342     'bool',
12343     NULL
12344 ), (
12345     'acq.upload.default.vandelay.merge_on_single',
12346     oils_i18n_gettext(
12347         'acq.upload.default.vandelay.merge_on_single',
12348         'Upload Merge on Single Match by Default',
12349         'coust',
12350         'label'
12351     ),
12352      oils_i18n_gettext(
12353         'acq.upload.default.vandelay.merge_on_single',
12354         'Merge records on single match by default during ACQ file upload',
12355         'coust',
12356         'description'
12357     ),
12358     'acq',
12359     'bool',
12360     NULL
12361 ), (
12362     'acq.upload.default.vandelay.quality_ratio',
12363     oils_i18n_gettext(
12364         'acq.upload.default.vandelay.quality_ratio',
12365         'Upload Default Min. Quality Ratio',
12366         'coust',
12367         'label'
12368     ),
12369      oils_i18n_gettext(
12370         'acq.upload.default.vandelay.quality_ratio',
12371         'Default minimum quality ratio used during ACQ file upload',
12372         'coust',
12373         'description'
12374     ),
12375     'acq',
12376     'integer',
12377     NULL
12378 ), (
12379     'acq.upload.default.vandelay.low_quality_fall_thru_profile',
12380     oils_i18n_gettext(
12381         'acq.upload.default.vandelay.low_quality_fall_thru_profile',
12382         'Upload Default Insufficient Quality Fall-Thru Profile',
12383         'coust',
12384         'label'
12385     ),
12386      oils_i18n_gettext(
12387         'acq.upload.default.vandelay.low_quality_fall_thru_profile',
12388         'Default low-quality fall through profile used during ACQ file upload',
12389         'coust',
12390         'description'
12391     ),
12392     'acq',
12393     'link',
12394     'vmp'
12395 ), (
12396     'acq.upload.default.vandelay.load_item_for_imported',
12397     oils_i18n_gettext(
12398         'acq.upload.default.vandelay.load_item_for_imported',
12399         'Upload Load Items for Imported Records by Default',
12400         'coust',
12401         'label'
12402     ),
12403      oils_i18n_gettext(
12404         'acq.upload.default.vandelay.load_item_for_imported',
12405         'Load items for imported records by default during ACQ file upload',
12406         'coust',
12407         'description'
12408     ),
12409     'acq',
12410     'bool',
12411     NULL
12412 );
12413
12414
12415 INSERT INTO config.ts_config_list(id, name) VALUES
12416     ('simple','Non-Stemmed Simple'),
12417     ('danish_nostop','Danish Stemmed'),
12418     ('dutch_nostop','Dutch Stemmed'),
12419     ('english_nostop','English Stemmed'),
12420     ('finnish_nostop','Finnish Stemmed'),
12421     ('french_nostop','French Stemmed'),
12422     ('german_nostop','German Stemmed'),
12423     ('hungarian_nostop','Hungarian Stemmed'),
12424     ('italian_nostop','Italian Stemmed'),
12425     ('norwegian_nostop','Norwegian Stemmed'),
12426     ('portuguese_nostop','Portuguese Stemmed'),
12427     ('romanian_nostop','Romanian Stemmed'),
12428     ('russian_nostop','Russian Stemmed'),
12429     ('spanish_nostop','Spanish Stemmed'),
12430     ('swedish_nostop','Swedish Stemmed'),
12431     ('turkish_nostop','Turkish Stemmed');
12432
12433 INSERT INTO config.metabib_class_ts_map(field_class, ts_config, index_weight, always) VALUES
12434     ('keyword','simple','A',true),
12435     ('keyword','english_nostop','C',true),
12436     ('title','simple','A',true),
12437     ('title','english_nostop','C',true),
12438     ('author','simple','A',true),
12439     ('author','english_nostop','C',true),
12440     ('series','simple','A',true),
12441     ('series','english_nostop','C',true),
12442     ('subject','simple','A',true),
12443     ('subject','english_nostop','C',true),
12444     ('identifier','simple','A',true);
12445
12446 INSERT INTO config.org_unit_setting_type (
12447     name, label, description, datatype, fm_class, update_perm, grp
12448 ) VALUES (
12449     'circ.hold_capture_order',
12450     oils_i18n_gettext(
12451         'circ.hold_capture_order',
12452         'Best-hold selection sort order',
12453         'coust',
12454         'label'
12455     ),
12456     oils_i18n_gettext(
12457         'circ.hold_capture_order',
12458         'Defines the sort order of holds when selecting a hold to fill using a given copy at capture time',
12459         'coust',
12460         'description'
12461     ),
12462     'link',
12463     'cbho',
12464     543,
12465     'holds'
12466 );
12467
12468 INSERT INTO config.org_unit_setting_type (
12469     name, label, description, datatype, update_perm, grp
12470 ) VALUES (
12471     'circ.hold_go_home_interval',
12472     oils_i18n_gettext(
12473         'circ.hold_go_home_interval',
12474         'Max foreign-circulation time',
12475         'coust',
12476         'label'
12477     ),
12478     oils_i18n_gettext(
12479         'circ.hold_go_home_interval',
12480         'Time a copy can spend circulating away from its circ lib before returning there to fill a hold (if one exists there)',
12481         'coust',
12482         'description'
12483     ),
12484     'interval',
12485     543,
12486     'holds'
12487 );
12488
12489
12490 INSERT INTO config.best_hold_order (
12491     name,
12492     pprox, aprox, priority, cut, depth, rtime, htime, hprox
12493 ) VALUES (
12494     'Traditional',
12495     1, 2, 3, 4, 5, 6, 7, 8
12496 );
12497
12498 INSERT INTO config.best_hold_order (
12499     name,
12500     hprox, pprox, aprox, priority, cut, depth, rtime, htime
12501 ) VALUES (
12502     'Traditional with Holds-always-go-home',
12503     1, 2, 3, 4, 5, 6, 7, 8
12504 );
12505
12506 INSERT INTO config.best_hold_order (
12507     name,
12508     htime, hprox, pprox, aprox, priority, cut, depth, rtime
12509 ) VALUES (
12510     'Traditional with Holds-go-home',
12511     1, 2, 3, 4, 5, 6, 7, 8
12512 );
12513
12514 INSERT INTO config.best_hold_order (
12515     name,
12516     priority, cut, rtime, depth, pprox, hprox, aprox, htime
12517 ) VALUES (
12518     'FIFO',
12519     1, 2, 3, 4, 5, 6, 7, 8
12520 );
12521
12522 INSERT INTO config.best_hold_order (
12523     name,
12524     hprox, priority, cut, rtime, depth, pprox, aprox, htime
12525 ) VALUES (
12526     'FIFO with Holds-always-go-home',
12527     1, 2, 3, 4, 5, 6, 7, 8
12528 );
12529
12530 INSERT INTO config.best_hold_order (
12531     name,
12532     htime, priority, cut, rtime, depth, pprox, aprox, hprox
12533 ) VALUES (
12534     'FIFO with Holds-go-home',
12535     1, 2, 3, 4, 5, 6, 7, 8
12536 );
12537
12538 INSERT INTO actor.org_unit_setting (
12539     org_unit, name, value
12540 ) VALUES (
12541     (SELECT id FROM actor.org_unit WHERE parent_ou IS NULL),
12542     'circ.hold_go_home_interval',
12543     '"6 months"'
12544 );
12545
12546 INSERT INTO action_trigger.hook (
12547         key,
12548         core_type,
12549         description,
12550         passive
12551     ) VALUES (
12552         'au.barred',
12553         'au',
12554         'A user was barred by staff',
12555         FALSE
12556     );
12557
12558 INSERT INTO action_trigger.hook (
12559         key,
12560         core_type,
12561         description,
12562         passive
12563     ) VALUES (
12564         'au.unbarred',
12565         'au',
12566         'A user was un-barred by staff',
12567         FALSE
12568     );
12569
12570 INSERT INTO action_trigger.validator (
12571         module, 
12572         description
12573     ) VALUES (
12574         'PatronBarred',
12575         'Tests if a patron is currently marked as barred'
12576     );
12577
12578 INSERT INTO action_trigger.validator (
12579         module, 
12580         description
12581     ) VALUES (
12582         'PatronNotBarred',
12583         'Tests if a patron is currently not marked as barred'
12584     );
12585
12586 INSERT INTO config.org_unit_setting_type
12587     (name, label, description, grp, datatype) 
12588 VALUES (
12589     'acq.fund.rollover_distrib_forms',
12590     oils_i18n_gettext(
12591         'acq.fund.rollover_distrib_forms',
12592         'Rollover Distribution Formulae Funds',
12593         'coust',
12594         'label'
12595     ),
12596      oils_i18n_gettext(
12597         'acq.fund.rollover_distrib_forms',
12598         'During fiscal rollover, update distribution formalae to use new funds',
12599         'coust',
12600         'description'
12601     ),
12602     'acq',
12603     'bool'
12604 );
12605