]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/950.data.seed-values.sql
e145206b487dde09ef091a8ab9375ecf067ed172
[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(549,
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     [% isbn = PROCESS get_li_attr attr_name = 'isbn' %]
6590     [% ident = PROCESS get_li_attr attr_name = 'identifier' %]
6591
6592     <td>[% target.id %]</td>
6593     <td>[% isbn || ident %]</td>
6594     <td>[% PROCESS get_li_attr attr_name = 'title' %]</td>
6595     <td>[% count %]</td>
6596     <td>[% price %]</td>
6597     <td>[% litotal %]</td>
6598     <td>
6599         <ul>
6600         [% FOR note IN li.lineitem_notes %]
6601             [% IF note.vendor_public == 't' %]
6602                 <li>[% note.value %]</li>
6603             [% END %]
6604         [% END %]
6605         </ul>
6606     </td>
6607   </tr>
6608   [% END %]
6609   <tr>
6610     <td/><td/><td/><td/>
6611     <td>Subtotal</td>
6612     <td>[% subtotal %]</td>
6613   </tr>
6614   </tbody>
6615 </table>
6616
6617 <br/>
6618
6619 Total Line Item Count: [% target.lineitems.size %]
6620 $$);
6621
6622 INSERT INTO action_trigger.environment (event_def, path) VALUES 
6623     (4, 'lineitems.lineitem_details.fund'),
6624     (4, 'lineitems.lineitem_details.location'),
6625     (4, 'lineitems.lineitem_details.owning_lib'),
6626     (4, 'ordering_agency.mailing_address'),
6627     (4, 'ordering_agency.billing_address'),
6628     (4, 'provider.addresses'),
6629     (4, 'lineitems.attributes'),
6630     (4, 'lineitems.lineitem_notes'),
6631     (4, 'notes');
6632
6633 INSERT INTO action_trigger.cleanup ( module, description ) VALUES (
6634     'CreateHoldNotification',
6635     oils_i18n_gettext(
6636         'CreateHoldNotification',
6637         'Creates a hold_notification record for each notified hold',
6638         'atclean',
6639         'description'
6640     )
6641 );
6642
6643 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, cleanup_success, template)
6644     VALUES (5, 'f', 1, 'Hold Ready for Pickup Email Notification', 'hold.available', 'HoldIsAvailable', 'SendEmail', '30 minutes', 'shelf_time', 'usr', 'CreateHoldNotification',
6645 $$
6646 [%- USE date -%]
6647 [%- user = target.0.usr -%]
6648 To: [%- params.recipient_email || user.email %]
6649 From: [%- params.sender_email || default_sender %]
6650 Subject: Hold Available Notification
6651
6652 Dear [% user.family_name %], [% user.first_given_name %]
6653 The item(s) you requested are available for pickup from the Library.
6654
6655 [% FOR hold IN target %]
6656     [%- copy_details = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
6657     Title: [% copy_details.title %]
6658     Author: [% copy_details.author %]
6659     Call Number: [% hold.current_copy.call_number.label %]
6660     Barcode: [% hold.current_copy.barcode %]
6661     Library: [% hold.pickup_lib.name %]
6662 [% END %]
6663
6664 $$);
6665
6666 INSERT INTO action_trigger.event_params (event_def, param, value)
6667     VALUES (5, 'check_email_notify', 1);
6668
6669 INSERT INTO action_trigger.hook (
6670         key,
6671         core_type,
6672         description,
6673         passive
6674     ) VALUES (
6675         'hold_request.shelf_expires_soon',
6676         'ahr',
6677         'A hold on the shelf will expire there soon.',
6678         TRUE
6679     );
6680
6681 INSERT INTO action_trigger.environment (event_def, path) VALUES
6682     (5, 'current_copy.call_number'),
6683     (5, 'usr'),
6684     (5, 'pickup_lib.billing_address');
6685
6686
6687 INSERT INTO action_trigger.event_definition (
6688         id,
6689         active,
6690         owner,
6691         name,
6692         hook,
6693         validator,
6694         reactor,
6695         delay,
6696         delay_field,
6697         group_field,
6698         template
6699     ) VALUES (
6700         7,
6701         FALSE,
6702         1,
6703         'Hold Expires from Shelf Soon',
6704         'hold_request.shelf_expires_soon',
6705         'HoldIsAvailable',
6706         'SendEmail',
6707         '- 1 DAY',
6708         'shelf_expire_time',
6709         'usr',
6710 $$
6711 [%- USE date -%]
6712 [%- user = target.0.usr -%]
6713 To: [%- params.recipient_email || user.email %]
6714 From: [%- params.sender_email || default_sender %]
6715 Subject: Hold Available Notification
6716
6717 Dear [% user.family_name %], [% user.first_given_name %]
6718 You requested holds on the following item(s), which are available for
6719 pickup, but these holds will soon expire.
6720
6721 [% FOR hold IN target %]
6722     [%- data = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
6723     Title: [% data.title %]
6724     Author: [% data.author %]
6725     Library: [% hold.pickup_lib.name %]
6726 [% END %]
6727 $$
6728 );
6729
6730 INSERT INTO action_trigger.event_params (event_def, param, value)
6731     VALUES (7, 'check_email_notify', 1);
6732
6733 INSERT INTO action_trigger.environment (
6734         event_def,
6735         path
6736     ) VALUES
6737     ( 7, 'current_copy'),
6738     ( 7, 'pickup_lib.billing_address'),
6739     ( 7, 'usr');
6740
6741 -- long wait hold request notifications
6742
6743 INSERT INTO action_trigger.hook (
6744         key,
6745         core_type,
6746         description,
6747         passive
6748     ) VALUES (
6749         'hold_request.long_wait',
6750         'ahr',
6751         'A patron has been waiting on a hold to be fulfilled for a long time.',
6752         TRUE
6753     );
6754
6755 INSERT INTO action_trigger.validator (module,description) VALUES
6756     ('HoldNotifyCheck',
6757     oils_i18n_gettext(
6758         'HoldNotifyCheck',
6759         'Check Hold notification flag(s)',
6760         'atval',
6761         'description'
6762     ));
6763
6764 INSERT INTO action_trigger.event_definition (
6765         id,
6766         active,
6767         owner,
6768         name,
6769         hook,
6770         validator,
6771         reactor,
6772         delay,
6773         delay_field,
6774         group_field,
6775         template
6776     ) VALUES (
6777         9,
6778         FALSE,
6779         1,
6780         'Hold waiting for pickup for long time',
6781         'hold_request.long_wait',
6782         'HoldNotifyCheck',
6783         'SendEmail',
6784         '6 MONTHS',
6785         'request_time',
6786         'usr',
6787 $$
6788 [%- USE date -%]
6789 [%- user = target.0.usr -%]
6790 To: [%- params.recipient_email || user.email %]
6791 From: [%- params.sender_email || default_sender %]
6792 Subject: Long Wait Hold Notification
6793
6794 Dear [% user.family_name %], [% user.first_given_name %]
6795
6796 You requested hold(s) on the following item(s), but unfortunately
6797 we have not been able to fulfill your request after a considerable
6798 length of time.  If you would still like to receive these items,
6799 no action is required.
6800
6801 [% FOR hold IN target %]
6802     [%- copy_details = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
6803     Title: [% copy_details.title %]
6804     Author: [% copy_details.author %]
6805 [% END %]
6806 $$
6807 );
6808
6809 INSERT INTO action_trigger.environment (event_def, path)
6810     VALUES
6811     (9, 'pickup_lib'),
6812     (9, 'usr'),
6813     (9, 'current_copy.call_number');
6814
6815 INSERT INTO action_trigger.event_params (event_def, param, value)
6816     VALUES (9, 'check_email_notify', 1);
6817
6818 -- trigger data related to acq user requests
6819
6820 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
6821         'aur.ordered',
6822         'aur', 
6823         oils_i18n_gettext(
6824             'aur.ordered',
6825             'A patron acquisition request has been marked On-Order.',
6826             'ath',
6827             'description'
6828         ), 
6829         TRUE
6830     ), (
6831         'aur.received', 
6832         'aur', 
6833         oils_i18n_gettext(
6834             'aur.received', 
6835             'A patron acquisition request has been marked Received.',
6836             'ath',
6837             'description'
6838         ),
6839         TRUE
6840     ), (
6841         'aur.cancelled',
6842         'aur',
6843         oils_i18n_gettext(
6844             'aur.cancelled',
6845             'A patron acquisition request has been marked Cancelled.',
6846             'ath',
6847             'description'
6848         ),
6849         TRUE
6850     ), (
6851         'aur.created',
6852         'aur',
6853         oils_i18n_gettext(
6854             'aur.created',
6855             'A patron has made an acquisitions request.',
6856             'ath',
6857             'description'
6858         ),
6859         TRUE
6860     ), (
6861         'aur.rejected',
6862         'aur',
6863         oils_i18n_gettext(
6864             'aur.rejected',
6865             'A patron acquisition request has been rejected.',
6866             'ath',
6867             'description'
6868         ),
6869         TRUE
6870     )
6871 ;
6872
6873 INSERT INTO action_trigger.validator (module,description) VALUES (
6874         'Acq::UserRequestOrdered',
6875         oils_i18n_gettext(
6876             'Acq::UserRequestOrdered',
6877             'Tests to see if the corresponding Line Item has a state of "on-order".',
6878             'atval',
6879             'description'
6880         )
6881     ), (
6882         'Acq::UserRequestReceived',
6883         oils_i18n_gettext(
6884             'Acq::UserRequestReceived',
6885             'Tests to see if the corresponding Line Item has a state of "received".',
6886             'atval',
6887             'description'
6888         )
6889     ), (
6890         'Acq::UserRequestCancelled',
6891         oils_i18n_gettext(
6892             'Acq::UserRequestCancelled',
6893             'Tests to see if the corresponding Line Item has a state of "cancelled".',
6894             'atval',
6895             'description'
6896         )
6897     )
6898 ;
6899
6900 INSERT INTO action_trigger.event_definition (
6901         id,
6902         active,
6903         owner,
6904         name,
6905         hook,
6906         validator,
6907         reactor,
6908         template
6909     ) VALUES (
6910         15,
6911         FALSE,
6912         1,
6913         'Email Notice: Patron Acquisition Request marked On-Order.',
6914         'aur.ordered',
6915         'Acq::UserRequestOrdered',
6916         'SendEmail',
6917 $$
6918 [%- USE date -%]
6919 [%- SET li = target.lineitem; -%]
6920 [%- SET user = target.usr -%]
6921 [%- SET title = helpers.get_li_attr("title", "", li.attributes) -%]
6922 [%- SET author = helpers.get_li_attr("author", "", li.attributes) -%]
6923 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) -%]
6924 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) -%]
6925 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
6926 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
6927
6928 To: [%- params.recipient_email || user.email %]
6929 From: [%- params.sender_email || default_sender %]
6930 Subject: Acquisition Request Notification
6931
6932 Dear [% user.family_name %], [% user.first_given_name %]
6933 Our records indicate the following acquisition request has been placed on order.
6934
6935 Title: [% title %]
6936 [% IF author %]Author: [% author %][% END %]
6937 [% IF edition %]Edition: [% edition %][% END %]
6938 [% IF isbn %]ISBN: [% isbn %][% END %]
6939 [% IF publisher %]Publisher: [% publisher %][% END %]
6940 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
6941 Lineitem ID: [% li.id %]
6942 $$
6943     ), (
6944         16,
6945         FALSE,
6946         1,
6947         'Email Notice: Patron Acquisition Request marked Received.',
6948         'aur.received',
6949         'Acq::UserRequestReceived',
6950         'SendEmail',
6951 $$
6952 [%- USE date -%]
6953 [%- SET li = target.lineitem; -%]
6954 [%- SET user = target.usr -%]
6955 [%- SET title = helpers.get_li_attr("title", "", li.attributes) %]
6956 [%- SET author = helpers.get_li_attr("author", "", li.attributes) %]
6957 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) %]
6958 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) %]
6959 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
6960 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
6961
6962 To: [%- params.recipient_email || user.email %]
6963 From: [%- params.sender_email || default_sender %]
6964 Subject: Acquisition Request Notification
6965
6966 Dear [% user.family_name %], [% user.first_given_name %]
6967 Our records indicate the materials for the following acquisition request have been received.
6968
6969 Title: [% title %]
6970 [% IF author %]Author: [% author %][% END %]
6971 [% IF edition %]Edition: [% edition %][% END %]
6972 [% IF isbn %]ISBN: [% isbn %][% END %]
6973 [% IF publisher %]Publisher: [% publisher %][% END %]
6974 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
6975 Lineitem ID: [% li.id %]
6976 $$
6977     ), (
6978         17,
6979         FALSE,
6980         1,
6981         'Email Notice: Patron Acquisition Request marked Cancelled.',
6982         'aur.cancelled',
6983         'Acq::UserRequestCancelled',
6984         'SendEmail',
6985 $$
6986 [%- USE date -%]
6987 [%- SET li = target.lineitem; -%]
6988 [%- SET user = target.usr -%]
6989 [%- SET title = helpers.get_li_attr("title", "", li.attributes) %]
6990 [%- SET author = helpers.get_li_attr("author", "", li.attributes) %]
6991 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) %]
6992 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) %]
6993 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
6994 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
6995
6996 To: [%- params.recipient_email || user.email %]
6997 From: [%- params.sender_email || default_sender %]
6998 Subject: Acquisition Request Notification
6999
7000 Dear [% user.family_name %], [% user.first_given_name %]
7001 Our records indicate the following acquisition request has been cancelled.
7002
7003 Title: [% title %]
7004 [% IF author %]Author: [% author %][% END %]
7005 [% IF edition %]Edition: [% edition %][% END %]
7006 [% IF isbn %]ISBN: [% isbn %][% END %]
7007 [% IF publisher %]Publisher: [% publisher %][% END %]
7008 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7009 Lineitem ID: [% li.id %]
7010 $$
7011     ), (
7012         18,
7013         FALSE,
7014         1,
7015         'Email Notice: Acquisition Request created.',
7016         'aur.created',
7017         'NOOP_True',
7018         'SendEmail',
7019 $$
7020 [%- USE date -%]
7021 [%- SET user = target.usr -%]
7022 [%- SET title = target.title -%]
7023 [%- SET author = target.author -%]
7024 [%- SET isxn = target.isxn -%]
7025 [%- SET publisher = target.publisher -%]
7026 [%- SET pubdate = target.pubdate -%]
7027
7028 To: [%- params.recipient_email || user.email %]
7029 From: [%- params.sender_email || default_sender %]
7030 Subject: Acquisition Request Notification
7031
7032 Dear [% user.family_name %], [% user.first_given_name %]
7033 Our records indicate that you have made the following acquisition request:
7034
7035 Title: [% title %]
7036 [% IF author %]Author: [% author %][% END %]
7037 [% IF edition %]Edition: [% edition %][% END %]
7038 [% IF isbn %]ISXN: [% isxn %][% END %]
7039 [% IF publisher %]Publisher: [% publisher %][% END %]
7040 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7041 $$
7042     ), (
7043         19,
7044         FALSE,
7045         1,
7046         'Email Notice: Acquisition Request Rejected.',
7047         'aur.rejected',
7048         'NOOP_True',
7049         'SendEmail',
7050 $$
7051 [%- USE date -%]
7052 [%- SET user = target.usr -%]
7053 [%- SET title = target.title -%]
7054 [%- SET author = target.author -%]
7055 [%- SET isxn = target.isxn -%]
7056 [%- SET publisher = target.publisher -%]
7057 [%- SET pubdate = target.pubdate -%]
7058 [%- SET cancel_reason = target.cancel_reason.description -%]
7059
7060 To: [%- params.recipient_email || user.email %]
7061 From: [%- params.sender_email || default_sender %]
7062 Subject: Acquisition Request Notification
7063
7064 Dear [% user.family_name %], [% user.first_given_name %]
7065 Our records indicate the following acquisition request has been rejected for this reason: [% cancel_reason %]
7066
7067 Title: [% title %]
7068 [% IF author %]Author: [% author %][% END %]
7069 [% IF edition %]Edition: [% edition %][% END %]
7070 [% IF isbn %]ISBN: [% isbn %][% END %]
7071 [% IF publisher %]Publisher: [% publisher %][% END %]
7072 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7073 $$
7074     )
7075 ;
7076
7077 INSERT INTO action_trigger.environment (
7078         event_def,
7079         path
7080     ) VALUES 
7081         ( 15, 'lineitem' ),
7082         ( 15, 'lineitem.attributes' ),
7083         ( 15, 'usr' ),
7084
7085         ( 16, 'lineitem' ),
7086         ( 16, 'lineitem.attributes' ),
7087         ( 16, 'usr' ),
7088
7089         ( 17, 'lineitem' ),
7090         ( 17, 'lineitem.attributes' ),
7091         ( 17, 'usr' ),
7092
7093         ( 18, 'usr' ),
7094         ( 19, 'usr' ),
7095         ( 19, 'cancel_reason' )
7096     ;
7097
7098 INSERT INTO action_trigger.hook (key,core_type,description) VALUES ('password.reset_request','aupr','Patron has requested a self-serve password reset');
7099 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, template) 
7100     VALUES (20, 'f', 1, 'Password reset request notification', 'password.reset_request', 'NOOP_True', 'SendEmail', '00:00:01',
7101 $$
7102 [%- USE date -%]
7103 [%- user = target.usr -%]
7104 To: [%- params.recipient_email || user.email %]
7105 From: [%- params.sender_email || user.home_ou.email || default_sender %]
7106 Subject: [% user.home_ou.name %]: library account password reset request
7107
7108 You have received this message because you, or somebody else, requested a reset
7109 of your library system password. If you did not request a reset of your library
7110 system password, just ignore this message and your current password will
7111 continue to work.
7112
7113 If you did request a reset of your library system password, please perform
7114 the following steps to continue the process of resetting your password:
7115
7116 1. Open the following link in a web browser: https://[% params.hostname %]/eg/opac/password_reset/[% target.uuid %]
7117 The browser displays a password reset form.
7118
7119 2. Enter your new password in the password reset form in the browser. You must
7120 enter the password twice to ensure that you do not make a mistake. If the
7121 passwords match, you will then be able to log in to your library system account
7122 with the new password.
7123
7124 $$);
7125 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7126     ( 20, 'usr' );
7127 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7128     ( 20, 'usr.home_ou' );
7129
7130
7131 INSERT INTO action_trigger.hook (key, core_type, description, passive)
7132     VALUES (
7133         'format.acqcle.html',
7134         'acqcle',
7135         'Formats claim events into a voucher',
7136         TRUE
7137     );
7138
7139 INSERT INTO action_trigger.event_definition (
7140         id, active, owner, name, hook, group_field,
7141         validator, reactor, granularity, template
7142     ) VALUES (
7143         21,
7144         TRUE,
7145         1,
7146         'Claim Voucher',
7147         'format.acqcle.html',
7148         'claim',
7149         'NOOP_True',
7150         'ProcessTemplate',
7151         'print-on-demand',
7152 $$
7153 [%- USE date -%]
7154 [%- SET claim = target.0.claim -%]
7155 <!-- This will need refined/prettified. -->
7156 <div class="acq-claim-voucher">
7157     <h2>Claim: [% claim.id %] ([% claim.type.code %])</h2>
7158     <h3>Against: [%- helpers.get_li_attr("title", "", claim.lineitem_detail.lineitem.attributes) -%]</h3>
7159     <ul>
7160         [% FOR event IN target %]
7161         <li>
7162             Event type: [% event.type.code %]
7163             [% IF event.type.library_initiated %](Library initiated)[% END %]
7164             <br />
7165             Event date: [% event.event_date %]<br />
7166             Order date: [% event.claim.lineitem_detail.lineitem.purchase_order.order_date %]<br />
7167             Expected receive date: [% event.claim.lineitem_detail.lineitem.expected_recv_time %]<br />
7168             Initiated by: [% event.creator.family_name %], [% event.creator.first_given_name %] [% event.creator.second_given_name %]<br />
7169             Barcode: [% event.claim.lineitem_detail.barcode %]; Fund:
7170             [% event.claim.lineitem_detail.fund.code %]
7171             ([% event.claim.lineitem_detail.fund.year %])
7172         </li>
7173         [% END %]
7174     </ul>
7175 </div>
7176 $$
7177 );
7178
7179 INSERT INTO action_trigger.environment (event_def, path) VALUES
7180     (21, 'claim'),
7181     (21, 'claim.type'),
7182     (21, 'claim.lineitem_detail'),
7183     (21, 'claim.lineitem_detail.fund'),
7184     (21, 'claim.lineitem_detail.lineitem.attributes'),
7185     (21, 'claim.lineitem_detail.lineitem.purchase_order'),
7186     (21, 'creator'),
7187     (21, 'type')
7188 ;
7189
7190
7191 INSERT INTO action_trigger.hook (key, core_type, description, passive)
7192     VALUES (
7193         'format.acqinv.html',
7194         'acqinv',
7195         'Formats invoices into a voucher',
7196         TRUE
7197     );
7198
7199 INSERT INTO action_trigger.event_definition (
7200         id, active, owner, name, hook,
7201         validator, reactor, granularity, template
7202     ) VALUES (
7203         22,
7204         TRUE,
7205         1,
7206         'Invoice',
7207         'format.acqinv.html',
7208         'NOOP_True',
7209         'ProcessTemplate',
7210         'print-on-demand',
7211 $$
7212 [% FILTER collapse %]
7213 [%- SET invoice = target -%]
7214 <!-- This lacks general refinement -->
7215 <div class="acq-invoice-voucher">
7216     <h1>Invoice</h1>
7217     <div>
7218         <strong>No.</strong> [% invoice.inv_ident %]
7219         [% IF invoice.inv_type %]
7220             / <strong>Type:</strong>[% invoice.inv_type %]
7221         [% END %]
7222     </div>
7223     <div>
7224         <dl>
7225             [% BLOCK ent_with_address %]
7226             <dt>[% ent_label %]: [% ent.name %] ([% ent.code %])</dt>
7227             <dd>
7228                 [% IF ent.addresses.0 %]
7229                     [% SET addr = ent.addresses.0 %]
7230                     [% addr.street1 %]<br />
7231                     [% IF addr.street2 %][% addr.street2 %]<br />[% END %]
7232                     [% addr.city %],
7233                     [% IF addr.county %] [% addr.county %], [% END %]
7234                     [% IF addr.state %] [% addr.state %] [% END %]
7235                     [% IF addr.post_code %][% addr.post_code %][% END %]<br />
7236                     [% IF addr.country %] [% addr.country %] [% END %]
7237                 [% END %]
7238                 <p>
7239                     [% IF ent.phone %] Phone: [% ent.phone %]<br />[% END %]
7240                     [% IF ent.fax_phone %] Fax: [% ent.fax_phone %]<br />[% END %]
7241                     [% IF ent.url %] URL: [% ent.url %]<br />[% END %]
7242                     [% IF ent.email %] E-mail: [% ent.email %] [% END %]
7243                 </p>
7244             </dd>
7245             [% END %]
7246             [% INCLUDE ent_with_address
7247                 ent = invoice.provider
7248                 ent_label = "Provider" %]
7249             [% INCLUDE ent_with_address
7250                 ent = invoice.shipper
7251                 ent_label = "Shipper" %]
7252             <dt>Receiver</dt>
7253             <dd>
7254                 [% invoice.receiver.name %] ([% invoice.receiver.shortname %])
7255             </dd>
7256             <dt>Received</dt>
7257             <dd>
7258                 [% helpers.format_date(invoice.recv_date) %] by
7259                 [% invoice.recv_method %]
7260             </dd>
7261             [% IF invoice.note %]
7262                 <dt>Note</dt>
7263                 <dd>
7264                     [% invoice.note %]
7265                 </dd>
7266             [% END %]
7267         </dl>
7268     </div>
7269     <ul>
7270         [% FOR entry IN invoice.entries %]
7271             <li>
7272                 [% IF entry.lineitem %]
7273                     Title: [% helpers.get_li_attr(
7274                         "title", "", entry.lineitem.attributes
7275                     ) %]<br />
7276                     Author: [% helpers.get_li_attr(
7277                         "author", "", entry.lineitem.attributes
7278                     ) %]
7279                 [% END %]
7280                 [% IF entry.purchase_order %]
7281                     (PO: [% entry.purchase_order.name %])
7282                 [% END %]<br />
7283                 Invoice item count: [% entry.inv_item_count %]
7284                 [% IF entry.phys_item_count %]
7285                     / Physical item count: [% entry.phys_item_count %]
7286                 [% END %]
7287                 <br />
7288                 [% IF entry.cost_billed %]
7289                     Cost billed: [% entry.cost_billed %]
7290                     [% IF entry.billed_per_item %](per item)[% END %]
7291                     <br />
7292                 [% END %]
7293                 [% IF entry.actual_cost %]
7294                     Actual cost: [% entry.actual_cost %]<br />
7295                 [% END %]
7296                 [% IF entry.amount_paid %]
7297                     Amount paid: [% entry.amount_paid %]<br />
7298                 [% END %]
7299                 [% IF entry.note %]Note: [% entry.note %][% END %]
7300             </li>
7301         [% END %]
7302         [% FOR item IN invoice.items %]
7303             <li>
7304                 [% IF item.inv_item_type %]
7305                     Item Type: [% item.inv_item_type %]<br />
7306                 [% END %]
7307                 [% IF item.title %]Title/Description:
7308                     [% item.title %]<br />
7309                 [% END %]
7310                 [% IF item.author %]Author: [% item.author %]<br />[% END %]
7311                 [% IF item.purchase_order %]PO: [% item.purchase_order %]<br />[% END %]
7312                 [% IF item.note %]Note: [% item.note %]<br />[% END %]
7313                 [% IF item.cost_billed %]
7314                     Cost billed: [% item.cost_billed %]<br />
7315                 [% END %]
7316                 [% IF item.actual_cost %]
7317                     Actual cost: [% item.actual_cost %]<br />
7318                 [% END %]
7319                 [% IF item.amount_paid %]
7320                     Amount paid: [% item.amount_paid %]<br />
7321                 [% END %]
7322             </li>
7323         [% END %]
7324     </ul>
7325     <div>
7326         Amounts spent per fund:
7327         <table>
7328         [% FOR blob IN user_data %]
7329             <tr>
7330                 <th style="text-align: left;">[% blob.fund.code %] ([% blob.fund.year %]):</th>
7331                 <td>$[% blob.total %]</td>
7332             </tr>
7333         [% END %]
7334         </table>
7335     </div>
7336 </div>
7337 [% END %]$$
7338 );
7339
7340
7341 INSERT INTO action_trigger.environment (event_def, path) VALUES
7342     (22, 'provider'),
7343     (22, 'provider.addresses'),
7344     (22, 'shipper'),
7345     (22, 'shipper.addresses'),
7346     (22, 'receiver'),
7347     (22, 'entries'),
7348     (22, 'entries.purchase_order'),
7349     (22, 'entries.lineitem'),
7350     (22, 'entries.lineitem.attributes'),
7351     (22, 'items')
7352 ;
7353
7354 SELECT SETVAL('action_trigger.event_definition_id_seq'::TEXT, 100);
7355
7356 -- Hold cancel action/trigger hooks
7357
7358 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7359     'hold_request.cancel.expire_no_target',
7360     'ahr',
7361     'A hold is cancelled because no copies were found'
7362 );
7363
7364 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7365     'hold_request.cancel.expire_holds_shelf',
7366     'ahr',
7367     'A hold is cancelled because it was on the holds shelf too long'
7368 );
7369
7370 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7371     'hold_request.cancel.staff',
7372     'ahr',
7373     'A hold is cancelled because it was cancelled by staff'
7374 );
7375
7376 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7377     'hold_request.cancel.patron',
7378     'ahr',
7379     'A hold is cancelled by the patron'
7380 );
7381
7382
7383 -- in-db indexing normalizers
7384 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7385         'NACO Normalize',
7386         'Apply NACO normalization rules to the extracted text.  See http://www.loc.gov/catdir/pcc/naco/normrule-2.html for details.',
7387         'naco_normalize',
7388         0
7389 );
7390
7391 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7392         'Normalize date range',
7393         'Split date ranges in the form of "XXXX-YYYY" into "XXXX YYYY" for proper index.',
7394         'split_date_range',
7395         0
7396 );
7397
7398 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7399         'NACO Normalize -- retain first comma',
7400         '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.',
7401         'naco_normalize_keep_comma',
7402         0
7403 );
7404
7405 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7406         'Strip Diacritics',
7407         'Convert text to NFD form and remove non-spacing combining marks.',
7408         'remove_diacritics',
7409         0
7410 );
7411
7412 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7413         'Remove Parenthesized Substring',
7414         'Remove any parenthesized substrings from the extracted text, such as the agency code preceding authority record control numbers in subfield 0.',
7415         'remove_paren_substring',
7416         0
7417 );
7418
7419 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7420         'Up-case',
7421         'Convert text upper case.',
7422         'uppercase',
7423         0
7424 );
7425
7426 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7427         'Down-case',
7428         'Convert text lower case.',
7429         'lowercase',
7430         0
7431 );
7432
7433 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7434         'Extract Dewey-like number',
7435         'Extract a string of numeric characters that resembles a DDC number.',
7436         'call_number_dewey',
7437         0
7438 );
7439
7440 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7441         'Left truncation',
7442         'Discard the specified number of characters from the left side of the string.',
7443         'left_trunc',
7444         1
7445 );
7446
7447 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7448         'Right truncation',
7449         'Include only the specified number of characters from the left side of the string.',
7450         'right_trunc',
7451         1
7452 );
7453
7454 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7455         'First word',
7456         'Include only the first space-separated word of a string.',
7457         'first_word',
7458         0
7459 );
7460
7461 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7462         'ISBN 10/13 conversion',
7463         'Translate ISBN10 to ISBN13 and vice versa.',
7464         'translate_isbn1013',
7465         0
7466 );
7467
7468 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7469         'Replace',
7470         'Replace all occurences of first parameter in the string with the second parameter.',
7471         'replace',
7472         2
7473 );
7474
7475 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7476         'Trim Surrounding Space',
7477         'Trim leading and trailing spaces from extracted text.',
7478         'btrim',
7479         0
7480 );
7481
7482 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7483     'Generic Mapping Normalizer', 
7484     'Map values or sets of values to new values',
7485     'generic_map_normalizer', 
7486     1
7487 );
7488
7489 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7490     'Coded Value Map Normalizer', 
7491     'Applies coded_value_map mapping of values',
7492     'coded_value_map_normalizer', 
7493     1
7494 );
7495
7496 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7497         'Search Normalize',
7498         'Apply search normalization rules to the extracted text. A less extreme version of NACO normalization.',
7499         'search_normalize',
7500         0
7501 );
7502
7503 -- make use of the index normalizers
7504
7505 INSERT INTO config.metabib_field_index_norm_map (field,norm)
7506     SELECT  m.id,
7507             i.id
7508       FROM  config.metabib_field m,
7509         config.index_normalizer i
7510       WHERE i.func IN ('search_normalize','split_date_range')
7511             AND m.id NOT IN (18, 19);
7512
7513 INSERT INTO config.metabib_field_index_norm_map (field,norm,pos)
7514     SELECT  m.id,
7515             i.id,
7516             2
7517       FROM  config.metabib_field m,
7518             config.index_normalizer i
7519       WHERE i.func IN ('translate_isbn1013')
7520             AND m.id IN (18);
7521
7522 INSERT INTO config.metabib_field_index_norm_map (field,norm,params)
7523     SELECT  m.id,
7524             i.id,
7525             $$["-",""]$$
7526       FROM  config.metabib_field m,
7527             config.index_normalizer i
7528       WHERE i.func IN ('replace')
7529             AND m.id IN (19);
7530
7531 INSERT INTO config.metabib_field_index_norm_map (field,norm,pos)
7532     SELECT  m.id,
7533             i.id,
7534             -1
7535       FROM  config.metabib_field m,
7536             config.index_normalizer i
7537       WHERE i.func = 'remove_paren_substring'
7538             AND m.id IN (28);
7539
7540 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7541     SELECT  m.name, i.id, 0
7542       FROM  config.record_attr_definition m,
7543             config.index_normalizer i
7544       WHERE i.func IN ('content_or_null')
7545             AND m.name IN ('titlesort', 'authorsort');
7546
7547 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7548     SELECT  m.name, i.id, 0
7549       FROM  config.record_attr_definition m,
7550             config.index_normalizer i
7551       WHERE i.func IN ('integer_or_null')
7552             AND m.name IN ('date1', 'date2', 'pubdate');
7553
7554 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7555     SELECT  m.name, i.id, 0
7556       FROM  config.record_attr_definition m,
7557             config.index_normalizer i
7558       WHERE i.func IN ('approximate_low_date')
7559             AND m.name IN ('date1', 'pubdate');
7560
7561 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7562     SELECT  m.name, i.id, 0
7563       FROM  config.record_attr_definition m,
7564             config.index_normalizer i
7565       WHERE i.func IN ('approximate_high_date')
7566             AND m.name IN ('date2');
7567
7568 -- Sample Pre-due Notice --
7569
7570 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, template) 
7571     VALUES (6, 'f', 1, '3 Day Courtesy Notice', 'checkout.due', 'CircIsOpen', 'SendEmail', '-3 days', 'due_date', 'usr', '-2 days',
7572 $$
7573 [%- USE date -%]
7574 [%- user = target.0.usr -%]
7575 To: [%- params.recipient_email || user.email %]
7576 From: [%- params.sender_email || default_sender %]
7577 Subject: Courtesy Notice
7578
7579 Dear [% user.family_name %], [% user.first_given_name %]
7580 As a reminder, the following items are due in 3 days.
7581
7582 [% FOR circ IN target %]
7583     [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
7584     Title: [% copy_details.title %]
7585     Author: [% copy_details.author %]
7586     Barcode: [% circ.target_copy.barcode %] 
7587     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
7588     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
7589     Library: [% circ.circ_lib.name %]
7590     Library Phone: [% circ.circ_lib.phone %]
7591
7592 [% END %]
7593
7594 $$);
7595
7596 INSERT INTO action_trigger.environment (event_def, path) VALUES 
7597     (6, 'target_copy.call_number'),
7598     (6, 'usr'),
7599     (6, 'circ_lib.billing_address');
7600
7601 -- Additional A/T Reactors
7602
7603 INSERT INTO action_trigger.reactor (module,description) VALUES
7604 (   'ApplyPatronPenalty',
7605     oils_i18n_gettext(
7606         'ApplyPatronPenalty',
7607         '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.',
7608         'atreact',
7609         'description'
7610     )
7611 );
7612
7613 INSERT INTO action_trigger.reactor (module,description) VALUES
7614 (   'SendFile',
7615     oils_i18n_gettext(
7616         'SendFile',
7617         '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.',
7618         'atreact',
7619         'description'
7620     )
7621 );
7622
7623 -- self-check checkout receipt
7624
7625 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7626     VALUES (
7627         'format.selfcheck.checkout',
7628         'circ',
7629         'Formats circ objects for self-checkout receipt',
7630         TRUE
7631     );
7632
7633 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
7634     VALUES (
7635         10,
7636         TRUE,
7637         1,
7638         'Self-Checkout Receipt',
7639         'format.selfcheck.checkout',
7640         'NOOP_True',
7641         'ProcessTemplate',
7642         'usr',
7643         'print-on-demand',
7644 $$
7645 [%- USE date -%]
7646 [%- SET user = target.0.usr -%]
7647 [%- SET lib = target.0.circ_lib -%]
7648 [%- SET lib_addr = target.0.circ_lib.billing_address -%]
7649 [%- SET hours = lib.hours_of_operation -%]
7650 <div>
7651     <style> li { padding: 8px; margin 5px; }</style>
7652     <div>[% date.format %]</div>
7653     <div>[% lib.name %]</div>
7654     <div>[% lib_addr.street1 %] [% lib_addr.street2 %]</div>
7655     <div>[% lib_addr.city %], [% lib_addr.state %] [% lb_addr.post_code %]</div>
7656     <div>[% lib.phone %]</div>
7657     <br/>
7658
7659     [% user.family_name %], [% user.first_given_name %]
7660     <ol>
7661     [% FOR circ IN target %]
7662         [%-
7663             SET idx = loop.count - 1;
7664             SET udata =  user_data.$idx
7665         -%]
7666         <li>
7667             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
7668             <div>Barcode: [% circ.target_copy.barcode %]</div>
7669             [% IF user_data.renewal_failure %]
7670                 <div style='color:red;'>Renewal Failed</div>
7671             [% ELSE %]
7672                 <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
7673             [% END %]
7674         </li>
7675     [% END %]
7676     </ol>
7677     
7678     <div>
7679         Library Hours
7680         [%- BLOCK format_time; date.format(time _ ' 1/1/1000', format='%I:%M %p'); END -%]
7681         <div>
7682             Monday 
7683             [% PROCESS format_time time = hours.dow_0_open %] 
7684             [% PROCESS format_time time = hours.dow_0_close %] 
7685         </div>
7686         <div>
7687             Tuesday 
7688             [% PROCESS format_time time = hours.dow_1_open %] 
7689             [% PROCESS format_time time = hours.dow_1_close %] 
7690         </div>
7691         <div>
7692             Wednesday 
7693             [% PROCESS format_time time = hours.dow_2_open %] 
7694             [% PROCESS format_time time = hours.dow_2_close %] 
7695         </div>
7696         <div>
7697             Thursday
7698             [% PROCESS format_time time = hours.dow_3_open %] 
7699             [% PROCESS format_time time = hours.dow_3_close %] 
7700         </div>
7701         <div>
7702             Friday
7703             [% PROCESS format_time time = hours.dow_4_open %] 
7704             [% PROCESS format_time time = hours.dow_4_close %] 
7705         </div>
7706         <div>
7707             Saturday
7708             [% PROCESS format_time time = hours.dow_5_open %] 
7709             [% PROCESS format_time time = hours.dow_5_close %] 
7710         </div>
7711         <div>
7712             Sunday 
7713             [% PROCESS format_time time = hours.dow_6_open %] 
7714             [% PROCESS format_time time = hours.dow_6_close %] 
7715         </div>
7716     </div>
7717 </div>
7718 $$
7719 );
7720
7721
7722 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7723     ( 10, 'target_copy'),
7724     ( 10, 'circ_lib.billing_address'),
7725     ( 10, 'circ_lib.hours_of_operation'),
7726     ( 10, 'usr');
7727
7728
7729 -- items out selfcheck receipt
7730
7731 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7732     VALUES (
7733         'format.selfcheck.items_out',
7734         'circ',
7735         'Formats items out for self-checkout receipt',
7736         TRUE
7737     );
7738
7739 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
7740     VALUES (
7741         11,
7742         TRUE,
7743         1,
7744         'Self-Checkout Items Out Receipt',
7745         'format.selfcheck.items_out',
7746         'NOOP_True',
7747         'ProcessTemplate',
7748         'usr',
7749         'print-on-demand',
7750 $$
7751 [%- USE date -%]
7752 [%- SET user = target.0.usr -%]
7753 <div>
7754     <style> li { padding: 8px; margin 5px; }</style>
7755     <div>[% date.format %]</div>
7756     <br/>
7757
7758     [% user.family_name %], [% user.first_given_name %]
7759     <ol>
7760     [% FOR circ IN target %]
7761         <li>
7762             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
7763             <div>Barcode: [% circ.target_copy.barcode %]</div>
7764             <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
7765         </li>
7766     [% END %]
7767     </ol>
7768 </div>
7769 $$
7770 );
7771
7772
7773 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7774     ( 11, 'target_copy'),
7775     ( 11, 'circ_lib.billing_address'),
7776     ( 11, 'circ_lib.hours_of_operation'),
7777     ( 11, 'usr');
7778
7779 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7780     VALUES (
7781         'format.selfcheck.holds',
7782         'ahr',
7783         'Formats holds for self-checkout receipt',
7784         TRUE
7785     );
7786
7787 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
7788     VALUES (
7789         12,
7790         TRUE,
7791         1,
7792         'Self-Checkout Holds Receipt',
7793         'format.selfcheck.holds',
7794         'NOOP_True',
7795         'ProcessTemplate',
7796         'usr',
7797         'print-on-demand',
7798 $$
7799 [%- USE date -%]
7800 [%- SET user = target.0.usr -%]
7801 <div>
7802     <style> li { padding: 8px; margin 5px; }</style>
7803     <div>[% date.format %]</div>
7804     <br/>
7805
7806     [% user.family_name %], [% user.first_given_name %]
7807     <ol>
7808     [% FOR hold IN target %]
7809         [%-
7810             SET idx = loop.count - 1;
7811             SET udata =  user_data.$idx
7812         -%]
7813         <li>
7814             <div>Title: [% hold.bib_rec.bib_record.simple_record.title %]</div>
7815             <div>Author: [% hold.bib_rec.bib_record.simple_record.author %]</div>
7816             <div>Pickup Location: [% hold.pickup_lib.name %]</div>
7817             <div>Status: 
7818                 [%- IF udata.ready -%]
7819                     Ready for pickup
7820                 [% ELSE %]
7821                     #[% udata.queue_position %] of [% udata.potential_copies %] copies.
7822                 [% END %]
7823             </div>
7824         </li>
7825     [% END %]
7826     </ol>
7827 </div>
7828 $$
7829 );
7830
7831
7832 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7833     ( 12, 'bib_rec.bib_record.simple_record'),
7834     ( 12, 'pickup_lib'),
7835     ( 12, 'usr');
7836
7837 -- fines receipt
7838
7839 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7840     VALUES (
7841         'format.selfcheck.fines',
7842         'au',
7843         'Formats fines for self-checkout receipt',
7844         TRUE
7845     );
7846
7847 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, granularity, template )
7848     VALUES (
7849         13,
7850         TRUE,
7851         1,
7852         'Self-Checkout Fines Receipt',
7853         'format.selfcheck.fines',
7854         'NOOP_True',
7855         'ProcessTemplate',
7856         'print-on-demand',
7857 $$
7858 [%- USE date -%]
7859 [%- SET user = target -%]
7860 <div>
7861     <style> li { padding: 8px; margin 5px; }</style>
7862     <div>[% date.format %]</div>
7863     <br/>
7864
7865     [% user.family_name %], [% user.first_given_name %]
7866     <ol>
7867     [% FOR xact IN user.open_billable_transactions_summary %]
7868         <li>
7869             <div>Details: 
7870                 [% IF xact.xact_type == 'circulation' %]
7871                     [%- helpers.get_copy_bib_basics(xact.circulation.target_copy).title -%]
7872                 [% ELSE %]
7873                     [%- xact.last_billing_type -%]
7874                 [% END %]
7875             </div>
7876             <div>Total Billed: [% xact.total_owed %]</div>
7877             <div>Total Paid: [% xact.total_paid %]</div>
7878             <div>Balance Owed : [% xact.balance_owed %]</div>
7879         </li>
7880     [% END %]
7881     </ol>
7882 </div>
7883 $$
7884 );
7885
7886 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7887     VALUES (
7888         'format.acqli.html',
7889         'jub',
7890         'Formats lineitem worksheet for titles received',
7891         TRUE
7892     );
7893
7894 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, granularity, template)
7895     VALUES (
7896         14,
7897         TRUE,
7898         1,
7899         'Lineitem Worksheet',
7900         'format.acqli.html',
7901         'NOOP_True',
7902         'ProcessTemplate',
7903         'print-on-demand',
7904 $$
7905 [%- USE date -%]
7906 [%- SET li = target; -%]
7907 <div class="wrapper">
7908     <div class="summary" style='font-size:110%; font-weight:bold;'>
7909
7910         <div>Title: [% helpers.get_li_attr("title", "", li.attributes) %]</div>
7911         <div>Author: [% helpers.get_li_attr("author", "", li.attributes) %]</div>
7912         <div class="count">Item Count: [% li.lineitem_details.size %]</div>
7913         <div class="lineid">Lineitem ID: [% li.id %]</div>
7914         <div>Open Holds: [% helpers.bre_open_hold_count(li.eg_bib_id) %]</div>
7915
7916         [% IF li.distribution_formulas.size > 0 %]
7917             [% SET forms = [] %]
7918             [% FOREACH form IN li.distribution_formulas; forms.push(form.formula.name); END %]
7919             <div>Distribution Formulas: [% forms.join(',') %]</div>
7920         [% END %]
7921
7922         [% IF li.lineitem_notes.size > 0 %]
7923             Lineitem Notes:
7924             <ul>
7925                 [%- FOR note IN li.lineitem_notes -%]
7926                     <li>
7927                     [% IF note.alert_text %]
7928                         [% note.alert_text.code -%] 
7929                         [% IF note.value -%]
7930                             : [% note.value %]
7931                         [% END %]
7932                     [% ELSE %]
7933                         [% note.value -%] 
7934                     [% END %]
7935                     </li>
7936                 [% END %]
7937             </ul>
7938         [% END %]
7939     </div>
7940     <br/>
7941     <table>
7942         <thead>
7943             <tr>
7944                 <th>Branch</th>
7945                 <th>Barcode</th>
7946                 <th>Call Number</th>
7947                 <th>Fund</th>
7948                 <th>Shelving Location</th>
7949                 <th>Recd.</th>
7950                 <th>Notes</th>
7951             </tr>
7952         </thead>
7953         <tbody>
7954         [% FOREACH detail IN li.lineitem_details.sort('owning_lib') %]
7955             [% 
7956                 IF detail.eg_copy_id;
7957                     SET copy = detail.eg_copy_id;
7958                     SET cn_label = copy.call_number.label;
7959                 ELSE; 
7960                     SET copy = detail; 
7961                     SET cn_label = detail.cn_label;
7962                 END 
7963             %]
7964             <tr>
7965                 <!-- acq.lineitem_detail.id = [%- detail.id -%] -->
7966                 <td style='padding:5px;'>[% detail.owning_lib.shortname %]</td>
7967                 <td style='padding:5px;'>[% IF copy.barcode   %]<span class="barcode"  >[% detail.barcode   %]</span>[% END %]</td>
7968                 <td style='padding:5px;'>[% IF cn_label %]<span class="cn_label" >[% cn_label  %]</span>[% END %]</td>
7969                 <td style='padding:5px;'>[% IF detail.fund %]<span class="fund">[% detail.fund.code %] ([% detail.fund.year %])</span>[% END %]</td>
7970                 <td style='padding:5px;'>[% copy.location.name %]</td>
7971                 <td style='padding:5px;'>[% IF detail.recv_time %]<span class="recv_time">[% detail.recv_time %]</span>[% END %]</td>
7972                 <td style='padding:5px;'>[% detail.note %]</td>
7973             </tr>
7974         [% END %]
7975         </tbody>
7976     </table>
7977 </div>
7978 $$
7979 );
7980
7981
7982 INSERT INTO action_trigger.environment (event_def, path) VALUES
7983     ( 14, 'attributes' ),
7984     ( 14, 'lineitem_notes' ),
7985     ( 14, 'lineitem_notes.alert_text' ),
7986     ( 14, 'distribution_formulas.formula' ),
7987     ( 14, 'lineitem_details' ),
7988     ( 14, 'lineitem_details.owning_lib' ),
7989     ( 14, 'lineitem_details.fund' ),
7990     ( 14, 'lineitem_details.location' ),
7991     ( 14, 'lineitem_details.eg_copy_id' ),
7992     ( 14, 'lineitem_details.eg_copy_id.call_number' ),
7993     ( 14, 'lineitem_details.eg_copy_id.location' )
7994 ;
7995
7996 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7997     ( 13, 'open_billable_transactions_summary.circulation' );
7998
7999
8000 INSERT INTO action_trigger.validator (module, description) 
8001     VALUES (
8002         'Acq::PurchaseOrderEDIRequired',
8003         oils_i18n_gettext(
8004             'Acq::PurchaseOrderEDIRequired',
8005             'Purchase order is delivered via EDI',
8006             'atval',
8007             'description'
8008         )
8009     );
8010
8011 INSERT INTO action_trigger.reactor (module, description)
8012     VALUES (
8013         'GeneratePurchaseOrderJEDI',
8014         oils_i18n_gettext(
8015             'GeneratePurchaseOrderJEDI',
8016             'Creates purchase order JEDI (JSON EDI) for subsequent EDI processing',
8017             'atreact',
8018             'description'
8019         )
8020     );
8021
8022
8023 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, cleanup_success, cleanup_failure, delay, delay_field, group_field, template) 
8024     VALUES (23, true, 1, 'PO JEDI', 'acqpo.activated', 'Acq::PurchaseOrderEDIRequired', 'GeneratePurchaseOrderJEDI', NULL, NULL, '00:00:00', NULL, NULL,
8025 $$
8026 [%- USE date -%]
8027 [%
8028     # extract some commonly used variables
8029
8030     VENDOR_SAN = target.provider.san;
8031     VENDCODE = target.provider.edi_default.vendcode;
8032     VENDACCT = target.provider.edi_default.vendacct;
8033     ORG_UNIT_SAN = target.ordering_agency.mailing_address.san;
8034
8035     # set the vendor / provider
8036
8037     VENDOR_BT      = 0; # Baker & Taylor
8038     VENDOR_INGRAM  = 0;
8039     VENDOR_BRODART = 0;
8040     VENDOR_MW_TAPE = 0; # Midwest Tape
8041     VENDOR_RB      = 0; # Recorded Books
8042     VENDOR_ULS     = 0; # ULS
8043
8044     IF    VENDOR_SAN == '1556150'; VENDOR_BT = 1;
8045     ELSIF VENDOR_SAN == '1697684'; VENDOR_BRODART = 1;
8046     ELSIF VENDOR_SAN == '1697978'; VENDOR_INGRAM = 1;
8047     ELSIF VENDOR_SAN == '2549913'; VENDOR_MW_TAPE = 1;
8048     ELSIF VENDOR_SAN == '1113984'; VENDOR_RB = 1;
8049     ELSIF VENDOR_SAN == '1699342'; VENDOR_ULS = 1;
8050     END;
8051
8052     # if true, pass the PO name as a secondary identifier
8053     # RFF+LI:<name>/li_id
8054     INC_PO_NAME = 0;
8055     IF VENDOR_INGRAM;
8056         INC_PO_NAME = 1;
8057     END;
8058
8059     # GIR configuration --------------------------------------
8060
8061     INC_COPIES = 1; # copies on/off switch
8062     INC_FUND = 0;
8063     INC_CALLNUMBER = 0;
8064     INC_ITEM_TYPE = 1;
8065     INC_LOCATION = 0;
8066     INC_COLLECTION_CODE = 1;
8067     INC_OWNING_LIB = 1;
8068     INC_QUANTITY = 1;
8069     INC_COPY_ID = 0;
8070
8071     IF VENDOR_BT;
8072         INC_CALLNUMBER = 1;
8073     END;
8074
8075     IF VENDOR_BRODART;
8076         INC_FUND = 1;
8077     END;
8078
8079     IF VENDOR_MW_TAPE;
8080         INC_FUND = 1;
8081         INC_COLLECTION_CODE = 0;
8082         INC_ITEM_TYPE = 0;
8083     END;
8084
8085     # END GIR configuration ---------------------------------
8086
8087 -%]
8088 [%- BLOCK big_block -%]
8089 {
8090    "recipient":"[% VENDOR_SAN %]",
8091    "sender":"[% ORG_UNIT_SAN %]",
8092    "body": [{
8093      "ORDERS":[ "order", {
8094
8095         "po_number":[% target.id %],
8096
8097         [% IF INC_PO_NAME %]
8098         "po_name":"[% target.name | replace('\/', ' ') | replace('"', '\"') %]",
8099         [% END %]
8100
8101         "date":"[% date.format(date.now, '%Y%m%d') %]",
8102
8103         "buyer":[
8104             [% IF VENDOR_BT %]
8105                 {"id-qualifier": 91, "id":"[% ORG_UNIT_SAN %] [% VENDCODE %]"}
8106             [% ELSE %]
8107                 {"id":"[% ORG_UNIT_SAN %]"},
8108                 {"id-qualifier": 91, "id":"[% VENDACCT %]"}
8109             [% END %]
8110         ],
8111
8112         "vendor":[
8113             "[% VENDOR_SAN %]",
8114             {"id-qualifier": 92, "id":"[% target.provider.id %]"}
8115         ],
8116
8117         "currency":"[% target.provider.currency_type %]",
8118                 
8119         "items":[
8120         [%- FOR li IN target.lineitems %]
8121         {
8122             "line_index":"[% li.id %]",
8123             "identifiers":[   [%-# li.isbns = helpers.get_li_isbns(li.attributes) %]
8124             [% FOR isbn IN helpers.get_li_isbns(li.attributes) -%]
8125                 [% IF isbn.length == 13 -%]
8126                 {"id-qualifier":"EN","id":"[% isbn %]"},
8127                 [% ELSE -%]
8128                 {"id-qualifier":"IB","id":"[% isbn %]"},
8129                 [%- END %]
8130             [% END %]
8131                 {"id-qualifier":"IN","id":"[% li.id %]"}
8132             ],
8133             "price":[% li.estimated_unit_price || '0.00' %],
8134             "desc":[
8135                 {"BTI":"[% helpers.get_li_attr_jedi('title',     '', li.attributes) %]"},
8136                 {"BPU":"[% helpers.get_li_attr_jedi('publisher', '', li.attributes) %]"},
8137                 {"BPD":"[% helpers.get_li_attr_jedi('pubdate',   '', li.attributes) %]"},
8138                 [% IF VENDOR_ULS -%]
8139                 {"BEN":"[% helpers.get_li_attr_jedi('edition',   '', li.attributes) %]"},
8140                 {"BAU":"[% helpers.get_li_attr_jedi('author',    '', li.attributes) %]"}
8141                 [%- ELSE -%]
8142                 {"BPH":"[% helpers.get_li_attr_jedi('pagination','', li.attributes) %]"}
8143                 [%- END %]
8144             ],
8145             [%- ftx_vals = []; 
8146                 FOR note IN li.lineitem_notes;
8147                     NEXT UNLESS note.vendor_public == 't'; 
8148                     ftx_vals.push(note.value); 
8149                 END; 
8150                 IF VENDOR_BRODART; # look for copy-level spec code
8151                     FOR lid IN li.lineitem_details;
8152                         IF lid.note;
8153                             spec_note = lid.note.match('spec code ([a-zA-Z0-9_])');
8154                             IF spec_note.0; ftx_vals.push(spec_note.0); END;
8155                         END;
8156                     END;
8157                 END; 
8158                 IF xtra_ftx;           ftx_vals.unshift(xtra_ftx); END; 
8159
8160                 # BT & ULS want FTX+LIN for every LI, even if empty
8161                 IF ((VENDOR_BT OR VENDOR_ULS) AND ftx_vals.size == 0);
8162                     ftx_vals.unshift('');
8163                 END;  
8164             -%]
8165
8166             "free-text":[ 
8167                 [% FOR note IN ftx_vals -%] "[% note %]"[% UNLESS loop.last %], [% END %][% END %] 
8168             ],            
8169
8170             "quantity":[% li.lineitem_details.size %]
8171
8172             [%- IF INC_COPIES -%]
8173             ,"copies" : [
8174                 [%- compressed_copies = [];
8175                     FOR lid IN li.lineitem_details;
8176                         fund = lid.fund.code;
8177                         item_type = lid.circ_modifier;
8178                         callnumber = lid.cn_label;
8179                         owning_lib = lid.owning_lib.shortname;
8180                         location = lid.location;
8181                         collection_code = lid.collection_code;
8182     
8183                         # when we have real copy data, treat it as authoritative for some fields
8184                         acp = lid.eg_copy_id;
8185                         IF acp;
8186                             item_type = acp.circ_modifier;
8187                             callnumber = acp.call_number.label;
8188                             location = acp.location.name;
8189                         END ;
8190
8191
8192                         # collapse like copies into groups w/ quantity
8193
8194                         found_match = 0;
8195                         IF !INC_COPY_ID; # INC_COPY_ID implies 1 copy per GIR
8196                             FOR copy IN compressed_copies;
8197                                 IF  (fund == copy.fund OR (!fund AND !copy.fund)) AND
8198                                     (item_type == copy.item_type OR (!item_type AND !copy.item_type)) AND
8199                                     (callnumber == copy.callnumber OR (!callnumber AND !copy.callnumber)) AND
8200                                     (owning_lib == copy.owning_lib OR (!owning_lib AND !copy.owning_lib)) AND
8201                                     (location == copy.location OR (!location AND !copy.location)) AND
8202                                     (collection_code == copy.collection_code OR (!collection_code AND !copy.collection_code));
8203
8204                                     copy.quantity = copy.quantity + 1;
8205                                     found_match = 1;
8206                                 END;
8207                             END;
8208                         END;
8209
8210                         IF !found_match;
8211                             compressed_copies.push({
8212                                 fund => fund,
8213                                 item_type => item_type,
8214                                 callnumber => callnumber,
8215                                 owning_lib => owning_lib,
8216                                 location => location,
8217                                 collection_code => collection_code,
8218                                 copy_id => lid.id, # for INC_COPY_ID
8219                                 quantity => 1
8220                             });
8221                         END;
8222                     END;
8223                     FOR copy IN compressed_copies;
8224
8225                     # If we assume owning_lib is required and set, 
8226                     # it is safe to prepend each following copy field w/ a ","
8227
8228                     # B&T EDI requires expected GIR fields to be 
8229                     # present regardless of whether a value exists.  
8230                     # some fields are required to have a value in ACQ, 
8231                     # though, so they are not forced into place below.
8232
8233                  %]{[%- IF INC_OWNING_LIB AND copy.owning_lib %] "owning_lib":"[% copy.owning_lib %]"[% END -%]
8234                     [%- IF INC_FUND AND copy.fund %],"fund":"[% copy.fund %]"[% END -%]
8235                     [%- IF INC_CALLNUMBER AND (VENDOR_BT OR copy.callnumber) %],"call_number":"[% copy.callnumber %]"[% END -%]
8236                     [%- IF INC_ITEM_TYPE AND (VENDOR_BT OR copy.item_type) %],"item_type":"[% copy.item_type %]"[% END -%]
8237                     [%- IF INC_LOCATION AND copy.location %],"copy_location":"[% copy.location %]"[% END -%]
8238                     [%- IF INC_COLLECTION_CODE AND (VENDOR_BT OR copy.collection_code) %],"collection_code":"[% copy.collection_code %]"[% END -%]
8239                     [%- IF INC_QUANTITY %],"quantity":"[% copy.quantity %]"[% END -%]
8240                     [%- IF INC_COPY_ID %],"copy_id":"[% copy.copy_id %]" [% END %]}[% ',' UNLESS loop.last -%]
8241                 [%- END -%] [%# FOR compressed_copies -%]
8242             ]
8243             [%- END -%] [%# IF INC_COPIES %]
8244
8245         }[% UNLESS loop.last %],[% END -%]
8246
8247         [% END %] [%# END lineitems %]
8248         ],
8249         "line_items":[% target.lineitems.size %]
8250      }]  [%# close ORDERS array %]
8251    }]    [%# close  body  array %]
8252 }
8253 [% END %]
8254 [% tempo = PROCESS big_block; helpers.escape_json(tempo) %]
8255 $$
8256 );
8257
8258 INSERT INTO action_trigger.environment (event_def, path) VALUES 
8259   (23, 'lineitems.attributes'), 
8260   (23, 'lineitems.lineitem_details.owning_lib'),
8261   (23, 'lineitems.lineitem_details.location'),
8262   (23, 'lineitems.lineitem_details.fund'),
8263   (23, 'lineitems.lineitem_details.eg_copy_id.location'),
8264   (23, 'lineitems.lineitem_details.eg_copy_id.call_number'),
8265   (23, 'lineitems.lineitem_notes'), 
8266   (23, 'ordering_agency.mailing_address'), 
8267   (23, 'provider'),
8268   (23, 'provider.edi_default');
8269
8270 INSERT INTO action_trigger.reactor (module, description) VALUES (
8271     'AstCall', 'Possibly place a phone call with Asterisk'
8272 );
8273
8274 INSERT INTO
8275     action_trigger.event_definition (
8276         id, active, owner, name, hook, validator, reactor,
8277         cleanup_success, cleanup_failure, delay, delay_field, group_field,
8278         max_delay, granularity, usr_field, opt_in_setting, template
8279     ) VALUES (
8280         24,
8281         FALSE,
8282         1,
8283         'Telephone Overdue Notice',
8284         'checkout.due', 'NOOP_True', 'AstCall',
8285         DEFAULT, DEFAULT, '5 seconds', 'due_date', 'usr',
8286         DEFAULT, DEFAULT, DEFAULT, DEFAULT,
8287         $$
8288 [% phone = target.0.usr.day_phone | replace('[\s\-\(\)]', '') -%]
8289 [% IF phone.match('^[2-9]') %][% country = 1 %][% ELSE %][% country = '' %][% END -%]
8290 Channel: [% channel_prefix %]/[% country %][% phone %]
8291 Context: overdue-test
8292 MaxRetries: 1
8293 RetryTime: 60
8294 WaitTime: 30
8295 Extension: 10
8296 Archive: 1
8297 Set: eg_user_id=[% target.0.usr.id %]
8298 Set: items=[% target.size %]
8299 Set: titlestring=[% titles = [] %][% FOR circ IN target %][% titles.push(circ.target_copy.call_number.record.simple_record.title) %][% END %][% titles.join(". ") %]
8300 $$
8301     );
8302
8303 INSERT INTO
8304     action_trigger.environment (id, event_def, path)
8305     VALUES
8306         (DEFAULT, 24, 'target_copy.call_number.record.simple_record'),
8307         (DEFAULT, 24, 'usr')
8308     ;
8309
8310 -- 0285.data.history_format.sql
8311
8312 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8313         'circ.format.history.email',
8314         'circ', 
8315         oils_i18n_gettext(
8316             'circ.format.history.email',
8317             'An email has been requested for a circ history.',
8318             'ath',
8319             'description'
8320         ), 
8321         FALSE
8322     )
8323     ,(
8324         'circ.format.history.print',
8325         'circ', 
8326         oils_i18n_gettext(
8327             'circ.format.history.print',
8328             'A circ history needs to be formatted for printing.',
8329             'ath',
8330             'description'
8331         ), 
8332         FALSE
8333     )
8334     ,(
8335         'ahr.format.history.email',
8336         'ahr', 
8337         oils_i18n_gettext(
8338             'ahr.format.history.email',
8339             'An email has been requested for a hold request history.',
8340             'ath',
8341             'description'
8342         ), 
8343         FALSE
8344     )
8345     ,(
8346         'ahr.format.history.print',
8347         'ahr', 
8348         oils_i18n_gettext(
8349             'ahr.format.history.print',
8350             'A hold request history needs to be formatted for printing.',
8351             'ath',
8352             'description'
8353         ), 
8354         FALSE
8355     )
8356
8357 ;
8358
8359 INSERT INTO action_trigger.event_definition (
8360         id,
8361         active,
8362         owner,
8363         name,
8364         hook,
8365         validator,
8366         reactor,
8367         group_field,
8368         granularity,
8369         template
8370     ) VALUES (
8371         25,
8372         TRUE,
8373         1,
8374         'circ.history.email',
8375         'circ.format.history.email',
8376         'NOOP_True',
8377         'SendEmail',
8378         'usr',
8379         NULL,
8380 $$
8381 [%- USE date -%]
8382 [%- SET user = target.0.usr -%]
8383 To: [%- params.recipient_email || user.email %]
8384 From: [%- params.sender_email || default_sender %]
8385 Subject: Circulation History
8386
8387     [% FOR circ IN target %]
8388             [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
8389             Barcode: [% circ.target_copy.barcode %]
8390             Checked Out: [% date.format(helpers.format_date(circ.xact_start), '%Y-%m-%d') %]
8391             Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
8392             Returned: [% date.format(helpers.format_date(circ.checkin_time), '%Y-%m-%d') %]
8393     [% END %]
8394 $$
8395     )
8396     ,(
8397         26,
8398         TRUE,
8399         1,
8400         'circ.history.print',
8401         'circ.format.history.print',
8402         'NOOP_True',
8403         'ProcessTemplate',
8404         'usr',
8405         'print-on-demand',
8406 $$
8407 [%- USE date -%]
8408 <div>
8409     <style> li { padding: 8px; margin 5px; }</style>
8410     <div>[% date.format %]</div>
8411     <br/>
8412
8413     [% user.family_name %], [% user.first_given_name %]
8414     <ol>
8415     [% FOR circ IN target %]
8416         <li>
8417             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
8418             <div>Barcode: [% circ.target_copy.barcode %]</div>
8419             <div>Checked Out: [% date.format(helpers.format_date(circ.xact_start), '%Y-%m-%d') %]</div>
8420             <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
8421             <div>Returned: [% date.format(helpers.format_date(circ.checkin_time), '%Y-%m-%d') %]</div>
8422         </li>
8423     [% END %]
8424     </ol>
8425 </div>
8426 $$
8427     )
8428     ,(
8429         27,
8430         TRUE,
8431         1,
8432         'ahr.history.email',
8433         'ahr.format.history.email',
8434         'NOOP_True',
8435         'SendEmail',
8436         'usr',
8437         NULL,
8438 $$
8439 [%- USE date -%]
8440 [%- SET user = target.0.usr -%]
8441 To: [%- params.recipient_email || user.email %]
8442 From: [%- params.sender_email || default_sender %]
8443 Subject: Hold Request History
8444
8445     [% FOR hold IN target %]
8446             [% helpers.get_copy_bib_basics(hold.current_copy.id).title %]
8447             Requested: [% date.format(helpers.format_date(hold.request_time), '%Y-%m-%d') %]
8448             [% IF hold.fulfillment_time %]Fulfilled: [% date.format(helpers.format_date(hold.fulfillment_time), '%Y-%m-%d') %][% END %]
8449     [% END %]
8450 $$
8451     )
8452     ,(
8453         28,
8454         TRUE,
8455         1,
8456         'ahr.history.print',
8457         'ahr.format.history.print',
8458         'NOOP_True',
8459         'ProcessTemplate',
8460         'usr',
8461         'print-on-demand',
8462 $$
8463 [%- USE date -%]
8464 <div>
8465     <style> li { padding: 8px; margin 5px; }</style>
8466     <div>[% date.format %]</div>
8467     <br/>
8468
8469     [% user.family_name %], [% user.first_given_name %]
8470     <ol>
8471     [% FOR hold IN target %]
8472         <li>
8473             <div>[% helpers.get_copy_bib_basics(hold.current_copy.id).title %]</div>
8474             <div>Requested: [% date.format(helpers.format_date(hold.request_time), '%Y-%m-%d') %]</div>
8475             [% IF hold.fulfillment_time %]<div>Fulfilled: [% date.format(helpers.format_date(hold.fulfillment_time), '%Y-%m-%d') %]</div>[% END %]
8476         </li>
8477     [% END %]
8478     </ol>
8479 </div>
8480 $$
8481     )
8482
8483 ;
8484
8485 INSERT INTO action_trigger.environment (
8486         event_def,
8487         path
8488     ) VALUES 
8489          ( 25, 'target_copy')
8490         ,( 25, 'usr' )
8491         ,( 26, 'target_copy' )
8492         ,( 26, 'usr' )
8493         ,( 27, 'current_copy' )
8494         ,( 27, 'usr' )
8495         ,( 28, 'current_copy' )
8496         ,( 28, 'usr' )
8497 ;
8498
8499 -- 0289.data.payment_receipt_format.sql
8500 -- 0326.data.payment_receipt_format.sql
8501
8502 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8503         'money.format.payment_receipt.email',
8504         'mp', 
8505         oils_i18n_gettext(
8506             'money.format.payment_receipt.email',
8507             'An email has been requested for a payment receipt.',
8508             'ath',
8509             'description'
8510         ), 
8511         FALSE
8512     )
8513     ,(
8514         'money.format.payment_receipt.print',
8515         'mp', 
8516         oils_i18n_gettext(
8517             'money.format.payment_receipt.print',
8518             'A payment receipt needs to be formatted for printing.',
8519             'ath',
8520             'description'
8521         ), 
8522         FALSE
8523     )
8524 ;
8525
8526 INSERT INTO action_trigger.event_definition (
8527         id,
8528         active,
8529         owner,
8530         name,
8531         hook,
8532         validator,
8533         reactor,
8534         group_field,
8535         granularity,
8536         template
8537     ) VALUES (
8538         29,
8539         TRUE,
8540         1,
8541         'money.payment_receipt.email',
8542         'money.format.payment_receipt.email',
8543         'NOOP_True',
8544         'SendEmail',
8545         'xact.usr',
8546         NULL,
8547 $$
8548 [%- USE date -%]
8549 [%- SET user = target.0.xact.usr -%]
8550 To: [%- params.recipient_email || user.email %]
8551 From: [%- params.sender_email || default_sender %]
8552 Subject: Payment Receipt
8553
8554 [% date.format -%]
8555 [%- SET xact_mp_hash = {} -%]
8556 [%- FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions -%]
8557     [%- SET xact_id = mp.xact.id -%]
8558     [%- IF ! xact_mp_hash.defined( xact_id ) -%][%- xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } -%][%- END -%]
8559     [%- xact_mp_hash.$xact_id.payments.push(mp) -%]
8560 [%- END -%]
8561 [%- FOR xact_id IN xact_mp_hash.keys.sort -%]
8562     [%- SET xact = xact_mp_hash.$xact_id.xact %]
8563 Transaction ID: [% xact_id %]
8564     [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %]
8565     [% ELSE %]Miscellaneous
8566     [% END %]
8567     Line item billings:
8568         [%- SET mb_type_hash = {} -%]
8569         [%- FOR mb IN xact.billings %][%# Group billings by their btype -%]
8570             [%- IF mb.voided == 'f' -%]
8571                 [%- SET mb_type = mb.btype.id -%]
8572                 [%- IF ! mb_type_hash.defined( mb_type ) -%][%- mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } -%][%- END -%]
8573                 [%- IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) -%][%- mb_type_hash.$mb_type.first_ts = mb.billing_ts -%][%- END -%]
8574                 [%- mb_type_hash.$mb_type.last_ts = mb.billing_ts -%]
8575                 [%- mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount -%]
8576                 [%- mb_type_hash.$mb_type.billings.push( mb ) -%]
8577             [%- END -%]
8578         [%- END -%]
8579         [%- FOR mb_type IN mb_type_hash.keys.sort -%]
8580             [%- IF mb_type == 1 %][%-# Consolidated view of overdue billings -%]
8581                 $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] 
8582                     on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %]
8583             [%- ELSE -%][%# all other billings show individually %]
8584                 [% FOR mb IN mb_type_hash.$mb_type.billings %]
8585                     $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %]
8586                 [% END %]
8587             [% END %]
8588         [% END %]
8589     Line item payments:
8590         [% FOR mp IN xact_mp_hash.$xact_id.payments %]
8591             Payment ID: [% mp.id %]
8592                 Paid [% mp.amount %] via [% SWITCH mp.payment_type -%]
8593                     [% CASE "cash_payment" %]cash
8594                     [% CASE "check_payment" %]check
8595                     [% CASE "credit_card_payment" %]credit card (
8596                         [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%]
8597                         [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] 
8598                         [% cc_chunks.last -%]
8599                         exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%]
8600                     )
8601                     [% CASE "credit_payment" %]credit
8602                     [% CASE "forgive_payment" %]forgiveness
8603                     [% CASE "goods_payment" %]goods
8604                     [% CASE "work_payment" %]work
8605                 [%- END %] on [% mp.payment_ts %] [% mp.note %]
8606         [% END %]
8607 [% END %]
8608 $$
8609     )
8610     ,(
8611         30,
8612         TRUE,
8613         1,
8614         'money.payment_receipt.print',
8615         'money.format.payment_receipt.print',
8616         'NOOP_True',
8617         'ProcessTemplate',
8618         'xact.usr',
8619         'print-on-demand',
8620 $$
8621 [%- USE date -%][%- SET user = target.0.xact.usr -%]
8622 <div style="li { padding: 8px; margin 5px; }">
8623     <div>[% date.format %]</div><br/>
8624     <ol>
8625     [% SET xact_mp_hash = {} %]
8626     [% FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions %]
8627         [% SET xact_id = mp.xact.id %]
8628         [% IF ! xact_mp_hash.defined( xact_id ) %][% xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } %][% END %]
8629         [% xact_mp_hash.$xact_id.payments.push(mp) %]
8630     [% END %]
8631     [% FOR xact_id IN xact_mp_hash.keys.sort %]
8632         [% SET xact = xact_mp_hash.$xact_id.xact %]
8633         <li>Transaction ID: [% xact_id %]
8634             [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %]
8635             [% ELSE %]Miscellaneous
8636             [% END %]
8637             Line item billings:<ol>
8638                 [% SET mb_type_hash = {} %]
8639                 [% FOR mb IN xact.billings %][%# Group billings by their btype %]
8640                     [% IF mb.voided == 'f' %]
8641                         [% SET mb_type = mb.btype.id %]
8642                         [% IF ! mb_type_hash.defined( mb_type ) %][% mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } %][% END %]
8643                         [% IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) %][% mb_type_hash.$mb_type.first_ts = mb.billing_ts %][% END %]
8644                         [% mb_type_hash.$mb_type.last_ts = mb.billing_ts %]
8645                         [% mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount %]
8646                         [% mb_type_hash.$mb_type.billings.push( mb ) %]
8647                     [% END %]
8648                 [% END %]
8649                 [% FOR mb_type IN mb_type_hash.keys.sort %]
8650                     <li>[% IF mb_type == 1 %][%# Consolidated view of overdue billings %]
8651                         $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] 
8652                             on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %]
8653                     [% ELSE %][%# all other billings show individually %]
8654                         [% FOR mb IN mb_type_hash.$mb_type.billings %]
8655                             $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %]
8656                         [% END %]
8657                     [% END %]</li>
8658                 [% END %]
8659             </ol>
8660             Line item payments:<ol>
8661                 [% FOR mp IN xact_mp_hash.$xact_id.payments %]
8662                     <li>Payment ID: [% mp.id %]
8663                         Paid [% mp.amount %] via [% SWITCH mp.payment_type -%]
8664                             [% CASE "cash_payment" %]cash
8665                             [% CASE "check_payment" %]check
8666                             [% CASE "credit_card_payment" %]credit card (
8667                                 [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%]
8668                                 [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] 
8669                                 [% cc_chunks.last -%]
8670                                 exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%]
8671                             )
8672                             [% CASE "credit_payment" %]credit
8673                             [% CASE "forgive_payment" %]forgiveness
8674                             [% CASE "goods_payment" %]goods
8675                             [% CASE "work_payment" %]work
8676                         [%- END %] on [% mp.payment_ts %] [% mp.note %]
8677                     </li>
8678                 [% END %]
8679             </ol>
8680         </li>
8681     [% END %]
8682     </ol>
8683 </div>
8684 $$
8685     )
8686 ;
8687
8688 INSERT INTO action_trigger.environment (
8689         event_def,
8690         path
8691     ) VALUES -- for fleshing mp objects
8692          ( 29, 'xact')
8693         ,( 29, 'xact.usr')
8694         ,( 29, 'xact.grocery' )
8695         ,( 29, 'xact.circulation' )
8696         ,( 29, 'xact.summary' )
8697         ,( 29, 'credit_card_payment')
8698         ,( 29, 'xact.billings')
8699         ,( 29, 'xact.billings.btype')
8700         ,( 30, 'xact')
8701         ,( 30, 'xact.usr')
8702         ,( 30, 'xact.grocery' )
8703         ,( 30, 'xact.circulation' )
8704         ,( 30, 'xact.summary' )
8705         ,( 30, 'credit_card_payment')
8706         ,( 30, 'xact.billings')
8707         ,( 30, 'xact.billings.btype')
8708 ;
8709
8710 -- 0294.data.bre_format.sql
8711
8712 INSERT INTO container.biblio_record_entry_bucket_type( code, label ) VALUES (
8713     'temp',
8714     oils_i18n_gettext(
8715         'temp',
8716         'Temporary bucket which gets deleted after use.',
8717         'cbrebt',
8718         'label'
8719     )
8720 );
8721
8722 INSERT INTO action_trigger.cleanup ( module, description ) VALUES (
8723     'DeleteTempBiblioBucket',
8724     oils_i18n_gettext(
8725         'DeleteTempBiblioBucket',
8726         'Deletes a cbreb object used as a target if it has a btype of "temp"',
8727         'atclean',
8728         'description'
8729     )
8730 );
8731
8732 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8733         'biblio.format.record_entry.email',
8734         'cbreb', 
8735         oils_i18n_gettext(
8736             'biblio.format.record_entry.email',
8737             'An email has been requested for one or more biblio record entries.',
8738             'ath',
8739             'description'
8740         ), 
8741         FALSE
8742     )
8743     ,(
8744         'biblio.format.record_entry.print',
8745         'cbreb', 
8746         oils_i18n_gettext(
8747             'biblio.format.record_entry.print',
8748             'One or more biblio record entries need to be formatted for printing.',
8749             'ath',
8750             'description'
8751         ), 
8752         FALSE
8753     )
8754 ;
8755
8756 INSERT INTO action_trigger.event_definition (
8757         id,
8758         active,
8759         owner,
8760         name,
8761         hook,
8762         validator,
8763         reactor,
8764         cleanup_success,
8765         cleanup_failure,
8766         group_field,
8767         granularity,
8768         delay,
8769         template
8770     ) VALUES (
8771         31,
8772         TRUE,
8773         1,
8774         'biblio.record_entry.email',
8775         'biblio.format.record_entry.email',
8776         'NOOP_True',
8777         'SendEmail',
8778         'DeleteTempBiblioBucket',
8779         'DeleteTempBiblioBucket',
8780         'owner',
8781         NULL,
8782         '00:00:00',
8783 $$
8784 [%- SET user = target.0.owner -%]
8785 To: [%- params.recipient_email || user.email %]
8786 From: [%- params.sender_email || default_sender %]
8787 Subject: Bibliographic Records
8788
8789 [% FOR cbreb IN target %]
8790 [% FOR item IN cbreb.items;
8791     bre_id = item.target_biblio_record_entry;
8792
8793     bibxml = helpers.unapi_bre(bre_id, {flesh => '{mra}'});
8794     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
8795         title = title _ part.textContent;
8796     END;
8797
8798     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
8799     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
8800     publisher = bibxml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent;
8801     pubdate = bibxml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent;
8802     isbn = bibxml.findnodes('//*[@tag="020"]/*[@code="a"]').textContent;
8803     issn = bibxml.findnodes('//*[@tag="022"]/*[@code="a"]').textContent;
8804     upc = bibxml.findnodes('//*[@tag="024"]/*[@code="a"]').textContent;
8805 %]
8806
8807 [% loop.count %]/[% loop.size %].  Bib ID# [% bre_id %] 
8808 [% IF isbn %]ISBN: [% isbn _ "\n" %][% END -%]
8809 [% IF issn %]ISSN: [% issn _ "\n" %][% END -%]
8810 [% IF upc  %]UPC:  [% upc _ "\n" %] [% END -%]
8811 Title: [% title %]
8812 Author: [% author %]
8813 Publication Info: [% publisher %] [% pubdate %]
8814 Item Type: [% item_type %]
8815
8816 [% END %]
8817 [% END %]
8818 $$
8819     )
8820     ,(
8821         32,
8822         TRUE,
8823         1,
8824         'biblio.record_entry.print',
8825         'biblio.format.record_entry.print',
8826         'NOOP_True',
8827         'ProcessTemplate',
8828         'DeleteTempBiblioBucket',
8829         'DeleteTempBiblioBucket',
8830         'owner',
8831         'print-on-demand',
8832         '00:00:00',
8833 $$
8834 <div>
8835     <style> li { padding: 8px; margin 5px; }</style>
8836     <ol>
8837     [% FOR cbreb IN target %]
8838     [% FOR item IN cbreb.items;
8839         bre_id = item.target_biblio_record_entry;
8840
8841         bibxml = helpers.unapi_bre(bre_id, {flesh => '{mra}'});
8842         FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
8843             title = title _ part.textContent;
8844         END;
8845
8846         author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
8847         item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
8848         publisher = bibxml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent;
8849         pubdate = bibxml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent;
8850         isbn = bibxml.findnodes('//*[@tag="020"]/*[@code="a"]').textContent;
8851         %]
8852
8853         <li>
8854             Bib ID# [% bre_id %] ISBN: [% isbn %]<br />
8855             Title: [% title %]<br />
8856             Author: [% author %]<br />
8857             Publication Info: [% publisher %] [% pubdate %]<br/>
8858             Item Type: [% item_type %]
8859         </li>
8860     [% END %]
8861     [% END %]
8862     </ol>
8863 </div>
8864 $$
8865     )
8866 ;
8867
8868 INSERT INTO action_trigger.environment (
8869         event_def,
8870         path
8871     ) VALUES -- for fleshing cbreb objects
8872          ( 31, 'owner' )
8873         ,( 31, 'items' )
8874         ,( 32, 'items' )
8875 ;
8876
8877 INSERT INTO acq.invoice_item_type (code,name) VALUES ('TAX',oils_i18n_gettext('TAX', 'Tax', 'aiit', 'name'));
8878 INSERT INTO acq.invoice_item_type (code,name) VALUES ('PRO',oils_i18n_gettext('PRO', 'Processing Fee', 'aiit', 'name'));
8879 INSERT INTO acq.invoice_item_type (code,name) VALUES ('SHP',oils_i18n_gettext('SHP', 'Shipping Charge', 'aiit', 'name'));
8880 INSERT INTO acq.invoice_item_type (code,name) VALUES ('HND',oils_i18n_gettext('HND', 'Handling Charge', 'aiit', 'name'));
8881 INSERT INTO acq.invoice_item_type (code,name) VALUES ('ITM',oils_i18n_gettext('ITM', 'Non-library Item', 'aiit', 'name'));
8882 INSERT INTO acq.invoice_item_type (code,name) VALUES ('SUB',oils_i18n_gettext('SUB', 'Serial Subscription', 'aiit', 'name'));
8883
8884 INSERT INTO acq.invoice_method (code,name) VALUES ('EDI',oils_i18n_gettext('EDI', 'EDI', 'acqim', 'name'));
8885 INSERT INTO acq.invoice_method (code,name) VALUES ('PPR',oils_i18n_gettext('PPR', 'Paper', 'acqit', 'name'));
8886
8887 INSERT INTO acq.cancel_reason ( id, org_unit, label, description ) VALUES (
8888     1, 1, 'invalid_isbn', oils_i18n_gettext( 1, 'ISBN is unrecognizable', 'acqcr', 'label' ));
8889 INSERT INTO acq.cancel_reason ( id, org_unit, label, description ) VALUES (
8890     2, 1, 'postpone', oils_i18n_gettext( 2, 'Title has been postponed', 'acqcr', 'label' ));
8891 INSERT INTO acq.cancel_reason ( id, org_unit, label, description, keep_debits ) VALUES (
8892     3, 1, 'delivered_but_lost',
8893         oils_i18n_gettext( 2, 'Delivered but not received; presumed lost', 'acqcr', 'label' ), TRUE );
8894
8895 INSERT INTO acq.cancel_reason (keep_debits, id, org_unit, label, description) VALUES 
8896 ('f',(  2+1000), 1, 'Deleted',   'The information is to be or has been deleted.'),
8897 ('t',(  3+1000), 1, 'Changed',   'The information is to be or has been changed.'),
8898 ('t',(  4+1000), 1, 'No action',                  'This line item is not affected by the actual message.'),
8899 ('t',(  5+1000), 1, 'Accepted without amendment', 'This line item is entirely accepted by the seller.'),
8900 ('f',(  7+1000), 1, 'Not accepted',               'This line item is not accepted by the seller.'),
8901 ('f',( 10+1000), 1, 'Not found',   'This line item is not found in the referenced message.'),
8902 ('t',( 24+1000), 1, 'Accepted with amendment, no confirmation required', 'Accepted with changes which require no confirmation.');
8903
8904 INSERT INTO acq.cancel_reason (org_unit, keep_debits, id, label, description) VALUES 
8905 (1, 't', 1211, 'Split quantity', 'Part of the whole quantity.'),
8906 (1, 't', 1221, 'Ordered quantity', '[6024] The quantity which has been ordered.'),
8907 (1, 't', 1246, 'Pieces delivered', 'Number of pieces actually received at the final destination.'),
8908 (1, 't', 1283, 'Backorder quantity', 'The quantity of goods that is on back-order.');
8909
8910 INSERT INTO config.global_flag (name, label, enabled)
8911     VALUES (
8912         'circ.holds.usr_not_requestor',
8913         oils_i18n_gettext(
8914             'circ.holds.usr_not_requestor',
8915             'Holds: When testing hold matrix matchpoints, use the profile group of the receiving user instead of that of the requestor (affects staff-placed holds)',
8916             'cgf',
8917             'label'
8918         ),
8919         TRUE
8920     );
8921
8922 INSERT INTO config.global_flag (name, label, enabled)
8923     VALUES (
8924         'circ.holds.empty_issuance_ok',
8925         oils_i18n_gettext(
8926             'circ.holds.empty_issuance_ok',
8927             'Holds: Allow holds on empty issuances',
8928             'cgf',
8929             'label'
8930         ),
8931         TRUE
8932     );
8933
8934 INSERT INTO config.global_flag (name, label) -- defaults to enabled=FALSE
8935     VALUES (
8936         'ingest.disable_authority_linking',
8937         oils_i18n_gettext(
8938             'ingest.disable_authority_linking',
8939             'Authority Automation: Disable bib-authority link tracking',
8940             'cgf', 
8941             'label'
8942         )
8943     );
8944
8945 INSERT INTO config.global_flag (name, label) -- defaults to enabled=FALSE
8946     VALUES (
8947         'ingest.disable_authority_auto_update',
8948         oils_i18n_gettext(
8949             'ingest.disable_authority_auto_update',
8950             'Authority Automation: Disable automatic authority updating (requires link tracking)',
8951             'cgf', 
8952             'label'
8953         )
8954     );
8955
8956 INSERT INTO config.global_flag (name, label, enabled)
8957     VALUES (
8958         'cat.bib.use_id_for_tcn',
8959         oils_i18n_gettext(
8960             'cat.bib.use_id_for_tcn',
8961             'Cat: Use Internal ID for TCN Value',
8962             'cgf', 
8963             'label'
8964         ),
8965         TRUE
8966     );
8967
8968 INSERT INTO config.global_flag (name,label,enabled)
8969     VALUES (
8970         'history.circ.retention_age',
8971         oils_i18n_gettext('history.circ.retention_age', 'Historical Circulation Retention Age', 'cgf', 'label'),
8972         TRUE
8973     ),(
8974         'history.circ.retention_count',
8975         oils_i18n_gettext('history.circ.retention_count', 'Historical Circulations per Copy', 'cgf', 'label'),
8976         TRUE
8977     );
8978
8979 INSERT INTO config.global_flag (name, label, enabled)
8980     VALUES (
8981         'cat.maintain_control_numbers',
8982         oils_i18n_gettext(
8983             'cat.maintain_control_numbers',
8984             'Cat: Maintain 001/003/035 according to the MARC21 specification',
8985             'cgf', 
8986             'label'
8987         ),
8988         TRUE
8989     );
8990
8991 INSERT INTO config.global_flag (name, label, enabled)
8992     VALUES (
8993         'circ.opac_renewal.use_original_circ_lib',
8994         oils_i18n_gettext(
8995             'circ.opac_renewal.use_original_circ_lib',
8996             'Circ: Use original circulation library on opac renewal instead of user home library',
8997             'cgf',
8998             'label'
8999         ),
9000         FALSE
9001     );
9002
9003 INSERT INTO config.global_flag (name, label, value, enabled)
9004     VALUES (
9005         'opac.use_autosuggest',
9006         oils_i18n_gettext(
9007             'opac.use_autosuggest',
9008             '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)',
9009             'cgf',
9010             'label'
9011         ),
9012         'opac_visible',
9013         TRUE
9014     );
9015
9016
9017 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
9018     VALUES (
9019         'history.circ.retention_age',
9020         TRUE,
9021         oils_i18n_gettext('history.circ.retention_age','Historical Circulation Retention Age','cust','label'),
9022         oils_i18n_gettext('history.circ.retention_age','Historical Circulation Retention Age','cust','description'),
9023         'interval'
9024     ),(
9025         'history.circ.retention_start',
9026         FALSE,
9027         oils_i18n_gettext('history.circ.retention_start','Historical Circulation Retention Start Date','cust','label'),
9028         oils_i18n_gettext('history.circ.retention_start','Historical Circulation Retention Start Date','cust','description'),
9029         'date'
9030     );
9031
9032 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
9033     VALUES (
9034         'history.hold.retention_age',
9035         TRUE,
9036         oils_i18n_gettext('history.hold.retention_age','Historical Hold Retention Age','cust','label'),
9037         oils_i18n_gettext('history.hold.retention_age','Historical Hold Retention Age','cust','description'),
9038         'interval'
9039     ),(
9040         'history.hold.retention_start',
9041         TRUE,
9042         oils_i18n_gettext('history.hold.retention_start','Historical Hold Retention Start Date','cust','label'),
9043         oils_i18n_gettext('history.hold.retention_start','Historical Hold Retention Start Date','cust','description'),
9044         'interval'
9045     ),(
9046         'history.hold.retention_count',
9047         TRUE,
9048         oils_i18n_gettext('history.hold.retention_count','Historical Hold Retention Count','cust','label'),
9049         oils_i18n_gettext('history.hold.retention_count','Historical Hold Retention Count','cust','description'),
9050         'integer'
9051     );
9052
9053 -- 0311.data.query-seed-datatypes.sql
9054 -- Define the most common datatypes in query.datatype.  Note that none of
9055 -- these stock datatypes specifies a width or precision.
9056
9057 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9058   VALUES (1, 'SMALLINT', true);
9059  
9060 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9061   VALUES (2, 'INTEGER', true);
9062  
9063 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9064   VALUES (3, 'BIGINT', true);
9065  
9066 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9067   VALUES (4, 'DECIMAL', true);
9068  
9069 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9070   VALUES (5, 'NUMERIC', true);
9071  
9072 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9073   VALUES (6, 'REAL', true);
9074  
9075 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9076   VALUES (7, 'DOUBLE PRECISION', true);
9077  
9078 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9079   VALUES (8, 'SERIAL', true);
9080  
9081 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9082   VALUES (9, 'BIGSERIAL', true);
9083  
9084 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9085   VALUES (10, 'MONEY', false);
9086  
9087 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9088   VALUES (11, 'VARCHAR', false);
9089  
9090 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9091   VALUES (12, 'CHAR', false);
9092  
9093 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9094   VALUES (13, 'TEXT', false);
9095  
9096 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9097   VALUES (14, '"char"', false);
9098  
9099 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9100   VALUES (15, 'NAME', false);
9101  
9102 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9103   VALUES (16, 'BYTEA', false);
9104  
9105 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9106   VALUES (17, 'TIMESTAMP WITHOUT TIME ZONE', false);
9107  
9108 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9109   VALUES (18, 'TIMESTAMP WITH TIME ZONE', false);
9110  
9111 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9112   VALUES (19, 'DATE', false);
9113  
9114 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9115   VALUES (20, 'TIME WITHOUT TIME ZONE', false);
9116  
9117 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9118   VALUES (21, 'TIME WITH TIME ZONE', false);
9119  
9120 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9121   VALUES (22, 'INTERVAL', false);
9122  
9123 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9124   VALUES (23, 'BOOLEAN', false);
9125
9126 INSERT INTO config.usr_setting_type (name, opac_visible, label, description, datatype) 
9127     VALUES (
9128         'opac.default_sort',
9129         TRUE,
9130         oils_i18n_gettext(
9131             'opac.default_sort',
9132             'OPAC Default Search Sort',
9133             'cust',
9134             'label'
9135         ),
9136         oils_i18n_gettext(
9137             'opac.default_sort',
9138             'OPAC Default Search Sort',
9139             'cust',
9140             'description'
9141         ),
9142         'string'
9143     );
9144
9145 -- 0355.data.missing_pieces_format.sql
9146
9147 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES 
9148     (   'circ.format.missing_pieces.slip.print',
9149         'circ', 
9150         oils_i18n_gettext(
9151             'circ.format.missing_pieces.slip.print',
9152             'A missing pieces slip needs to be formatted for printing.',
9153             'ath',
9154             'description'
9155         ), 
9156         FALSE
9157     )
9158     ,(  'circ.format.missing_pieces.letter.print',
9159         'circ', 
9160         oils_i18n_gettext(
9161             'circ.format.missing_pieces.letter.print',
9162             'A missing pieces patron letter needs to be formatted for printing.',
9163             'ath',
9164             'description'
9165         ), 
9166         FALSE
9167     )
9168 ;
9169
9170 INSERT INTO action_trigger.event_definition (
9171         id,
9172         active,
9173         owner,
9174         name,
9175         hook,
9176         validator,
9177         reactor,
9178         group_field,
9179         granularity,
9180         template
9181     ) VALUES (
9182         33,
9183         TRUE,
9184         1,
9185         'circ.missing_pieces.slip.print',
9186         'circ.format.missing_pieces.slip.print',
9187         'NOOP_True',
9188         'ProcessTemplate',
9189         'usr',
9190         'print-on-demand',
9191 $$
9192 [%- USE date -%]
9193 [%- SET user = target.0.usr -%]
9194 <div style="li { padding: 8px; margin 5px; }">
9195     <div>[% date.format %]</div><br/>
9196     Missing pieces for:
9197     <ol>
9198     [% FOR circ IN target %]
9199         <li>Barcode: [% circ.target_copy.barcode %] Transaction ID: [% circ.id %] Due: [% circ.due_date.format %]<br />
9200             [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
9201         </li>
9202     [% END %]
9203     </ol>
9204 </div>
9205 $$
9206     )
9207     ,(
9208         34,
9209         TRUE,
9210         1,
9211         'circ.missing_pieces.letter.print',
9212         'circ.format.missing_pieces.letter.print',
9213         'NOOP_True',
9214         'ProcessTemplate',
9215         'usr',
9216         'print-on-demand',
9217 $$
9218 [%- USE date -%]
9219 [%- SET user = target.0.usr -%]
9220 [% date.format %]
9221 Dear [% user.prefix %] [% user.first_given_name %] [% user.family_name %],
9222
9223 We are missing pieces for the following returned items:
9224 [% FOR circ IN target %]
9225 Barcode: [% circ.target_copy.barcode %] Transaction ID: [% circ.id %] Due: [% circ.due_date.format %]
9226 [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
9227 [% END %]
9228
9229 Please return these pieces as soon as possible.
9230
9231 Thanks!
9232
9233 Library Staff
9234 $$
9235     )
9236 ;
9237
9238 INSERT INTO action_trigger.environment (
9239         event_def,
9240         path
9241     ) VALUES -- for fleshing circ objects
9242          ( 33, 'usr')
9243         ,( 33, 'target_copy')
9244         ,( 33, 'target_copy.circ_lib')
9245         ,( 33, 'target_copy.circ_lib.mailing_address')
9246         ,( 33, 'target_copy.circ_lib.billing_address')
9247         ,( 33, 'target_copy.call_number')
9248         ,( 33, 'target_copy.call_number.owning_lib')
9249         ,( 33, 'target_copy.call_number.owning_lib.mailing_address')
9250         ,( 33, 'target_copy.call_number.owning_lib.billing_address')
9251         ,( 33, 'circ_lib')
9252         ,( 33, 'circ_lib.mailing_address')
9253         ,( 33, 'circ_lib.billing_address')
9254         ,( 34, 'usr')
9255         ,( 34, 'target_copy')
9256         ,( 34, 'target_copy.circ_lib')
9257         ,( 34, 'target_copy.circ_lib.mailing_address')
9258         ,( 34, 'target_copy.circ_lib.billing_address')
9259         ,( 34, 'target_copy.call_number')
9260         ,( 34, 'target_copy.call_number.owning_lib')
9261         ,( 34, 'target_copy.call_number.owning_lib.mailing_address')
9262         ,( 34, 'target_copy.call_number.owning_lib.billing_address')
9263         ,( 34, 'circ_lib')
9264         ,( 34, 'circ_lib.mailing_address')
9265         ,( 34, 'circ_lib.billing_address')
9266 ;
9267
9268 -- 0384.data.hold_pull_list_template.sql
9269
9270 INSERT INTO action_trigger.hook (key,core_type,description,passive) 
9271     VALUES (   
9272         'ahr.format.pull_list',
9273         'ahr', 
9274         oils_i18n_gettext(
9275             'ahr.format.pull_list',
9276             'Format holds pull list for printing',
9277             'ath',
9278             'description'
9279         ), 
9280         FALSE
9281     );
9282
9283 INSERT INTO action_trigger.event_definition (
9284         id,
9285         active,
9286         owner,
9287         name,
9288         hook,
9289         validator,
9290         reactor,
9291         group_field,
9292         granularity,
9293         template
9294     ) VALUES (
9295         35,
9296         TRUE,
9297         1,
9298         'Holds Pull List',
9299         'ahr.format.pull_list',
9300         'NOOP_True',
9301         'ProcessTemplate',
9302         'pickup_lib',
9303         'print-on-demand',
9304 $$
9305 [%- USE date -%]
9306 <style>
9307     table { border-collapse: collapse; }
9308     td { padding: 5px; border-bottom: 1px solid #888; }
9309     th { font-weight: bold; }
9310 </style>
9311 [%
9312     # Sort the holds into copy-location buckets
9313     # In the main print loop, sort each bucket by callnumber before printing
9314     SET holds_list = [];
9315     SET loc_data = [];
9316     SET current_location = target.0.current_copy.location.id;
9317     FOR hold IN target;
9318         IF current_location != hold.current_copy.location.id;
9319             SET current_location = hold.current_copy.location.id;
9320             holds_list.push(loc_data);
9321             SET loc_data = [];
9322         END;
9323         SET hold_data = {
9324             'hold' => hold,
9325             'callnumber' => hold.current_copy.call_number.label
9326         };
9327         loc_data.push(hold_data);
9328     END;
9329     holds_list.push(loc_data)
9330 %]
9331 <table>
9332     <thead>
9333         <tr>
9334             <th>Title</th>
9335             <th>Author</th>
9336             <th>Shelving Location</th>
9337             <th>Call Number</th>
9338             <th>Barcode/Part</th>
9339             <th>Patron</th>
9340         </tr>
9341     </thead>
9342     <tbody>
9343     [% FOR loc_data IN holds_list  %]
9344         [% FOR hold_data IN loc_data.sort('callnumber') %]
9345             [%
9346                 SET hold = hold_data.hold;
9347                 SET copy_data = helpers.get_copy_bib_basics(hold.current_copy.id);
9348             %]
9349             <tr>
9350                 <td>[% copy_data.title | truncate %]</td>
9351                 <td>[% copy_data.author | truncate %]</td>
9352                 <td>[% hold.current_copy.location.name %]</td>
9353                 <td>[% hold.current_copy.call_number.label %]</td>
9354                 <td>[% hold.current_copy.barcode %]
9355                     [% FOR part IN hold.current_copy.parts %]
9356                        [% part.part.label %]
9357                     [% END %]
9358                 </td>
9359                 <td>[% hold.usr.card.barcode %]</td>
9360             </tr>
9361         [% END %]
9362     [% END %]
9363     <tbody>
9364 </table>
9365 $$
9366 );
9367
9368 INSERT INTO action_trigger.environment (
9369         event_def,
9370         path
9371     ) VALUES
9372         (35, 'current_copy.location'),
9373         (35, 'current_copy.call_number'),
9374         (35, 'usr.card'),
9375         (35, 'pickup_lib'),
9376         (35, 'current_copy.parts'),
9377         (35, 'current_copy.parts.part')
9378 ;
9379
9380 -- 0412.data.trigger.validator.HoldIsCancelled.sql
9381
9382 INSERT INTO action_trigger.validator (module, description) VALUES (
9383     'HoldIsCancelled',
9384     oils_i18n_gettext(
9385         'HoldIsCancelled',
9386         'Check whether a hold request is cancelled.',
9387         'atval',
9388         'description'
9389     )
9390 );
9391
9392 -- 0448.data.trigger.circ.staff_age_to_lost.sql
9393
9394 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES 
9395     (   'circ.staff_age_to_lost',
9396         'circ', 
9397         oils_i18n_gettext(
9398             'circ.staff_age_to_lost',
9399             'An overdue circulation should be aged to a Lost status.',
9400             'ath',
9401             'description'
9402         ), 
9403         TRUE
9404     )
9405 ;
9406
9407 INSERT INTO action_trigger.event_definition (
9408         id,
9409         active,
9410         owner,
9411         name,
9412         hook,
9413         validator,
9414         reactor,
9415         delay_field
9416     ) VALUES (
9417         36,
9418         FALSE,
9419         1,
9420         'circ.staff_age_to_lost',
9421         'circ.staff_age_to_lost',
9422         'CircIsOverdue',
9423         'MarkItemLost',
9424         'due_date'
9425     )
9426 ;
9427
9428 INSERT INTO action_trigger.hook (key,core_type,description)
9429     VALUES ('circ.recall.target', 'circ', 'A checked-out copy has been recalled for a hold.');
9430
9431 INSERT INTO action_trigger.event_definition (id, owner, name, hook, validator, reactor, group_field, template)
9432     VALUES (37, 1, 'Item Recall Email Notice', 'circ.recall.target', 'NOOP_True', 'SendEmail', 'usr', 
9433 $$
9434 [%- USE date -%]
9435 [%- user = target.0.usr -%]
9436 To: [%- params.recipient_email || user.email %]
9437 From: [%- params.sender_email || default_sender %]
9438 Subject: Item Recall Notification 
9439
9440 Dear [% user.family_name %], [% user.first_given_name %]
9441
9442 The following item which you have checked out has been recalled so that
9443 another patron can have access to the item:
9444
9445 [% FOR circ IN target %]
9446     Title: [% circ.target_copy.call_number.record.simple_record.title %] 
9447     Barcode: [% circ.target_copy.barcode %] 
9448     Now Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
9449     Library: [% circ.circ_lib.name %]
9450
9451     If this item is not returned by the new due date, fines will be assessed at
9452     the rate of [% circ.recurring_fine %] every [% circ.fine_interval %].
9453 [% END %]
9454 $$
9455 );
9456
9457 INSERT INTO action_trigger.environment (event_def, path) VALUES
9458     (37, 'target_copy.call_number.record.simple_record'),
9459     (37, 'usr'),
9460     (37, 'circ_lib.billing_address')
9461 ;
9462
9463 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'general.unknown', oils_i18n_gettext('general.unknown', 'Import or Overlay failed', 'vie', 'description') );
9464 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') );
9465 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') );
9466 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') );
9467 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') );
9468 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') );
9469 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') );
9470 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') );
9471 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.xml.malformed', oils_i18n_gettext('import.xml.malformed', 'Malformed record cause Import failure', 'vie', 'description') );
9472 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'overlay.xml.malformed', oils_i18n_gettext('overlay.xml.malformed', 'Malformed record cause Overlay failure', 'vie', 'description') );
9473 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'overlay.record.quality', oils_i18n_gettext('overlay.record.quality', 'New record had insufficient quality', 'vie', 'description') );
9474
9475 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9476     'import.item.invalid.status', oils_i18n_gettext('import.item.invalid.status', 'Invalid value for "status"', 'vie', 'description') );
9477 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9478     'import.item.invalid.price', oils_i18n_gettext('import.item.invalid.price', 'Invalid value for "price"', 'vie', 'description') );
9479 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9480     'import.item.invalid.deposit_amount', oils_i18n_gettext('import.item.invalid.deposit_amount', 'Invalid value for "deposit_amount"', 'vie', 'description') );
9481 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9482     'import.item.invalid.owning_lib', oils_i18n_gettext('import.item.invalid.owning_lib', 'Invalid value for "owning_lib"', 'vie', 'description') );
9483 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9484     'import.item.invalid.circ_lib', oils_i18n_gettext('import.item.invalid.circ_lib', 'Invalid value for "circ_lib"', 'vie', 'description') );
9485 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9486     'import.item.invalid.copy_number', oils_i18n_gettext('import.item.invalid.copy_number', 'Invalid value for "copy_number"', 'vie', 'description') );
9487 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9488     'import.item.invalid.circ_as_type', oils_i18n_gettext('import.item.invalid.circ_as_type', 'Invalid value for "circ_as_type"', 'vie', 'description') );
9489 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9490     'import.record.perm_failure', oils_i18n_gettext('import.record.perm_failure', 'Perm failure creating a record', 'vie', 'description') );
9491
9492 -- Event def for email notice for hold cancelled due to lack of target -----
9493
9494 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, template)
9495     VALUES (38, FALSE, 1, 
9496         'Hold Cancelled (No Target) Email Notification', 
9497         'hold_request.cancel.expire_no_target', 
9498         'HoldIsCancelled', 'SendEmail', '30 minutes', 'cancel_time', 'usr',
9499 $$
9500 [%- USE date -%]
9501 [%- user = target.0.usr -%]
9502 To: [%- params.recipient_email || user.email %]
9503 From: [%- params.sender_email || default_sender %]
9504 Subject: Hold Request Cancelled
9505
9506 Dear [% user.family_name %], [% user.first_given_name %]
9507 The following holds were cancelled because no items were found to fullfil the hold.
9508
9509 [% FOR hold IN target %]
9510     Title: [% hold.bib_rec.bib_record.simple_record.title %]
9511     Author: [% hold.bib_rec.bib_record.simple_record.author %]
9512     Library: [% hold.pickup_lib.name %]
9513     Request Date: [% date.format(helpers.format_date(hold.rrequest_time), '%Y-%m-%d') %]
9514 [% END %]
9515
9516 $$);
9517
9518 INSERT INTO action_trigger.environment (event_def, path) VALUES
9519     (38, 'usr'),
9520     (38, 'pickup_lib'),
9521     (38, 'bib_rec.bib_record.simple_record');
9522
9523 INSERT INTO action_trigger.event_params (event_def, param, value)
9524     VALUES (38, 'check_email_notify', 1);
9525
9526 ----------------------------------------------------------------
9527 -- Seed data for queued record/item exports
9528 ----------------------------------------------------------------
9529
9530 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
9531         'vandelay.queued_bib_record.print',
9532         'vqbr', 
9533         oils_i18n_gettext(
9534             'vandelay.queued_bib_record.print',
9535             'Print output has been requested for records in an Importer Bib Queue.',
9536             'ath',
9537             'description'
9538         ), 
9539         FALSE
9540     )
9541     ,(
9542         'vandelay.queued_bib_record.csv',
9543         'vqbr', 
9544         oils_i18n_gettext(
9545             'vandelay.queued_bib_record.csv',
9546             'CSV output has been requested for records in an Importer Bib Queue.',
9547             'ath',
9548             'description'
9549         ), 
9550         FALSE
9551     )
9552     ,(
9553         'vandelay.queued_bib_record.email',
9554         'vqbr', 
9555         oils_i18n_gettext(
9556             'vandelay.queued_bib_record.email',
9557             'An email has been requested for records in an Importer Bib Queue.',
9558             'ath',
9559             'description'
9560         ), 
9561         FALSE
9562     )
9563     ,(
9564         'vandelay.queued_auth_record.print',
9565         'vqar', 
9566         oils_i18n_gettext(
9567             'vandelay.queued_auth_record.print',
9568             'Print output has been requested for records in an Importer Authority Queue.',
9569             'ath',
9570             'description'
9571         ), 
9572         FALSE
9573     )
9574     ,(
9575         'vandelay.queued_auth_record.csv',
9576         'vqar', 
9577         oils_i18n_gettext(
9578             'vandelay.queued_auth_record.csv',
9579             'CSV output has been requested for records in an Importer Authority Queue.',
9580             'ath',
9581             'description'
9582         ), 
9583         FALSE
9584     )
9585     ,(
9586         'vandelay.queued_auth_record.email',
9587         'vqar', 
9588         oils_i18n_gettext(
9589             'vandelay.queued_auth_record.email',
9590             'An email has been requested for records in an Importer Authority Queue.',
9591             'ath',
9592             'description'
9593         ), 
9594         FALSE
9595     )
9596     ,(
9597         'vandelay.import_items.print',
9598         'vii', 
9599         oils_i18n_gettext(
9600             'vandelay.import_items.print',
9601             'Print output has been requested for Import Items from records in an Importer Bib Queue.',
9602             'ath',
9603             'description'
9604         ), 
9605         FALSE
9606     )
9607     ,(
9608         'vandelay.import_items.csv',
9609         'vii', 
9610         oils_i18n_gettext(
9611             'vandelay.import_items.csv',
9612             'CSV output has been requested for Import Items from records in an Importer Bib Queue.',
9613             'ath',
9614             'description'
9615         ), 
9616         FALSE
9617     )
9618     ,(
9619         'vandelay.import_items.email',
9620         'vii', 
9621         oils_i18n_gettext(
9622             'vandelay.import_items.email',
9623             'An email has been requested for Import Items from records in an Importer Bib Queue.',
9624             'ath',
9625             'description'
9626         ), 
9627         FALSE
9628     )
9629 ;
9630
9631 INSERT INTO action_trigger.event_definition (
9632         id,
9633         active,
9634         owner,
9635         name,
9636         hook,
9637         validator,
9638         reactor,
9639         group_field,
9640         granularity,
9641         template
9642     ) VALUES (
9643         39,
9644         TRUE,
9645         1,
9646         'Print Output for Queued Bib Records',
9647         'vandelay.queued_bib_record.print',
9648         'NOOP_True',
9649         'ProcessTemplate',
9650         'queue.owner',
9651         'print-on-demand',
9652 $$
9653 [%- USE date -%]
9654 <pre>
9655 Queue ID: [% target.0.queue.id %]
9656 Queue Name: [% target.0.queue.name %]
9657 Queue Type: [% target.0.queue.queue_type %]
9658 Complete? [% target.0.queue.complete %]
9659
9660     [% FOR vqbr IN target %]
9661 =-=-=
9662  Title of work    | [% helpers.get_queued_bib_attr('title',vqbr.attributes) %]
9663  Author of work   | [% helpers.get_queued_bib_attr('author',vqbr.attributes) %]
9664  Language of work | [% helpers.get_queued_bib_attr('language',vqbr.attributes) %]
9665  Pagination       | [% helpers.get_queued_bib_attr('pagination',vqbr.attributes) %]
9666  ISBN             | [% helpers.get_queued_bib_attr('isbn',vqbr.attributes) %]
9667  ISSN             | [% helpers.get_queued_bib_attr('issn',vqbr.attributes) %]
9668  Price            | [% helpers.get_queued_bib_attr('price',vqbr.attributes) %]
9669  Accession Number | [% helpers.get_queued_bib_attr('rec_identifier',vqbr.attributes) %]
9670  TCN Value        | [% helpers.get_queued_bib_attr('eg_tcn',vqbr.attributes) %]
9671  TCN Source       | [% helpers.get_queued_bib_attr('eg_tcn_source',vqbr.attributes) %]
9672  Internal ID      | [% helpers.get_queued_bib_attr('eg_identifier',vqbr.attributes) %]
9673  Publisher        | [% helpers.get_queued_bib_attr('publisher',vqbr.attributes) %]
9674  Publication Date | [% helpers.get_queued_bib_attr('pubdate',vqbr.attributes) %]
9675  Edition          | [% helpers.get_queued_bib_attr('edition',vqbr.attributes) %]
9676  Item Barcode     | [% helpers.get_queued_bib_attr('item_barcode',vqbr.attributes) %]
9677  Import Error     | [% vqbr.import_error %]
9678  Error Detail     | [% vqbr.error_detail %]
9679  Match Count      | [% vqbr.matches.size %]
9680
9681     [% END %]
9682 </pre>
9683 $$
9684     )
9685 ;
9686
9687 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9688     39, 'attributes')
9689     ,( 39, 'queue')
9690     ,( 39, 'matches')
9691 ;
9692
9693 INSERT INTO action_trigger.event_definition (
9694         id,
9695         active,
9696         owner,
9697         name,
9698         hook,
9699         validator,
9700         reactor,
9701         group_field,
9702         granularity,
9703         template
9704     ) VALUES (
9705         40,
9706         TRUE,
9707         1,
9708         'CSV Output for Queued Bib Records',
9709         'vandelay.queued_bib_record.csv',
9710         'NOOP_True',
9711         'ProcessTemplate',
9712         'queue.owner',
9713         'print-on-demand',
9714 $$
9715 [%- USE date -%]
9716 "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"
9717 [% 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 %]"
9718 [% END %]
9719 $$
9720     )
9721 ;
9722
9723 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9724     40, 'attributes')
9725     ,( 40, 'queue')
9726     ,( 40, 'matches')
9727 ;
9728
9729 INSERT INTO action_trigger.event_definition (
9730         id,
9731         active,
9732         owner,
9733         name,
9734         hook,
9735         validator,
9736         reactor,
9737         group_field,
9738         granularity,
9739         template
9740     ) VALUES (
9741         41,
9742         TRUE,
9743         1,
9744         'Email Output for Queued Bib Records',
9745         'vandelay.queued_bib_record.email',
9746         'NOOP_True',
9747         'SendEmail',
9748         'queue.owner',
9749         NULL,
9750 $$
9751 [%- USE date -%]
9752 [%- SET user = target.0.queue.owner -%]
9753 To: [%- params.recipient_email || user.email || 'root@localhost' %]
9754 From: [%- params.sender_email || default_sender %]
9755 Subject: Bibs from Import Queue
9756
9757 Queue ID: [% target.0.queue.id %]
9758 Queue Name: [% target.0.queue.name %]
9759 Queue Type: [% target.0.queue.queue_type %]
9760 Complete? [% target.0.queue.complete %]
9761
9762     [% FOR vqbr IN target %]
9763 =-=-=
9764  Title of work    | [% helpers.get_queued_bib_attr('title',vqbr.attributes) %]
9765  Author of work   | [% helpers.get_queued_bib_attr('author',vqbr.attributes) %]
9766  Language of work | [% helpers.get_queued_bib_attr('language',vqbr.attributes) %]
9767  Pagination       | [% helpers.get_queued_bib_attr('pagination',vqbr.attributes) %]
9768  ISBN             | [% helpers.get_queued_bib_attr('isbn',vqbr.attributes) %]
9769  ISSN             | [% helpers.get_queued_bib_attr('issn',vqbr.attributes) %]
9770  Price            | [% helpers.get_queued_bib_attr('price',vqbr.attributes) %]
9771  Accession Number | [% helpers.get_queued_bib_attr('rec_identifier',vqbr.attributes) %]
9772  TCN Value        | [% helpers.get_queued_bib_attr('eg_tcn',vqbr.attributes) %]
9773  TCN Source       | [% helpers.get_queued_bib_attr('eg_tcn_source',vqbr.attributes) %]
9774  Internal ID      | [% helpers.get_queued_bib_attr('eg_identifier',vqbr.attributes) %]
9775  Publisher        | [% helpers.get_queued_bib_attr('publisher',vqbr.attributes) %]
9776  Publication Date | [% helpers.get_queued_bib_attr('pubdate',vqbr.attributes) %]
9777  Edition          | [% helpers.get_queued_bib_attr('edition',vqbr.attributes) %]
9778  Item Barcode     | [% helpers.get_queued_bib_attr('item_barcode',vqbr.attributes) %]
9779
9780     [% END %]
9781
9782 $$
9783     )
9784 ;
9785
9786 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9787     41, 'attributes')
9788     ,( 41, 'queue')
9789     ,( 41, 'queue.owner')
9790 ;
9791
9792 INSERT INTO action_trigger.event_definition (
9793         id,
9794         active,
9795         owner,
9796         name,
9797         hook,
9798         validator,
9799         reactor,
9800         group_field,
9801         granularity,
9802         template
9803     ) VALUES (
9804         42,
9805         TRUE,
9806         1,
9807         'Print Output for Queued Authority Records',
9808         'vandelay.queued_auth_record.print',
9809         'NOOP_True',
9810         'ProcessTemplate',
9811         'queue.owner',
9812         'print-on-demand',
9813 $$
9814 [%- USE date -%]
9815 <pre>
9816 Queue ID: [% target.0.queue.id %]
9817 Queue Name: [% target.0.queue.name %]
9818 Queue Type: [% target.0.queue.queue_type %]
9819 Complete? [% target.0.queue.complete %]
9820
9821     [% FOR vqar IN target %]
9822 =-=-=
9823  Record Identifier | [% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) %]
9824
9825     [% END %]
9826 </pre>
9827 $$
9828     )
9829 ;
9830
9831 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9832     42, 'attributes')
9833     ,( 42, 'queue')
9834 ;
9835
9836 INSERT INTO action_trigger.event_definition (
9837         id,
9838         active,
9839         owner,
9840         name,
9841         hook,
9842         validator,
9843         reactor,
9844         group_field,
9845         granularity,
9846         template
9847     ) VALUES (
9848         43,
9849         TRUE,
9850         1,
9851         'CSV Output for Queued Authority Records',
9852         'vandelay.queued_auth_record.csv',
9853         'NOOP_True',
9854         'ProcessTemplate',
9855         'queue.owner',
9856         'print-on-demand',
9857 $$
9858 [%- USE date -%]
9859 "Record Identifier"
9860 [% FOR vqar IN target %]"[% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) | replace('"', '""') %]"
9861 [% END %]
9862 $$
9863     )
9864 ;
9865
9866 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9867     43, 'attributes')
9868     ,( 43, 'queue')
9869 ;
9870
9871 INSERT INTO action_trigger.event_definition (
9872         id,
9873         active,
9874         owner,
9875         name,
9876         hook,
9877         validator,
9878         reactor,
9879         group_field,
9880         granularity,
9881         template
9882     ) VALUES (
9883         44,
9884         TRUE,
9885         1,
9886         'Email Output for Queued Authority Records',
9887         'vandelay.queued_auth_record.email',
9888         'NOOP_True',
9889         'SendEmail',
9890         'queue.owner',
9891         NULL,
9892 $$
9893 [%- USE date -%]
9894 [%- SET user = target.0.queue.owner -%]
9895 To: [%- params.recipient_email || user.email || 'root@localhost' %]
9896 From: [%- params.sender_email || default_sender %]
9897 Subject: Authorities from Import Queue
9898
9899 Queue ID: [% target.0.queue.id %]
9900 Queue Name: [% target.0.queue.name %]
9901 Queue Type: [% target.0.queue.queue_type %]
9902 Complete? [% target.0.queue.complete %]
9903
9904     [% FOR vqar IN target %]
9905 =-=-=
9906  Record Identifier | [% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) %]
9907
9908     [% END %]
9909
9910 $$
9911     )
9912 ;
9913
9914 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9915     44, 'attributes')
9916     ,( 44, 'queue')
9917     ,( 44, 'queue.owner')
9918 ;
9919
9920 INSERT INTO action_trigger.event_definition (
9921         id,
9922         active,
9923         owner,
9924         name,
9925         hook,
9926         validator,
9927         reactor,
9928         group_field,
9929         granularity,
9930         template
9931     ) VALUES (
9932         45,
9933         TRUE,
9934         1,
9935         'Print Output for Import Items from Queued Bib Records',
9936         'vandelay.import_items.print',
9937         'NOOP_True',
9938         'ProcessTemplate',
9939         'record.queue.owner',
9940         'print-on-demand',
9941 $$
9942 [%- USE date -%]
9943 <pre>
9944 Queue ID: [% target.0.record.queue.id %]
9945 Queue Name: [% target.0.record.queue.name %]
9946 Queue Type: [% target.0.record.queue.queue_type %]
9947 Complete? [% target.0.record.queue.complete %]
9948
9949     [% FOR vii IN target %]
9950 =-=-=
9951  Import Item ID         | [% vii.id %]
9952  Title of work          | [% helpers.get_queued_bib_attr('title',vii.record.attributes) %]
9953  ISBN                   | [% helpers.get_queued_bib_attr('isbn',vii.record.attributes) %]
9954  Attribute Definition   | [% vii.definition %]
9955  Import Error           | [% vii.import_error %]
9956  Import Error Detail    | [% vii.error_detail %]
9957  Owning Library         | [% vii.owning_lib %]
9958  Circulating Library    | [% vii.circ_lib %]
9959  Call Number            | [% vii.call_number %]
9960  Copy Number            | [% vii.copy_number %]
9961  Status                 | [% vii.status.name %]
9962  Shelving Location      | [% vii.location.name %]
9963  Circulate              | [% vii.circulate %]
9964  Deposit                | [% vii.deposit %]
9965  Deposit Amount         | [% vii.deposit_amount %]
9966  Reference              | [% vii.ref %]
9967  Holdable               | [% vii.holdable %]
9968  Price                  | [% vii.price %]
9969  Barcode                | [% vii.barcode %]
9970  Circulation Modifier   | [% vii.circ_modifier %]
9971  Circulate As MARC Type | [% vii.circ_as_type %]
9972  Alert Message          | [% vii.alert_message %]
9973  Public Note            | [% vii.pub_note %]
9974  Private Note           | [% vii.priv_note %]
9975  OPAC Visible           | [% vii.opac_visible %]
9976
9977     [% END %]
9978 </pre>
9979 $$
9980     )
9981 ;
9982
9983 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9984     45, 'record')
9985     ,( 45, 'record.attributes')
9986     ,( 45, 'record.queue')
9987     ,( 45, 'record.queue.owner')
9988 ;
9989
9990 INSERT INTO action_trigger.event_definition (
9991         id,
9992         active,
9993         owner,
9994         name,
9995         hook,
9996         validator,
9997         reactor,
9998         group_field,
9999         granularity,
10000         template
10001     ) VALUES (
10002         46,
10003         TRUE,
10004         1,
10005         'CSV Output for Import Items from Queued Bib Records',
10006         'vandelay.import_items.csv',
10007         'NOOP_True',
10008         'ProcessTemplate',
10009         'record.queue.owner',
10010         'print-on-demand',
10011 $$
10012 [%- USE date -%]
10013 "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"
10014 [% 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('"', '""') %]"
10015 [% END %]
10016 $$
10017     )
10018 ;
10019
10020 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10021     46, 'record')
10022     ,( 46, 'record.attributes')
10023     ,( 46, 'record.queue')
10024     ,( 46, 'record.queue.owner')
10025 ;
10026
10027 INSERT INTO action_trigger.event_definition (
10028         id,
10029         active,
10030         owner,
10031         name,
10032         hook,
10033         validator,
10034         reactor,
10035         group_field,
10036         granularity,
10037         template
10038     ) VALUES (
10039         47,
10040         TRUE,
10041         1,
10042         'Email Output for Import Items from Queued Bib Records',
10043         'vandelay.import_items.email',
10044         'NOOP_True',
10045         'SendEmail',
10046         'record.queue.owner',
10047         NULL,
10048 $$
10049 [%- USE date -%]
10050 [%- SET user = target.0.record.queue.owner -%]
10051 To: [%- params.recipient_email || user.email || 'root@localhost' %]
10052 From: [%- params.sender_email || default_sender %]
10053 Subject: Import Items from Import Queue
10054
10055 Queue ID: [% target.0.record.queue.id %]
10056 Queue Name: [% target.0.record.queue.name %]
10057 Queue Type: [% target.0.record.queue.queue_type %]
10058 Complete? [% target.0.record.queue.complete %]
10059
10060     [% FOR vii IN target %]
10061 =-=-=
10062  Import Item ID         | [% vii.id %]
10063  Title of work          | [% helpers.get_queued_bib_attr('title',vii.record.attributes) %]
10064  ISBN                   | [% helpers.get_queued_bib_attr('isbn',vii.record.attributes) %]
10065  Attribute Definition   | [% vii.definition %]
10066  Import Error           | [% vii.import_error %]
10067  Import Error Detail    | [% vii.error_detail %]
10068  Owning Library         | [% vii.owning_lib %]
10069  Circulating Library    | [% vii.circ_lib %]
10070  Call Number            | [% vii.call_number %]
10071  Copy Number            | [% vii.copy_number %]
10072  Status                 | [% vii.status.name %]
10073  Shelving Location      | [% vii.location.name %]
10074  Circulate              | [% vii.circulate %]
10075  Deposit                | [% vii.deposit %]
10076  Deposit Amount         | [% vii.deposit_amount %]
10077  Reference              | [% vii.ref %]
10078  Holdable               | [% vii.holdable %]
10079  Price                  | [% vii.price %]
10080  Barcode                | [% vii.barcode %]
10081  Circulation Modifier   | [% vii.circ_modifier %]
10082  Circulate As MARC Type | [% vii.circ_as_type %]
10083  Alert Message          | [% vii.alert_message %]
10084  Public Note            | [% vii.pub_note %]
10085  Private Note           | [% vii.priv_note %]
10086  OPAC Visible           | [% vii.opac_visible %]
10087
10088     [% END %]
10089 $$
10090     )
10091 ;
10092
10093 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10094     47, 'record')
10095     ,( 47, 'record.attributes')
10096     ,( 47, 'record.queue')
10097     ,( 47, 'record.queue.owner')
10098 ;
10099
10100 INSERT INTO action_trigger.hook (key, core_type, description, passive)
10101 VALUES (
10102     'container.biblio_record_entry_bucket.csv',
10103     'cbreb',
10104     oils_i18n_gettext(
10105         'container.biblio_record_entry_bucket.csv',
10106         'Produce a CSV file representing a bookbag',
10107         'ath',
10108         'description'
10109     ),
10110     FALSE
10111 );
10112
10113 INSERT INTO action_trigger.reactor (module, description)
10114 VALUES (
10115     'ContainerCSV',
10116     oils_i18n_gettext(
10117         'ContainerCSV',
10118         'Facilitates produce a CSV file representing a bookbag by introducing an "items" variable into the TT environment, sorted as dictated according to user params',
10119         'atr',
10120         'description'
10121     )
10122 );
10123
10124 INSERT INTO action_trigger.event_definition (
10125     id, active, owner,
10126     name, hook, reactor,
10127     validator, template
10128 ) VALUES (
10129     48, TRUE, 1,
10130     'Bookbag CSV', 'container.biblio_record_entry_bucket.csv', 'ContainerCSV',
10131     'NOOP_True',
10132 $$
10133 [%-
10134 # target is the bookbag itself. The 'items' variable does not need to be in
10135 # the environment because a special reactor will take care of filling it in.
10136
10137 FOR item IN items;
10138     bibxml = helpers.unapi_bre(item.target_biblio_record_entry, {flesh => '{mra}'});
10139     title = "";
10140     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
10141         title = title _ part.textContent;
10142     END;
10143     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
10144     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
10145     pub_date = "";
10146     FOR pdatum IN bibxml.findnodes('//*[@tag="260"]/*[@code="c"]');
10147         IF pub_date ;
10148             pub_date = pub_date _ ", " _ pdatum.textContent;
10149         ELSE ;
10150             pub_date = pdatum.textContent;
10151         END;
10152     END;
10153     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";
10154 END -%]
10155 $$
10156 );
10157
10158 SELECT SETVAL('authority.control_set_id_seq'::TEXT, 100);
10159 SELECT SETVAL('authority.control_set_authority_field_id_seq'::TEXT, 1000);
10160 SELECT SETVAL('authority.control_set_bib_field_id_seq'::TEXT, 1000);
10161
10162 INSERT INTO authority.control_set (id, name, description) VALUES (
10163     1,
10164     oils_i18n_gettext('1','LoC','acs','name'),
10165     oils_i18n_gettext('1','Library of Congress standard authority record control semantics','acs','description')
10166 );
10167
10168 -- Entries that need to respect an NFI
10169 INSERT INTO authority.control_set_authority_field (id, control_set, main_entry, tag, sf_list, name, nfi) VALUES
10170     (4, 1, NULL, '130', 'adfgklmnoprstvxyz', oils_i18n_gettext('4','Heading -- Uniform Title','acsaf','name'), '2'),
10171     (24, 1, 4, '530', 'adfgiklmnoprstvwxyz4', oils_i18n_gettext('24','See Also From Tracing -- Uniform Title','acsaf','name'), '2'),
10172     (44, 1, 4, '730', 'adfghklmnoprstvwxyz25', oils_i18n_gettext('44','Established Heading Linking Entry -- Uniform Title','acsaf','name'), '2'),
10173     (64, 1, 4, '430', 'adfgiklmnoprstvwxyz4', oils_i18n_gettext('64','See Also Tracing -- Uniform Title','acsaf','name'), '2');
10174
10175 INSERT INTO authority.control_set_authority_field (id, control_set, main_entry, tag, sf_list, name) VALUES
10176
10177 -- Main entries
10178     (1, 1, NULL, '100', 'abcdefklmnopqrstvxyz', oils_i18n_gettext('1','Heading -- Personal Name','acsaf','name')),
10179     (2, 1, NULL, '110', 'abcdefgklmnoprstvxyz', oils_i18n_gettext('2','Heading -- Corporate Name','acsaf','name')),
10180     (3, 1, NULL, '111', 'acdefgklnpqstvxyz', oils_i18n_gettext('3','Heading -- Meeting Name','acsaf','name')),
10181     (5, 1, NULL, '150', 'abvxyz', oils_i18n_gettext('5','Heading -- Topical Term','acsaf','name')),
10182     (6, 1, NULL, '151', 'avxyz', oils_i18n_gettext('6','Heading -- Geographic Name','acsaf','name')),
10183     (7, 1, NULL, '155', 'avxyz', oils_i18n_gettext('7','Heading -- Genre/Form Term','acsaf','name')),
10184     (8, 1, NULL, '180', 'vxyz', oils_i18n_gettext('8','Heading -- General Subdivision','acsaf','name')),
10185     (9, 1, NULL, '181', 'vxyz', oils_i18n_gettext('9','Heading -- Geographic Subdivision','acsaf','name')),
10186     (10, 1, NULL, '182', 'vxyz', oils_i18n_gettext('10','Heading -- Chronological Subdivision','acsaf','name')),
10187     (11, 1, NULL, '185', 'vxyz', oils_i18n_gettext('11','Heading -- Form Subdivision','acsaf','name')),
10188     (12, 1, NULL, '148', 'avxyz', oils_i18n_gettext('12','Heading -- Chronological Term','acsaf','name')),
10189
10190 -- See Also From tracings
10191     (21, 1, 1, '500', 'abcdefiklmnopqrstvwxyz4', oils_i18n_gettext('21','See Also From Tracing -- Personal Name','acsaf','name')),
10192     (22, 1, 2, '510', 'abcdefgiklmnoprstvwxyz4', oils_i18n_gettext('22','See Also From Tracing -- Corporate Name','acsaf','name')),
10193     (23, 1, 3, '511', 'acdefgiklnpqstvwxyz4', oils_i18n_gettext('23','See Also From Tracing -- Meeting Name','acsaf','name')),
10194     (25, 1, 5, '550', 'abivwxyz4', oils_i18n_gettext('25','See Also From Tracing -- Topical Term','acsaf','name')),
10195     (26, 1, 6, '551', 'aivwxyz4', oils_i18n_gettext('26','See Also From Tracing -- Geographic Name','acsaf','name')),
10196     (27, 1, 7, '555', 'aivwxyz4', oils_i18n_gettext('27','See Also From Tracing -- Genre/Form Term','acsaf','name')),
10197     (28, 1, 8, '580', 'ivwxyz4', oils_i18n_gettext('28','See Also From Tracing -- General Subdivision','acsaf','name')),
10198     (29, 1, 9, '581', 'ivwxyz4', oils_i18n_gettext('29','See Also From Tracing -- Geographic Subdivision','acsaf','name')),
10199     (30, 1, 10, '582', 'ivwxyz4', oils_i18n_gettext('30','See Also From Tracing -- Chronological Subdivision','acsaf','name')),
10200     (31, 1, 11, '585', 'ivwxyz4', oils_i18n_gettext('31','See Also From Tracing -- Form Subdivision','acsaf','name')),
10201     (32, 1, 12, '548', 'aivwxyz4', oils_i18n_gettext('32','See Also From Tracing -- Chronological Term','acsaf','name')),
10202
10203 -- Linking entries
10204     (41, 1, 1, '700', 'abcdefghjklmnopqrstvwxyz25', oils_i18n_gettext('41','Established Heading Linking Entry -- Personal Name','acsaf','name')),
10205     (42, 1, 2, '710', 'abcdefghklmnoprstvwxyz25', oils_i18n_gettext('42','Established Heading Linking Entry -- Corporate Name','acsaf','name')),
10206     (43, 1, 3, '711', 'acdefghklnpqstvwxyz25', oils_i18n_gettext('43','Established Heading Linking Entry -- Meeting Name','acsaf','name')),
10207     (45, 1, 5, '750', 'abvwxyz25', oils_i18n_gettext('45','Established Heading Linking Entry -- Topical Term','acsaf','name')),
10208     (46, 1, 6, '751', 'avwxyz25', oils_i18n_gettext('46','Established Heading Linking Entry -- Geographic Name','acsaf','name')),
10209     (47, 1, 7, '755', 'avwxyz25', oils_i18n_gettext('47','Established Heading Linking Entry -- Genre/Form Term','acsaf','name')),
10210     (48, 1, 8, '780', 'vwxyz25', oils_i18n_gettext('48','Subdivision Linking Entry -- General Subdivision','acsaf','name')),
10211     (49, 1, 9, '781', 'vwxyz25', oils_i18n_gettext('49','Subdivision Linking Entry -- Geographic Subdivision','acsaf','name')),
10212     (50, 1, 10, '782', 'vwxyz25', oils_i18n_gettext('50','Subdivision Linking Entry -- Chronological Subdivision','acsaf','name')),
10213     (51, 1, 11, '785', 'vwxyz25', oils_i18n_gettext('51','Subdivision Linking Entry -- Form Subdivision','acsaf','name')),
10214     (52, 1, 12, '748', 'avwxyz25', oils_i18n_gettext('52','Established Heading Linking Entry -- Chronological Term','acsaf','name')),
10215
10216 -- See From tracings
10217     (61, 1, 1, '400', 'abcdefiklmnopqrstvwxyz4', oils_i18n_gettext('61','See Also Tracing -- Personal Name','acsaf','name')),
10218     (62, 1, 2, '410', 'abcdefgiklmnoprstvwxyz4', oils_i18n_gettext('62','See Also Tracing -- Corporate Name','acsaf','name')),
10219     (63, 1, 3, '411', 'acdefgiklnpqstvwxyz4', oils_i18n_gettext('63','See Also Tracing -- Meeting Name','acsaf','name')),
10220     (65, 1, 5, '450', 'abivwxyz4', oils_i18n_gettext('65','See Also Tracing -- Topical Term','acsaf','name')),
10221     (66, 1, 6, '451', 'aivwxyz4', oils_i18n_gettext('66','See Also Tracing -- Geographic Name','acsaf','name')),
10222     (67, 1, 7, '455', 'aivwxyz4', oils_i18n_gettext('67','See Also Tracing -- Genre/Form Term','acsaf','name')),
10223     (68, 1, 8, '480', 'ivwxyz4', oils_i18n_gettext('68','See Also Tracing -- General Subdivision','acsaf','name')),
10224     (69, 1, 9, '481', 'ivwxyz4', oils_i18n_gettext('69','See Also Tracing -- Geographic Subdivision','acsaf','name')),
10225     (70, 1, 10, '482', 'ivwxyz4', oils_i18n_gettext('70','See Also Tracing -- Chronological Subdivision','acsaf','name')),
10226     (71, 1, 11, '485', 'ivwxyz4', oils_i18n_gettext('71','See Also Tracing -- Form Subdivision','acsaf','name')),
10227     (72, 1, 12, '448', 'aivwxyz4', oils_i18n_gettext('72','See Also Tracing -- Chronological Term','acsaf','name'));
10228
10229 INSERT INTO authority.browse_axis (code,name,description,sorter) VALUES
10230     ('title','Title','Title axis','titlesort'),
10231     ('author','Author','Author axis','titlesort'),
10232     ('subject','Subject','Subject axis','titlesort'),
10233     ('topic','Topic','Topic Subject axis','titlesort');
10234
10235 INSERT INTO authority.browse_axis_authority_field_map (axis,field) VALUES
10236     ('author',  1 ),
10237     ('author',  2 ),
10238     ('author',  3 ),
10239     ('title',   4 ),
10240     ('topic',   5 ),
10241     ('subject', 5 ),
10242     ('subject', 6 ),
10243     ('subject', 7 ),
10244     ('subject', 12);
10245
10246 INSERT INTO authority.control_set_bib_field (tag, authority_field) 
10247     SELECT '100', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10248         UNION
10249     SELECT '600', id FROM authority.control_set_authority_field WHERE tag IN ('100','180','181','182','185')
10250         UNION
10251     SELECT '700', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10252         UNION
10253     SELECT '800', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10254         UNION
10255
10256     SELECT '110', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10257         UNION
10258     SELECT '610', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10259         UNION
10260     SELECT '710', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10261         UNION
10262     SELECT '810', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10263         UNION
10264
10265     SELECT '111', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10266         UNION
10267     SELECT '611', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10268         UNION
10269     SELECT '711', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10270         UNION
10271     SELECT '811', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10272         UNION
10273
10274     SELECT '130', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10275         UNION
10276     SELECT '240', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10277         UNION
10278     SELECT '630', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10279         UNION
10280     SELECT '730', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10281         UNION
10282     SELECT '830', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10283         UNION
10284
10285     SELECT '648', id FROM authority.control_set_authority_field WHERE tag IN ('148')
10286         UNION
10287
10288     SELECT '650', id FROM authority.control_set_authority_field WHERE tag IN ('150','180','181','182','185')
10289         UNION
10290     SELECT '651', id FROM authority.control_set_authority_field WHERE tag IN ('151','180','181','182','185')
10291         UNION
10292     SELECT '655', id FROM authority.control_set_authority_field WHERE tag IN ('155','180','181','182','185')
10293 ;
10294
10295 INSERT INTO authority.thesaurus (code, name, control_set) VALUES
10296     ('a', oils_i18n_gettext('a','Library of Congress Subject Headings','at','name'), 1),
10297     ('b', oils_i18n_gettext('b','LC subject headings for children''s literature','at','name'), 1), 
10298     ('c', oils_i18n_gettext('c','Medical Subject Headings','at','name'), 1),
10299     ('d', oils_i18n_gettext('d','National Agricultural Library subject authority file','at','name'), 1),
10300     ('k', oils_i18n_gettext('k','Canadian Subject Headings','at','name'), 1),
10301     ('n', oils_i18n_gettext('n','Not applicable','at','name'), 1),
10302     ('r', oils_i18n_gettext('r','Art and Architecture Thesaurus','at','name'), 1),
10303     ('s', oils_i18n_gettext('s','Sears List of Subject Headings','at','name'), 1),
10304     ('v', oils_i18n_gettext('v','Repertoire de vedettes-matiere','at','name'), 1),
10305     ('z', oils_i18n_gettext('z','Other','at','name'), 1),
10306     ('|', oils_i18n_gettext('|','No attempt to code','at','name'), NULL),
10307     (' ', oils_i18n_gettext(' ','Alternate no attempt to code','at','name'), NULL);
10308
10309 INSERT INTO action_trigger.hook ( key, core_type, description, passive ) VALUES (
10310     'reservation.available',
10311     'bresv',
10312     'A reservation is available for pickup',
10313     false
10314 );
10315
10316 INSERT INTO action_trigger.validator ( module, description ) VALUES (
10317     'ReservationIsAvailable',
10318     'Checked that a reserved resource is available for checkout'
10319 );
10320
10321 INSERT INTO container.biblio_record_entry_bucket_type (code, label) VALUES (
10322     'vandelay_queue',
10323     oils_i18n_gettext('vandelay_queue', 'Vandelay Queue', 'cbrebt', 'label')
10324 );
10325
10326 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype,fm_class) VALUES (
10327     'opac.default_sms_carrier',
10328     'sms',
10329     TRUE,
10330     oils_i18n_gettext(
10331         'opac.default_sms_carrier',
10332         'Default SMS/Text Carrier',
10333         'cust',
10334         'label'
10335     ),
10336     oils_i18n_gettext(
10337         'opac.default_sms_carrier',
10338         'Default SMS/Text Carrier',
10339         'cust',
10340         'description'
10341     ),
10342     'link',
10343     'csc'
10344 );
10345
10346 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10347     'opac.default_sms_notify',
10348     'sms',
10349     TRUE,
10350     oils_i18n_gettext(
10351         'opac.default_sms_notify',
10352         'Default SMS/Text Number',
10353         'cust',
10354         'label'
10355     ),
10356     oils_i18n_gettext(
10357         'opac.default_sms_notify',
10358         'Default SMS/Text Number',
10359         'cust',
10360         'description'
10361     ),
10362     'string'
10363 );
10364
10365 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10366     'opac.default_phone',
10367     'opac',
10368     TRUE,
10369     oils_i18n_gettext(
10370         'opac.default_phone',
10371         'Default Phone Number',
10372         'cust',
10373         'label'
10374     ),
10375     oils_i18n_gettext(
10376         'opac.default_phone',
10377         'Default Phone Number',
10378         'cust',
10379         'description'
10380     ),
10381     'string'
10382 );
10383
10384 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10385     'ui.grid_columns.circ.hold_pull_list',
10386     'gui',
10387     FALSE,
10388     oils_i18n_gettext(
10389         'ui.grid_columns.circ.hold_pull_list',
10390         'Hold Pull List',
10391         'cust',
10392         'label'
10393     ),
10394     oils_i18n_gettext(
10395         'ui.grid_columns.circ.hold_pull_list',
10396         'Hold Pull List Saved Column Settings',
10397         'cust',
10398         'description'
10399     ),
10400     'string'
10401 ), (
10402     'ui.grid_columns.actor.user.event_log',
10403     'gui',
10404     FALSE,
10405     oils_i18n_gettext(
10406         'ui.grid_columns.actor.user.event_log',
10407         'User Event Log',
10408         'cust',
10409         'label'
10410     ),
10411     oils_i18n_gettext(
10412         'ui.grid_columns.actor.user.event_log',
10413         'User Event Log Saved Column Settings',
10414         'cust',
10415         'description'
10416     ),
10417     'string'
10418 ) ;
10419
10420 SELECT setval( 'config.sms_carrier_id_seq', 1000 );
10421 INSERT INTO config.sms_carrier VALUES
10422
10423     -- Testing
10424     (
10425         1,
10426         oils_i18n_gettext(
10427             1,
10428             'Local',
10429             'csc',
10430             'region'
10431         ),
10432         oils_i18n_gettext(
10433             1,
10434             'Test Carrier',
10435             'csc',
10436             'name'
10437         ),
10438         'opensrf+$number@localhost',
10439         FALSE
10440     ),
10441
10442     -- Canada & USA
10443     (
10444         2,
10445         oils_i18n_gettext(
10446             2,
10447             'Canada & USA',
10448             'csc',
10449             'region'
10450         ),
10451         oils_i18n_gettext(
10452             2,
10453             'Rogers Wireless',
10454             'csc',
10455             'name'
10456         ),
10457         '$number@pcs.rogers.com',
10458         TRUE
10459     ),
10460     (
10461         3,
10462         oils_i18n_gettext(
10463             3,
10464             'Canada & USA',
10465             'csc',
10466             'region'
10467         ),
10468         oils_i18n_gettext(
10469             3,
10470             'Rogers Wireless (Alternate)',
10471             'csc',
10472             'name'
10473         ),
10474         '1$number@mms.rogers.com',
10475         TRUE
10476     ),
10477     (
10478         4,
10479         oils_i18n_gettext(
10480             4,
10481             'Canada & USA',
10482             'csc',
10483             'region'
10484         ),
10485         oils_i18n_gettext(
10486             4,
10487             'Telus Mobility',
10488             'csc',
10489             'name'
10490         ),
10491         '$number@msg.telus.com',
10492         TRUE
10493     ),
10494
10495     -- Canada
10496     (
10497         5,
10498         oils_i18n_gettext(
10499             5,
10500             'Canada',
10501             'csc',
10502             'region'
10503         ),
10504         oils_i18n_gettext(
10505             5,
10506             'Koodo Mobile',
10507             'csc',
10508             'name'
10509         ),
10510         '$number@msg.telus.com',
10511         TRUE
10512     ),
10513     (
10514         6,
10515         oils_i18n_gettext(
10516             6,
10517             'Canada',
10518             'csc',
10519             'region'
10520         ),
10521         oils_i18n_gettext(
10522             6,
10523             'Fido',
10524             'csc',
10525             'name'
10526         ),
10527         '$number@fido.ca',
10528         TRUE
10529     ),
10530     (
10531         7,
10532         oils_i18n_gettext(
10533             7,
10534             'Canada',
10535             'csc',
10536             'region'
10537         ),
10538         oils_i18n_gettext(
10539             7,
10540             'Bell Mobility & Solo Mobile',
10541             'csc',
10542             'name'
10543         ),
10544         '$number@txt.bell.ca',
10545         TRUE
10546     ),
10547     (
10548         8,
10549         oils_i18n_gettext(
10550             8,
10551             'Canada',
10552             'csc',
10553             'region'
10554         ),
10555         oils_i18n_gettext(
10556             8,
10557             'Bell Mobility & Solo Mobile (Alternate)',
10558             'csc',
10559             'name'
10560         ),
10561         '$number@txt.bellmobility.ca',
10562         TRUE
10563     ),
10564     (
10565         9,
10566         oils_i18n_gettext(
10567             9,
10568             'Canada',
10569             'csc',
10570             'region'
10571         ),
10572         oils_i18n_gettext(
10573             9,
10574             'Aliant',
10575             'csc',
10576             'name'
10577         ),
10578         '$number@sms.wirefree.informe.ca',
10579         TRUE
10580     ),
10581     (
10582         10,
10583         oils_i18n_gettext(
10584             10,
10585             'Canada',
10586             'csc',
10587             'region'
10588         ),
10589         oils_i18n_gettext(
10590             10,
10591             'PC Telecom',
10592             'csc',
10593             'name'
10594         ),
10595         '$number@mobiletxt.ca',
10596         TRUE
10597     ),
10598     (
10599         11,
10600         oils_i18n_gettext(
10601             11,
10602             'Canada',
10603             'csc',
10604             'region'
10605         ),
10606         oils_i18n_gettext(
10607             11,
10608             'SaskTel',
10609             'csc',
10610             'name'
10611         ),
10612         '$number@sms.sasktel.com',
10613         TRUE
10614     ),
10615     (
10616         12,
10617         oils_i18n_gettext(
10618             12,
10619             'Canada',
10620             'csc',
10621             'region'
10622         ),
10623         oils_i18n_gettext(
10624             12,
10625             'MTS Mobility',
10626             'csc',
10627             'name'
10628         ),
10629         '$number@text.mtsmobility.com',
10630         TRUE
10631     ),
10632     (
10633         13,
10634         oils_i18n_gettext(
10635             13,
10636             'Canada',
10637             'csc',
10638             'region'
10639         ),
10640         oils_i18n_gettext(
10641             13,
10642             'Virgin Mobile',
10643             'csc',
10644             'name'
10645         ),
10646         '$number@vmobile.ca',
10647         TRUE
10648     ),
10649
10650     -- International
10651     (
10652         14,
10653         oils_i18n_gettext(
10654             14,
10655             'International',
10656             'csc',
10657             'region'
10658         ),
10659         oils_i18n_gettext(
10660             14,
10661             'Iridium',
10662             'csc',
10663             'name'
10664         ),
10665         '$number@msg.iridium.com',
10666         TRUE
10667     ),
10668     (
10669         15,
10670         oils_i18n_gettext(
10671             15,
10672             'International',
10673             'csc',
10674             'region'
10675         ),
10676         oils_i18n_gettext(
10677             15,
10678             'Globalstar',
10679             'csc',
10680             'name'
10681         ),
10682         '$number@msg.globalstarusa.com',
10683         TRUE
10684     ),
10685     (
10686         16,
10687         oils_i18n_gettext(
10688             16,
10689             'International',
10690             'csc',
10691             'region'
10692         ),
10693         oils_i18n_gettext(
10694             16,
10695             'Bulletin.net',
10696             'csc',
10697             'name'
10698         ),
10699         '$number@bulletinmessenger.net', -- International Formatted number
10700         TRUE
10701     ),
10702     (
10703         17,
10704         oils_i18n_gettext(
10705             17,
10706             'International',
10707             'csc',
10708             'region'
10709         ),
10710         oils_i18n_gettext(
10711             17,
10712             'Panacea Mobile',
10713             'csc',
10714             'name'
10715         ),
10716         '$number@api.panaceamobile.com',
10717         TRUE
10718     ),
10719
10720     -- USA
10721     (
10722         18,
10723         oils_i18n_gettext(
10724             18,
10725             'USA',
10726             'csc',
10727             'region'
10728         ),
10729         oils_i18n_gettext(
10730             18,
10731             'C Beyond',
10732             'csc',
10733             'name'
10734         ),
10735         '$number@cbeyond.sprintpcs.com',
10736         TRUE
10737     ),
10738     (
10739         19,
10740         oils_i18n_gettext(
10741             19,
10742             'Alaska, USA',
10743             'csc',
10744             'region'
10745         ),
10746         oils_i18n_gettext(
10747             19,
10748             'General Communications, Inc.',
10749             'csc',
10750             'name'
10751         ),
10752         '$number@mobile.gci.net',
10753         TRUE
10754     ),
10755     (
10756         20,
10757         oils_i18n_gettext(
10758             20,
10759             'California, USA',
10760             'csc',
10761             'region'
10762         ),
10763         oils_i18n_gettext(
10764             20,
10765             'Golden State Cellular',
10766             'csc',
10767             'name'
10768         ),
10769         '$number@gscsms.com',
10770         TRUE
10771     ),
10772     (
10773         21,
10774         oils_i18n_gettext(
10775             21,
10776             'Cincinnati, Ohio, USA',
10777             'csc',
10778             'region'
10779         ),
10780         oils_i18n_gettext(
10781             21,
10782             'Cincinnati Bell',
10783             'csc',
10784             'name'
10785         ),
10786         '$number@gocbw.com',
10787         TRUE
10788     ),
10789     (
10790         22,
10791         oils_i18n_gettext(
10792             22,
10793             'Hawaii, USA',
10794             'csc',
10795             'region'
10796         ),
10797         oils_i18n_gettext(
10798             22,
10799             'Hawaiian Telcom Wireless',
10800             'csc',
10801             'name'
10802         ),
10803         '$number@hawaii.sprintpcs.com',
10804         TRUE
10805     ),
10806     (
10807         23,
10808         oils_i18n_gettext(
10809             23,
10810             'Midwest, USA',
10811             'csc',
10812             'region'
10813         ),
10814         oils_i18n_gettext(
10815             23,
10816             'i wireless (T-Mobile)',
10817             'csc',
10818             'name'
10819         ),
10820         '$number.iws@iwspcs.net',
10821         TRUE
10822     ),
10823     (
10824         24,
10825         oils_i18n_gettext(
10826             24,
10827             'USA',
10828             'csc',
10829             'region'
10830         ),
10831         oils_i18n_gettext(
10832             24,
10833             'i-wireless (Sprint PCS)',
10834             'csc',
10835             'name'
10836         ),
10837         '$number@iwirelesshometext.com',
10838         TRUE
10839     ),
10840     (
10841         25,
10842         oils_i18n_gettext(
10843             25,
10844             'USA',
10845             'csc',
10846             'region'
10847         ),
10848         oils_i18n_gettext(
10849             25,
10850             'MetroPCS',
10851             'csc',
10852             'name'
10853         ),
10854         '$number@mymetropcs.com',
10855         TRUE
10856     ),
10857     (
10858         26,
10859         oils_i18n_gettext(
10860             26,
10861             'USA',
10862             'csc',
10863             'region'
10864         ),
10865         oils_i18n_gettext(
10866             26,
10867             'Kajeet',
10868             'csc',
10869             'name'
10870         ),
10871         '$number@mobile.kajeet.net',
10872         TRUE
10873     ),
10874     (
10875         27,
10876         oils_i18n_gettext(
10877             27,
10878             'USA',
10879             'csc',
10880             'region'
10881         ),
10882         oils_i18n_gettext(
10883             27,
10884             'Element Mobile',
10885             'csc',
10886             'name'
10887         ),
10888         '$number@SMS.elementmobile.net',
10889         TRUE
10890     ),
10891     (
10892         28,
10893         oils_i18n_gettext(
10894             28,
10895             'USA',
10896             'csc',
10897             'region'
10898         ),
10899         oils_i18n_gettext(
10900             28,
10901             'Esendex',
10902             'csc',
10903             'name'
10904         ),
10905         '$number@echoemail.net',
10906         TRUE
10907     ),
10908     (
10909         29,
10910         oils_i18n_gettext(
10911             29,
10912             'USA',
10913             'csc',
10914             'region'
10915         ),
10916         oils_i18n_gettext(
10917             29,
10918             'Boost Mobile',
10919             'csc',
10920             'name'
10921         ),
10922         '$number@myboostmobile.com',
10923         TRUE
10924     ),
10925     (
10926         30,
10927         oils_i18n_gettext(
10928             30,
10929             'USA',
10930             'csc',
10931             'region'
10932         ),
10933         oils_i18n_gettext(
10934             30,
10935             'BellSouth',
10936             'csc',
10937             'name'
10938         ),
10939         '$number@bellsouth.com',
10940         TRUE
10941     ),
10942     (
10943         31,
10944         oils_i18n_gettext(
10945             31,
10946             'USA',
10947             'csc',
10948             'region'
10949         ),
10950         oils_i18n_gettext(
10951             31,
10952             'Bluegrass Cellular',
10953             'csc',
10954             'name'
10955         ),
10956         '$number@sms.bluecell.com',
10957         TRUE
10958     ),
10959     (
10960         32,
10961         oils_i18n_gettext(
10962             32,
10963             'USA',
10964             'csc',
10965             'region'
10966         ),
10967         oils_i18n_gettext(
10968             32,
10969             'AT&T Enterprise Paging',
10970             'csc',
10971             'name'
10972         ),
10973         '$number@page.att.net',
10974         TRUE
10975     ),
10976     (
10977         33,
10978         oils_i18n_gettext(
10979             33,
10980             'USA',
10981             'csc',
10982             'region'
10983         ),
10984         oils_i18n_gettext(
10985             33,
10986             'AT&T Mobility/Wireless',
10987             'csc',
10988             'name'
10989         ),
10990         '$number@txt.att.net',
10991         TRUE
10992     ),
10993     (
10994         34,
10995         oils_i18n_gettext(
10996             34,
10997             'USA',
10998             'csc',
10999             'region'
11000         ),
11001         oils_i18n_gettext(
11002             34,
11003             'AT&T Global Smart Messaging Suite',
11004             'csc',
11005             'name'
11006         ),
11007         '$number@sms.smartmessagingsuite.com',
11008         TRUE
11009     ),
11010     (
11011         35,
11012         oils_i18n_gettext(
11013             35,
11014             'USA',
11015             'csc',
11016             'region'
11017         ),
11018         oils_i18n_gettext(
11019             35,
11020             'Alltel (Allied Wireless)',
11021             'csc',
11022             'name'
11023         ),
11024         '$number@sms.alltelwireless.com',
11025         TRUE
11026     ),
11027     (
11028         36,
11029         oils_i18n_gettext(
11030             36,
11031             'USA',
11032             'csc',
11033             'region'
11034         ),
11035         oils_i18n_gettext(
11036             36,
11037             'Alaska Communications',
11038             'csc',
11039             'name'
11040         ),
11041         '$number@msg.acsalaska.com',
11042         TRUE
11043     ),
11044     (
11045         37,
11046         oils_i18n_gettext(
11047             37,
11048             'USA',
11049             'csc',
11050             'region'
11051         ),
11052         oils_i18n_gettext(
11053             37,
11054             'Ameritech',
11055             'csc',
11056             'name'
11057         ),
11058         '$number@paging.acswireless.com',
11059         TRUE
11060     ),
11061     (
11062         38,
11063         oils_i18n_gettext(
11064             38,
11065             'USA',
11066             'csc',
11067             'region'
11068         ),
11069         oils_i18n_gettext(
11070             38,
11071             'Cingular (GoPhone prepaid)',
11072             'csc',
11073             'name'
11074         ),
11075         '$number@cingulartext.com',
11076         TRUE
11077     ),
11078     (
11079         39,
11080         oils_i18n_gettext(
11081             39,
11082             'USA',
11083             'csc',
11084             'region'
11085         ),
11086         oils_i18n_gettext(
11087             39,
11088             'Cingular (Postpaid)',
11089             'csc',
11090             'name'
11091         ),
11092         '$number@cingular.com',
11093         TRUE
11094     ),
11095     (
11096         40,
11097         oils_i18n_gettext(
11098             40,
11099             'USA',
11100             'csc',
11101             'region'
11102         ),
11103         oils_i18n_gettext(
11104             40,
11105             'Cellular One (Dobson) / O2 / Orange',
11106             'csc',
11107             'name'
11108         ),
11109         '$number@mobile.celloneusa.com',
11110         TRUE
11111     ),
11112     (
11113         41,
11114         oils_i18n_gettext(
11115             41,
11116             'USA',
11117             'csc',
11118             'region'
11119         ),
11120         oils_i18n_gettext(
11121             41,
11122             'Cellular South',
11123             'csc',
11124             'name'
11125         ),
11126         '$number@csouth1.com',
11127         TRUE
11128     ),
11129     (
11130         42,
11131         oils_i18n_gettext(
11132             42,
11133             'USA',
11134             'csc',
11135             'region'
11136         ),
11137         oils_i18n_gettext(
11138             42,
11139             'Cellcom',
11140             'csc',
11141             'name'
11142         ),
11143         '$number@cellcom.quiktxt.com',
11144         TRUE
11145     ),
11146     (
11147         43,
11148         oils_i18n_gettext(
11149             43,
11150             'USA',
11151             'csc',
11152             'region'
11153         ),
11154         oils_i18n_gettext(
11155             43,
11156             'Chariton Valley Wireless',
11157             'csc',
11158             'name'
11159         ),
11160         '$number@sms.cvalley.net',
11161         TRUE
11162     ),
11163     (
11164         44,
11165         oils_i18n_gettext(
11166             44,
11167             'USA',
11168             'csc',
11169             'region'
11170         ),
11171         oils_i18n_gettext(
11172             44,
11173             'Cricket',
11174             'csc',
11175             'name'
11176         ),
11177         '$number@sms.mycricket.com',
11178         TRUE
11179     ),
11180     (
11181         45,
11182         oils_i18n_gettext(
11183             45,
11184             'USA',
11185             'csc',
11186             'region'
11187         ),
11188         oils_i18n_gettext(
11189             45,
11190             'Cleartalk Wireless',
11191             'csc',
11192             'name'
11193         ),
11194         '$number@sms.cleartalk.us',
11195         TRUE
11196     ),
11197     (
11198         46,
11199         oils_i18n_gettext(
11200             46,
11201             'USA',
11202             'csc',
11203             'region'
11204         ),
11205         oils_i18n_gettext(
11206             46,
11207             'Edge Wireless',
11208             'csc',
11209             'name'
11210         ),
11211         '$number@sms.edgewireless.com',
11212         TRUE
11213     ),
11214     (
11215         47,
11216         oils_i18n_gettext(
11217             47,
11218             'USA',
11219             'csc',
11220             'region'
11221         ),
11222         oils_i18n_gettext(
11223             47,
11224             'Syringa Wireless',
11225             'csc',
11226             'name'
11227         ),
11228         '$number@rinasms.com',
11229         TRUE
11230     ),
11231     (
11232         48,
11233         oils_i18n_gettext(
11234             48,
11235             'USA',
11236             'csc',
11237             'region'
11238         ),
11239         oils_i18n_gettext(
11240             48,
11241             'T-Mobile',
11242             'csc',
11243             'name'
11244         ),
11245         '$number@tmomail.net',
11246         TRUE
11247     ),
11248     (
11249         49,
11250         oils_i18n_gettext(
11251             49,
11252             'USA',
11253             'csc',
11254             'region'
11255         ),
11256         oils_i18n_gettext(
11257             49,
11258             'Straight Talk / PagePlus Cellular',
11259             'csc',
11260             'name'
11261         ),
11262         '$number@vtext.com',
11263         TRUE
11264     ),
11265     (
11266         50,
11267         oils_i18n_gettext(
11268             50,
11269             'USA',
11270             'csc',
11271             'region'
11272         ),
11273         oils_i18n_gettext(
11274             50,
11275             'South Central Communications',
11276             'csc',
11277             'name'
11278         ),
11279         '$number@rinasms.com',
11280         TRUE
11281     ),
11282     (
11283         51,
11284         oils_i18n_gettext(
11285             51,
11286             'USA',
11287             'csc',
11288             'region'
11289         ),
11290         oils_i18n_gettext(
11291             51,
11292             'Simple Mobile',
11293             'csc',
11294             'name'
11295         ),
11296         '$number@smtext.com',
11297         TRUE
11298     ),
11299     (
11300         52,
11301         oils_i18n_gettext(
11302             52,
11303             'USA',
11304             'csc',
11305             'region'
11306         ),
11307         oils_i18n_gettext(
11308             52,
11309             'Sprint (PCS)',
11310             'csc',
11311             'name'
11312         ),
11313         '$number@messaging.sprintpcs.com',
11314         TRUE
11315     ),
11316     (
11317         53,
11318         oils_i18n_gettext(
11319             53,
11320             'USA',
11321             'csc',
11322             'region'
11323         ),
11324         oils_i18n_gettext(
11325             53,
11326             'Nextel',
11327             'csc',
11328             'name'
11329         ),
11330         '$number@messaging.nextel.com',
11331         TRUE
11332     ),
11333     (
11334         54,
11335         oils_i18n_gettext(
11336             54,
11337             'USA',
11338             'csc',
11339             'region'
11340         ),
11341         oils_i18n_gettext(
11342             54,
11343             'Pioneer Cellular',
11344             'csc',
11345             'name'
11346         ),
11347         '$number@zsend.com', -- nine digit number
11348         TRUE
11349     ),
11350     (
11351         55,
11352         oils_i18n_gettext(
11353             55,
11354             'USA',
11355             'csc',
11356             'region'
11357         ),
11358         oils_i18n_gettext(
11359             55,
11360             'Qwest Wireless',
11361             'csc',
11362             'name'
11363         ),
11364         '$number@qwestmp.com',
11365         TRUE
11366     ),
11367     (
11368         56,
11369         oils_i18n_gettext(
11370             56,
11371             'USA',
11372             'csc',
11373             'region'
11374         ),
11375         oils_i18n_gettext(
11376             56,
11377             'US Cellular',
11378             'csc',
11379             'name'
11380         ),
11381         '$number@email.uscc.net',
11382         TRUE
11383     ),
11384     (
11385         57,
11386         oils_i18n_gettext(
11387             57,
11388             'USA',
11389             'csc',
11390             'region'
11391         ),
11392         oils_i18n_gettext(
11393             57,
11394             'Unicel',
11395             'csc',
11396             'name'
11397         ),
11398         '$number@utext.com',
11399         TRUE
11400     ),
11401     (
11402         58,
11403         oils_i18n_gettext(
11404             58,
11405             'USA',
11406             'csc',
11407             'region'
11408         ),
11409         oils_i18n_gettext(
11410             58,
11411             'Teleflip',
11412             'csc',
11413             'name'
11414         ),
11415         '$number@teleflip.com',
11416         TRUE
11417     ),
11418     (
11419         59,
11420         oils_i18n_gettext(
11421             59,
11422             'USA',
11423             'csc',
11424             'region'
11425         ),
11426         oils_i18n_gettext(
11427             59,
11428             'Virgin Mobile',
11429             'csc',
11430             'name'
11431         ),
11432         '$number@vmobl.com',
11433         TRUE
11434     ),
11435     (
11436         60,
11437         oils_i18n_gettext(
11438             60,
11439             'USA',
11440             'csc',
11441             'region'
11442         ),
11443         oils_i18n_gettext(
11444             60,
11445             'Verizon Wireless',
11446             'csc',
11447             'name'
11448         ),
11449         '$number@vtext.com',
11450         TRUE
11451     ),
11452     (
11453         61,
11454         oils_i18n_gettext(
11455             61,
11456             'USA',
11457             'csc',
11458             'region'
11459         ),
11460         oils_i18n_gettext(
11461             61,
11462             'USA Mobility',
11463             'csc',
11464             'name'
11465         ),
11466         '$number@usamobility.net',
11467         TRUE
11468     ),
11469     (
11470         62,
11471         oils_i18n_gettext(
11472             62,
11473             'USA',
11474             'csc',
11475             'region'
11476         ),
11477         oils_i18n_gettext(
11478             62,
11479             'Viaero',
11480             'csc',
11481             'name'
11482         ),
11483         '$number@viaerosms.com',
11484         TRUE
11485     ),
11486     (
11487         63,
11488         oils_i18n_gettext(
11489             63,
11490             'USA',
11491             'csc',
11492             'region'
11493         ),
11494         oils_i18n_gettext(
11495             63,
11496             'TracFone',
11497             'csc',
11498             'name'
11499         ),
11500         '$number@mmst5.tracfone.com',
11501         TRUE
11502     ),
11503     (
11504         64,
11505         oils_i18n_gettext(
11506             64,
11507             'USA',
11508             'csc',
11509             'region'
11510         ),
11511         oils_i18n_gettext(
11512             64,
11513             'Centennial Wireless',
11514             'csc',
11515             'name'
11516         ),
11517         '$number@cwemail.com',
11518         TRUE
11519     ),
11520
11521     -- South Korea and USA
11522     (
11523         65,
11524         oils_i18n_gettext(
11525             65,
11526             'South Korea and USA',
11527             'csc',
11528             'region'
11529         ),
11530         oils_i18n_gettext(
11531             65,
11532             'Helio',
11533             'csc',
11534             'name'
11535         ),
11536         '$number@myhelio.com',
11537         TRUE
11538     )
11539 ;
11540
11541 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
11542     SELECT
11543         pgt.id, perm.id, aout.depth, TRUE
11544     FROM
11545         permission.grp_tree pgt,
11546         permission.perm_list perm,
11547         actor.org_unit_type aout
11548     WHERE
11549         pgt.name = 'Global Administrator' AND
11550         aout.name = 'Consortium' AND
11551         perm.code = 'ADMIN_SMS_CARRIER';
11552
11553 INSERT INTO action_trigger.reactor (
11554     module,
11555     description
11556 ) VALUES (
11557     'SendSMS',
11558     'Send an SMS text message based on a user-defined template'
11559 );
11560
11561 INSERT INTO action_trigger.event_definition (
11562     active,
11563     owner,
11564     name,
11565     hook,
11566     validator,
11567     reactor,
11568     cleanup_success,
11569     delay,
11570     delay_field,
11571     group_field,
11572     template
11573 ) VALUES (
11574     true,
11575     1, -- admin
11576     'Hold Ready for Pickup SMS Notification',
11577     'hold.available',
11578     'HoldIsAvailable',
11579     'SendSMS',
11580     'CreateHoldNotification',
11581     '00:30:00',
11582     'shelf_time',
11583     'sms_notify',
11584     '[%- USE date -%]
11585 [%- user = target.0.usr -%]
11586 From: [%- params.sender_email || default_sender %]
11587 To: [%- params.recipient_email || helpers.get_sms_gateway_email(target.0.sms_carrier,target.0.sms_notify) %]
11588 Subject: [% target.size %] hold(s) ready
11589
11590 [% FOR hold IN target %][%-
11591   bibxml = helpers.xml_doc( hold.current_copy.call_number.record.marc );
11592   title = "";
11593   FOR part IN bibxml.findnodes(''//*[@tag="245"]/*[@code="a"]'');
11594     title = title _ part.textContent;
11595   END;
11596   author = bibxml.findnodes(''//*[@tag="100"]/*[@code="a"]'').textContent;
11597 %][% hold.usr.first_given_name %]:[% title %] @ [% hold.pickup_lib.name %]
11598 [% END %]
11599 '
11600 );
11601
11602 INSERT INTO action_trigger.environment (
11603     event_def,
11604     path
11605 ) VALUES (
11606     currval('action_trigger.event_definition_id_seq'),
11607     'current_copy.call_number.record.simple_record'
11608 ), (
11609     currval('action_trigger.event_definition_id_seq'),
11610     'usr'
11611 ), (
11612     currval('action_trigger.event_definition_id_seq'),
11613     'pickup_lib.billing_address'
11614 );
11615
11616 INSERT INTO action_trigger.event_params (event_def, param, value)
11617     VALUES (currval('action_trigger.event_definition_id_seq'), 'check_sms_notify', 1);
11618
11619 INSERT INTO action_trigger.hook(
11620     key,
11621     core_type,
11622     description,
11623     passive
11624 ) VALUES (
11625     'acn.format.sms_text',
11626     'acn',
11627     oils_i18n_gettext(
11628         'acn.format.sms_text',
11629         'A text message has been requested for a call number.',
11630         'ath',
11631         'description'
11632     ),
11633     FALSE
11634 );
11635
11636 INSERT INTO action_trigger.event_definition (
11637     active,
11638     owner,
11639     name,
11640     hook,
11641     validator,
11642     reactor,
11643     template
11644 ) VALUES (
11645     true,
11646     1, -- admin
11647     'SMS Call Number',
11648     'acn.format.sms_text',
11649     'NOOP_True',
11650     'SendSMS',
11651     '[%- USE date -%]
11652 From: [%- params.sender_email || default_sender %]
11653 To: [%- params.recipient_email || helpers.get_sms_gateway_email(user_data.sms_carrier,user_data.sms_notify) %]
11654 Subject: Call Number
11655
11656 [%-
11657   bibxml = helpers.xml_doc( target.record.marc );
11658   title = "";
11659   FOR part IN bibxml.findnodes(''//*[@tag="245"]/*[@code="a" or @code="b"]'');
11660     title = title _ part.textContent;
11661   END;
11662   author = bibxml.findnodes(''//*[@tag="100"]/*[@code="a"]'').textContent;
11663 %]
11664 Call Number: [% target.label %]
11665 Location: [% helpers.get_most_populous_location( target.id ).name %]
11666 Library: [% target.owning_lib.name %]
11667 [%- IF title %]
11668 Title: [% title %]
11669 [%- END %]
11670 [%- IF author %]
11671 Author: [% author %]
11672 [%- END %]
11673 '
11674 );
11675
11676 INSERT INTO action_trigger.environment (
11677     event_def,
11678     path
11679 ) VALUES (
11680     currval('action_trigger.event_definition_id_seq'),
11681     'record.simple_record'
11682 ), (
11683     currval('action_trigger.event_definition_id_seq'),
11684     'owning_lib.billing_address'
11685 );
11686
11687 INSERT INTO vandelay.merge_profile (owner, name, replace_spec) 
11688     VALUES (1, 'Match-Only Merge', '901c');
11689
11690 INSERT INTO vandelay.merge_profile (owner, name, preserve_spec) 
11691     VALUES (1, 'Full Overlay', '901c');
11692
11693 -- user activity seed data --
11694
11695 INSERT INTO config.usr_activity_type (id, ewho, ewhat, ehow, egroup, label) VALUES
11696
11697      -- authen/authz actions
11698      -- note: "opensrf" is the default ingress/ehow
11699      (1,  NULL, 'login',  'opensrf',      'authen', oils_i18n_gettext(1 , 'Login via opensrf', 'cuat', 'label'))
11700     ,(2,  NULL, 'login',  'srfsh',        'authen', oils_i18n_gettext(2 , 'Login via srfsh', 'cuat', 'label'))
11701     ,(3,  NULL, 'login',  'gateway-v1',   'authen', oils_i18n_gettext(3 , 'Login via gateway-v1', 'cuat', 'label'))
11702     ,(4,  NULL, 'login',  'translator-v1','authen', oils_i18n_gettext(4 , 'Login via translator-v1', 'cuat', 'label'))
11703     ,(5,  NULL, 'login',  'xmlrpc',       'authen', oils_i18n_gettext(5 , 'Login via xmlrpc', 'cuat', 'label'))
11704     ,(6,  NULL, 'login',  'remoteauth',   'authen', oils_i18n_gettext(6 , 'Login via remoteauth', 'cuat', 'label'))
11705     ,(7,  NULL, 'login',  'sip2',         'authen', oils_i18n_gettext(7 , 'SIP2 Proxy Login', 'cuat', 'label'))
11706     ,(8,  NULL, 'login',  'apache',       'authen', oils_i18n_gettext(8 , 'Login via Apache module', 'cuat', 'label'))
11707
11708     ,(9,  NULL, 'verify', 'opensrf',      'authz',  oils_i18n_gettext(9 , 'Verification via opensrf', 'cuat', 'label'))
11709     ,(10, NULL, 'verify', 'srfsh',        'authz',  oils_i18n_gettext(10, 'Verification via srfsh', 'cuat', 'label'))
11710     ,(11, NULL, 'verify', 'gateway-v1',   'authz',  oils_i18n_gettext(11, 'Verification via gateway-v1', 'cuat', 'label'))
11711     ,(12, NULL, 'verify', 'translator-v1','authz',  oils_i18n_gettext(12, 'Verification via translator-v1', 'cuat', 'label'))
11712     ,(13, NULL, 'verify', 'xmlrpc',       'authz',  oils_i18n_gettext(13, 'Verification via xmlrpc', 'cuat', 'label'))
11713     ,(14, NULL, 'verify', 'remoteauth',   'authz',  oils_i18n_gettext(14, 'Verification via remoteauth', 'cuat', 'label'))
11714     ,(15, NULL, 'verify', 'sip2',         'authz',  oils_i18n_gettext(15, 'SIP2 User Verification', 'cuat', 'label'))
11715
11716      -- authen/authz actions w/ known uses of "who"
11717     ,(16, 'opac',        'login',  'gateway-v1',   'authen', oils_i18n_gettext(16, 'OPAC Login (jspac)', 'cuat', 'label'))
11718     ,(17, 'opac',        'login',  'apache',       'authen', oils_i18n_gettext(17, 'OPAC Login (tpac)', 'cuat', 'label'))
11719     ,(18, 'staffclient', 'login',  'gateway-v1',   'authen', oils_i18n_gettext(18, 'Staff Client Login', 'cuat', 'label'))
11720     ,(19, 'selfcheck',   'login',  'translator-v1','authen', oils_i18n_gettext(19, 'Self-Check Proxy Login', 'cuat', 'label'))
11721     ,(20, 'ums',         'login',  'xmlrpc',       'authen', oils_i18n_gettext(20, 'Unique Mgt Login', 'cuat', 'label'))
11722     ,(21, 'authproxy',   'login',  'apache',       'authen', oils_i18n_gettext(21, 'Apache Auth Proxy Login', 'cuat', 'label'))
11723     ,(22, 'libraryelf',  'login',  'xmlrpc',       'authz',  oils_i18n_gettext(22, 'LibraryElf Login', 'cuat', 'label'))
11724
11725     ,(23, 'selfcheck',   'verify', 'translator-v1','authz',  oils_i18n_gettext(23, 'Self-Check User Verification', 'cuat', 'label'))
11726     ,(24, 'ezproxy',     'verify', 'remoteauth',   'authz',  oils_i18n_gettext(24, 'EZProxy Verification', 'cuat', 'label'))
11727     -- ...
11728     ;
11729
11730 -- reserve the first 1000 slots
11731 SELECT SETVAL('config.usr_activity_type_id_seq'::TEXT, 1000);
11732
11733 INSERT INTO config.org_unit_setting_type 
11734     (name, label, description, grp, datatype) 
11735     VALUES (
11736         'circ.fines.charge_when_closed',
11737          oils_i18n_gettext(
11738             'circ.fines.charge_when_closed',
11739             'Charge fines on overdue circulations when closed',
11740             'coust', 
11741             'label'
11742         ),
11743         oils_i18n_gettext(
11744             'circ.fines.charge_when_closed',
11745             '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.',
11746             'coust', 
11747             'description'
11748         ),
11749         'circ',
11750         'bool'
11751     );
11752
11753 INSERT INTO config.org_unit_setting_type 
11754     (name, label, description, grp, datatype) 
11755     VALUES (
11756         'circ.patron.usr_activity_retrieve.max',
11757          oils_i18n_gettext(
11758             'circ.patron.usr_activity_retrieve.max',
11759             'Max user activity entries to retrieve (staff client)',
11760             'coust', 
11761             'label'
11762         ),
11763         oils_i18n_gettext(
11764             'circ.patron.usr_activity_retrieve.max',
11765             '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.',
11766             'coust', 
11767             'description'
11768         ),
11769         'gui',
11770         'integer'
11771     );
11772 -- circ export csv export --
11773
11774 INSERT INTO action_trigger.hook (key, core_type, description, passive)
11775 VALUES (
11776     'circ.format.history.csv',
11777     'circ',
11778     oils_i18n_gettext(
11779         'circ.format.history.csv',
11780         'Produce CSV of circulation history',
11781         'ath',
11782         'description'
11783     ),
11784     FALSE
11785 );
11786
11787 INSERT INTO action_trigger.event_definition (
11788     active, owner, name, hook, reactor, validator, group_field, template) 
11789 VALUES (
11790     TRUE, 1, 'Circ History CSV', 'circ.format.history.csv', 'ProcessTemplate', 'NOOP_True', 'usr',
11791 $$
11792 Title,Author,Call Number,Barcode,Format
11793 [%-
11794 FOR circ IN target;
11795     bibxml = helpers.unapi_bre(circ.target_copy.call_number.record, {flesh => '{mra}'});
11796     title = "";
11797     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
11798         title = title _ part.textContent;
11799     END;
11800     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
11801     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value') %]
11802
11803     [%- helpers.csv_datum(title) -%],
11804     [%- helpers.csv_datum(author) -%],
11805     [%- helpers.csv_datum(circ.target_copy.call_number.label) -%],
11806     [%- helpers.csv_datum(circ.target_copy.barcode) -%],
11807     [%- helpers.csv_datum(item_type) %]
11808 [%- END -%]
11809 $$
11810 );
11811
11812 INSERT INTO action_trigger.environment (event_def, path)
11813     VALUES (
11814         currval('action_trigger.event_definition_id_seq'),
11815         'target_copy.call_number'
11816     );
11817
11818 INSERT INTO actor.toolbar(org,label,layout) VALUES
11819     ( 1, 'circ', '["circ_checkout","circ_checkin","toolbarseparator.1","search_opac","copy_status","toolbarseparator.2","patron_search","patron_register","toolbarspacer.3","hotkeys_toggle"]' ),
11820     ( 1, 'cat', '["circ_checkin","toolbarseparator.1","search_opac","copy_status","toolbarseparator.2","create_marc","authority_manage","retrieve_last_record","toolbarspacer.3","hotkeys_toggle"]' );
11821
11822 INSERT INTO config.global_flag (name, enabled, label) 
11823     VALUES (
11824         'opac.org_unit.non_inherited_visibility',
11825         FALSE,
11826         oils_i18n_gettext(
11827             'opac.org_unit.non_inherited_visibility',
11828             'Org Units Do Not Inherit Visibility',
11829             'cgf',
11830             'label'
11831         )
11832     );
11833
11834 INSERT INTO config.org_unit_setting_type ( name, label, description, datatype, grp, update_perm )
11835     VALUES (
11836         'ui.hide_copy_editor_fields',
11837         oils_i18n_gettext(
11838             'ui.hide_copy_editor_fields',
11839             'GUI: Hide these fields within the Item Attribute Editor',
11840             'coust',
11841             'label'
11842         ),
11843         oils_i18n_gettext(
11844             'ui.hide_copy_editor_fields',
11845             'This setting may be best maintained with the dedicated configuration'
11846             || ' interface within the Item Attribute Editor.  However, here it'
11847             || ' shows up as comma separated list of field identifiers to hide.',
11848             'coust',
11849             'description'
11850         ),
11851         'array',
11852         'gui',
11853         539
11854     );
11855
11856 INSERT into config.org_unit_setting_type 
11857     (name, grp, label, description, datatype) 
11858     VALUES ( 
11859         'opac.patron.auto_overide_hold_events', 
11860         'opac',
11861         oils_i18n_gettext(
11862             'opac.patron.auto_overide_hold_events',
11863             'Auto-Override Permitted Hold Blocks (Patrons)',
11864             'coust', 
11865             'label'
11866         ),
11867         oils_i18n_gettext(
11868             'opac.patron.auto_overide_hold_events',
11869             'When a patron places a hold that fails and the patron has the correct permission ' || 
11870             'to override the hold, automatically override the hold without presenting a message ' || 
11871             'to the patron and requiring that the patron make a decision to override',
11872             'coust', 
11873             'description'
11874         ),
11875         'bool'
11876     );
11877
11878 INSERT into config.org_unit_setting_type
11879     (name, grp, label, description, datatype)
11880     VALUES (
11881         'opac.patron.temporary_list_warn',
11882         'opac',
11883         oils_i18n_gettext(
11884             'opac.patron.temporary_list_warn',
11885             'Warn patrons when adding to a temporary book list',
11886             'coust',
11887             'label'
11888         ),
11889         oils_i18n_gettext(
11890             'opac.patron.temporary_list_warn',
11891             'Present a warning dialog to the patron when a patron adds a book to a temporary book bag.',
11892             'coust',
11893             'description'
11894         ),
11895         'bool'
11896     );
11897
11898 INSERT INTO config.usr_setting_type
11899     (name,grp,opac_visible,label,description,datatype)
11900 VALUES (
11901     'opac.temporary_list_no_warn',
11902     'opac',
11903     TRUE,
11904     oils_i18n_gettext(
11905         'opac.temporary_list_no_warn',
11906         'Opt out of warning when adding a book to a temporary book list',
11907         'cust',
11908         'label'
11909     ),
11910     oils_i18n_gettext(
11911         'opac.temporary_list_no_warn',
11912         'Opt out of warning when adding a book to a temporary book list',
11913         'cust',
11914         'description'
11915     ),
11916     'bool'
11917 );
11918
11919 INSERT INTO config.usr_setting_type
11920     (name,grp,opac_visible,label,description,datatype)
11921 VALUES (
11922     'opac.default_list',
11923     'opac',
11924     FALSE,
11925     oils_i18n_gettext(
11926         'opac.default_list',
11927         'Default list to use when adding to a bookbag',
11928         'cust',
11929         'label'
11930     ),
11931     oils_i18n_gettext(
11932         'opac.default_list',
11933         'Default list to use when adding to a bookbag',
11934         'cust',
11935         'description'
11936     ),
11937     'integer'
11938 );
11939
11940 INSERT INTO config.org_unit_setting_type (
11941     name, grp, label, description, datatype
11942 ) VALUES (
11943     'circ.staff.max_visible_event_age',
11944     'circ',
11945     'Maximum visible age of User Trigger Events in Staff Interfaces',
11946     '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.',
11947     'interval'
11948 );
11949
11950 -- kid's opac main search filter
11951
11952 INSERT INTO actor.search_filter_group (owner, code, label) 
11953     VALUES (1, 'kpac_main', 'Kid''s OPAC Search Filter');
11954
11955 INSERT INTO actor.search_query (label, query_text) 
11956     VALUES ('Children''s Materials', 'audience(a,b,c)');
11957 INSERT INTO actor.search_query (label, query_text) 
11958     VALUES ('Young Adult Materials', 'audience(j,d)');
11959 INSERT INTO actor.search_query (label, query_text) 
11960     VALUES ('General/Adult Materials',  'audience(e,f,g, )');
11961
11962 INSERT INTO actor.search_filter_group_entry (grp, query, pos)
11963     VALUES (
11964         (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
11965         (SELECT id FROM actor.search_query WHERE label = 'Children''s Materials'),
11966         0
11967     ); INSERT INTO actor.search_filter_group_entry (grp, query, pos) VALUES (
11968         (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
11969         (SELECT id FROM actor.search_query WHERE label = 'Young Adult Materials'),
11970         1
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 = 'General/Adult Materials'),
11976         2
11977     );
11978 INSERT into config.org_unit_setting_type
11979     (name, grp, label, description, datatype)
11980     VALUES (
11981         'acq.fund.allow_rollover_without_money',
11982         'acq',
11983         oils_i18n_gettext(
11984             'acq.fund.allow_rollover_without_money',
11985             'Allow funds to be rolled over without bringing the money along',
11986             'coust',
11987             'label'
11988         ),
11989         oils_i18n_gettext(
11990             'acq.fund.allow_rollover_without_money',
11991             '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.',
11992             'coust',
11993             'description'
11994         ),
11995         'bool'
11996     );
11997
11998 INSERT INTO config.org_unit_setting_type
11999     (name, grp, label, description, datatype)
12000     VALUES (
12001         'circ.lost.xact_open_on_zero',
12002         'finance',
12003         oils_i18n_gettext(
12004             'circ.lost.xact_open_on_zero',
12005             'Leave transaction open when lost balance equals zero',
12006             'coust',
12007             'label'
12008         ),
12009         oils_i18n_gettext(
12010             'circ.lost.xact_open_on_zero',
12011             'Leave transaction open when lost balance equals zero.  This leaves the lost copy on the patron record when it is paid',
12012             'coust',
12013             'description'
12014         ),
12015         'bool'
12016     );
12017
12018 INSERT INTO config.org_unit_setting_type
12019     (name, grp, label, description, datatype)
12020     VALUES (
12021         'circ.patron_expires_soon_warning',
12022         'circ',
12023         oils_i18n_gettext(
12024             'circ.patron_expires_soon_warning',
12025             'Warn when patron account is about to expire',
12026             'coust',
12027             'label'
12028         ),
12029         oils_i18n_gettext(
12030             'circ.patron_expires_soon_warning',
12031             '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.',
12032             'coust',
12033             'description'
12034         ),
12035         'integer'
12036     );
12037
12038 INSERT INTO config.org_unit_setting_type (
12039     name, label, grp, datatype
12040 ) VALUES (
12041     'circ.fines.truncate_to_max_fine',
12042     oils_i18n_gettext(
12043         'circ.fines.truncate_to_max_fine',
12044         'Truncate fines to max fine amount',
12045         'coust',
12046         'label'
12047     ),
12048     'circ',
12049     'bool'
12050 );
12051
12052
12053 INSERT INTO config.settings_group (name, label)
12054     VALUES (
12055         'url_verify',
12056         oils_i18n_gettext(
12057             'url_verify',
12058             'URL Verify',
12059             'csg',
12060             'label'
12061         )
12062     );
12063
12064 INSERT INTO config.org_unit_setting_type
12065     (name, grp, label, description, datatype, update_perm)
12066     VALUES (
12067         'url_verify.url_verification_delay',
12068         'url_verify',
12069         oils_i18n_gettext(
12070             'url_verify.url_verification_delay',
12071             'Number of seconds to wait between URL test attempts.',
12072             'coust',
12073             'label'
12074         ),
12075         oils_i18n_gettext(
12076             'url_verify.url_verification_delay',
12077             'Throttling mechanism for batch URL verification runs.  Each running process will wait this number of seconds after a URL test before performing the next.',
12078             'coust',
12079             'description'
12080         ),
12081         'integer',
12082         544
12083     );
12084
12085 INSERT INTO config.org_unit_setting_type
12086     (name, grp, label, description, datatype, update_perm)
12087     VALUES (
12088         'url_verify.url_verification_max_redirects',
12089         'url_verify',
12090         oils_i18n_gettext(
12091             'url_verify.url_verification_max_redirects',
12092             'Maximum redirect lookups',
12093             'coust',
12094             'label'
12095         ),
12096         oils_i18n_gettext(
12097             'url_verify.url_verification_max_redirects',
12098             'For URLs returning 3XX redirects, this is the maximum number of redirects we will follow before giving up.',
12099             'coust',
12100             'description'
12101         ),
12102         'integer',
12103         544
12104     );
12105
12106 INSERT INTO config.org_unit_setting_type
12107     (name, grp, label, description, datatype, update_perm)
12108     VALUES (
12109         'url_verify.url_verification_max_wait',
12110         'url_verify',
12111         oils_i18n_gettext(
12112             'url_verify.url_verification_max_wait',
12113             'Maximum wait time (in seconds) for a URL to lookup',
12114             'coust',
12115             'label'
12116         ),
12117         oils_i18n_gettext(
12118             'url_verify.url_verification_max_wait',
12119             'If we exceed the wait time, the URL is marked as a "timeout" and the system moves on to the next URL',
12120             'coust',
12121             'description'
12122         ),
12123         'integer',
12124         544
12125     );
12126
12127 INSERT INTO config.filter_dialog_interface (key, description) VALUES (
12128     'url_verify',
12129     oils_i18n_gettext(
12130         'url_verify',
12131         'All Link Checker filter dialogs',
12132         'cfdi',
12133         'description'
12134     )
12135 );
12136
12137 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
12138     'ui.grid_columns.url_verify.select_urls',
12139     'gui',
12140     FALSE,
12141     oils_i18n_gettext(
12142         'ui.grid_columns.url_verify.select_urls',
12143         'Link Checker''s URL Selection interface''s saved columns',
12144         'cust',
12145         'label'
12146     ),
12147     oils_i18n_gettext(
12148         'ui.grid_columns.url_verify.select_urls',
12149         'Link Checker''s URL Selection interface''s saved columns',
12150         'cust',
12151         'description'
12152     ),
12153     'string'
12154 );
12155
12156 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
12157     'ui.grid_columns.url_verify.review_attempt',
12158     'gui',
12159     FALSE,
12160     oils_i18n_gettext(
12161         'ui.grid_columns.url_verify.review_attempt',
12162         'Link Checker''s Review Attempt interface''s saved columns',
12163         'cust',
12164         'label'
12165     ),
12166     oils_i18n_gettext(
12167         'ui.grid_columns.url_verify.review_attempt',
12168         'Link Checker''s Review Attempt interface''s saved columns',
12169         'cust',
12170         'description'
12171     ),
12172     'string'
12173 );
12174
12175 INSERT INTO config.org_unit_setting_type
12176     (name, grp, label, description, datatype, update_perm)
12177     VALUES (
12178         'url_verify.verification_batch_size',
12179         'url_verify',
12180         oils_i18n_gettext(
12181             'url_verify.verification_batch_size',
12182             'Number of URLs to test in parallel',
12183             'coust',
12184             'label'
12185         ),
12186         oils_i18n_gettext(
12187             'url_verify.verification_batch_size',
12188             '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.',
12189             'coust',
12190             'description'
12191         ),
12192         'integer',
12193         544
12194     );
12195
12196 INSERT INTO config.org_unit_setting_type
12197     (name, label, description, grp, datatype, fm_class) 
12198 VALUES (
12199     'acq.upload.default.create_po',
12200     oils_i18n_gettext(
12201         'acq.upload.default.create_po',
12202         'Upload Create PO',
12203         'coust',
12204         'label'
12205     ),
12206      oils_i18n_gettext(
12207         'acq.upload.default.create_po',
12208         'Create a purchase order by default during ACQ file upload',
12209         'coust',
12210         'description'
12211     ),
12212    'acq',
12213     'bool',
12214     NULL
12215 ), (
12216     'acq.upload.default.activate_po',
12217     oils_i18n_gettext(
12218         'acq.upload.default.activate_po',
12219         'Upload Activate PO',
12220         'coust',
12221         'label'
12222     ),
12223      oils_i18n_gettext(
12224         'acq.upload.default.activate_po',
12225         'Activate the purchase order by default during ACQ file upload',
12226         'coust',
12227         'description'
12228     ),
12229     'acq',
12230     'bool',
12231     NULL
12232 ), (
12233     'acq.upload.default.provider',
12234     oils_i18n_gettext(
12235         'acq.upload.default.provider',
12236         'Upload Default Provider',
12237         'coust',
12238         'label'
12239     ),
12240      oils_i18n_gettext(
12241         'acq.upload.default.provider',
12242         'Default provider to use during ACQ file upload',
12243         'coust',
12244         'description'
12245     ),
12246     'acq',
12247     'link',
12248     'acqpro'
12249 ), (
12250     'acq.upload.default.vandelay.match_set',
12251     oils_i18n_gettext(
12252         'acq.upload.default.vandelay.match_set',
12253         'Upload Default Match Set',
12254         'coust',
12255         'label'
12256     ),
12257      oils_i18n_gettext(
12258         'acq.upload.default.vandelay.match_set',
12259         'Default match set to use during ACQ file upload',
12260         'coust',
12261         'description'
12262     ),
12263     'acq',
12264     'link',
12265     'vms'
12266 ), (
12267     'acq.upload.default.vandelay.merge_profile',
12268     oils_i18n_gettext(
12269         'acq.upload.default.vandelay.merge_profile',
12270         'Upload Default Merge Profile',
12271         'coust',
12272         'label'
12273     ),
12274      oils_i18n_gettext(
12275         'acq.upload.default.vandelay.merge_profile',
12276         'Default merge profile to use during ACQ file upload',
12277         'coust',
12278         'description'
12279     ),
12280     'acq',
12281     'link',
12282     'vmp'
12283 ), (
12284     'acq.upload.default.vandelay.import_non_matching',
12285     oils_i18n_gettext(
12286         'acq.upload.default.vandelay.import_non_matching',
12287         'Upload Import Non Matching by Default',
12288         'coust',
12289         'label'
12290     ),
12291      oils_i18n_gettext(
12292         'acq.upload.default.vandelay.import_non_matching',
12293         'Import non-matching records by default during ACQ file upload',
12294         'coust',
12295         'description'
12296     ),
12297     'acq',
12298     'bool',
12299     NULL
12300 ), (
12301     'acq.upload.default.vandelay.merge_on_exact',
12302     oils_i18n_gettext(
12303         'acq.upload.default.vandelay.merge_on_exact',
12304         'Upload Merge on Exact Match by Default',
12305         'coust',
12306         'label'
12307     ),
12308      oils_i18n_gettext(
12309         'acq.upload.default.vandelay.merge_on_exact',
12310         'Merge records on exact match by default during ACQ file upload',
12311         'coust',
12312         'description'
12313     ),
12314     'acq',
12315     'bool',
12316     NULL
12317 ), (
12318     'acq.upload.default.vandelay.merge_on_best',
12319     oils_i18n_gettext(
12320         'acq.upload.default.vandelay.merge_on_best',
12321         'Upload Merge on Best Match by Default',
12322         'coust',
12323         'label'
12324     ),
12325      oils_i18n_gettext(
12326         'acq.upload.default.vandelay.merge_on_best',
12327         'Merge records on best match by default during ACQ file upload',
12328         'coust',
12329         'description'
12330     ),
12331     'acq',
12332     'bool',
12333     NULL
12334 ), (
12335     'acq.upload.default.vandelay.merge_on_single',
12336     oils_i18n_gettext(
12337         'acq.upload.default.vandelay.merge_on_single',
12338         'Upload Merge on Single Match by Default',
12339         'coust',
12340         'label'
12341     ),
12342      oils_i18n_gettext(
12343         'acq.upload.default.vandelay.merge_on_single',
12344         'Merge records on single match by default during ACQ file upload',
12345         'coust',
12346         'description'
12347     ),
12348     'acq',
12349     'bool',
12350     NULL
12351 ), (
12352     'acq.upload.default.vandelay.quality_ratio',
12353     oils_i18n_gettext(
12354         'acq.upload.default.vandelay.quality_ratio',
12355         'Upload Default Min. Quality Ratio',
12356         'coust',
12357         'label'
12358     ),
12359      oils_i18n_gettext(
12360         'acq.upload.default.vandelay.quality_ratio',
12361         'Default minimum quality ratio used during ACQ file upload',
12362         'coust',
12363         'description'
12364     ),
12365     'acq',
12366     'integer',
12367     NULL
12368 ), (
12369     'acq.upload.default.vandelay.low_quality_fall_thru_profile',
12370     oils_i18n_gettext(
12371         'acq.upload.default.vandelay.low_quality_fall_thru_profile',
12372         'Upload Default Insufficient Quality Fall-Thru Profile',
12373         'coust',
12374         'label'
12375     ),
12376      oils_i18n_gettext(
12377         'acq.upload.default.vandelay.low_quality_fall_thru_profile',
12378         'Default low-quality fall through profile used during ACQ file upload',
12379         'coust',
12380         'description'
12381     ),
12382     'acq',
12383     'link',
12384     'vmp'
12385 ), (
12386     'acq.upload.default.vandelay.load_item_for_imported',
12387     oils_i18n_gettext(
12388         'acq.upload.default.vandelay.load_item_for_imported',
12389         'Upload Load Items for Imported Records by Default',
12390         'coust',
12391         'label'
12392     ),
12393      oils_i18n_gettext(
12394         'acq.upload.default.vandelay.load_item_for_imported',
12395         'Load items for imported records by default during ACQ file upload',
12396         'coust',
12397         'description'
12398     ),
12399     'acq',
12400     'bool',
12401     NULL
12402 );
12403
12404
12405 INSERT INTO config.ts_config_list(id, name) VALUES
12406     ('simple','Non-Stemmed Simple'),
12407     ('danish_nostop','Danish Stemmed'),
12408     ('dutch_nostop','Dutch Stemmed'),
12409     ('english_nostop','English Stemmed'),
12410     ('finnish_nostop','Finnish Stemmed'),
12411     ('french_nostop','French Stemmed'),
12412     ('german_nostop','German Stemmed'),
12413     ('hungarian_nostop','Hungarian Stemmed'),
12414     ('italian_nostop','Italian Stemmed'),
12415     ('norwegian_nostop','Norwegian Stemmed'),
12416     ('portuguese_nostop','Portuguese Stemmed'),
12417     ('romanian_nostop','Romanian Stemmed'),
12418     ('russian_nostop','Russian Stemmed'),
12419     ('spanish_nostop','Spanish Stemmed'),
12420     ('swedish_nostop','Swedish Stemmed'),
12421     ('turkish_nostop','Turkish Stemmed');
12422
12423 INSERT INTO config.metabib_class_ts_map(field_class, ts_config, index_weight, always) VALUES
12424     ('keyword','simple','A',true),
12425     ('keyword','english_nostop','C',true),
12426     ('title','simple','A',true),
12427     ('title','english_nostop','C',true),
12428     ('author','simple','A',true),
12429     ('author','english_nostop','C',true),
12430     ('series','simple','A',true),
12431     ('series','english_nostop','C',true),
12432     ('subject','simple','A',true),
12433     ('subject','english_nostop','C',true),
12434     ('identifier','simple','A',true);
12435
12436 INSERT INTO config.org_unit_setting_type (
12437     name, label, description, datatype, fm_class, update_perm, grp
12438 ) VALUES (
12439     'circ.hold_capture_order',
12440     oils_i18n_gettext(
12441         'circ.hold_capture_order',
12442         'Best-hold selection sort order',
12443         'coust',
12444         'label'
12445     ),
12446     oils_i18n_gettext(
12447         'circ.hold_capture_order',
12448         'Defines the sort order of holds when selecting a hold to fill using a given copy at capture time',
12449         'coust',
12450         'description'
12451     ),
12452     'link',
12453     'cbho',
12454     543,
12455     'holds'
12456 );
12457
12458 INSERT INTO config.org_unit_setting_type (
12459     name, label, description, datatype, update_perm, grp
12460 ) VALUES (
12461     'circ.hold_go_home_interval',
12462     oils_i18n_gettext(
12463         'circ.hold_go_home_interval',
12464         'Max foreign-circulation time',
12465         'coust',
12466         'label'
12467     ),
12468     oils_i18n_gettext(
12469         'circ.hold_go_home_interval',
12470         'Time a copy can spend circulating away from its circ lib before returning there to fill a hold (if one exists there)',
12471         'coust',
12472         'description'
12473     ),
12474     'interval',
12475     543,
12476     'holds'
12477 );
12478
12479
12480 INSERT INTO config.best_hold_order (
12481     name,
12482     pprox, aprox, priority, cut, depth, rtime, htime, hprox
12483 ) VALUES (
12484     'Traditional',
12485     1, 2, 3, 4, 5, 6, 7, 8
12486 );
12487
12488 INSERT INTO config.best_hold_order (
12489     name,
12490     hprox, pprox, aprox, priority, cut, depth, rtime, htime
12491 ) VALUES (
12492     'Traditional with Holds-always-go-home',
12493     1, 2, 3, 4, 5, 6, 7, 8
12494 );
12495
12496 INSERT INTO config.best_hold_order (
12497     name,
12498     htime, hprox, pprox, aprox, priority, cut, depth, rtime
12499 ) VALUES (
12500     'Traditional with Holds-go-home',
12501     1, 2, 3, 4, 5, 6, 7, 8
12502 );
12503
12504 INSERT INTO config.best_hold_order (
12505     name,
12506     priority, cut, rtime, depth, pprox, hprox, aprox, htime
12507 ) VALUES (
12508     'FIFO',
12509     1, 2, 3, 4, 5, 6, 7, 8
12510 );
12511
12512 INSERT INTO config.best_hold_order (
12513     name,
12514     hprox, priority, cut, rtime, depth, pprox, aprox, htime
12515 ) VALUES (
12516     'FIFO with Holds-always-go-home',
12517     1, 2, 3, 4, 5, 6, 7, 8
12518 );
12519
12520 INSERT INTO config.best_hold_order (
12521     name,
12522     htime, priority, cut, rtime, depth, pprox, aprox, hprox
12523 ) VALUES (
12524     'FIFO with Holds-go-home',
12525     1, 2, 3, 4, 5, 6, 7, 8
12526 );
12527
12528 INSERT INTO actor.org_unit_setting (
12529     org_unit, name, value
12530 ) VALUES (
12531     (SELECT id FROM actor.org_unit WHERE parent_ou IS NULL),
12532     'circ.hold_go_home_interval',
12533     '"6 months"'
12534 );
12535
12536 INSERT INTO action_trigger.hook (
12537         key,
12538         core_type,
12539         description,
12540         passive
12541     ) VALUES (
12542         'au.barred',
12543         'au',
12544         'A user was barred by staff',
12545         FALSE
12546     );
12547
12548 INSERT INTO action_trigger.hook (
12549         key,
12550         core_type,
12551         description,
12552         passive
12553     ) VALUES (
12554         'au.unbarred',
12555         'au',
12556         'A user was un-barred by staff',
12557         FALSE
12558     );
12559
12560 INSERT INTO action_trigger.validator (
12561         module, 
12562         description
12563     ) VALUES (
12564         'PatronBarred',
12565         'Tests if a patron is currently marked as barred'
12566     );
12567
12568 INSERT INTO action_trigger.validator (
12569         module, 
12570         description
12571     ) VALUES (
12572         'PatronNotBarred',
12573         'Tests if a patron is currently not marked as barred'
12574     );
12575