]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/950.data.seed-values.sql
TPac: Advanced Search Config
[working/Evergreen.git] / Open-ILS / src / sql / Pg / 950.data.seed-values.sql
1 --002.schema.config.sql:
2 INSERT INTO config.bib_source (id, quality, source, transcendant, can_have_copies) VALUES 
3     (1, 90, oils_i18n_gettext(1, 'oclc', 'cbs', 'source'), FALSE, TRUE);
4 INSERT INTO config.bib_source (id, quality, source, transcendant, can_have_copies) VALUES 
5     (2, 10, oils_i18n_gettext(2, 'System Local', 'cbs', 'source'), FALSE, TRUE);
6 INSERT INTO config.bib_source (id, quality, source, transcendant, can_have_copies) VALUES 
7     (3, 1, oils_i18n_gettext(3, 'Project Gutenberg', 'cbs', 'source'), TRUE, TRUE);
8 SELECT SETVAL('config.bib_source_id_seq'::TEXT, 100);
9
10 INSERT INTO biblio.peer_type (id,name) VALUES
11     (1,oils_i18n_gettext(1,'Bound Volume','bpt','name')),
12     (2,oils_i18n_gettext(2,'Bilingual','bpt','name')),
13     (3,oils_i18n_gettext(3,'Back-to-back','bpt','name')),
14     (4,oils_i18n_gettext(4,'Set','bpt','name')),
15     (5,oils_i18n_gettext(5,'e-Reader Preload','bpt','name')); 
16 SELECT SETVAL('biblio.peer_type_id_seq'::TEXT, 100);
17
18 INSERT INTO config.standing (id, value) VALUES (1, oils_i18n_gettext(1, 'Good', 'cst', 'value'));
19 INSERT INTO config.standing (id, value) VALUES (2, oils_i18n_gettext(2, 'Barred', 'cst', 'value'));
20 SELECT SETVAL('config.standing_id_seq'::TEXT, 100);
21
22 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
23         VALUES (1,'PATRON_EXCEEDS_FINES',oils_i18n_gettext(1, 'Patron exceeds fine threshold', 'csp', 'label'),'CIRC|FULFILL|HOLD|CAPTURE|RENEW', TRUE);
24 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
25         VALUES (2,'PATRON_EXCEEDS_OVERDUE_COUNT',oils_i18n_gettext(2, 'Patron exceeds max overdue item threshold', 'csp', 'label'),'CIRC|FULFILL|HOLD|CAPTURE|RENEW', TRUE);
26 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
27         VALUES (3,'PATRON_EXCEEDS_CHECKOUT_COUNT',oils_i18n_gettext(3, 'Patron exceeds max checked out item threshold', 'csp', 'label'),'CIRC|FULFILL', TRUE);
28 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
29         VALUES (4,'PATRON_EXCEEDS_COLLECTIONS_WARNING',oils_i18n_gettext(4, 'Patron exceeds pre-collections warning fine threshold', 'csp', 'label'),'CIRC|FULFILL|HOLD|CAPTURE|RENEW', TRUE);
30
31 INSERT INTO config.standing_penalty (id,name,label,staff_alert) VALUES (20,'ALERT_NOTE',oils_i18n_gettext(20, 'Alerting Note, no blocks', 'csp', 'label'),TRUE);
32 INSERT INTO config.standing_penalty (id,name,label) VALUES (21,'SILENT_NOTE',oils_i18n_gettext(21, 'Note, no blocks', 'csp', 'label'));
33 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (22,'STAFF_C',oils_i18n_gettext(22, 'Alerting block on Circ', 'csp', 'label'),'CIRC', TRUE);
34 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (23,'STAFF_CH',oils_i18n_gettext(23, 'Alerting block on Circ and Hold', 'csp', 'label'),'CIRC|HOLD', TRUE);
35 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (24,'STAFF_CR',oils_i18n_gettext(24, 'Alerting block on Circ and Renew', 'csp', 'label'),'CIRC|RENEW', TRUE);
36 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (25,'STAFF_CHR',oils_i18n_gettext(25, 'Alerting block on Circ, Hold and Renew', 'csp', 'label'),'CIRC|HOLD|RENEW', TRUE);
37 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (26,'STAFF_HR',oils_i18n_gettext(26, 'Alerting block on Hold and Renew', 'csp', 'label'),'HOLD|RENEW', TRUE);
38 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (27,'STAFF_H',oils_i18n_gettext(27, 'Alerting block on Hold', 'csp', 'label'),'HOLD', TRUE);
39 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (28,'STAFF_R',oils_i18n_gettext(28, 'Alerting block on Renew', 'csp', 'label'),'RENEW', TRUE);
40 INSERT INTO config.standing_penalty (id,name,label) VALUES (29,'INVALID_PATRON_ADDRESS',oils_i18n_gettext(29, 'Patron has an invalid address', 'csp', 'label'));
41 INSERT INTO config.standing_penalty (id,name,label) VALUES (30,'PATRON_IN_COLLECTIONS',oils_i18n_gettext(30, 'Patron has been referred to a collections agency', 'csp', 'label'));
42 INSERT INTO config.standing_penalty (id, name, label, staff_alert, org_depth) VALUES
43     (
44         31,
45         'INVALID_PATRON_EMAIL_ADDRESS',
46         oils_i18n_gettext(
47             31,
48             'Patron had an invalid email address',
49             'csp',
50             'label'
51         ),
52         TRUE,
53         0
54     ),
55     (
56         32,
57         'INVALID_PATRON_DAY_PHONE',
58         oils_i18n_gettext(
59             32,
60             'Patron had an invalid daytime phone number',
61             'csp',
62             'label'
63         ),
64         TRUE,
65         0
66     ),
67     (
68         33,
69         'INVALID_PATRON_EVENING_PHONE',
70         oils_i18n_gettext(
71             33,
72             'Patron had an invalid evening phone number',
73             'csp',
74             'label'
75         ),
76         TRUE,
77         0
78     ),
79     (
80         34,
81         'INVALID_PATRON_OTHER_PHONE',
82         oils_i18n_gettext(
83             34,
84             'Patron had an invalid other phone number',
85             'csp',
86             'label'
87         ),
88         TRUE,
89         0
90     );
91
92
93 SELECT SETVAL('config.standing_penalty_id_seq', 100);
94
95 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'identifier', oils_i18n_gettext('identifier', 'Identifier', 'cmc', 'label') );
96 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'keyword', oils_i18n_gettext('keyword', 'Keyword', 'cmc', 'label') );
97 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'title', oils_i18n_gettext('title', 'Title', 'cmc', 'label') );
98 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'author', oils_i18n_gettext('author', 'Author', 'cmc', 'label') );
99 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'subject', oils_i18n_gettext('subject', 'Subject', 'cmc', 'label') );
100 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'series', oils_i18n_gettext('series', 'Series', 'cmc', 'label') );
101
102 -- some more from 002.schema.config.sql:
103 INSERT INTO config.xml_transform VALUES ( 'marcxml', 'http://www.loc.gov/MARC21/slim', 'marc', '---' );
104 INSERT INTO config.xml_transform VALUES ( 'mods', 'http://www.loc.gov/mods/', 'mods', '');
105 INSERT INTO config.xml_transform VALUES ( 'mods3', 'http://www.loc.gov/mods/v3', 'mods3', '');
106 INSERT INTO config.xml_transform VALUES ( 'mods32', 'http://www.loc.gov/mods/v3', 'mods32', '');
107 INSERT INTO config.xml_transform VALUES ( 'mods33', 'http://www.loc.gov/mods/v3', 'mods33', '');
108 INSERT INTO config.xml_transform VALUES ( 'marc21expand880', 'http://www.loc.gov/MARC21/slim', 'marc', '' );
109
110 -- Index Definitions
111 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES 
112     (1, 'series', 'seriestitle', oils_i18n_gettext(1, 'Series Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:relatedItem[@type="series"]/mods32:titleInfo$$, TRUE );
113
114 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
115     (2, 'title', 'abbreviated', oils_i18n_gettext(2, 'Abbreviated Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='abbreviated')]$$ );
116 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
117     (3, 'title', 'translated', oils_i18n_gettext(3, 'Translated Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='translated')]$$ );
118 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
119     (4, 'title', 'alternative', oils_i18n_gettext(4, 'Alternate Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='alternative')]$$ );
120 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
121     (5, 'title', 'uniform', oils_i18n_gettext(5, 'Uniform Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='uniform')]$$ );
122 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
123     (6, 'title', 'proper', oils_i18n_gettext(6, 'Title Proper', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleNonfiling[mods32:title and not (@type)]$$ );
124
125 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field ) VALUES 
126     (7, 'author', 'corporate', oils_i18n_gettext(7, 'Corporate Author', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:name[@type='corporate' and mods32:role/mods32:roleTerm[text()='creator']]$$, $$//*[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 ('fr-CA', 'fre', oils_i18n_gettext('fr-CA', 'French (Canada)', 'i18n_l', 'name'),
336         oils_i18n_gettext('fr-CA', 'Canadian French', 'i18n_l', 'description'));
337 INSERT INTO config.i18n_locale (code,marc_code,name,description)
338     VALUES ('hy-AM', 'arm', oils_i18n_gettext('hy-AM', 'Armenian', 'i18n_l', 'name'),
339         oils_i18n_gettext('hy-AM', 'Armenian', 'i18n_l', 'description'));
340 --INSERT INTO config.i18n_locale (code,marc_code,name,description)
341 --    VALUES ('es-US', 'spa', oils_i18n_gettext('es-US', 'Spanish (US)', 'i18n_l', 'name'),
342 --      oils_i18n_gettext('es-US', 'American Spanish', 'i18n_l', 'description'));
343 --INSERT INTO config.i18n_locale (code,marc_code,name,description)
344 --    VALUES ('es-MX', 'spa', oils_i18n_gettext('es-MX', 'Spanish (Mexico)', 'i18n_l', 'name'),
345 --      oils_i18n_gettext('es-MX', 'Mexican Spanish', 'i18n_l', 'description'));
346 INSERT INTO config.i18n_locale (code,marc_code,name,description)
347     VALUES ('ru-RU', 'rus', oils_i18n_gettext('ru-RU', 'Russian', 'i18n_l', 'name'),
348         oils_i18n_gettext('ru-RU', 'Russian', 'i18n_l', 'description'));
349
350 -- Z39.50 server attributes
351
352 INSERT INTO config.z3950_source (name, label, host, port, db, auth)
353         VALUES ('loc', oils_i18n_gettext('loc', 'Library of Congress', 'czs', 'label'), 'z3950.loc.gov', 7090, 'Voyager', FALSE);
354 INSERT INTO config.z3950_source (name, label, host, port, db, auth)
355         VALUES ('oclc', oils_i18n_gettext('oclc', 'OCLC', 'czs', 'label'), 'zcat.oclc.org', 210, 'OLUCWorldCat', TRUE);
356 INSERT INTO config.z3950_source (name, label, host, port, db, auth)
357         VALUES ('biblios', oils_i18n_gettext('biblios','‡biblios.net', 'czs', 'label'), 'z3950.biblios.net', 210, 'bibliographic', FALSE);
358
359 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
360         VALUES (1, 'loc','tcn', oils_i18n_gettext(1, 'Title Control Number', 'cza', 'label'), 12, 1);
361 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
362         VALUES (2, 'loc', 'isbn', oils_i18n_gettext(2, 'ISBN', 'cza', 'label'), 7, 6);
363 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
364         VALUES (3, 'loc', 'lccn', oils_i18n_gettext(3, 'LCCN', 'cza', 'label'), 9, 1);
365 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
366         VALUES (4, 'loc', 'author', oils_i18n_gettext(4, 'Author', 'cza', 'label'), 1003, 6);
367 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
368         VALUES (5, 'loc', 'title', oils_i18n_gettext(5, 'Title', 'cza', 'label'), 4, 6);
369 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
370         VALUES (6, 'loc', 'issn', oils_i18n_gettext(6, 'ISSN', 'cza', 'label'), 8, 1);
371 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
372         VALUES (7, 'loc', 'publisher', oils_i18n_gettext(7, 'Publisher', 'cza', 'label'), 1018, 6);
373 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
374         VALUES (8, 'loc', 'pubdate', oils_i18n_gettext(8, 'Publication Date', 'cza', 'label'), 31, 1);
375 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
376         VALUES (9, 'loc', 'item_type', oils_i18n_gettext(9, 'Item Type', 'cza', 'label'), 1001, 1);
377
378 UPDATE config.z3950_attr SET truncation = 1 WHERE source = 'loc';
379
380 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
381         VALUES (10, 'oclc', 'tcn', oils_i18n_gettext(10, 'Title Control Number', 'cza', 'label'), 12, 1);
382 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
383         VALUES (11, 'oclc', 'isbn', oils_i18n_gettext(11, 'ISBN', 'cza', 'label'), 7, 6);
384 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
385         VALUES (12, 'oclc', 'lccn', oils_i18n_gettext(12, 'LCCN', 'cza', 'label'), 9, 1);
386 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
387         VALUES (13, 'oclc', 'author', oils_i18n_gettext(13, 'Author', 'cza', 'label'), 1003, 6);
388 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
389         VALUES (14, 'oclc', 'title', oils_i18n_gettext(14, 'Title', 'cza', 'label'), 4, 6);
390 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
391         VALUES (15, 'oclc', 'issn', oils_i18n_gettext(15, 'ISSN', 'cza', 'label'), 8, 1);
392 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
393         VALUES (16, 'oclc', 'publisher', oils_i18n_gettext(16, 'Publisher', 'cza', 'label'), 1018, 6);
394 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
395         VALUES (17, 'oclc', 'pubdate', oils_i18n_gettext(17, 'Publication Date', 'cza', 'label'), 31, 1);
396 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
397         VALUES (18, 'oclc', 'item_type', oils_i18n_gettext(18, 'Item Type', 'cza', 'label'), 1001, 1);
398
399 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
400         VALUES (19, 'biblios','tcn', oils_i18n_gettext(19, 'Title Control Number', 'cza', 'label'), 12, 1);
401 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
402         VALUES (20, 'biblios', 'isbn', oils_i18n_gettext(20, 'ISBN', 'cza', 'label'), 7, 6);
403 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
404         VALUES (21, 'biblios', 'lccn', oils_i18n_gettext(21, 'LCCN', 'cza', 'label'), 9, 1);
405 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
406         VALUES (22, 'biblios', 'author', oils_i18n_gettext(22, 'Author', 'cza', 'label'), 1003, 6);
407 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
408         VALUES (23, 'biblios', 'title', oils_i18n_gettext(23, 'Title', 'cza', 'label'), 4, 6);
409 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
410         VALUES (24, 'biblios', 'issn', oils_i18n_gettext(24, 'ISSN', 'cza', 'label'), 8, 1);
411 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
412         VALUES (25, 'biblios', 'publisher', oils_i18n_gettext(25, 'Publisher', 'cza', 'label'), 1018, 6);
413 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
414         VALUES (26, 'biblios', 'pubdate', oils_i18n_gettext(26, 'Publication Date', 'cza', 'label'), 31, 1);
415 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
416         VALUES (27, 'biblios', 'item_type', oils_i18n_gettext(27, 'Item Type', 'cza', 'label'), 1001, 1);
417
418 UPDATE config.z3950_attr SET truncation = 1 WHERE source = 'biblios';
419
420 SELECT SETVAL('config.z3950_attr_id_seq'::TEXT, 100);
421
422 --005.schema.actors.sql:
423
424 -- The PINES levels
425 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent, can_have_users, can_have_vols) VALUES 
426     ( 1, oils_i18n_gettext(1, 'Consortium', 'aout', 'name'),
427         oils_i18n_gettext(1, 'Everywhere', 'aout', 'opac_label'), 0, NULL, FALSE, FALSE );
428 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent, can_have_users, can_have_vols) VALUES 
429     ( 2, oils_i18n_gettext(2, 'System', 'aout', 'name'),
430         oils_i18n_gettext(2, 'Local Library System', 'aout', 'opac_label'), 1, 1, FALSE, FALSE );
431 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent) VALUES 
432     ( 3, oils_i18n_gettext(3, 'Branch', 'aout', 'name'),
433         oils_i18n_gettext(3, 'This Branch', 'aout', 'opac_label'), 2, 2 );
434 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent) VALUES 
435     ( 4, oils_i18n_gettext(4, 'Sub-library', 'aout', 'name'),
436         oils_i18n_gettext(4, 'This Specialized Library', 'aout', 'opac_label'), 3, 3 );
437 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent) VALUES 
438     ( 5, oils_i18n_gettext(5, 'Bookmobile', 'aout', 'name'),
439         oils_i18n_gettext(5, 'Your Bookmobile', 'aout', 'opac_label'), 3, 3 );
440 SELECT SETVAL('actor.org_unit_type_id_seq'::TEXT, 100);
441
442 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
443     (1, NULL, 1, 'CONS', oils_i18n_gettext(1, 'Example Consortium', 'aou', 'name'));
444 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
445     (2, 1, 2, 'SYS1', oils_i18n_gettext(2, 'Example System 1', 'aou', 'name'));
446 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
447     (3, 1, 2, 'SYS2', oils_i18n_gettext(3, 'Example System 2', 'aou', 'name'));
448 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
449     (4, 2, 3, 'BR1', oils_i18n_gettext(4, 'Example Branch 1', 'aou', 'name'));
450 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
451     (5, 2, 3, 'BR2', oils_i18n_gettext(5, 'Example Branch 2', 'aou', 'name'));
452 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
453     (6, 3, 3, 'BR3', oils_i18n_gettext(6, 'Example Branch 3', 'aou', 'name'));
454 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
455     (7, 3, 3, 'BR4', oils_i18n_gettext(7, 'Example Branch 4', 'aou', 'name'));
456 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
457     (8, 4, 4, 'SL1', oils_i18n_gettext(8, 'Example Sub-library 1', 'aou', 'name'));
458 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
459     (9, 6, 5, 'BM1', oils_i18n_gettext(9, 'Example Bookmobile 1', 'aou', 'name'));
460 SELECT SETVAL('actor.org_unit_id_seq'::TEXT, 100);
461
462 INSERT INTO actor.org_address (org_unit, street1, city, state, country, post_code)
463 SELECT id, '123 Main St.', 'Anywhere', 'GA', 'US', '30303'
464 FROM actor.org_unit;
465
466 UPDATE actor.org_unit SET holds_address = id, ill_address = id, billing_address = id, mailing_address = id;
467
468 INSERT INTO config.billing_type (id, name, owner) VALUES
469         ( 1, oils_i18n_gettext(1, 'Overdue Materials', 'cbt', 'name'), 1);
470 INSERT INTO config.billing_type (id, name, owner) VALUES
471         ( 2, oils_i18n_gettext(2, 'Long Overdue Collection Fee', 'cbt', 'name'), 1);
472 INSERT INTO config.billing_type (id, name, owner) VALUES
473         ( 3, oils_i18n_gettext(3, 'Lost Materials', 'cbt', 'name'), 1);
474 INSERT INTO config.billing_type (id, name, owner) VALUES
475         ( 4, oils_i18n_gettext(4, 'Lost Materials Processing Fee', 'cbt', 'name'), 1);
476 INSERT INTO config.billing_type (id, name, owner) VALUES
477         ( 5, oils_i18n_gettext(5, 'System: Deposit', 'cbt', 'name'), 1);
478 INSERT INTO config.billing_type (id, name, owner) VALUES
479         ( 6, oils_i18n_gettext(6, 'System: Rental', 'cbt', 'name'), 1);
480 INSERT INTO config.billing_type (id, name, owner) VALUES
481         ( 7, oils_i18n_gettext(7, 'Damaged Item', 'cbt', 'name'), 1);
482 INSERT INTO config.billing_type (id, name, owner) VALUES
483         ( 8, oils_i18n_gettext(8, 'Damaged Item Processing Fee', 'cbt', 'name'), 1);
484 INSERT INTO config.billing_type (id, name, owner) VALUES
485         ( 9, oils_i18n_gettext(9, 'Notification Fee', 'cbt', 'name'), 1);
486
487 INSERT INTO config.billing_type (id, name, owner) VALUES ( 101, oils_i18n_gettext(101, 'Misc', 'cbt', 'name'), 1);
488
489 SELECT SETVAL('config.billing_type_id_seq'::TEXT, 101);
490
491 --006.data.permissions.sql:
492 INSERT INTO permission.perm_list ( id, code, description ) VALUES
493  ( -1, 'EVERYTHING', oils_i18n_gettext( -1, 
494     'EVERYTHING', 'ppl', 'description' )),
495  ( 1, 'OPAC_LOGIN', oils_i18n_gettext( 1, 
496     'Allow a user to log in to the OPAC', 'ppl', 'description' )),
497  ( 2, 'STAFF_LOGIN', oils_i18n_gettext( 2, 
498     'Allow a user to log in to the staff client', 'ppl', 'description' )),
499  ( 3, 'MR_HOLDS', oils_i18n_gettext( 3, 
500     'Allow a user to create a metarecord holds', 'ppl', 'description' )),
501  ( 4, 'TITLE_HOLDS', oils_i18n_gettext( 4, 
502     'Allow a user to place a hold at the title level', 'ppl', 'description' )),
503  ( 5, 'VOLUME_HOLDS', oils_i18n_gettext( 5, 
504     'Allow a user to place a volume level hold', 'ppl', 'description' )),
505  ( 6, 'COPY_HOLDS', oils_i18n_gettext( 6, 
506     'Allow a user to place a hold on a specific copy', 'ppl', 'description' )),
507  ( 7, 'REQUEST_HOLDS', oils_i18n_gettext( 7, 
508     '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' )),
509  ( 8, 'REQUEST_HOLDS_OVERRIDE', oils_i18n_gettext( 8, 
510     '* no longer applicable', 'ppl', 'description' )),
511  ( 9, 'VIEW_HOLD', oils_i18n_gettext( 9, 
512     'Allow a user to view another user''s holds', 'ppl', 'description' )),
513  ( 10, 'DELETE_HOLDS', oils_i18n_gettext( 10, 
514     '* no longer applicable', 'ppl', 'description' )),
515  ( 11, 'UPDATE_HOLD', oils_i18n_gettext( 11, 
516     'Allow a user to update another user''s hold', 'ppl', 'description' )),
517  ( 12, 'RENEW_CIRC', oils_i18n_gettext( 12, 
518     'Allow a user to renew items', 'ppl', 'description' )),
519  ( 13, 'VIEW_USER_FINES_SUMMARY', oils_i18n_gettext( 13, 
520     'Allow a user to view bill details', 'ppl', 'description' )),
521  ( 14, 'VIEW_USER_TRANSACTIONS', oils_i18n_gettext( 14, 
522     'Allow a user to see another user''s grocery or circulation transactions in the Bills Interface; duplicate of VIEW_TRANSACTION', 'ppl', 'description' )),
523  ( 15, 'UPDATE_MARC', oils_i18n_gettext( 15, 
524     'Allow a user to edit a MARC record', 'ppl', 'description' )),
525  ( 16, 'CREATE_MARC', oils_i18n_gettext( 16, 
526     'Allow a user to create new MARC records', 'ppl', 'description' )),
527  ( 17, 'IMPORT_MARC', oils_i18n_gettext( 17, 
528     'Allow a user to import a MARC record via the Z39.50 interface', 'ppl', 'description' )),
529  ( 18, 'CREATE_VOLUME', oils_i18n_gettext( 18, 
530     'Allow a user to create a volume', 'ppl', 'description' )),
531  ( 19, 'UPDATE_VOLUME', oils_i18n_gettext( 19, 
532     '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' )),
533  ( 20, 'DELETE_VOLUME', oils_i18n_gettext( 20, 
534     'Allow a user to delete a volume', 'ppl', 'description' )),
535  ( 21, 'CREATE_COPY', oils_i18n_gettext( 21, 
536     'Allow a user to create a new copy object', 'ppl', 'description' )),
537  ( 22, 'UPDATE_COPY', oils_i18n_gettext( 22, 
538     'Allow a user to edit a copy', 'ppl', 'description' )),
539  ( 23, 'DELETE_COPY', oils_i18n_gettext( 23, 
540     'Allow a user to delete a copy', 'ppl', 'description' )),
541  ( 24, 'RENEW_HOLD_OVERRIDE', oils_i18n_gettext( 24, 
542     'Allow a user to continue to renew an item even if it is required for a hold', 'ppl', 'description' )),
543  ( 25, 'CREATE_USER', oils_i18n_gettext( 25, 
544     'Allow a user to create another user', 'ppl', 'description' )),
545  ( 26, 'UPDATE_USER', oils_i18n_gettext( 26, 
546     'Allow a user to edit a user''s record', 'ppl', 'description' )),
547  ( 27, 'DELETE_USER', oils_i18n_gettext( 27, 
548     'Allow a user to mark a user as deleted', 'ppl', 'description' )),
549  ( 28, 'VIEW_USER', oils_i18n_gettext( 28, 
550     'Allow a user to view another user''s Patron Record', 'ppl', 'description' )),
551  ( 29, 'COPY_CHECKIN', oils_i18n_gettext( 29, 
552     'Allow a user to check in a copy', 'ppl', 'description' )),
553  ( 30, 'CREATE_TRANSIT', oils_i18n_gettext( 30, 
554     'Allow a user to place an item in transit', 'ppl', 'description' )),
555  ( 31, 'VIEW_PERMISSION', oils_i18n_gettext( 31, 
556     'Allow a user to view user permissions within the user permissions editor', 'ppl', 'description' )),
557  ( 32, 'CHECKIN_BYPASS_HOLD_FULFILL', oils_i18n_gettext( 32, 
558     '* no longer applicable', 'ppl', 'description' )),
559  ( 33, 'CREATE_PAYMENT', oils_i18n_gettext( 33, 
560     'Allow a user to record payments in the Billing Interface', 'ppl', 'description' )),
561  ( 34, 'SET_CIRC_LOST', oils_i18n_gettext( 34, 
562     'Allow a user to mark an item as ''lost''', 'ppl', 'description' )),
563  ( 35, 'SET_CIRC_MISSING', oils_i18n_gettext( 35, 
564     'Allow a user to mark an item as ''missing''', 'ppl', 'description' )),
565  ( 36, 'SET_CIRC_CLAIMS_RETURNED', oils_i18n_gettext( 36, 
566     'Allow a user to mark an item as ''claims returned''', 'ppl', 'description' )),
567  ( 37, 'CREATE_TRANSACTION', oils_i18n_gettext( 37, 
568     'Allow a user to create a new billable transaction', 'ppl', 'description' )),
569  ( 38, 'VIEW_TRANSACTION', oils_i18n_gettext( 38, 
570     'Allow a user may view another user''s transactions', 'ppl', 'description' )),
571  ( 39, 'CREATE_BILL', oils_i18n_gettext( 39, 
572     'Allow a user to create a new bill on a transaction', 'ppl', 'description' )),
573  ( 40, 'VIEW_CONTAINER', oils_i18n_gettext( 40, 
574     'Allow a user to view another user''s containers (buckets)', 'ppl', 'description' )),
575  ( 41, 'CREATE_CONTAINER', oils_i18n_gettext( 41, 
576     'Allow a user to create a new container for another user', 'ppl', 'description' )),
577  ( 42, 'UPDATE_ORG_UNIT', oils_i18n_gettext( 42, 
578     'Allow a user to change the settings for an organization unit', 'ppl', 'description' )),
579  ( 43, 'VIEW_CIRCULATIONS', oils_i18n_gettext( 43, 
580     'Allow a user to see what another user has checked out', 'ppl', 'description' )),
581  ( 44, 'DELETE_CONTAINER', oils_i18n_gettext( 44, 
582     'Allow a user to delete another user''s container', 'ppl', 'description' )),
583  ( 45, 'CREATE_CONTAINER_ITEM', oils_i18n_gettext( 45, 
584     'Allow a user to create a container item for another user', 'ppl', 'description' )),
585  ( 46, 'CREATE_USER_GROUP_LINK', oils_i18n_gettext( 46, 
586     'Allow a user to add other users to permission groups', 'ppl', 'description' )),
587  ( 47, 'REMOVE_USER_GROUP_LINK', oils_i18n_gettext( 47, 
588     'Allow a user to remove other users from permission groups', 'ppl', 'description' )),
589  ( 48, 'VIEW_PERM_GROUPS', oils_i18n_gettext( 48, 
590     'Allow a user to view other users'' permission groups', 'ppl', 'description' )),
591  ( 49, 'VIEW_PERMIT_CHECKOUT', oils_i18n_gettext( 49, 
592     'Allow a user to determine whether another user can check out an item', 'ppl', 'description' )),
593  ( 50, 'UPDATE_BATCH_COPY', oils_i18n_gettext( 50, 
594     'Allow a user to edit copies in batch', 'ppl', 'description' )),
595  ( 51, 'CREATE_PATRON_STAT_CAT', oils_i18n_gettext( 51, 
596     'User may create a new patron statistical category', 'ppl', 'description' )),
597  ( 52, 'CREATE_COPY_STAT_CAT', oils_i18n_gettext( 52, 
598     'User may create a copy statistical category', 'ppl', 'description' )),
599  ( 53, 'CREATE_PATRON_STAT_CAT_ENTRY', oils_i18n_gettext( 53, 
600     'User may create an entry in a patron statistical category', 'ppl', 'description' )),
601  ( 54, 'CREATE_COPY_STAT_CAT_ENTRY', oils_i18n_gettext( 54, 
602     'User may create an entry in a copy statistical category', 'ppl', 'description' )),
603  ( 55, 'UPDATE_PATRON_STAT_CAT', oils_i18n_gettext( 55, 
604     'User may update a patron statistical category', 'ppl', 'description' )),
605  ( 56, 'UPDATE_COPY_STAT_CAT', oils_i18n_gettext( 56, 
606     'User may update a copy statistical category', 'ppl', 'description' )),
607  ( 57, 'UPDATE_PATRON_STAT_CAT_ENTRY', oils_i18n_gettext( 57, 
608     'User may update an entry in a patron statistical category', 'ppl', 'description' )),
609  ( 58, 'UPDATE_COPY_STAT_CAT_ENTRY', oils_i18n_gettext( 58, 
610     'User may update an entry in a copy statistical category', 'ppl', 'description' )),
611  ( 59, 'CREATE_PATRON_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 59, 
612     'User may link another user to an entry in a statistical category', 'ppl', 'description' )),
613  ( 60, 'CREATE_COPY_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 60, 
614     'User may link a copy to an entry in a statistical category', 'ppl', 'description' )),
615  ( 61, 'DELETE_PATRON_STAT_CAT', oils_i18n_gettext( 61, 
616     'User may delete a patron statistical category', 'ppl', 'description' )),
617  ( 62, 'DELETE_COPY_STAT_CAT', oils_i18n_gettext( 62, 
618     'User may delete a copy statistical category', 'ppl', 'description' )),
619  ( 63, 'DELETE_PATRON_STAT_CAT_ENTRY', oils_i18n_gettext( 63, 
620     'User may delete an entry from a patron statistical category', 'ppl', 'description' )),
621  ( 64, 'DELETE_COPY_STAT_CAT_ENTRY', oils_i18n_gettext( 64, 
622     'User may delete an entry from a copy statistical category', 'ppl', 'description' )),
623  ( 65, 'DELETE_PATRON_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 65, 
624     'User may delete a patron statistical category entry map', 'ppl', 'description' )),
625  ( 66, 'DELETE_COPY_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 66, 
626     'User may delete a copy statistical category entry map', 'ppl', 'description' )),
627  ( 67, 'CREATE_NON_CAT_TYPE', oils_i18n_gettext( 67, 
628     'Allow a user to create a new non-cataloged item type', 'ppl', 'description' )),
629  ( 68, 'UPDATE_NON_CAT_TYPE', oils_i18n_gettext( 68, 
630     'Allow a user to update a non-cataloged item type', 'ppl', 'description' )),
631  ( 69, 'CREATE_IN_HOUSE_USE', oils_i18n_gettext( 69, 
632     'Allow a user to create a new in-house-use ', 'ppl', 'description' )),
633  ( 70, 'COPY_CHECKOUT', oils_i18n_gettext( 70, 
634     'Allow a user to check out a copy', 'ppl', 'description' )),
635  ( 71, 'CREATE_COPY_LOCATION', oils_i18n_gettext( 71, 
636     'Allow a user to create a new copy location', 'ppl', 'description' )),
637  ( 72, 'UPDATE_COPY_LOCATION', oils_i18n_gettext( 72, 
638     'Allow a user to update a copy location', 'ppl', 'description' )),
639  ( 73, 'DELETE_COPY_LOCATION', oils_i18n_gettext( 73, 
640     'Allow a user to delete a copy location', 'ppl', 'description' )),
641  ( 74, 'CREATE_COPY_TRANSIT', oils_i18n_gettext( 74, 
642     'Allow a user to create a transit_copy object for transiting a copy', 'ppl', 'description' )),
643  ( 75, 'COPY_TRANSIT_RECEIVE', oils_i18n_gettext( 75, 
644     'Allow a user to close out a transit on a copy', 'ppl', 'description' )),
645  ( 76, 'VIEW_HOLD_PERMIT', oils_i18n_gettext( 76, 
646     'Allow a user to see if another user has permission to place a hold on a given copy', 'ppl', 'description' )),
647  ( 77, 'VIEW_COPY_CHECKOUT_HISTORY', oils_i18n_gettext( 77, 
648     'Allow a user to view which users have checked out a given copy', 'ppl', 'description' )),
649  ( 78, 'REMOTE_Z3950_QUERY', oils_i18n_gettext( 78, 
650     'Allow a user to perform Z39.50 queries against remote servers', 'ppl', 'description' )),
651  ( 79, 'REGISTER_WORKSTATION', oils_i18n_gettext( 79, 
652     'Allow a user to register a new workstation', 'ppl', 'description' )),
653  ( 80, 'VIEW_COPY_NOTES', oils_i18n_gettext( 80, 
654     'Allow a user to view all notes attached to a copy', 'ppl', 'description' )),
655  ( 81, 'VIEW_VOLUME_NOTES', oils_i18n_gettext( 81, 
656     'Allow a user to view all notes attached to a volume', 'ppl', 'description' )),
657  ( 82, 'VIEW_TITLE_NOTES', oils_i18n_gettext( 82, 
658     'Allow a user to view all notes attached to a title', 'ppl', 'description' )),
659  ( 83, 'CREATE_COPY_NOTE', oils_i18n_gettext( 83, 
660     'Allow a user to create a new copy note', 'ppl', 'description' )),
661  ( 84, 'CREATE_VOLUME_NOTE', oils_i18n_gettext( 84, 
662     'Allow a user to create a new volume note', 'ppl', 'description' )),
663  ( 85, 'CREATE_TITLE_NOTE', oils_i18n_gettext( 85, 
664     'Allow a user to create a new title note', 'ppl', 'description' )),
665  ( 86, 'DELETE_COPY_NOTE', oils_i18n_gettext( 86, 
666     'Allow a user to delete another user''s copy notes', 'ppl', 'description' )),
667  ( 87, 'DELETE_VOLUME_NOTE', oils_i18n_gettext( 87, 
668     'Allow a user to delete another user''s volume note', 'ppl', 'description' )),
669  ( 88, 'DELETE_TITLE_NOTE', oils_i18n_gettext( 88, 
670     'Allow a user to delete another user''s title note', 'ppl', 'description' )),
671  ( 89, 'UPDATE_CONTAINER', oils_i18n_gettext( 89, 
672     'Allow a user to update another user''s container', 'ppl', 'description' )),
673  ( 90, 'CREATE_MY_CONTAINER', oils_i18n_gettext( 90, 
674     'Allow a user to create a container for themselves', 'ppl', 'description' )),
675  ( 91, 'VIEW_HOLD_NOTIFICATION', oils_i18n_gettext( 91, 
676     'Allow a user to view notifications attached to a hold', 'ppl', 'description' )),
677  ( 92, 'CREATE_HOLD_NOTIFICATION', oils_i18n_gettext( 92, 
678     'Allow a user to create new hold notifications', 'ppl', 'description' )),
679  ( 93, 'UPDATE_ORG_SETTING', oils_i18n_gettext( 93, 
680     'Allow a user to update an organization unit setting', 'ppl', 'description' )),
681  ( 94, 'OFFLINE_UPLOAD', oils_i18n_gettext( 94, 
682     'Allow a user to upload an offline script', 'ppl', 'description' )),
683  ( 95, 'OFFLINE_VIEW', oils_i18n_gettext( 95, 
684     'Allow a user to view uploaded offline script information', 'ppl', 'description' )),
685  ( 96, 'OFFLINE_EXECUTE', oils_i18n_gettext( 96, 
686     'Allow a user to execute an offline script batch', 'ppl', 'description' )),
687  ( 97, 'CIRC_OVERRIDE_DUE_DATE', oils_i18n_gettext( 97, 
688     'Allow a user to change the due date on an item to any date', 'ppl', 'description' )),
689  ( 98, 'CIRC_PERMIT_OVERRIDE', oils_i18n_gettext( 98, 
690     'Allow a user to bypass the circulation permit call for check out', 'ppl', 'description' )),
691  ( 99, 'COPY_IS_REFERENCE.override', oils_i18n_gettext( 99, 
692     'Allow a user to override the copy_is_reference event', 'ppl', 'description' )),
693  ( 100, 'VOID_BILLING', oils_i18n_gettext( 100, 
694     'Allow a user to void a bill', 'ppl', 'description' )),
695  ( 101, 'CIRC_CLAIMS_RETURNED.override', oils_i18n_gettext( 101, 
696     'Allow a user to check in or check out an item that has a status of ''claims returned''', 'ppl', 'description' )),
697  ( 102, 'COPY_BAD_STATUS.override', oils_i18n_gettext( 102, 
698     'Allow a user to check out an item in a non-circulatable status', 'ppl', 'description' )),
699  ( 103, 'COPY_ALERT_MESSAGE.override', oils_i18n_gettext( 103, 
700     'Allow a user to check in/out an item that has an alert message', 'ppl', 'description' )),
701  ( 104, 'COPY_STATUS_LOST.override', oils_i18n_gettext( 104, 
702     'Allow a user to remove the lost status from a copy', 'ppl', 'description' )),
703  ( 105, 'COPY_STATUS_MISSING.override', oils_i18n_gettext( 105, 
704     'Allow a user to change the missing status on a copy', 'ppl', 'description' )),
705  ( 106, 'ABORT_TRANSIT', oils_i18n_gettext( 106, 
706     'Allow a user to abort a copy transit if the user is at the transit destination or source', 'ppl', 'description' )),
707  ( 107, 'ABORT_REMOTE_TRANSIT', oils_i18n_gettext( 107, 
708     'Allow a user to abort a copy transit if the user is not at the transit source or dest', 'ppl', 'description' )),
709  ( 108, 'VIEW_ZIP_DATA', oils_i18n_gettext( 108, 
710     'Allow a user to query the ZIP code data method', 'ppl', 'description' )),
711  ( 109, 'CANCEL_HOLDS', oils_i18n_gettext( 109, 
712     'Allow a user to cancel holds', 'ppl', 'description' )),
713  ( 110, 'CREATE_DUPLICATE_HOLDS', oils_i18n_gettext( 110, 
714     'Allow a user to create duplicate holds (two or more holds on the same title)', 'ppl', 'description' )),
715  ( 111, 'actor.org_unit.closed_date.delete', oils_i18n_gettext( 111, 
716     'Allow a user to remove a closed date interval for a given location', 'ppl', 'description' )),
717  ( 112, 'actor.org_unit.closed_date.update', oils_i18n_gettext( 112, 
718     'Allow a user to update a closed date interval for a given location', 'ppl', 'description' )),
719  ( 113, 'actor.org_unit.closed_date.create', oils_i18n_gettext( 113, 
720     'Allow a user to create a new closed date for a location', 'ppl', 'description' )),
721  ( 114, 'DELETE_NON_CAT_TYPE', oils_i18n_gettext( 114, 
722     'Allow a user to delete a non cataloged type', 'ppl', 'description' )),
723  ( 115, 'money.collections_tracker.create', oils_i18n_gettext( 115, 
724     'Allow a user to put someone into collections', 'ppl', 'description' )),
725  ( 116, 'money.collections_tracker.delete', oils_i18n_gettext( 116, 
726     'Allow a user to remove someone from collections', 'ppl', 'description' )),
727  ( 117, 'BAR_PATRON', oils_i18n_gettext( 117, 
728     'Allow a user to bar a patron', 'ppl', 'description' )),
729  ( 118, 'UNBAR_PATRON', oils_i18n_gettext( 118, 
730     'Allow a user to un-bar a patron', 'ppl', 'description' )),
731  ( 119, 'DELETE_WORKSTATION', oils_i18n_gettext( 119, 
732     'Allow a user to remove an existing workstation so a new one can replace it', 'ppl', 'description' )),
733  ( 120, 'group_application.user', oils_i18n_gettext( 120, 
734     'Allow a user to add/remove users to/from the "User" group', 'ppl', 'description' )),
735  ( 121, 'group_application.user.patron', oils_i18n_gettext( 121, 
736     'Allow a user to add/remove users to/from the "Patron" group', 'ppl', 'description' )),
737  ( 122, 'group_application.user.staff', oils_i18n_gettext( 122, 
738     'Allow a user to add/remove users to/from the "Staff" group', 'ppl', 'description' )),
739  ( 123, 'group_application.user.staff.circ', oils_i18n_gettext( 123, 
740     'Allow a user to add/remove users to/from the "Circulator" group', 'ppl', 'description' )),
741  ( 124, 'group_application.user.staff.cat', oils_i18n_gettext( 124, 
742     'Allow a user to add/remove users to/from the "Cataloger" group', 'ppl', 'description' )),
743  ( 125, 'group_application.user.staff.admin.global_admin', oils_i18n_gettext( 125, 
744     'Allow a user to add/remove users to/from the "GlobalAdmin" group', 'ppl', 'description' )),
745  ( 126, 'group_application.user.staff.admin.local_admin', oils_i18n_gettext( 126, 
746     'Allow a user to add/remove users to/from the "LocalAdmin" group', 'ppl', 'description' )),
747  ( 127, 'group_application.user.staff.admin.lib_manager', oils_i18n_gettext( 127, 
748     'Allow a user to add/remove users to/from the "LibraryManager" group', 'ppl', 'description' )),
749  ( 128, 'group_application.user.staff.cat.cat1', oils_i18n_gettext( 128, 
750     'Allow a user to add/remove users to/from the "Cat1" group', 'ppl', 'description' )),
751  ( 129, 'group_application.user.staff.supercat', oils_i18n_gettext( 129, 
752     'Allow a user to add/remove users to/from the "Supercat" group', 'ppl', 'description' )),
753  ( 130, 'group_application.user.sip_client', oils_i18n_gettext( 130, 
754     'Allow a user to add/remove users to/from the "SIP-Client" group', 'ppl', 'description' )),
755  ( 131, 'group_application.user.vendor', oils_i18n_gettext( 131, 
756     'Allow a user to add/remove users to/from the "Vendor" group', 'ppl', 'description' )),
757  ( 132, 'ITEM_AGE_PROTECTED.override', oils_i18n_gettext( 132, 
758     'Allow a user to place a hold on an age-protected item', 'ppl', 'description' )),
759  ( 133, 'MAX_RENEWALS_REACHED.override', oils_i18n_gettext( 133, 
760     'Allow a user to renew an item past the maximum renewal count', 'ppl', 'description' )),
761  ( 134, 'PATRON_EXCEEDS_CHECKOUT_COUNT.override', oils_i18n_gettext( 134, 
762     'Allow staff to override checkout count failure', 'ppl', 'description' )),
763  ( 135, 'PATRON_EXCEEDS_OVERDUE_COUNT.override', oils_i18n_gettext( 135, 
764     'Allow staff to override overdue count failure', 'ppl', 'description' )),
765  ( 136, 'PATRON_EXCEEDS_FINES.override', oils_i18n_gettext( 136, 
766     'Allow staff to override fine amount checkout failure', 'ppl', 'description' )),
767  ( 137, 'CIRC_EXCEEDS_COPY_RANGE.override', oils_i18n_gettext( 137, 
768     'Allow staff to override circulation copy range failure', 'ppl', 'description' )),
769  ( 138, 'ITEM_ON_HOLDS_SHELF.override', oils_i18n_gettext( 138, 
770     'Allow staff to override item on holds shelf failure', 'ppl', 'description' )),
771  ( 139, 'COPY_NOT_AVAILABLE.override', oils_i18n_gettext( 139, 
772     'Allow staff to force checkout of Missing/Lost type items', 'ppl', 'description' )),
773  ( 140, 'HOLD_EXISTS.override', oils_i18n_gettext( 140, 
774     'Allow a user to place multiple holds on a single title', 'ppl', 'description' )),
775  ( 141, 'RUN_REPORTS', oils_i18n_gettext( 141, 
776     'Allow a user to run reports', 'ppl', 'description' )),
777  ( 142, 'SHARE_REPORT_FOLDER', oils_i18n_gettext( 142, 
778     'Allow a user to share report his own folders', 'ppl', 'description' )),
779  ( 143, 'VIEW_REPORT_OUTPUT', oils_i18n_gettext( 143, 
780     'Allow a user to view report output', 'ppl', 'description' )),
781  ( 144, 'COPY_CIRC_NOT_ALLOWED.override', oils_i18n_gettext( 144, 
782     'Allow a user to checkout an item that is marked as non-circ', 'ppl', 'description' )),
783  ( 145, 'DELETE_CONTAINER_ITEM', oils_i18n_gettext( 145, 
784     'Allow a user to delete an item out of another user''s container', 'ppl', 'description' )),
785  ( 146, 'ASSIGN_WORK_ORG_UNIT', oils_i18n_gettext( 146, 
786     'Allow a staff member to define where another staff member has their permissions', 'ppl', 'description' )),
787  ( 147, 'CREATE_FUNDING_SOURCE', oils_i18n_gettext( 147, 
788     'Allow a user to create a new funding source', 'ppl', 'description' )),
789  ( 148, 'DELETE_FUNDING_SOURCE', oils_i18n_gettext( 148, 
790     'Allow a user to delete a funding source', 'ppl', 'description' )),
791  ( 149, 'VIEW_FUNDING_SOURCE', oils_i18n_gettext( 149, 
792     'Allow a user to view a funding source', 'ppl', 'description' )),
793  ( 150, 'UPDATE_FUNDING_SOURCE', oils_i18n_gettext( 150, 
794     'Allow a user to update a funding source', 'ppl', 'description' )),
795  ( 151, 'CREATE_FUND', oils_i18n_gettext( 151, 
796     'Allow a user to create a new fund', 'ppl', 'description' )),
797  ( 152, 'DELETE_FUND', oils_i18n_gettext( 152, 
798     'Allow a user to delete a fund', 'ppl', 'description' )),
799  ( 153, 'VIEW_FUND', oils_i18n_gettext( 153, 
800     'Allow a user to view a fund', 'ppl', 'description' )),
801  ( 154, 'UPDATE_FUND', oils_i18n_gettext( 154, 
802     'Allow a user to update a fund', 'ppl', 'description' )),
803  ( 155, 'CREATE_FUND_ALLOCATION', oils_i18n_gettext( 155, 
804     'Allow a user to create a new fund allocation', 'ppl', 'description' )),
805  ( 156, 'DELETE_FUND_ALLOCATION', oils_i18n_gettext( 156, 
806     'Allow a user to delete a fund allocation', 'ppl', 'description' )),
807  ( 157, 'VIEW_FUND_ALLOCATION', oils_i18n_gettext( 157, 
808     'Allow a user to view a fund allocation', 'ppl', 'description' )),
809  ( 158, 'UPDATE_FUND_ALLOCATION', oils_i18n_gettext( 158, 
810     'Allow a user to update a fund allocation', 'ppl', 'description' )),
811  ( 159, 'GENERAL_ACQ', oils_i18n_gettext( 159, 
812     'Lowest level permission required to access the ACQ interface', 'ppl', 'description' )),
813  ( 160, 'CREATE_PROVIDER', oils_i18n_gettext( 160, 
814     'Allow a user to create a new provider', 'ppl', 'description' )),
815  ( 161, 'DELETE_PROVIDER', oils_i18n_gettext( 161, 
816     'Allow a user to delate a provider', 'ppl', 'description' )),
817  ( 162, 'VIEW_PROVIDER', oils_i18n_gettext( 162, 
818     'Allow a user to view a provider', 'ppl', 'description' )),
819  ( 163, 'UPDATE_PROVIDER', oils_i18n_gettext( 163, 
820     'Allow a user to update a provider', 'ppl', 'description' )),
821  ( 164, 'ADMIN_FUNDING_SOURCE', oils_i18n_gettext( 164, 
822     'Allow a user to create/view/update/delete a funding source', 'ppl', 'description' )),
823  ( 165, 'ADMIN_FUND', oils_i18n_gettext( 165, 
824     '(Deprecated) Allow a user to create/view/update/delete a fund', 'ppl', 'description' )),
825  ( 166, 'MANAGE_FUNDING_SOURCE', oils_i18n_gettext( 166, 
826     'Allow a user to view/credit/debit a funding source', 'ppl', 'description' )),
827  ( 167, 'MANAGE_FUND', oils_i18n_gettext( 167, 
828     'Allow a user to view/credit/debit a fund', 'ppl', 'description' )),
829  ( 168, 'CREATE_PICKLIST', oils_i18n_gettext( 168, 
830     'Allows a user to create a picklist', 'ppl', 'description' )),
831  ( 169, 'ADMIN_PROVIDER', oils_i18n_gettext( 169, 
832     'Allow a user to create/view/update/delete a provider', 'ppl', 'description' )),
833  ( 170, 'MANAGE_PROVIDER', oils_i18n_gettext( 170, 
834     'Allow a user to view and purchase from a provider', 'ppl', 'description' )),
835  ( 171, 'VIEW_PICKLIST', oils_i18n_gettext( 171, 
836     'Allow a user to view another users picklist', 'ppl', 'description' )),
837  ( 172, 'DELETE_RECORD', oils_i18n_gettext( 172, 
838     'Allow a staff member to directly remove a bibliographic record', 'ppl', 'description' )),
839  ( 173, 'ADMIN_CURRENCY_TYPE', oils_i18n_gettext( 173, 
840     'Allow a user to create/view/update/delete a currency_type', 'ppl', 'description' )),
841  ( 174, 'MARK_BAD_DEBT', oils_i18n_gettext( 174, 
842     'Allow a user to mark a transaction as bad (unrecoverable) debt', 'ppl', 'description' )),
843  ( 175, 'VIEW_BILLING_TYPE', oils_i18n_gettext( 175, 
844     'Allow a user to view billing types', 'ppl', 'description' )),
845  ( 176, 'MARK_ITEM_AVAILABLE', oils_i18n_gettext( 176, 
846     'Allow a user to mark an item status as ''available''', 'ppl', 'description' )),
847  ( 177, 'MARK_ITEM_CHECKED_OUT', oils_i18n_gettext( 177, 
848     'Allow a user to mark an item status as ''checked out''', 'ppl', 'description' )),
849  ( 178, 'MARK_ITEM_BINDERY', oils_i18n_gettext( 178, 
850     'Allow a user to mark an item status as ''bindery''', 'ppl', 'description' )),
851  ( 179, 'MARK_ITEM_LOST', oils_i18n_gettext( 179, 
852     'Allow a user to mark an item status as ''lost''', 'ppl', 'description' )),
853  ( 180, 'MARK_ITEM_MISSING', oils_i18n_gettext( 180, 
854     'Allow a user to mark an item status as ''missing''', 'ppl', 'description' )),
855  ( 181, 'MARK_ITEM_IN_PROCESS', oils_i18n_gettext( 181, 
856     'Allow a user to mark an item status as ''in process''', 'ppl', 'description' )),
857  ( 182, 'MARK_ITEM_IN_TRANSIT', oils_i18n_gettext( 182, 
858     'Allow a user to mark an item status as ''in transit''', 'ppl', 'description' )),
859  ( 183, 'MARK_ITEM_RESHELVING', oils_i18n_gettext( 183, 
860     'Allow a user to mark an item status as ''reshelving''', 'ppl', 'description' )),
861  ( 184, 'MARK_ITEM_ON_HOLDS_SHELF', oils_i18n_gettext( 184, 
862     'Allow a user to mark an item status as ''on holds shelf''', 'ppl', 'description' )),
863  ( 185, 'MARK_ITEM_ON_ORDER', oils_i18n_gettext( 185, 
864     'Allow a user to mark an item status as ''on order''', 'ppl', 'description' )),
865  ( 186, 'MARK_ITEM_ILL', oils_i18n_gettext( 186, 
866     'Allow a user to mark an item status as ''inter-library loan''', 'ppl', 'description' )),
867  ( 187, 'group_application.user.staff.acq', oils_i18n_gettext( 187, 
868     'Allows a user to add/remove/edit users in the "ACQ" group', 'ppl', 'description' )),
869  ( 188, 'CREATE_PURCHASE_ORDER', oils_i18n_gettext( 188, 
870     'Allows a user to create a purchase order', 'ppl', 'description' )),
871  ( 189, 'VIEW_PURCHASE_ORDER', oils_i18n_gettext( 189, 
872     'Allows a user to view a purchase order', 'ppl', 'description' )),
873  ( 190, 'IMPORT_ACQ_LINEITEM_BIB_RECORD', oils_i18n_gettext( 190, 
874     'Allows a user to import a bib record from the acq staging area (on-order record) into the ILS bib data set', 'ppl', 'description' )),
875  ( 191, 'RECEIVE_PURCHASE_ORDER', oils_i18n_gettext( 191, 
876     'Allows a user to mark a purchase order, lineitem, or individual copy as received', 'ppl', 'description' )),
877  ( 192, 'VIEW_ORG_SETTINGS', oils_i18n_gettext( 192, 
878     'Allows a user to view all org settings at the specified level', 'ppl', 'description' )),
879  ( 193, 'CREATE_MFHD_RECORD', oils_i18n_gettext( 193, 
880     'Allows a user to create a new MFHD record', 'ppl', 'description' )),
881  ( 194, 'UPDATE_MFHD_RECORD', oils_i18n_gettext( 194, 
882     'Allows a user to update an MFHD record', 'ppl', 'description' )),
883  ( 195, 'DELETE_MFHD_RECORD', oils_i18n_gettext( 195, 
884     'Allows a user to delete an MFHD record', 'ppl', 'description' )),
885  ( 196, 'ADMIN_ACQ_FUND', oils_i18n_gettext( 196, 
886     'Allow a user to create/view/update/delete a fund', 'ppl', 'description' )),
887  ( 197, 'group_application.user.staff.acq_admin', oils_i18n_gettext( 197, 
888     'Allows a user to add/remove/edit users in the "Acquisitions Administrators" group', 'ppl', 'description' )),
889  ( 198, 'SET_CIRC_CLAIMS_RETURNED.override', oils_i18n_gettext( 198, 
890     'Allows staff to override the max claims returned value for a patron', 'ppl', 'description' )),
891  ( 199, 'UPDATE_PATRON_CLAIM_RETURN_COUNT', oils_i18n_gettext( 199, 
892     'Allows staff to manually change a patron''s claims returned count', 'ppl', 'description' )),
893  ( 200, 'UPDATE_BILL_NOTE', oils_i18n_gettext( 200, 
894     'Allows staff to edit the note for a bill on a transaction', 'ppl', 'description' )),
895  ( 201, 'UPDATE_PAYMENT_NOTE', oils_i18n_gettext( 201, 
896     'Allows staff to edit the note for a payment on a transaction', 'ppl', 'description' )),
897  ( 202, 'UPDATE_PATRON_CLAIM_NEVER_CHECKED_OUT_COUNT', oils_i18n_gettext( 202, 
898     'Allows staff to manually change a patron''s claims never checkout out count', 'ppl', 'description' )),
899  ( 203, 'ADMIN_COPY_LOCATION_ORDER', oils_i18n_gettext( 203, 
900     'Allow a user to create/view/update/delete a copy location order', 'ppl', 'description' )),
901  ( 204, 'ASSIGN_GROUP_PERM', oils_i18n_gettext( 204, 
902     'ASSIGN_GROUP_PERM', 'ppl', 'description' )),
903  ( 205, 'CREATE_AUDIENCE', oils_i18n_gettext( 205, 
904     'CREATE_AUDIENCE', 'ppl', 'description' )),
905  ( 206, 'CREATE_BIB_LEVEL', oils_i18n_gettext( 206, 
906     'CREATE_BIB_LEVEL', 'ppl', 'description' )),
907  ( 207, 'CREATE_CIRC_DURATION', oils_i18n_gettext( 207, 
908     'CREATE_CIRC_DURATION', 'ppl', 'description' )),
909  ( 208, 'CREATE_CIRC_MOD', oils_i18n_gettext( 208, 
910     'CREATE_CIRC_MOD', 'ppl', 'description' )),
911  ( 209, 'CREATE_COPY_STATUS', oils_i18n_gettext( 209, 
912     'CREATE_COPY_STATUS', 'ppl', 'description' )),
913  ( 210, 'CREATE_HOURS_OF_OPERATION', oils_i18n_gettext( 210, 
914     'CREATE_HOURS_OF_OPERATION', 'ppl', 'description' )),
915  ( 211, 'CREATE_ITEM_FORM', oils_i18n_gettext( 211, 
916     'CREATE_ITEM_FORM', 'ppl', 'description' )),
917  ( 212, 'CREATE_ITEM_TYPE', oils_i18n_gettext( 212, 
918     'CREATE_ITEM_TYPE', 'ppl', 'description' )),
919  ( 213, 'CREATE_LANGUAGE', oils_i18n_gettext( 213, 
920     'CREATE_LANGUAGE', 'ppl', 'description' )),
921  ( 214, 'CREATE_LASSO', oils_i18n_gettext( 214, 
922     'CREATE_LASSO', 'ppl', 'description' )),
923  ( 215, 'CREATE_LASSO_MAP', oils_i18n_gettext( 215, 
924     'CREATE_LASSO_MAP', 'ppl', 'description' )),
925  ( 216, 'CREATE_LIT_FORM', oils_i18n_gettext( 216, 
926     'CREATE_LIT_FORM', 'ppl', 'description' )),
927  ( 217, 'CREATE_METABIB_FIELD', oils_i18n_gettext( 217, 
928     'CREATE_METABIB_FIELD', 'ppl', 'description' )),
929  ( 218, 'CREATE_NET_ACCESS_LEVEL', oils_i18n_gettext( 218, 
930     'CREATE_NET_ACCESS_LEVEL', 'ppl', 'description' )),
931  ( 219, 'CREATE_ORG_ADDRESS', oils_i18n_gettext( 219, 
932     'CREATE_ORG_ADDRESS', 'ppl', 'description' )),
933  ( 220, 'CREATE_ORG_TYPE', oils_i18n_gettext( 220, 
934     'CREATE_ORG_TYPE', 'ppl', 'description' )),
935  ( 221, 'CREATE_ORG_UNIT', oils_i18n_gettext( 221, 
936     'CREATE_ORG_UNIT', 'ppl', 'description' )),
937  ( 222, 'CREATE_ORG_UNIT_CLOSING', oils_i18n_gettext( 222, 
938     'CREATE_ORG_UNIT_CLOSING', 'ppl', 'description' )),
939  ( 223, 'CREATE_PERM', oils_i18n_gettext( 223, 
940     'CREATE_PERM', 'ppl', 'description' )),
941  ( 224, 'CREATE_RELEVANCE_ADJUSTMENT', oils_i18n_gettext( 224, 
942     'CREATE_RELEVANCE_ADJUSTMENT', 'ppl', 'description' )),
943  ( 225, 'CREATE_SURVEY', oils_i18n_gettext( 225, 
944     'CREATE_SURVEY', 'ppl', 'description' )),
945  ( 226, 'CREATE_VR_FORMAT', oils_i18n_gettext( 226, 
946     'CREATE_VR_FORMAT', 'ppl', 'description' )),
947  ( 227, 'CREATE_XML_TRANSFORM', oils_i18n_gettext( 227, 
948     'CREATE_XML_TRANSFORM', 'ppl', 'description' )),
949  ( 228, 'DELETE_AUDIENCE', oils_i18n_gettext( 228, 
950     'DELETE_AUDIENCE', 'ppl', 'description' )),
951  ( 229, 'DELETE_BIB_LEVEL', oils_i18n_gettext( 229, 
952     'DELETE_BIB_LEVEL', 'ppl', 'description' )),
953  ( 230, 'DELETE_CIRC_DURATION', oils_i18n_gettext( 230, 
954     'DELETE_CIRC_DURATION', 'ppl', 'description' )),
955  ( 231, 'DELETE_CIRC_MOD', oils_i18n_gettext( 231, 
956     'DELETE_CIRC_MOD', 'ppl', 'description' )),
957  ( 232, 'DELETE_COPY_STATUS', oils_i18n_gettext( 232, 
958     'DELETE_COPY_STATUS', 'ppl', 'description' )),
959  ( 233, 'DELETE_HOURS_OF_OPERATION', oils_i18n_gettext( 233, 
960     'DELETE_HOURS_OF_OPERATION', 'ppl', 'description' )),
961  ( 234, 'DELETE_ITEM_FORM', oils_i18n_gettext( 234, 
962     'DELETE_ITEM_FORM', 'ppl', 'description' )),
963  ( 235, 'DELETE_ITEM_TYPE', oils_i18n_gettext( 235, 
964     'DELETE_ITEM_TYPE', 'ppl', 'description' )),
965  ( 236, 'DELETE_LANGUAGE', oils_i18n_gettext( 236, 
966     'DELETE_LANGUAGE', 'ppl', 'description' )),
967  ( 237, 'DELETE_LASSO', oils_i18n_gettext( 237, 
968     'DELETE_LASSO', 'ppl', 'description' )),
969  ( 238, 'DELETE_LASSO_MAP', oils_i18n_gettext( 238, 
970     'DELETE_LASSO_MAP', 'ppl', 'description' )),
971  ( 239, 'DELETE_LIT_FORM', oils_i18n_gettext( 239, 
972     'DELETE_LIT_FORM', 'ppl', 'description' )),
973  ( 240, 'DELETE_METABIB_FIELD', oils_i18n_gettext( 240, 
974     'DELETE_METABIB_FIELD', 'ppl', 'description' )),
975  ( 241, 'DELETE_NET_ACCESS_LEVEL', oils_i18n_gettext( 241, 
976     'DELETE_NET_ACCESS_LEVEL', 'ppl', 'description' )),
977  ( 242, 'DELETE_ORG_ADDRESS', oils_i18n_gettext( 242, 
978     'DELETE_ORG_ADDRESS', 'ppl', 'description' )),
979  ( 243, 'DELETE_ORG_TYPE', oils_i18n_gettext( 243, 
980     'DELETE_ORG_TYPE', 'ppl', 'description' )),
981  ( 244, 'DELETE_ORG_UNIT', oils_i18n_gettext( 244, 
982     'DELETE_ORG_UNIT', 'ppl', 'description' )),
983  ( 245, 'DELETE_ORG_UNIT_CLOSING', oils_i18n_gettext( 245, 
984     'DELETE_ORG_UNIT_CLOSING', 'ppl', 'description' )),
985  ( 246, 'DELETE_PERM', oils_i18n_gettext( 246, 
986     'DELETE_PERM', 'ppl', 'description' )),
987  ( 247, 'DELETE_RELEVANCE_ADJUSTMENT', oils_i18n_gettext( 247, 
988     'DELETE_RELEVANCE_ADJUSTMENT', 'ppl', 'description' )),
989  ( 248, 'DELETE_SURVEY', oils_i18n_gettext( 248, 
990     'DELETE_SURVEY', 'ppl', 'description' )),
991  ( 249, 'DELETE_TRANSIT', oils_i18n_gettext( 249, 
992     'DELETE_TRANSIT', 'ppl', 'description' )),
993  ( 250, 'DELETE_VR_FORMAT', oils_i18n_gettext( 250, 
994     'DELETE_VR_FORMAT', 'ppl', 'description' )),
995  ( 251, 'DELETE_XML_TRANSFORM', oils_i18n_gettext( 251, 
996     'DELETE_XML_TRANSFORM', 'ppl', 'description' )),
997  ( 252, 'REMOVE_GROUP_PERM', oils_i18n_gettext( 252, 
998     'REMOVE_GROUP_PERM', 'ppl', 'description' )),
999  ( 253, 'TRANSIT_COPY', oils_i18n_gettext( 253, 
1000     'TRANSIT_COPY', 'ppl', 'description' )),
1001  ( 254, 'UPDATE_AUDIENCE', oils_i18n_gettext( 254, 
1002     'UPDATE_AUDIENCE', 'ppl', 'description' )),
1003  ( 255, 'UPDATE_BIB_LEVEL', oils_i18n_gettext( 255, 
1004     'UPDATE_BIB_LEVEL', 'ppl', 'description' )),
1005  ( 256, 'UPDATE_CIRC_DURATION', oils_i18n_gettext( 256, 
1006     'UPDATE_CIRC_DURATION', 'ppl', 'description' )),
1007  ( 257, 'UPDATE_CIRC_MOD', oils_i18n_gettext( 257, 
1008     'UPDATE_CIRC_MOD', 'ppl', 'description' )),
1009  ( 258, 'UPDATE_COPY_NOTE', oils_i18n_gettext( 258, 
1010     'UPDATE_COPY_NOTE', 'ppl', 'description' )),
1011  ( 259, 'UPDATE_COPY_STATUS', oils_i18n_gettext( 259, 
1012     'UPDATE_COPY_STATUS', 'ppl', 'description' )),
1013  ( 260, 'UPDATE_GROUP_PERM', oils_i18n_gettext( 260, 
1014     'UPDATE_GROUP_PERM', 'ppl', 'description' )),
1015  ( 261, 'UPDATE_HOURS_OF_OPERATION', oils_i18n_gettext( 261, 
1016     'UPDATE_HOURS_OF_OPERATION', 'ppl', 'description' )),
1017  ( 262, 'UPDATE_ITEM_FORM', oils_i18n_gettext( 262, 
1018     'UPDATE_ITEM_FORM', 'ppl', 'description' )),
1019  ( 263, 'UPDATE_ITEM_TYPE', oils_i18n_gettext( 263, 
1020     'UPDATE_ITEM_TYPE', 'ppl', 'description' )),
1021  ( 264, 'UPDATE_LANGUAGE', oils_i18n_gettext( 264, 
1022     'UPDATE_LANGUAGE', 'ppl', 'description' )),
1023  ( 265, 'UPDATE_LASSO', oils_i18n_gettext( 265, 
1024     'UPDATE_LASSO', 'ppl', 'description' )),
1025  ( 266, 'UPDATE_LASSO_MAP', oils_i18n_gettext( 266, 
1026     'UPDATE_LASSO_MAP', 'ppl', 'description' )),
1027  ( 267, 'UPDATE_LIT_FORM', oils_i18n_gettext( 267, 
1028     'UPDATE_LIT_FORM', 'ppl', 'description' )),
1029  ( 268, 'UPDATE_METABIB_FIELD', oils_i18n_gettext( 268, 
1030     'UPDATE_METABIB_FIELD', 'ppl', 'description' )),
1031  ( 269, 'UPDATE_NET_ACCESS_LEVEL', oils_i18n_gettext( 269, 
1032     'UPDATE_NET_ACCESS_LEVEL', 'ppl', 'description' )),
1033  ( 270, 'UPDATE_ORG_ADDRESS', oils_i18n_gettext( 270, 
1034     'UPDATE_ORG_ADDRESS', 'ppl', 'description' )),
1035  ( 271, 'UPDATE_ORG_TYPE', oils_i18n_gettext( 271, 
1036     'UPDATE_ORG_TYPE', 'ppl', 'description' )),
1037  ( 272, 'UPDATE_ORG_UNIT_CLOSING', oils_i18n_gettext( 272, 
1038     'UPDATE_ORG_UNIT_CLOSING', 'ppl', 'description' )),
1039  ( 273, 'UPDATE_PERM', oils_i18n_gettext( 273, 
1040     'UPDATE_PERM', 'ppl', 'description' )),
1041  ( 274, 'UPDATE_RELEVANCE_ADJUSTMENT', oils_i18n_gettext( 274, 
1042     'UPDATE_RELEVANCE_ADJUSTMENT', 'ppl', 'description' )),
1043  ( 275, 'UPDATE_SURVEY', oils_i18n_gettext( 275, 
1044     'UPDATE_SURVEY', 'ppl', 'description' )),
1045  ( 276, 'UPDATE_TRANSIT', oils_i18n_gettext( 276, 
1046     'UPDATE_TRANSIT', 'ppl', 'description' )),
1047  ( 277, 'UPDATE_VOLUME_NOTE', oils_i18n_gettext( 277, 
1048     'UPDATE_VOLUME_NOTE', 'ppl', 'description' )),
1049  ( 278, 'UPDATE_VR_FORMAT', oils_i18n_gettext( 278, 
1050     'UPDATE_VR_FORMAT', 'ppl', 'description' )),
1051  ( 279, 'UPDATE_XML_TRANSFORM', oils_i18n_gettext( 279, 
1052     'UPDATE_XML_TRANSFORM', 'ppl', 'description' )),
1053  ( 280, 'MERGE_BIB_RECORDS', oils_i18n_gettext( 280, 
1054     'MERGE_BIB_RECORDS', 'ppl', 'description' )),
1055  ( 281, 'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF', oils_i18n_gettext( 281, 
1056     'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF', 'ppl', 'description' )),
1057  ( 282, 'CREATE_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 282, 
1058     'CREATE_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1059  ( 283, 'CREATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 283, 
1060     'CREATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1061  ( 284, 'CREATE_AUTHORITY_IMPORT_QUEUE', oils_i18n_gettext( 284, 
1062     'CREATE_AUTHORITY_IMPORT_QUEUE', 'ppl', 'description' )),
1063  ( 285, 'CREATE_AUTHORITY_RECORD_NOTE', oils_i18n_gettext( 285, 
1064     'CREATE_AUTHORITY_RECORD_NOTE', 'ppl', 'description' )),
1065  ( 286, 'CREATE_BIB_IMPORT_FIELD_DEF', oils_i18n_gettext( 286, 
1066     'CREATE_BIB_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1067  ( 287, 'CREATE_BIB_IMPORT_QUEUE', oils_i18n_gettext( 287, 
1068     'CREATE_BIB_IMPORT_QUEUE', 'ppl', 'description' )),
1069  ( 288, 'CREATE_LOCALE', oils_i18n_gettext( 288, 
1070     'CREATE_LOCALE', 'ppl', 'description' )),
1071  ( 289, 'CREATE_MARC_CODE', oils_i18n_gettext( 289, 
1072     'CREATE_MARC_CODE', 'ppl', 'description' )),
1073  ( 290, 'CREATE_TRANSLATION', oils_i18n_gettext( 290, 
1074     'CREATE_TRANSLATION', 'ppl', 'description' )),
1075  ( 291, 'DELETE_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 291, 
1076     'DELETE_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1077  ( 292, 'DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 292, 
1078     'DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1079  ( 293, 'DELETE_AUTHORITY_IMPORT_QUEUE', oils_i18n_gettext( 293, 
1080     'DELETE_AUTHORITY_IMPORT_QUEUE', 'ppl', 'description' )),
1081  ( 294, 'DELETE_AUTHORITY_RECORD_NOTE', oils_i18n_gettext( 294, 
1082     'DELETE_AUTHORITY_RECORD_NOTE', 'ppl', 'description' )),
1083  ( 295, 'DELETE_BIB_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 295, 
1084     'DELETE_BIB_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1085  ( 296, 'DELETE_BIB_IMPORT_QUEUE', oils_i18n_gettext( 296, 
1086     'DELETE_BIB_IMPORT_QUEUE', 'ppl', 'description' )),
1087  ( 297, 'DELETE_LOCALE', oils_i18n_gettext( 297, 
1088     'DELETE_LOCALE', 'ppl', 'description' )),
1089  ( 298, 'DELETE_MARC_CODE', oils_i18n_gettext( 298, 
1090     'DELETE_MARC_CODE', 'ppl', 'description' )),
1091  ( 299, 'DELETE_TRANSLATION', oils_i18n_gettext( 299, 
1092     'DELETE_TRANSLATION', 'ppl', 'description' )),
1093  ( 300, 'UPDATE_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 300, 
1094     'UPDATE_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1095  ( 301, 'UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 301, 
1096     'UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1097  ( 302, 'UPDATE_AUTHORITY_IMPORT_QUEUE', oils_i18n_gettext( 302, 
1098     'UPDATE_AUTHORITY_IMPORT_QUEUE', 'ppl', 'description' )),
1099  ( 303, 'UPDATE_AUTHORITY_RECORD_NOTE', oils_i18n_gettext( 303, 
1100     'UPDATE_AUTHORITY_RECORD_NOTE', 'ppl', 'description' )),
1101  ( 304, 'UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 304, 
1102     'UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1103  ( 305, 'UPDATE_BIB_IMPORT_QUEUE', oils_i18n_gettext( 305, 
1104     'UPDATE_BIB_IMPORT_QUEUE', 'ppl', 'description' )),
1105  ( 306, 'UPDATE_LOCALE', oils_i18n_gettext( 306, 
1106     'UPDATE_LOCALE', 'ppl', 'description' )),
1107  ( 307, 'UPDATE_MARC_CODE', oils_i18n_gettext( 307, 
1108     'UPDATE_MARC_CODE', 'ppl', 'description' )),
1109  ( 308, 'UPDATE_TRANSLATION', oils_i18n_gettext( 308, 
1110     'UPDATE_TRANSLATION', 'ppl', 'description' )),
1111  ( 309, 'VIEW_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 309, 
1112     'VIEW_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1113  ( 310, 'VIEW_AUTHORITY_RECORD_NOTES', oils_i18n_gettext( 310, 
1114     'VIEW_AUTHORITY_RECORD_NOTES', 'ppl', 'description' )),
1115  ( 311, 'CREATE_IMPORT_ITEM', oils_i18n_gettext( 311, 
1116     'CREATE_IMPORT_ITEM', 'ppl', 'description' )),
1117  ( 312, 'CREATE_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 312, 
1118     'CREATE_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1119  ( 313, 'CREATE_IMPORT_TRASH_FIELD', oils_i18n_gettext( 313, 
1120     'CREATE_IMPORT_TRASH_FIELD', 'ppl', 'description' )),
1121  ( 314, 'DELETE_IMPORT_ITEM', oils_i18n_gettext( 314, 
1122     'DELETE_IMPORT_ITEM', 'ppl', 'description' )),
1123  ( 315, 'DELETE_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 315, 
1124     'DELETE_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1125  ( 316, 'DELETE_IMPORT_TRASH_FIELD', oils_i18n_gettext( 316, 
1126     'DELETE_IMPORT_TRASH_FIELD', 'ppl', 'description' )),
1127  ( 317, 'UPDATE_IMPORT_ITEM', oils_i18n_gettext( 317, 
1128     'UPDATE_IMPORT_ITEM', 'ppl', 'description' )),
1129  ( 318, 'UPDATE_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 318, 
1130     'UPDATE_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1131  ( 319, 'UPDATE_IMPORT_TRASH_FIELD', oils_i18n_gettext( 319, 
1132     'UPDATE_IMPORT_TRASH_FIELD', 'ppl', 'description' )),
1133  ( 320, 'UPDATE_ORG_UNIT_SETTING_ALL', oils_i18n_gettext( 320, 
1134     'UPDATE_ORG_UNIT_SETTING_ALL', 'ppl', 'description' )),
1135  ( 321, 'UPDATE_ORG_UNIT_SETTING.circ.lost_materials_processing_fee', oils_i18n_gettext( 321, 
1136     'UPDATE_ORG_UNIT_SETTING.circ.lost_materials_processing_fee', 'ppl', 'description' )),
1137  ( 322, 'UPDATE_ORG_UNIT_SETTING.cat.default_item_price', oils_i18n_gettext( 322, 
1138     'UPDATE_ORG_UNIT_SETTING.cat.default_item_price', 'ppl', 'description' )),
1139  ( 323, 'UPDATE_ORG_UNIT_SETTING.auth.opac_timeout', oils_i18n_gettext( 323, 
1140     'UPDATE_ORG_UNIT_SETTING.auth.opac_timeout', 'ppl', 'description' )),
1141  ( 324, 'UPDATE_ORG_UNIT_SETTING.auth.staff_timeout', oils_i18n_gettext( 324, 
1142     'UPDATE_ORG_UNIT_SETTING.auth.staff_timeout', 'ppl', 'description' )),
1143  ( 325, 'UPDATE_ORG_UNIT_SETTING.org.bounced_emails', oils_i18n_gettext( 325, 
1144     'UPDATE_ORG_UNIT_SETTING.org.bounced_emails', 'ppl', 'description' )),
1145  ( 326, 'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_alert_interval', oils_i18n_gettext( 326, 
1146     'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_alert_interval', 'ppl', 'description' )),
1147  ( 327, 'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_interval', oils_i18n_gettext( 327, 
1148     'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_interval', 'ppl', 'description' )),
1149  ( 328, 'UPDATE_ORG_UNIT_SETTING.credit.payments.allow', oils_i18n_gettext( 328, 
1150     'UPDATE_ORG_UNIT_SETTING.credit.payments.allow', 'ppl', 'description' )),
1151  ( 329, 'UPDATE_ORG_UNIT_SETTING.circ.void_overdue_on_lost', oils_i18n_gettext( 329, 
1152     'UPDATE_ORG_UNIT_SETTING.circ.void_overdue_on_lost', 'ppl', 'description' )),
1153  ( 330, 'UPDATE_ORG_UNIT_SETTING.circ.hold_stalling.soft', oils_i18n_gettext( 330, 
1154     'UPDATE_ORG_UNIT_SETTING.circ.hold_stalling.soft', 'ppl', 'description' )),
1155  ( 331, 'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.hard', oils_i18n_gettext( 331, 
1156     'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.hard', 'ppl', 'description' )),
1157  ( 332, 'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.soft', oils_i18n_gettext( 332, 
1158     'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.soft', 'ppl', 'description' )),
1159  ( 333, 'UPDATE_ORG_UNIT_SETTING.opac.barcode_regex', oils_i18n_gettext( 333, 
1160     'UPDATE_ORG_UNIT_SETTING.opac.barcode_regex', 'ppl', 'description' )),
1161  ( 334, 'UPDATE_ORG_UNIT_SETTING.global.password_regex', oils_i18n_gettext( 334, 
1162     'UPDATE_ORG_UNIT_SETTING.global.password_regex', 'ppl', 'description' )),
1163  ( 335, 'UPDATE_ORG_UNIT_SETTING.circ.item_checkout_history.max', oils_i18n_gettext( 335, 
1164     'UPDATE_ORG_UNIT_SETTING.circ.item_checkout_history.max', 'ppl', 'description' )),
1165  ( 336, 'UPDATE_ORG_UNIT_SETTING.circ.reshelving_complete.interval', oils_i18n_gettext( 336, 
1166     'UPDATE_ORG_UNIT_SETTING.circ.reshelving_complete.interval', 'ppl', 'description' )),
1167  ( 337, 'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.patron_login_timeout', oils_i18n_gettext( 337, 
1168     'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.patron_login_timeout', 'ppl', 'description' )),
1169  ( 338, 'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.alert_on_checkout_event', oils_i18n_gettext( 338, 
1170     'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.alert_on_checkout_event', 'ppl', 'description' )),
1171  ( 339, 'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.require_patron_password', oils_i18n_gettext( 339, 
1172     'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.require_patron_password', 'ppl', 'description' )),
1173  ( 340, 'UPDATE_ORG_UNIT_SETTING.global.juvenile_age_threshold', oils_i18n_gettext( 340, 
1174     'UPDATE_ORG_UNIT_SETTING.global.juvenile_age_threshold', 'ppl', 'description' )),
1175  ( 341, 'UPDATE_ORG_UNIT_SETTING.cat.bib.keep_on_empty', oils_i18n_gettext( 341, 
1176     'UPDATE_ORG_UNIT_SETTING.cat.bib.keep_on_empty', 'ppl', 'description' )),
1177  ( 342, 'UPDATE_ORG_UNIT_SETTING.cat.bib.alert_on_empty', oils_i18n_gettext( 342, 
1178     'UPDATE_ORG_UNIT_SETTING.cat.bib.alert_on_empty', 'ppl', 'description' )),
1179  ( 343, 'UPDATE_ORG_UNIT_SETTING.patron.password.use_phone', oils_i18n_gettext( 343, 
1180     'UPDATE_ORG_UNIT_SETTING.patron.password.use_phone', 'ppl', 'description' )),
1181  ( 344, 'HOLD_ITEM_CHECKED_OUT.override', oils_i18n_gettext( 344, 
1182     'Allows a user to place a hold on an item that they already have checked out', 'ppl', 'description' )),
1183  ( 345, 'ADMIN_ACQ_CANCEL_CAUSE', oils_i18n_gettext( 345, 
1184     'Allow a user to create/update/delete reasons for order cancellations', 'ppl', 'description' )),
1185  ( 346, 'ACQ_XFER_MANUAL_DFUND_AMOUNT', oils_i18n_gettext( 346, 
1186     'Allow a user to transfer different amounts of money out of one fund and into another', 'ppl', 'description' )),
1187  ( 347, 'OVERRIDE_HOLD_HAS_LOCAL_COPY', oils_i18n_gettext( 347, 
1188     'Allow a user to override the circ.holds.hold_has_copy_at.block setting', 'ppl', 'description' )),
1189  ( 348, 'UPDATE_PICKUP_LIB_FROM_TRANSIT', oils_i18n_gettext( 348, 
1190     'Allow a user to change the pickup and transit destination for a captured hold item already in transit', 'ppl', 'description' )),
1191  ( 349, 'COPY_NEEDED_FOR_HOLD.override', oils_i18n_gettext( 349, 
1192     'Allow a user to force renewal of an item that could fulfill a hold request', 'ppl', 'description' )),
1193  ( 350, 'MERGE_AUTH_RECORDS', oils_i18n_gettext( 350, 
1194     'Allow a user to merge authority records together', 'ppl', 'description' )),
1195  ( 351, 'ALLOW_ALT_TCN', oils_i18n_gettext( 351, 
1196     'Allows staff to import a record using an alternate TCN to avoid conflicts', 'ppl', 'description' )),
1197  ( 352, 'ADMIN_TRIGGER_EVENT_DEF', oils_i18n_gettext( 352, 
1198     'Allow a user to administer trigger event definitions', 'ppl', 'description' )),
1199  ( 353, 'ADMIN_TRIGGER_CLEANUP', oils_i18n_gettext( 353, 
1200     'Allow a user to create, delete, and update trigger cleanup entries', 'ppl', 'description' )),
1201  ( 354, 'CREATE_TRIGGER_CLEANUP', oils_i18n_gettext( 354, 
1202     'Allow a user to create trigger cleanup entries', 'ppl', 'description' )),
1203  ( 355, 'DELETE_TRIGGER_CLEANUP', oils_i18n_gettext( 355, 
1204     'Allow a user to delete trigger cleanup entries', 'ppl', 'description' )),
1205  ( 356, 'UPDATE_TRIGGER_CLEANUP', oils_i18n_gettext( 356, 
1206     'Allow a user to update trigger cleanup entries', 'ppl', 'description' )),
1207  ( 357, 'CREATE_TRIGGER_EVENT_DEF', oils_i18n_gettext( 357, 
1208     'Allow a user to create trigger event definitions', 'ppl', 'description' )),
1209  ( 358, 'DELETE_TRIGGER_EVENT_DEF', oils_i18n_gettext( 358, 
1210     'Allow a user to delete trigger event definitions', 'ppl', 'description' )),
1211  ( 359, 'UPDATE_TRIGGER_EVENT_DEF', oils_i18n_gettext( 359, 
1212     'Allow a user to update trigger event definitions', 'ppl', 'description' )),
1213  ( 360, 'VIEW_TRIGGER_EVENT_DEF', oils_i18n_gettext( 360, 
1214     'Allow a user to view trigger event definitions', 'ppl', 'description' )),
1215  ( 361, 'ADMIN_TRIGGER_HOOK', oils_i18n_gettext( 361, 
1216     'Allow a user to create, update, and delete trigger hooks', 'ppl', 'description' )),
1217  ( 362, 'CREATE_TRIGGER_HOOK', oils_i18n_gettext( 362, 
1218     'Allow a user to create trigger hooks', 'ppl', 'description' )),
1219  ( 363, 'DELETE_TRIGGER_HOOK', oils_i18n_gettext( 363, 
1220     'Allow a user to delete trigger hooks', 'ppl', 'description' )),
1221  ( 364, 'UPDATE_TRIGGER_HOOK', oils_i18n_gettext( 364, 
1222     'Allow a user to update trigger hooks', 'ppl', 'description' )),
1223  ( 365, 'ADMIN_TRIGGER_REACTOR', oils_i18n_gettext( 365, 
1224     'Allow a user to create, update, and delete trigger reactors', 'ppl', 'description' )),
1225  ( 366, 'CREATE_TRIGGER_REACTOR', oils_i18n_gettext( 366, 
1226     'Allow a user to create trigger reactors', 'ppl', 'description' )),
1227  ( 367, 'DELETE_TRIGGER_REACTOR', oils_i18n_gettext( 367, 
1228     'Allow a user to delete trigger reactors', 'ppl', 'description' )),
1229  ( 368, 'UPDATE_TRIGGER_REACTOR', oils_i18n_gettext( 368, 
1230     'Allow a user to update trigger reactors', 'ppl', 'description' )),
1231  ( 369, 'ADMIN_TRIGGER_TEMPLATE_OUTPUT', oils_i18n_gettext( 369, 
1232     'Allow a user to delete trigger template output', 'ppl', 'description' )),
1233  ( 370, 'DELETE_TRIGGER_TEMPLATE_OUTPUT', oils_i18n_gettext( 370, 
1234     'Allow a user to delete trigger template output', 'ppl', 'description' )),
1235  ( 371, 'ADMIN_TRIGGER_VALIDATOR', oils_i18n_gettext( 371, 
1236     'Allow a user to create, update, and delete trigger validators', 'ppl', 'description' )),
1237  ( 372, 'CREATE_TRIGGER_VALIDATOR', oils_i18n_gettext( 372, 
1238     'Allow a user to create trigger validators', 'ppl', 'description' )),
1239  ( 373, 'DELETE_TRIGGER_VALIDATOR', oils_i18n_gettext( 373, 
1240     'Allow a user to delete trigger validators', 'ppl', 'description' )),
1241  ( 374, 'UPDATE_TRIGGER_VALIDATOR', oils_i18n_gettext( 374, 
1242     'Allow a user to update trigger validators', 'ppl', 'description' )),
1243  ( 376, 'ADMIN_BOOKING_RESOURCE', oils_i18n_gettext( 376, 
1244     'Enables the user to create/update/delete booking resources', 'ppl', 'description' )),
1245  ( 377, 'ADMIN_BOOKING_RESOURCE_TYPE', oils_i18n_gettext( 377, 
1246     'Enables the user to create/update/delete booking resource types', 'ppl', 'description' )),
1247  ( 378, 'ADMIN_BOOKING_RESOURCE_ATTR', oils_i18n_gettext( 378, 
1248     'Enables the user to create/update/delete booking resource attributes', 'ppl', 'description' )),
1249  ( 379, 'ADMIN_BOOKING_RESOURCE_ATTR_MAP', oils_i18n_gettext( 379, 
1250     'Enables the user to create/update/delete booking resource attribute maps', 'ppl', 'description' )),
1251  ( 380, 'ADMIN_BOOKING_RESOURCE_ATTR_VALUE', oils_i18n_gettext( 380, 
1252     'Enables the user to create/update/delete booking resource attribute values', 'ppl', 'description' )),
1253  ( 381, 'ADMIN_BOOKING_RESERVATION', oils_i18n_gettext( 381, 
1254     'Enables the user to create/update/delete booking reservations', 'ppl', 'description' )),
1255  ( 382, 'ADMIN_BOOKING_RESERVATION_ATTR_VALUE_MAP', oils_i18n_gettext( 382, 
1256     'Enables the user to create/update/delete booking reservation attribute value maps', 'ppl', 'description' )),
1257  ( 383, 'RETRIEVE_RESERVATION_PULL_LIST', oils_i18n_gettext( 383, 
1258     'Allows a user to retrieve a booking reservation pull list', 'ppl', 'description' )),
1259  ( 384, 'CAPTURE_RESERVATION', oils_i18n_gettext( 384, 
1260     'Allows a user to capture booking reservations', 'ppl', 'description' )),
1261  ( 385, 'UPDATE_RECORD', oils_i18n_gettext( 385, 
1262     'UPDATE_RECORD', 'ppl', 'description' )),
1263  ( 386, 'UPDATE_ORG_UNIT_SETTING.circ.block_renews_for_holds', oils_i18n_gettext( 386, 
1264     'UPDATE_ORG_UNIT_SETTING.circ.block_renews_for_holds', 'ppl', 'description' )),
1265  ( 387, 'MERGE_USERS', oils_i18n_gettext( 387, 
1266     'Allows user records to be merged', 'ppl', 'description' )),
1267  ( 388, 'ISSUANCE_HOLDS', oils_i18n_gettext( 388, 
1268     'Allow a user to place holds on serials issuances', 'ppl', 'description' )),
1269  ( 389, 'VIEW_CREDIT_CARD_PROCESSING', oils_i18n_gettext( 389, 
1270     'View org unit settings related to credit card processing', 'ppl', 'description' )),
1271  ( 390, 'ADMIN_CREDIT_CARD_PROCESSING', oils_i18n_gettext( 390, 
1272     'Update org unit settings related to credit card processing', 'ppl', 'description' )),
1273  ( 391, 'ADMIN_ACQ_CLAIM', oils_i18n_gettext( 391, 
1274     'ADMIN_ACQ_CLAIM', 'ppl', 'description' )),
1275  ( 392, 'ADMIN_ACQ_CLAIM_EVENT_TYPE', oils_i18n_gettext( 392, 
1276     'ADMIN_ACQ_CLAIM_EVENT_TYPE', 'ppl', 'description' )),
1277  ( 393, 'ADMIN_ACQ_CLAIM_TYPE', oils_i18n_gettext( 393, 
1278     'ADMIN_ACQ_CLAIM_TYPE', 'ppl', 'description' )),
1279  ( 394, 'ADMIN_ACQ_DISTRIB_FORMULA', oils_i18n_gettext( 394, 
1280     'ADMIN_ACQ_DISTRIB_FORMULA', 'ppl', 'description' )),
1281  ( 395, 'ADMIN_ACQ_FISCAL_YEAR', oils_i18n_gettext( 395, 
1282     'ADMIN_ACQ_FISCAL_YEAR', 'ppl', 'description' )),
1283  ( 396, 'ADMIN_ACQ_FUND_ALLOCATION_PERCENT', oils_i18n_gettext( 396, 
1284     'ADMIN_ACQ_FUND_ALLOCATION_PERCENT', 'ppl', 'description' )),
1285  ( 397, 'ADMIN_ACQ_FUND_TAG', oils_i18n_gettext( 397, 
1286     'ADMIN_ACQ_FUND_TAG', 'ppl', 'description' )),
1287  ( 398, 'ADMIN_ACQ_LINEITEM_ALERT_TEXT', oils_i18n_gettext( 398, 
1288     'ADMIN_ACQ_LINEITEM_ALERT_TEXT', 'ppl', 'description' )),
1289  ( 399, 'ADMIN_AGE_PROTECT_RULE', oils_i18n_gettext( 399, 
1290     'ADMIN_AGE_PROTECT_RULE', 'ppl', 'description' )),
1291  ( 400, 'ADMIN_ASSET_COPY_TEMPLATE', oils_i18n_gettext( 400, 
1292     'ADMIN_ASSET_COPY_TEMPLATE', 'ppl', 'description' )),
1293  ( 401, 'ADMIN_BOOKING_RESERVATION_ATTR_MAP', oils_i18n_gettext( 401, 
1294     'ADMIN_BOOKING_RESERVATION_ATTR_MAP', 'ppl', 'description' )),
1295  ( 402, 'ADMIN_CIRC_MATRIX_MATCHPOINT', oils_i18n_gettext( 402, 
1296     'ADMIN_CIRC_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1297  ( 403, 'ADMIN_CIRC_MOD', oils_i18n_gettext( 403, 
1298     'ADMIN_CIRC_MOD', 'ppl', 'description' )),
1299  ( 404, 'ADMIN_CLAIM_POLICY', oils_i18n_gettext( 404, 
1300     'ADMIN_CLAIM_POLICY', 'ppl', 'description' )),
1301  ( 405, 'ADMIN_CONFIG_REMOTE_ACCOUNT', oils_i18n_gettext( 405, 
1302     'ADMIN_CONFIG_REMOTE_ACCOUNT', 'ppl', 'description' )),
1303  ( 406, 'ADMIN_FIELD_DOC', oils_i18n_gettext( 406, 
1304     'ADMIN_FIELD_DOC', 'ppl', 'description' )),
1305  ( 407, 'ADMIN_GLOBAL_FLAG', oils_i18n_gettext( 407, 
1306     'ADMIN_GLOBAL_FLAG', 'ppl', 'description' )),
1307  ( 408, 'ADMIN_GROUP_PENALTY_THRESHOLD', oils_i18n_gettext( 408, 
1308     'ADMIN_GROUP_PENALTY_THRESHOLD', 'ppl', 'description' )),
1309  ( 409, 'ADMIN_HOLD_CANCEL_CAUSE', oils_i18n_gettext( 409, 
1310     'ADMIN_HOLD_CANCEL_CAUSE', 'ppl', 'description' )),
1311  ( 410, 'ADMIN_HOLD_MATRIX_MATCHPOINT', oils_i18n_gettext( 410, 
1312     'ADMIN_HOLD_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1313  ( 411, 'ADMIN_IDENT_TYPE', oils_i18n_gettext( 411, 
1314     'ADMIN_IDENT_TYPE', 'ppl', 'description' )),
1315  ( 412, 'ADMIN_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 412, 
1316     'ADMIN_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1317  ( 413, 'ADMIN_INDEX_NORMALIZER', oils_i18n_gettext( 413, 
1318     'ADMIN_INDEX_NORMALIZER', 'ppl', 'description' )),
1319  ( 414, 'ADMIN_INVOICE', oils_i18n_gettext( 414, 
1320     'ADMIN_INVOICE', 'ppl', 'description' )),
1321  ( 415, 'ADMIN_INVOICE_METHOD', oils_i18n_gettext( 415, 
1322     'ADMIN_INVOICE_METHOD', 'ppl', 'description' )),
1323  ( 416, 'ADMIN_INVOICE_PAYMENT_METHOD', oils_i18n_gettext( 416, 
1324     'ADMIN_INVOICE_PAYMENT_METHOD', 'ppl', 'description' )),
1325  ( 417, 'ADMIN_LINEITEM_MARC_ATTR_DEF', oils_i18n_gettext( 417, 
1326     'ADMIN_LINEITEM_MARC_ATTR_DEF', 'ppl', 'description' )),
1327  ( 418, 'ADMIN_MARC_CODE', oils_i18n_gettext( 418, 
1328     'ADMIN_MARC_CODE', 'ppl', 'description' )),
1329  ( 419, 'ADMIN_MAX_FINE_RULE', oils_i18n_gettext( 419, 
1330     'ADMIN_MAX_FINE_RULE', 'ppl', 'description' )),
1331  ( 420, 'ADMIN_MERGE_PROFILE', oils_i18n_gettext( 420, 
1332     'ADMIN_MERGE_PROFILE', 'ppl', 'description' )),
1333  ( 421, 'ADMIN_ORG_UNIT_SETTING_TYPE', oils_i18n_gettext( 421, 
1334     'ADMIN_ORG_UNIT_SETTING_TYPE', 'ppl', 'description' )),
1335  ( 422, 'ADMIN_RECURRING_FINE_RULE', oils_i18n_gettext( 422, 
1336     'ADMIN_RECURRING_FINE_RULE', 'ppl', 'description' )),
1337  ( 423, 'ADMIN_SERIAL_SUBSCRIPTION', oils_i18n_gettext( 423, 
1338     'ADMIN_SERIAL_SUBSCRIPTION', 'ppl', 'description' )),
1339  ( 424, 'ADMIN_STANDING_PENALTY', oils_i18n_gettext( 424, 
1340     'ADMIN_STANDING_PENALTY', 'ppl', 'description' )),
1341  ( 425, 'ADMIN_SURVEY', oils_i18n_gettext( 425, 
1342     'ADMIN_SURVEY', 'ppl', 'description' )),
1343  ( 426, 'ADMIN_USER_REQUEST_TYPE', oils_i18n_gettext( 426, 
1344     'ADMIN_USER_REQUEST_TYPE', 'ppl', 'description' )),
1345  ( 427, 'ADMIN_USER_SETTING_GROUP', oils_i18n_gettext( 427, 
1346     'ADMIN_USER_SETTING_GROUP', 'ppl', 'description' )),
1347  ( 428, 'ADMIN_USER_SETTING_TYPE', oils_i18n_gettext( 428, 
1348     'ADMIN_USER_SETTING_TYPE', 'ppl', 'description' )),
1349  ( 429, 'ADMIN_Z3950_SOURCE', oils_i18n_gettext( 429, 
1350     'ADMIN_Z3950_SOURCE', 'ppl', 'description' )),
1351  ( 430, 'CREATE_BIB_BTYPE', oils_i18n_gettext( 430, 
1352     'CREATE_BIB_BTYPE', 'ppl', 'description' )),
1353  ( 431, 'CREATE_BIBLIO_FINGERPRINT', oils_i18n_gettext( 431, 
1354     'CREATE_BIBLIO_FINGERPRINT', 'ppl', 'description' )),
1355  ( 432, 'CREATE_BIB_SOURCE', oils_i18n_gettext( 432, 
1356     'CREATE_BIB_SOURCE', 'ppl', 'description' )),
1357  ( 433, 'CREATE_BILLING_TYPE', oils_i18n_gettext( 433, 
1358     'CREATE_BILLING_TYPE', 'ppl', 'description' )),
1359  ( 434, 'CREATE_CN_BTYPE', oils_i18n_gettext( 434, 
1360     'CREATE_CN_BTYPE', 'ppl', 'description' )),
1361  ( 435, 'CREATE_COPY_BTYPE', oils_i18n_gettext( 435, 
1362     'CREATE_COPY_BTYPE', 'ppl', 'description' )),
1363  ( 436, 'CREATE_INVOICE', oils_i18n_gettext( 436, 
1364     'CREATE_INVOICE', 'ppl', 'description' )),
1365  ( 437, 'CREATE_INVOICE_ITEM_TYPE', oils_i18n_gettext( 437, 
1366     'CREATE_INVOICE_ITEM_TYPE', 'ppl', 'description' )),
1367  ( 438, 'CREATE_INVOICE_METHOD', oils_i18n_gettext( 438, 
1368     'CREATE_INVOICE_METHOD', 'ppl', 'description' )),
1369  ( 439, 'CREATE_MERGE_PROFILE', oils_i18n_gettext( 439, 
1370     'CREATE_MERGE_PROFILE', 'ppl', 'description' )),
1371  ( 440, 'CREATE_METABIB_CLASS', oils_i18n_gettext( 440, 
1372     'CREATE_METABIB_CLASS', 'ppl', 'description' )),
1373  ( 441, 'CREATE_METABIB_SEARCH_ALIAS', oils_i18n_gettext( 441, 
1374     'CREATE_METABIB_SEARCH_ALIAS', 'ppl', 'description' )),
1375  ( 442, 'CREATE_USER_BTYPE', oils_i18n_gettext( 442, 
1376     'CREATE_USER_BTYPE', 'ppl', 'description' )),
1377  ( 443, 'DELETE_BIB_BTYPE', oils_i18n_gettext( 443, 
1378     'DELETE_BIB_BTYPE', 'ppl', 'description' )),
1379  ( 444, 'DELETE_BIBLIO_FINGERPRINT', oils_i18n_gettext( 444, 
1380     'DELETE_BIBLIO_FINGERPRINT', 'ppl', 'description' )),
1381  ( 445, 'DELETE_BIB_SOURCE', oils_i18n_gettext( 445, 
1382     'DELETE_BIB_SOURCE', 'ppl', 'description' )),
1383  ( 446, 'DELETE_BILLING_TYPE', oils_i18n_gettext( 446, 
1384     'DELETE_BILLING_TYPE', 'ppl', 'description' )),
1385  ( 447, 'DELETE_CN_BTYPE', oils_i18n_gettext( 447, 
1386     'DELETE_CN_BTYPE', 'ppl', 'description' )),
1387  ( 448, 'DELETE_COPY_BTYPE', oils_i18n_gettext( 448, 
1388     'DELETE_COPY_BTYPE', 'ppl', 'description' )),
1389  ( 449, 'DELETE_INVOICE_ITEM_TYPE', oils_i18n_gettext( 449, 
1390     'DELETE_INVOICE_ITEM_TYPE', 'ppl', 'description' )),
1391  ( 450, 'DELETE_INVOICE_METHOD', oils_i18n_gettext( 450, 
1392     'DELETE_INVOICE_METHOD', 'ppl', 'description' )),
1393  ( 451, 'DELETE_MERGE_PROFILE', oils_i18n_gettext( 451, 
1394     'DELETE_MERGE_PROFILE', 'ppl', 'description' )),
1395  ( 452, 'DELETE_METABIB_CLASS', oils_i18n_gettext( 452, 
1396     'DELETE_METABIB_CLASS', 'ppl', 'description' )),
1397  ( 453, 'DELETE_METABIB_SEARCH_ALIAS', oils_i18n_gettext( 453, 
1398     'DELETE_METABIB_SEARCH_ALIAS', 'ppl', 'description' )),
1399  ( 454, 'DELETE_USER_BTYPE', oils_i18n_gettext( 454, 
1400     'DELETE_USER_BTYPE', 'ppl', 'description' )),
1401  ( 455, 'MANAGE_CLAIM', oils_i18n_gettext( 455, 
1402     'MANAGE_CLAIM', 'ppl', 'description' )),
1403  ( 456, 'UPDATE_BIB_BTYPE', oils_i18n_gettext( 456, 
1404     'UPDATE_BIB_BTYPE', 'ppl', 'description' )),
1405  ( 457, 'UPDATE_BIBLIO_FINGERPRINT', oils_i18n_gettext( 457, 
1406     'UPDATE_BIBLIO_FINGERPRINT', 'ppl', 'description' )),
1407  ( 458, 'UPDATE_BIB_SOURCE', oils_i18n_gettext( 458, 
1408     'UPDATE_BIB_SOURCE', 'ppl', 'description' )),
1409  ( 459, 'UPDATE_BILLING_TYPE', oils_i18n_gettext( 459, 
1410     'UPDATE_BILLING_TYPE', 'ppl', 'description' )),
1411  ( 460, 'UPDATE_CN_BTYPE', oils_i18n_gettext( 460, 
1412     'UPDATE_CN_BTYPE', 'ppl', 'description' )),
1413  ( 461, 'UPDATE_COPY_BTYPE', oils_i18n_gettext( 461, 
1414     'UPDATE_COPY_BTYPE', 'ppl', 'description' )),
1415  ( 462, 'UPDATE_INVOICE_ITEM_TYPE', oils_i18n_gettext( 462, 
1416     'UPDATE_INVOICE_ITEM_TYPE', 'ppl', 'description' )),
1417  ( 463, 'UPDATE_INVOICE_METHOD', oils_i18n_gettext( 463, 
1418     'UPDATE_INVOICE_METHOD', 'ppl', 'description' )),
1419  ( 464, 'UPDATE_MERGE_PROFILE', oils_i18n_gettext( 464, 
1420     'UPDATE_MERGE_PROFILE', 'ppl', 'description' )),
1421  ( 465, 'UPDATE_METABIB_CLASS', oils_i18n_gettext( 465, 
1422     'UPDATE_METABIB_CLASS', 'ppl', 'description' )),
1423  ( 466, 'UPDATE_METABIB_SEARCH_ALIAS', oils_i18n_gettext( 466, 
1424     'UPDATE_METABIB_SEARCH_ALIAS', 'ppl', 'description' )),
1425  ( 467, 'UPDATE_USER_BTYPE', oils_i18n_gettext( 467, 
1426     'UPDATE_USER_BTYPE', 'ppl', 'description' )),
1427  ( 468, 'user_request.create', oils_i18n_gettext( 468, 
1428     'user_request.create', 'ppl', 'description' )),
1429  ( 469, 'user_request.delete', oils_i18n_gettext( 469, 
1430     'user_request.delete', 'ppl', 'description' )),
1431  ( 470, 'user_request.update', oils_i18n_gettext( 470, 
1432     'user_request.update', 'ppl', 'description' )),
1433  ( 471, 'user_request.view', oils_i18n_gettext( 471, 
1434     'user_request.view', 'ppl', 'description' )),
1435  ( 472, 'VIEW_ACQ_FUND_ALLOCATION_PERCENT', oils_i18n_gettext( 472, 
1436     'VIEW_ACQ_FUND_ALLOCATION_PERCENT', 'ppl', 'description' )),
1437  ( 473, 'VIEW_CIRC_MATRIX_MATCHPOINT', oils_i18n_gettext( 473, 
1438     'VIEW_CIRC_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1439  ( 474, 'VIEW_CLAIM', oils_i18n_gettext( 474, 
1440     'VIEW_CLAIM', 'ppl', 'description' )),
1441  ( 475, 'VIEW_GROUP_PENALTY_THRESHOLD', oils_i18n_gettext( 475, 
1442     'VIEW_GROUP_PENALTY_THRESHOLD', 'ppl', 'description' )),
1443  ( 476, 'VIEW_HOLD_MATRIX_MATCHPOINT', oils_i18n_gettext( 476, 
1444     'VIEW_HOLD_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1445  ( 477, 'VIEW_INVOICE', oils_i18n_gettext( 477, 
1446     'VIEW_INVOICE', 'ppl', 'description' )),
1447  ( 478, 'VIEW_MERGE_PROFILE', oils_i18n_gettext( 478, 
1448     'VIEW_MERGE_PROFILE', 'ppl', 'description' )),
1449  ( 479, 'VIEW_SERIAL_SUBSCRIPTION', oils_i18n_gettext( 479, 
1450     'VIEW_SERIAL_SUBSCRIPTION', 'ppl', 'description' )),
1451  ( 480, 'VIEW_STANDING_PENALTY', oils_i18n_gettext( 480, 
1452     'VIEW_STANDING_PENALTY', 'ppl', 'description' )),
1453  ( 481, 'ADMIN_SERIAL_CAPTION_PATTERN', oils_i18n_gettext( 481, 
1454     'ADMIN_SERIAL_CAPTION_PATTERN', 'ppl', 'description' )),
1455  ( 482, 'ADMIN_SERIAL_DISTRIBUTION', oils_i18n_gettext( 482, 
1456     'ADMIN_SERIAL_DISTRIBUTION', 'ppl', 'description' )),
1457  ( 483, 'ADMIN_SERIAL_STREAM', oils_i18n_gettext( 483, 
1458     'ADMIN_SERIAL_STREAM', 'ppl', 'description' )),
1459  ( 484, 'RECEIVE_SERIAL', oils_i18n_gettext(484,
1460         'Receive serial items', 'ppl', 'description')),
1461  ( 485, 'CREATE_VOLUME_SUFFIX', oils_i18n_gettext(485,
1462     'Create suffix label definition.', 'ppl', 'description')),
1463  ( 486, 'UPDATE_VOLUME_SUFFIX', oils_i18n_gettext(486,
1464     'Update suffix label definition.', 'ppl', 'description')),
1465  ( 487, 'DELETE_VOLUME_SUFFIX', oils_i18n_gettext(487,
1466     'Delete suffix label definition.', 'ppl', 'description')),
1467  ( 488, 'CREATE_VOLUME_PREFIX', oils_i18n_gettext(488,
1468     'Create prefix label definition.', 'ppl', 'description')),
1469  ( 489, 'UPDATE_VOLUME_PREFIX', oils_i18n_gettext(489,
1470     'Update prefix label definition.', 'ppl', 'description')),
1471  ( 490, 'DELETE_VOLUME_PREFIX', oils_i18n_gettext(490,
1472     'Delete prefix label definition.', 'ppl', 'description')),
1473  ( 491, 'CREATE_MONOGRAPH_PART', oils_i18n_gettext(491,
1474     'Create monograph part definition.', 'ppl', 'description')),
1475  ( 492, 'UPDATE_MONOGRAPH_PART', oils_i18n_gettext(492,
1476     'Update monograph part definition.', 'ppl', 'description')),
1477  ( 493, 'DELETE_MONOGRAPH_PART', oils_i18n_gettext(493,
1478     'Delete monograph part definition.', 'ppl', 'description')),
1479  ( 494, 'ADMIN_CODED_VALUE', oils_i18n_gettext(494,
1480     'Create/Update/Delete SVF Record Attribute Coded Value Map', 'ppl', 'description')),
1481  ( 495, 'ADMIN_SERIAL_ITEM', oils_i18n_gettext(495,
1482     'Create/Retrieve/Update/Delete Serial Item', 'ppl', 'description')),
1483  ( 496, 'ADMIN_SVF', oils_i18n_gettext(496,
1484     'Create/Update/Delete SVF Record Attribute Defintion', 'ppl', 'description')),
1485  ( 497, 'CREATE_BIB_PTYPE', oils_i18n_gettext(497,
1486     'Create Bibliographic Record Peer Type', 'ppl', 'description')),
1487  ( 498, 'CREATE_PURCHASE_REQUEST', oils_i18n_gettext(498,
1488     'Create User Purchase Request', 'ppl', 'description')),
1489  ( 499, 'DELETE_BIB_PTYPE', oils_i18n_gettext(499,
1490     'Delete Bibliographic Record Peer Type', 'ppl', 'description')),
1491  ( 500, 'MAP_MONOGRAPH_PART', oils_i18n_gettext(500,
1492     'Create/Update/Delete Copy Monograph Part Map', 'ppl', 'description')),
1493  ( 501, 'MARK_ITEM_MISSING_PIECES', oils_i18n_gettext(501,
1494     'Allows the Mark Item Missing Pieces action.', 'ppl', 'description')),
1495  ( 502, 'UPDATE_BIB_PTYPE', oils_i18n_gettext(502,
1496     'Update Bibliographic Record Peer Type', 'ppl', 'description')),
1497  ( 503, 'UPDATE_HOLD_REQUEST_TIME', oils_i18n_gettext(503,
1498     'Allows editing of a hold''s request time, and/or its Cut-in-line/Top-of-queue flag.', 'ppl', 'description')),
1499  ( 504, 'UPDATE_PICKLIST', oils_i18n_gettext(504,
1500     'Allows update/re-use of an acquisitions pick/selection list.', 'ppl', 'description')),
1501  ( 505, 'UPDATE_WORKSTATION', oils_i18n_gettext(505,
1502     'Allows update of a workstation during workstation registration override.', 'ppl', 'description')),
1503  ( 506, 'VIEW_USER_SETTING_TYPE', oils_i18n_gettext(506,
1504     'Allows viewing of configurable user setting types.', 'ppl', 'description')),
1505  ( 507, 'ABORT_TRANSIT_ON_LOST', oils_i18n_gettext(507,
1506     'Allows a user to abort a transit on a copy with status of LOST', 'ppl', 'description')),
1507  ( 508, 'ABORT_TRANSIT_ON_MISSING', oils_i18n_gettext(508,
1508     'Allows a user to abort a transit on a copy with status of MISSING', 'ppl', 'description')),
1509  ( 509, 'TRANSIT_CHECKIN_INTERVAL_BLOCK.override', oils_i18n_gettext(509,
1510     'Allows a user to override the TRANSIT_CHECKIN_INTERVAL_BLOCK event', 'ppl', 'description')),
1511  ( 510, 'UPDATE_PATRON_COLLECTIONS_EXEMPT', oils_i18n_gettext(510,
1512     'Allows a user to indicate that a patron is exempt from collections processing', 'ppl', 'description')),
1513  ( 511, 'PERSISTENT_LOGIN', oils_i18n_gettext( 511,
1514     'Allows a user to authenticate and get a long-lived session (length configured in opensrf.xml)', 'ppl', 'description' )),
1515  ( 512, 'ACQ_INVOICE_REOPEN', oils_i18n_gettext( 512,
1516     'Allows a user to reopen an Acquisitions invoice', 'ppl', 'description' )),
1517  ( 513, 'DEBUG_CLIENT', oils_i18n_gettext( 513,
1518     'Allows a user to use debug functions in the staff client', 'ppl', 'description' )),
1519  ( 514, 'UPDATE_PATRON_ACTIVE_CARD', oils_i18n_gettext( 514,
1520     'Allows a user to manually adjust a patron''s active cards', 'ppl', 'description')),
1521  ( 515, 'UPDATE_PATRON_PRIMARY_CARD', oils_i18n_gettext( 515,
1522     'Allows a user to manually adjust a patron''s primary card', 'ppl', 'description')),
1523  ( 516, 'CREATE_REPORT_TEMPLATE', oils_i18n_gettext( 516,
1524     'Allows a user to create report templates', 'ppl', 'description' )),
1525  ( 517, 'COPY_HOLDS_FORCE', oils_i18n_gettext( 517, 
1526     'Allow a user to place a force hold on a specific copy', 'ppl', 'description' )),
1527  ( 518, 'COPY_HOLDS_RECALL', oils_i18n_gettext( 518, 
1528     'Allow a user to place a cataloging recall on a specific copy', 'ppl', 'description' )),
1529  ( 519, 'ADMIN_SMS_CARRIER', oils_i18n_gettext( 519,
1530     'Allows a user to add/create/delete SMS Carrier entries.', 'ppl', 'description' )),
1531  ( 520, 'COPY_DELETE_WARNING.override', oils_i18n_gettext( 520,
1532     'Allow a user to override warnings about deleting copies in problematic situations.', 'ppl', 'description' )),
1533  ( 521, 'IMPORT_ACQ_LINEITEM_BIB_RECORD_UPLOAD', oils_i18n_gettext( 521,
1534     'Allows a user to create new bibs directly from an ACQ MARC file upload', 'ppl', 'description' )),
1535  ( 522, 'IMPORT_AUTHORITY_MARC', oils_i18n_gettext( 522,
1536     'Allows a user to create new authority records', 'ppl', 'description' )),
1537  ( 523, 'ADMIN_TOOLBAR', oils_i18n_gettext( 523,
1538     'Allows a user to create, edit, and delete custom toolbars', 'ppl', 'description' )),
1539  ( 524, 'PLACE_UNFILLABLE_HOLD', oils_i18n_gettext( 524,
1540     'Allows a user to place a hold that cannot currently be filled.', 'ppl', 'description' )),
1541  ( 525, 'CREATE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 525, 
1542     'User may set a default entry in a patron statistical category', 'ppl', 'description' )),
1543  ( 526, 'UPDATE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 526, 
1544     'User may reset a default entry in a patron statistical category', 'ppl', 'description' )),
1545  ( 527, 'DELETE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 527, 
1546     'User may unset a default entry in a patron statistical category', 'ppl', 'description' )),
1547  ( 528, 'ADMIN_ORG_UNIT_CUSTOM_TREE', oils_i18n_gettext( 528, 
1548     'User may update custom org unit trees', 'ppl', 'description' )),
1549  ( 529, 'ADMIN_IMPORT_MATCH_SET', oils_i18n_gettext( 529,
1550     'Allows a user to create/retrieve/update/delete vandelay match sets', 'ppl', 'description' )),
1551  ( 530, 'VIEW_IMPORT_MATCH_SET', oils_i18n_gettext( 530,
1552     'Allows a user to view vandelay match sets', 'ppl', 'description' )),
1553  ( 531, 'ADMIN_ADDRESS_ALERT', oils_i18n_gettext( 531,
1554     'Allows a user to create/retrieve/update/delete address alerts', 'ppl', 'description' )), 
1555  ( 532, 'VIEW_ADDRESS_ALERT', oils_i18n_gettext( 532,
1556     'Allows a user to view address alerts', 'ppl', 'description' )), 
1557  ( 533, 'ADMIN_COPY_LOCATION_GROUP', oils_i18n_gettext( 533,
1558     'Allows a user to create/retrieve/update/delete copy location groups', 'ppl', 'description' )), 
1559  ( 534, 'ADMIN_USER_ACTIVITY_TYPE', oils_i18n_gettext( 534,
1560     'Allows a user to create/retrieve/update/delete user activity types', 'ppl', 'description' )),
1561 ( 535, 'VIEW_TRIGGER_EVENT', oils_i18n_gettext( 535,
1562     'Allows a user to view circ- and hold-related action/trigger events', 'ppl', 'description'))
1563 ;
1564
1565
1566 SELECT SETVAL('permission.perm_list_id_seq'::TEXT, 1000);
1567
1568 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1569         (1, oils_i18n_gettext(1, 'Users', 'pgt', 'name'), NULL, NULL, '3 years', FALSE, 'group_application.user');
1570 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1571         (2, oils_i18n_gettext(2, 'Patrons', 'pgt', 'name'), 1, NULL, '3 years', TRUE, 'group_application.user.patron');
1572 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1573         (3, oils_i18n_gettext(3, 'Staff', 'pgt', 'name'), 1, NULL, '3 years', FALSE, 'group_application.user.staff');
1574 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1575         (4, oils_i18n_gettext(4, 'Catalogers', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.cat');
1576 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1577         (5, oils_i18n_gettext(5, 'Circulators', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.circ');
1578 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1579         (6, oils_i18n_gettext(6, 'Acquisitions', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.acq');
1580 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1581         (7, oils_i18n_gettext(7, 'Acquisitions Administrator', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.acq_admin');
1582 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1583         (8, oils_i18n_gettext(8, 'Cataloging Administrator', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.cat_admin');
1584 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1585         (9, oils_i18n_gettext(9, 'Circulation Administrator', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.circ_admin');
1586 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1587         (10, oils_i18n_gettext(10, 'Local Administrator', 'pgt', 'name'), 3, 
1588         oils_i18n_gettext(10, 'Can do anything at the Branch level', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.admin.local_admin');
1589 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1590         (11, oils_i18n_gettext(11, 'Serials', 'pgt', 'name'), 3, 
1591         oils_i18n_gettext(11, 'Serials (includes admin features)', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.serials');
1592 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1593         (12, oils_i18n_gettext(12, 'System Administrator', 'pgt', 'name'), 3, 
1594         oils_i18n_gettext(12, 'Can do anything at the System level', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.admin.system_admin');
1595 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1596         (13, oils_i18n_gettext(13, 'Global Administrator', 'pgt', 'name'), 3, 
1597         oils_i18n_gettext(13, 'Can do anything at the Consortium level', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.admin.global_admin');
1598 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1599         (14, oils_i18n_gettext(14, 'Data Review', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.data_review');
1600 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1601         (15, oils_i18n_gettext(15, 'Volunteers', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.volunteers');
1602
1603 SELECT SETVAL('permission.grp_tree_id_seq'::TEXT, (SELECT MAX(id) FROM permission.grp_tree));
1604
1605 INSERT INTO permission.grp_penalty_threshold (grp,org_unit,penalty,threshold)
1606     VALUES (1,1,1,10.0);
1607 INSERT INTO permission.grp_penalty_threshold (grp,org_unit,penalty,threshold)
1608     VALUES (1,1,2,10.0);
1609 INSERT INTO permission.grp_penalty_threshold (grp,org_unit,penalty,threshold)
1610     VALUES (1,1,3,10.0);
1611
1612 SELECT SETVAL('permission.grp_penalty_threshold_id_seq'::TEXT, (SELECT MAX(id) FROM permission.grp_penalty_threshold));
1613
1614
1615 -- Add basic user permissions to the Users group
1616
1617 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1618         SELECT
1619                 pgt.id, perm.id, aout.depth, FALSE
1620         FROM
1621                 permission.grp_tree pgt,
1622                 permission.perm_list perm,
1623                 actor.org_unit_type aout
1624         WHERE
1625                 pgt.name = 'Users' AND
1626                 aout.name = 'Consortium' AND
1627                 perm.code IN (
1628                         'COPY_CHECKIN',
1629                         'CREATE_MY_CONTAINER',
1630                         'CREATE_PURCHASE_REQUEST',
1631                         'MR_HOLDS',
1632                         'OPAC_LOGIN',
1633                         'PERSISTENT_LOGIN',
1634                         'RENEW_CIRC',
1635                         'TITLE_HOLDS',
1636                         'user_request.create'
1637                 );
1638
1639
1640 -- Add basic user permissions to the Data Review group
1641
1642 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1643         SELECT
1644                 pgt.id, perm.id, aout.depth, FALSE
1645         FROM
1646                 permission.grp_tree pgt,
1647                 permission.perm_list perm,
1648                 actor.org_unit_type aout
1649         WHERE
1650                 pgt.name = 'Data Review' AND
1651                 aout.name = 'Consortium' AND
1652                 perm.code IN (
1653                         'CREATE_COPY_TRANSIT',
1654                         'VIEW_BILLING_TYPE',
1655                         'VIEW_CIRCULATIONS',
1656                         'VIEW_COPY_NOTES',
1657                         'VIEW_HOLD',
1658                         'VIEW_ORG_SETTINGS',
1659                         'VIEW_TITLE_NOTES',
1660                         'VIEW_TRANSACTION',
1661                         'VIEW_USER',
1662                         'VIEW_USER_FINES_SUMMARY',
1663                         'VIEW_USER_TRANSACTIONS',
1664                         'VIEW_VOLUME_NOTES',
1665                         'VIEW_ZIP_DATA');
1666
1667 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1668         SELECT
1669                 pgt.id, perm.id, aout.depth, FALSE
1670         FROM
1671                 permission.grp_tree pgt,
1672                 permission.perm_list perm,
1673                 actor.org_unit_type aout
1674         WHERE
1675                 pgt.name = 'Data Review' AND
1676                 aout.name = 'System' AND
1677                 perm.code IN (
1678                         'COPY_CHECKOUT',
1679                         'COPY_HOLDS',
1680                         'CREATE_IN_HOUSE_USE',
1681                         'CREATE_TRANSACTION',
1682                         'OFFLINE_EXECUTE',
1683                         'OFFLINE_VIEW',
1684                         'STAFF_LOGIN',
1685                         'VOLUME_HOLDS');
1686
1687
1688 -- Add basic staff permissions to the Staff group
1689
1690 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1691         SELECT
1692                 pgt.id, perm.id, aout.depth, FALSE
1693         FROM
1694                 permission.grp_tree pgt,
1695                 permission.perm_list perm,
1696                 actor.org_unit_type aout
1697         WHERE
1698                 pgt.name = 'Staff' AND
1699                 aout.name = 'Consortium' AND
1700                 perm.code IN (
1701                         'CREATE_CONTAINER',
1702                         'CREATE_CONTAINER_ITEM',
1703                         'CREATE_COPY_TRANSIT',
1704                         'CREATE_HOLD_NOTIFICATION',
1705                         'CREATE_TRANSACTION',
1706                         'CREATE_TRANSIT',
1707                         'DELETE_CONTAINER',
1708                         'DELETE_CONTAINER_ITEM',
1709                         'group_application.user',
1710                         'group_application.user.patron',
1711                         'REGISTER_WORKSTATION',
1712                         'REMOTE_Z3950_QUERY',
1713                         'REQUEST_HOLDS',
1714                         'STAFF_LOGIN',
1715                         'TRANSIT_COPY',
1716                         'UPDATE_CONTAINER',
1717                         'VIEW_CONTAINER',
1718                         'VIEW_COPY_CHECKOUT_HISTORY',
1719                         'VIEW_COPY_NOTES',
1720                         'VIEW_HOLD',
1721                         'VIEW_HOLD_NOTIFICATION',
1722                         'VIEW_HOLD_PERMIT',
1723                         'VIEW_PERM_GROUPS',
1724                         'VIEW_PERMISSION',
1725                         'VIEW_TITLE_NOTES',
1726                         'VIEW_TRANSACTION',
1727                         'VIEW_USER_SETTING_TYPE',
1728                         'VIEW_VOLUME_NOTES'
1729                 );
1730
1731 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1732         SELECT
1733                 pgt.id, perm.id, aout.depth, FALSE
1734         FROM
1735                 permission.grp_tree pgt,
1736                 permission.perm_list perm,
1737                 actor.org_unit_type aout
1738         WHERE
1739                 pgt.name = 'Staff' AND
1740                 aout.name = 'System' AND
1741                 perm.code IN (
1742                         'CREATE_USER',
1743                         'UPDATE_USER',
1744                         'VIEW_BILLING_TYPE',
1745                         'VIEW_CIRCULATIONS',
1746                         'VIEW_ORG_SETTINGS',
1747                         'VIEW_PERMIT_CHECKOUT',
1748                         'VIEW_USER',
1749                         'VIEW_USER_FINES_SUMMARY',
1750                         'VIEW_USER_TRANSACTIONS');
1751
1752 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1753         SELECT
1754                 pgt.id, perm.id, aout.depth, FALSE
1755         FROM
1756                 permission.grp_tree pgt,
1757                 permission.perm_list perm,
1758                 actor.org_unit_type aout
1759         WHERE
1760                 pgt.name = 'Staff' AND
1761                 aout.name = 'Branch' AND
1762                 perm.code IN (
1763                         'CANCEL_HOLDS',
1764                         'COPY_CHECKOUT',
1765                         'COPY_HOLDS',
1766                         'COPY_TRANSIT_RECEIVE',
1767                         'CREATE_BILL',
1768                         'CREATE_IN_HOUSE_USE',
1769                         'CREATE_PAYMENT',
1770                         'RENEW_HOLD_OVERRIDE',
1771                         'UPDATE_COPY',
1772                         'UPDATE_VOLUME',
1773                         'ADMIN_TOOLBAR',
1774                         'VOLUME_HOLDS');
1775
1776
1777 -- Add basic cataloguing permissions to the Catalogers group
1778
1779 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1780         SELECT
1781                 pgt.id, perm.id, aout.depth, FALSE
1782         FROM
1783                 permission.grp_tree pgt,
1784                 permission.perm_list perm,
1785                 actor.org_unit_type aout
1786         WHERE
1787                 pgt.name = 'Catalogers' AND
1788                 aout.name = 'Consortium' AND
1789                 perm.code IN (
1790                         'ALLOW_ALT_TCN',
1791                         'CREATE_BIB_IMPORT_QUEUE',
1792                         'CREATE_IMPORT_ITEM',
1793                         'CREATE_MARC',
1794                         'CREATE_TITLE_NOTE',
1795                         'DELETE_BIB_IMPORT_QUEUE',
1796                         'DELETE_IMPORT_ITEM',
1797                         'DELETE_RECORD',
1798                         'DELETE_TITLE_NOTE',
1799                         'IMPORT_ACQ_LINEITEM_BIB_RECORD',
1800                         'IMPORT_MARC',
1801             'IMPORT_AUTHORITY_MARC',
1802                         'MERGE_AUTH_RECORDS',
1803                         'MERGE_BIB_RECORDS',
1804                         'UPDATE_AUTHORITY_IMPORT_QUEUE',
1805                         'UPDATE_AUTHORITY_RECORD_NOTE',
1806                         'UPDATE_BIB_IMPORT_QUEUE',
1807                         'UPDATE_MARC',
1808                         'UPDATE_RECORD',
1809                         'user_request.view',
1810                         'VIEW_AUTHORITY_RECORD_NOTES');
1811
1812 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1813         SELECT
1814                 pgt.id, perm.id, aout.depth, FALSE
1815         FROM
1816                 permission.grp_tree pgt,
1817                 permission.perm_list perm,
1818                 actor.org_unit_type aout
1819         WHERE
1820                 pgt.name = 'Catalogers' AND
1821                 aout.name = 'System' AND
1822                 perm.code IN (
1823                         'CREATE_COPY',
1824                         'CREATE_COPY_NOTE',
1825                         'CREATE_MFHD_RECORD',
1826                         'CREATE_VOLUME',
1827                         'CREATE_VOLUME_NOTE',
1828                         'DELETE_COPY',
1829                         'DELETE_COPY_NOTE',
1830                         'DELETE_MFHD_RECORD',
1831                         'DELETE_VOLUME',
1832                         'DELETE_VOLUME_NOTE',
1833                         'MAP_MONOGRAPH_PART',
1834                         'MARK_ITEM_AVAILABLE',
1835                         'MARK_ITEM_BINDERY',
1836                         'MARK_ITEM_CHECKED_OUT',
1837                         'MARK_ITEM_ILL',
1838                         'MARK_ITEM_IN_PROCESS',
1839                         'MARK_ITEM_IN_TRANSIT',
1840                         'MARK_ITEM_LOST',
1841                         'MARK_ITEM_MISSING',
1842                         'MARK_ITEM_ON_HOLDS_SHELF',
1843                         'MARK_ITEM_ON_ORDER',
1844                         'MARK_ITEM_RESHELVING',
1845                         'UPDATE_COPY',
1846                         'UPDATE_COPY_NOTE',
1847                         'UPDATE_IMPORT_ITEM',
1848                         'UPDATE_MFHD_RECORD',
1849                         'UPDATE_VOLUME',
1850                         'UPDATE_VOLUME_NOTE',
1851                         'VIEW_SERIAL_SUBSCRIPTION');
1852
1853
1854 -- Add advanced cataloguing permissions to the Cataloging Admin group
1855
1856 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1857         SELECT
1858                 pgt.id, perm.id, aout.depth, TRUE
1859         FROM
1860                 permission.grp_tree pgt,
1861                 permission.perm_list perm,
1862                 actor.org_unit_type aout
1863         WHERE
1864                 pgt.name = 'Cataloging Administrator' AND
1865                 aout.name = 'Consortium' AND
1866                 perm.code IN (
1867                         'ADMIN_IMPORT_ITEM_ATTR_DEF',
1868                         'ADMIN_MERGE_PROFILE',
1869                         'CREATE_AUTHORITY_IMPORT_IMPORT_DEF',
1870                         'CREATE_BIB_IMPORT_FIELD_DEF',
1871                         'CREATE_BIB_PTYPE',
1872                         'CREATE_BIB_SOURCE',
1873                         'CREATE_IMPORT_ITEM_ATTR_DEF',
1874                         'CREATE_IMPORT_TRASH_FIELD',
1875                         'CREATE_MERGE_PROFILE',
1876                         'CREATE_MONOGRAPH_PART',
1877                         'CREATE_VOLUME_PREFIX',
1878                         'CREATE_VOLUME_SUFFIX',
1879                         'DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF',
1880                         'DELETE_BIB_PTYPE',
1881                         'DELETE_BIB_SOURCE',
1882                         'DELETE_IMPORT_ITEM_ATTR_DEF',
1883                         'DELETE_IMPORT_TRASH_FIELD',
1884                         'DELETE_MERGE_PROFILE',
1885                         'DELETE_MONOGRAPH_PART',
1886                         'DELETE_VOLUME_PREFIX',
1887                         'DELETE_VOLUME_SUFFIX',
1888                         'MAP_MONOGRAPH_PART',
1889                         'UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF',
1890                         'UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF',
1891                         'UPDATE_BIB_PTYPE',
1892                         'UPDATE_IMPORT_ITEM_ATTR_DEF',
1893                         'UPDATE_IMPORT_TRASH_FIELD',
1894                         'UPDATE_MERGE_PROFILE',
1895                         'UPDATE_MONOGRAPH_PART',
1896                         'UPDATE_VOLUME_PREFIX',
1897                         'UPDATE_VOLUME_SUFFIX'
1898                 );
1899
1900 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1901         SELECT
1902                 pgt.id, perm.id, aout.depth, TRUE
1903         FROM
1904                 permission.grp_tree pgt,
1905                 permission.perm_list perm,
1906                 actor.org_unit_type aout
1907         WHERE
1908                 pgt.name = 'Cataloging Administrator' AND
1909                 aout.name = 'System' AND
1910                 perm.code IN (
1911                         'CREATE_COPY_STAT_CAT',
1912                         'CREATE_COPY_STAT_CAT_ENTRY',
1913                         'CREATE_COPY_STAT_CAT_ENTRY_MAP',
1914                         'RUN_REPORTS',
1915                         'CREATE_REPORT_TEMPLATE',
1916                         'SHARE_REPORT_FOLDER',
1917                         'UPDATE_COPY_LOCATION',
1918                         'UPDATE_COPY_STAT_CAT',
1919                         'UPDATE_COPY_STAT_CAT_ENTRY',
1920                         'VIEW_REPORT_OUTPUT');
1921
1922
1923 -- Add basic circulation permissions to the Circulators group
1924
1925 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1926         SELECT
1927                 pgt.id, perm.id, aout.depth, FALSE
1928         FROM
1929                 permission.grp_tree pgt,
1930                 permission.perm_list perm,
1931                 actor.org_unit_type aout
1932         WHERE
1933                 pgt.name = 'Circulators' AND
1934                 aout.name = 'Branch' AND
1935                 perm.code IN (
1936                         'ADMIN_BOOKING_RESERVATION',
1937                         'ADMIN_BOOKING_RESOURCE',
1938                         'ADMIN_BOOKING_RESOURCE_ATTR',
1939                         'ADMIN_BOOKING_RESOURCE_ATTR_MAP',
1940                         'ADMIN_BOOKING_RESOURCE_ATTR_VALUE',
1941                         'ADMIN_BOOKING_RESOURCE_TYPE',
1942                         'ASSIGN_GROUP_PERM',
1943                         'MARK_ITEM_AVAILABLE',
1944                         'MARK_ITEM_BINDERY',
1945                         'MARK_ITEM_CHECKED_OUT',
1946                         'MARK_ITEM_ILL',
1947                         'MARK_ITEM_IN_PROCESS',
1948                         'MARK_ITEM_IN_TRANSIT',
1949                         'MARK_ITEM_LOST',
1950                         'MARK_ITEM_MISSING',
1951                         'MARK_ITEM_MISSING_PIECES',
1952                         'MARK_ITEM_ON_HOLDS_SHELF',
1953                         'MARK_ITEM_ON_ORDER',
1954                         'MARK_ITEM_RESHELVING',
1955                         'OFFLINE_UPLOAD',
1956                         'OFFLINE_VIEW',
1957                         'REMOVE_USER_GROUP_LINK',
1958                         'SET_CIRC_CLAIMS_RETURNED',
1959                         'SET_CIRC_CLAIMS_RETURNED.override',
1960                         'SET_CIRC_LOST',
1961                         'SET_CIRC_MISSING',
1962                         'UPDATE_BILL_NOTE',
1963                         'UPDATE_PATRON_CLAIM_NEVER_CHECKED_OUT_COUNT',
1964                         'UPDATE_PATRON_CLAIM_RETURN_COUNT',
1965                         'UPDATE_PAYMENT_NOTE',
1966                         'UPDATE_PICKUP_LIB FROM_TRANSIT',
1967                         'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF',
1968                         'VIEW_GROUP_PENALTY_THRESHOLD',
1969                         'VIEW_STANDING_PENALTY',
1970                         'VOID_BILLING',
1971                         'VOLUME_HOLDS');
1972
1973 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1974         SELECT
1975                 pgt.id, perm.id, aout.depth, FALSE
1976         FROM
1977                 permission.grp_tree pgt,
1978                 permission.perm_list perm,
1979                 actor.org_unit_type aout
1980         WHERE
1981                 pgt.name = 'Circulators' AND
1982                 aout.name = 'System' AND
1983                 perm.code IN (
1984                         'ABORT_REMOTE_TRANSIT',
1985                         'ABORT_TRANSIT',
1986                         'CAPTURE_RESERVATION',
1987                         'CIRC_CLAIMS_RETURNED.override',
1988                         'CIRC_EXCEEDS_COPY_RANGE.override',
1989                         'CIRC_OVERRIDE_DUE_DATE',
1990                         'CIRC_PERMIT_OVERRIDE',
1991                         'COPY_ALERT_MESSAGE.override',
1992                         'COPY_BAD_STATUS.override',
1993                         'COPY_CIRC_NOT_ALLOWED.override',
1994                         'COPY_IS_REFERENCE.override',
1995                         'COPY_NEEDED_FOR_HOLD.override',
1996                         'COPY_NOT_AVAILABLE.override',
1997                         'COPY_STATUS_LOST.override',
1998                         'COPY_STATUS_MISSING.override',
1999                         'CREATE_DUPLICATE_HOLDS',
2000                         'CREATE_USER_GROUP_LINK',
2001                         'DELETE_TRANSIT',
2002                         'HOLD_EXISTS.override',
2003                         'HOLD_ITEM_CHECKED_OUT.override',
2004                         'ISSUANCE_HOLDS',
2005                         'ITEM_AGE_PROTECTED.override',
2006                         'ITEM_ON_HOLDS_SHELF.override',
2007                         'MAX_RENEWALS_REACHED.override',
2008                         'OVERRIDE_HOLD_HAS_LOCAL_COPY',
2009                         'PATRON_EXCEEDS_CHECKOUT_COUNT.override',
2010                         'PATRON_EXCEEDS_FINES.override',
2011                         'PATRON_EXCEEDS_OVERDUE_COUNT.override',
2012                         'RETRIEVE_RESERVATION_PULL_LIST',
2013                         'UPDATE_HOLD');
2014
2015
2016 -- Add advanced circulation permissions to the Circulation Admin group
2017
2018 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2019         SELECT
2020                 pgt.id, perm.id, aout.depth, TRUE
2021         FROM
2022                 permission.grp_tree pgt,
2023                 permission.perm_list perm,
2024                 actor.org_unit_type aout
2025         WHERE
2026                 pgt.name = 'Circulation Administrator' AND
2027                 aout.name = 'Branch' AND
2028                 perm.code IN (
2029                         'DELETE_USER');
2030
2031 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2032         SELECT
2033                 pgt.id, perm.id, aout.depth, TRUE
2034         FROM
2035                 permission.grp_tree pgt,
2036                 permission.perm_list perm,
2037                 actor.org_unit_type aout
2038         WHERE
2039                 pgt.name = 'Circulation Administrator' AND
2040                 aout.name = 'Consortium' AND
2041                 perm.code IN (
2042                         'ADMIN_MAX_FINE_RULE',
2043                         'CREATE_CIRC_DURATION',
2044                         'DELETE_CIRC_DURATION',
2045                         'MARK_ITEM_MISSING_PIECES',
2046                         'UPDATE_CIRC_DURATION',
2047                         'UPDATE_HOLD_REQUEST_TIME',
2048                         'UPDATE_NET_ACCESS_LEVEL',
2049                         'VIEW_CIRC_MATRIX_MATCHPOINT',
2050             'ABORT_TRANSIT_ON_LOST', 
2051             'ABORT_TRANSIT_ON_MISSING',
2052             'UPDATE_PATRON_COLLECTIONS_EXEMPT',
2053                         'VIEW_HOLD_MATRIX_MATCHPOINT');
2054
2055 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2056         SELECT
2057                 pgt.id, perm.id, aout.depth, TRUE
2058         FROM
2059                 permission.grp_tree pgt,
2060                 permission.perm_list perm,
2061                 actor.org_unit_type aout
2062         WHERE
2063                 pgt.name = 'Circulation Administrator' AND
2064                 aout.name = 'System' AND
2065                 perm.code IN (
2066                         'ADMIN_BOOKING_RESERVATION',
2067                         'ADMIN_BOOKING_RESERVATION_ATTR_MAP',
2068                         'ADMIN_BOOKING_RESERVATION_ATTR_VALUE_MAP',
2069                         'ADMIN_BOOKING_RESOURCE',
2070                         'ADMIN_BOOKING_RESOURCE_ATTR',
2071                         'ADMIN_BOOKING_RESOURCE_ATTR_MAP',
2072                         'ADMIN_BOOKING_RESOURCE_ATTR_VALUE',
2073                         'ADMIN_BOOKING_RESOURCE_TYPE',
2074                         'ADMIN_COPY_LOCATION_ORDER',
2075                         'ADMIN_HOLD_CANCEL_CAUSE',
2076                         'ASSIGN_GROUP_PERM',
2077                         'BAR_PATRON',
2078                         'COPY_HOLDS',
2079                         'COPY_TRANSIT_RECEIVE',
2080                         'CREATE_BILL',
2081                         'CREATE_BILLING_TYPE',
2082                         'CREATE_NON_CAT_TYPE',
2083                         'CREATE_PATRON_STAT_CAT',
2084                         'CREATE_PATRON_STAT_CAT_ENTRY',
2085                         'CREATE_PATRON_STAT_CAT_ENTRY_DEFAULT',
2086                         'CREATE_PATRON_STAT_CAT_ENTRY_MAP',
2087                         'CREATE_USER_GROUP_LINK',
2088                         'DELETE_BILLING_TYPE',
2089                         'DELETE_NON_CAT_TYPE',
2090                         'DELETE_PATRON_STAT_CAT',
2091                         'DELETE_PATRON_STAT_CAT_ENTRY',
2092                         'DELETE_PATRON_STAT_CAT_ENTRY_DEFAULT',
2093                         'DELETE_PATRON_STAT_CAT_ENTRY_MAP',
2094                         'DELETE_TRANSIT',
2095                         'group_application.user.staff',
2096                         'MANAGE_BAD_DEBT',
2097                         'MARK_ITEM_AVAILABLE',
2098                         'MARK_ITEM_BINDERY',
2099                         'MARK_ITEM_CHECKED_OUT',
2100                         'MARK_ITEM_ILL',
2101                         'MARK_ITEM_IN_PROCESS',
2102                         'MARK_ITEM_IN_TRANSIT',
2103                         'MARK_ITEM_LOST',
2104                         'MARK_ITEM_MISSING',
2105                         'MARK_ITEM_ON_HOLDS_SHELF',
2106                         'MARK_ITEM_ON_ORDER',
2107                         'MARK_ITEM_RESHELVING',
2108                         'MERGE_USERS',
2109                         'money.collections_tracker.create',
2110                         'money.collections_tracker.delete',
2111                         'OFFLINE_EXECUTE',
2112                         'OFFLINE_UPLOAD',
2113                         'OFFLINE_VIEW',
2114                         'REMOVE_USER_GROUP_LINK',
2115                         'SET_CIRC_CLAIMS_RETURNED',
2116                         'SET_CIRC_CLAIMS_RETURNED.override',
2117                         'SET_CIRC_LOST',
2118                         'SET_CIRC_MISSING',
2119                         'UNBAR_PATRON',
2120                         'UPDATE_BILL_NOTE',
2121                         'UPDATE_NON_CAT_TYPE',
2122                         'UPDATE_PATRON_CLAIM_NEVER_CHECKED_OUT_COUNT',
2123                         'UPDATE_PATRON_CLAIM_RETURN_COUNT',
2124                         'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF',
2125                         'UPDATE_PICKUP_LIB_FROM_TRANSIT',
2126                         'UPDATE_USER',
2127                         'VIEW_REPORT_OUTPUT',
2128                         'VIEW_STANDING_PENALTY',
2129                         'VOID_BILLING',
2130             'TRANSIT_CHECKIN_INTERVAL_BLOCK.override',
2131                         'VOLUME_HOLDS');
2132
2133
2134 -- Add basic sys admin permissions to the Local Administrator group
2135
2136 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2137         SELECT
2138                 pgt.id, perm.id, aout.depth, TRUE
2139         FROM
2140                 permission.grp_tree pgt,
2141                 permission.perm_list perm,
2142                 actor.org_unit_type aout
2143         WHERE
2144                 pgt.name = 'Local Administrator' AND
2145                 aout.name = 'Branch' AND
2146                 perm.code IN (
2147                         'EVERYTHING');
2148
2149
2150 -- Add administration permissions to the System Administrator group
2151
2152 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2153         SELECT
2154                 pgt.id, perm.id, aout.depth, TRUE
2155         FROM
2156                 permission.grp_tree pgt,
2157                 permission.perm_list perm,
2158                 actor.org_unit_type aout
2159         WHERE
2160                 pgt.name = 'System Administrator' AND
2161                 aout.name = 'System' AND
2162                 perm.code IN (
2163                         'EVERYTHING');
2164
2165 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2166         SELECT
2167                 pgt.id, perm.id, aout.depth, FALSE
2168         FROM
2169                 permission.grp_tree pgt,
2170                 permission.perm_list perm,
2171                 actor.org_unit_type aout
2172         WHERE
2173                 pgt.name = 'System Administrator' AND
2174                 aout.name = 'Consortium' AND
2175                 perm.code ~ '^VIEW_TRIGGER';
2176
2177
2178 -- Add administration permissions to the Global Administrator group
2179
2180 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2181         SELECT
2182                 pgt.id, perm.id, aout.depth, TRUE
2183         FROM
2184                 permission.grp_tree pgt,
2185                 permission.perm_list perm,
2186                 actor.org_unit_type aout
2187         WHERE
2188                 pgt.name = 'Global Administrator' AND
2189                 aout.name = 'Consortium' AND
2190                 perm.code IN (
2191                         'EVERYTHING');
2192
2193
2194 -- Add basic acquisitions permissions to the Acquisitions group
2195
2196 SELECT SETVAL('permission.grp_perm_map_id_seq'::TEXT, (SELECT MAX(id) FROM permission.grp_perm_map));
2197
2198 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2199         SELECT
2200                 pgt.id, perm.id, aout.depth, FALSE
2201         FROM
2202                 permission.grp_tree pgt,
2203                 permission.perm_list perm,
2204                 actor.org_unit_type aout
2205         WHERE
2206                 pgt.name = 'Acquisitions' AND
2207                 aout.name = 'Consortium' AND
2208                 perm.code IN (
2209                         'ALLOW_ALT_TCN',
2210                         'CREATE_BIB_IMPORT_QUEUE',
2211                         'CREATE_IMPORT_ITEM',
2212                         'CREATE_INVOICE',
2213                         'CREATE_MARC',
2214                         'CREATE_PICKLIST',
2215                         'CREATE_PURCHASE_ORDER',
2216                         'DELETE_BIB_IMPORT_QUEUE',
2217                         'DELETE_IMPORT_ITEM',
2218                         'DELETE_RECORD',
2219                         'DELETE_VOLUME',
2220                         'DELETE_VOLUME_NOTE',
2221                         'GENERAL_ACQ',
2222                         'IMPORT_ACQ_LINEITEM_BIB_RECORD',
2223                         'IMPORT_MARC',
2224                         'MANAGE_CLAIM',
2225                         'MANAGE_FUND',
2226                         'MANAGE_FUNDING_SOURCE',
2227                         'MANAGE_PROVIDER',
2228                         'MARK_ITEM_AVAILABLE',
2229                         'MARK_ITEM_BINDERY',
2230                         'MARK_ITEM_CHECKED_OUT',
2231                         'MARK_ITEM_ILL',
2232                         'MARK_ITEM_IN_PROCESS',
2233                         'MARK_ITEM_IN_TRANSIT',
2234                         'MARK_ITEM_LOST',
2235                         'MARK_ITEM_MISSING',
2236                         'MARK_ITEM_ON_HOLDS_SHELF',
2237                         'MARK_ITEM_ON_ORDER',
2238                         'MARK_ITEM_RESHELVING',
2239                         'RECEIVE_PURCHASE_ORDER',
2240                         'UPDATE_BATCH_COPY',
2241                         'UPDATE_BIB_IMPORT_QUEUE',
2242                         'UPDATE_COPY',
2243                         'UPDATE_FUND',
2244                         'UPDATE_FUND_ALLOCATION',
2245                         'UPDATE_FUNDING_SOURCE',
2246                         'UPDATE_IMPORT_ITEM',
2247                         'UPDATE_MARC',
2248                         'UPDATE_PICKLIST',
2249                         'UPDATE_RECORD',
2250                         'UPDATE_VOLUME',
2251                         'user_request.delete',
2252                         'user_request.update',
2253                         'user_request.view',
2254                         'VIEW_ACQ_FUND_ALLOCATION_PERCENT',
2255                         'VIEW_ACQ_FUNDING_SOURCE',
2256                         'VIEW_FUND',
2257                         'VIEW_FUND_ALLOCATION',
2258                         'VIEW_FUNDING_SOURCE',
2259                         'VIEW_HOLDS',
2260                         'VIEW_INVOICE',
2261                         'VIEW_ORG_SETTINGS',
2262                         'VIEW_PICKLIST',
2263                         'VIEW_PROVIDER',
2264                         'VIEW_PURCHASE_ORDER',
2265                         'VIEW_REPORT_OUTPUT');
2266
2267
2268 -- Add acquisitions administration permissions to the Acquisitions Admin group
2269
2270 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2271         SELECT
2272                 pgt.id, perm.id, aout.depth, TRUE
2273         FROM
2274                 permission.grp_tree pgt,
2275                 permission.perm_list perm,
2276                 actor.org_unit_type aout
2277         WHERE
2278                 pgt.name = 'Acquisitions Administrator' AND
2279                 aout.name = 'Consortium' AND
2280                 perm.code IN (
2281                         'ACQ_INVOICE_REOPEN',
2282                         'ACQ_XFER_MANUAL_DFUND_AMOUNT',
2283                         'ADMIN_ACQ_CANCEL_CAUSE',
2284                         'ADMIN_ACQ_CLAIM',
2285                         'ADMIN_ACQ_CLAIM_EVENT_TYPE',
2286                         'ADMIN_ACQ_CLAIM_TYPE',
2287                         'ADMIN_ACQ_DISTRIB_FORMULA',
2288                         'ADMIN_ACQ_FISCAL_YEAR',
2289                         'ADMIN_ACQ_FUND',
2290                         'ADMIN_ACQ_FUND_ALLOCATION_PERCENT',
2291                         'ADMIN_ACQ_FUND_TAG',
2292                         'ADMIN_ACQ_LINE_ITEM_ALERT_TEXT',
2293                         'ADMIN_CLAIM_POLICY',
2294                         'ADMIN_CURRENCY_TYPE',
2295                         'ADMIN_FUND',
2296                         'ADMIN_FUNDING_SOURCE',
2297                         'ADMIN_INVOICE',
2298                         'ADMIN_INVOICE_METHOD',
2299                         'ADMIN_INVOICE_PAYMENT_METHOD',
2300                         'ADMIN_LINEITEM_MARC_ATTR_DEF',
2301                         'ADMIN_PROVIDER',
2302                         'ADMIN_USER_REQUEST_TYPE',
2303                         'CREATE_ACQ_FUNDING_SOURCE',
2304                         'CREATE_FUND',
2305                         'CREATE_FUND_ALLOCATION',
2306                         'CREATE_FUNDING_SOURCE',
2307                         'CREATE_INVOICE_ITEM_TYPE',
2308                         'CREATE_INVOICE_METHOD',
2309                         'CREATE_PROVIDER',
2310                         'DELETE_ACQ_FUNDING_SOURCE',
2311                         'DELETE_FUND',
2312                         'DELETE_FUND_ALLOCATION',
2313                         'DELETE_FUNDING_SOURCE',
2314                         'DELETE_INVOICE_ITEM_TYPE',
2315                         'DELETE_INVOICE_METHOD',
2316                         'DELETE_PROVIDER',
2317                         'RUN_REPORTS',
2318                         'CREATE_REPORT_TEMPLATE',
2319                         'SHARE_REPORT_FOLDER',
2320                         'UPDATE_ACQ_FUNDING_SOURCE',
2321                         'UPDATE_INVOICE_ITEM_TYPE',
2322                         'UPDATE_INVOICE_METHOD',
2323                         'UPDATE_PICKLIST'
2324                 );
2325
2326 -- Add serials permissions to the Serials group
2327
2328 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2329         SELECT
2330                 pgt.id, perm.id, aout.depth, FALSE
2331         FROM
2332                 permission.grp_tree pgt,
2333                 permission.perm_list perm,
2334                 actor.org_unit_type aout
2335         WHERE
2336                 pgt.name = 'Serials' AND
2337                 aout.name = 'System' AND
2338                 perm.code IN (
2339                         'ADMIN_ASSET_COPY_TEMPLATE',
2340                         'ADMIN_SERIAL_CAPTION_PATTERN',
2341                         'ADMIN_SERIAL_DISTRIBUTION',
2342                         'ADMIN_SERIAL_ITEM',
2343                         'ADMIN_SERIAL_STREAM',
2344                         'ADMIN_SERIAL_SUBSCRIPTION',
2345                         'ISSUANCE_HOLDS',
2346                         'RECEIVE_SERIAL');
2347
2348
2349 -- Add basic staff permissions to the Volunteers group
2350
2351 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2352         SELECT
2353                 pgt.id, perm.id, aout.depth, FALSE
2354         FROM
2355                 permission.grp_tree pgt,
2356                 permission.perm_list perm,
2357                 actor.org_unit_type aout
2358         WHERE
2359                 pgt.name = 'Volunteers' AND
2360                 aout.name = 'Branch' AND
2361                 perm.code IN (
2362                         'COPY_CHECKOUT',
2363                         'CREATE_BILL',
2364                         'CREATE_IN_HOUSE_USE',
2365                         'CREATE_PAYMENT',
2366                         'VIEW_BILLING_TYPE',
2367                         'VIEW_CIRCS',
2368                         'VIEW_COPY_CHECKOUT',
2369                         'VIEW_HOLD',
2370                         'VIEW_TITLE_HOLDS',
2371                         'VIEW_TRANSACTION',
2372                         'VIEW_USER',
2373                         'VIEW_USER_FINES_SUMMARY',
2374                         'VIEW_USER_TRANSACTIONS');
2375
2376 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2377         SELECT
2378                 pgt.id, perm.id, aout.depth, FALSE
2379         FROM
2380                 permission.grp_tree pgt,
2381                 permission.perm_list perm,
2382                 actor.org_unit_type aout
2383         WHERE
2384                 pgt.name = 'Volunteers' AND
2385                 aout.name = 'Consortium' AND
2386                 perm.code IN (
2387                         'CREATE_COPY_TRANSIT',
2388                         'CREATE_TRANSACTION',
2389                         'CREATE_TRANSIT',
2390                         'STAFF_LOGIN',
2391                         'TRANSIT_COPY',
2392                         'VIEW_ORG_SETTINGS');
2393
2394
2395 -- Admin user account
2396 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 );
2397
2398 -- Admin user barcode
2399 INSERT INTO actor.card (usr, barcode) VALUES (1,md5(random()::text));
2400 UPDATE actor.usr SET card = (SELECT currval('actor.card_id_seq')) WHERE id = 1;
2401
2402 -- Admin user permissions
2403 INSERT INTO permission.usr_perm_map (usr,perm,depth) VALUES (1,-1,0);
2404
2405 -- Set a work_ou for the Administrator user
2406 INSERT INTO permission.usr_work_ou_map (usr, work_ou) VALUES (1, 1);
2407
2408 --010.schema.biblio.sql:
2409 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');
2410
2411 --040.schema.asset.sql:
2412 INSERT INTO asset.copy_location (id, name,owning_lib) VALUES (1, oils_i18n_gettext(1, 'Stacks', 'acpl', 'name'),1);
2413 SELECT SETVAL('asset.copy_location_id_seq'::TEXT, 100);
2414
2415 INSERT INTO asset.call_number_suffix (id, owning_lib, label) VALUES (-1, 1, '');
2416 INSERT INTO asset.call_number_prefix (id, owning_lib, label) VALUES (-1, 1, '');
2417 INSERT INTO asset.call_number VALUES (-1,1,NOW(),1,NOW(),-1,1,'UNCATALOGED');
2418
2419 -- circ matrix
2420 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);
2421
2422 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 
2423     ('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),
2424     ('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),
2425     ('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),
2426     ('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);
2427
2428 -- hold matrix - 110.hold_matrix.sql:
2429 INSERT INTO config.hold_matrix_matchpoint (requestor_grp) VALUES (1);
2430
2431 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
2432     ('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),
2433     ('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),
2434     ('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),
2435     ('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);
2436
2437 -- dynamic weight associations
2438 INSERT INTO config.weight_assoc(active, org_unit, circ_weights, hold_weights) VALUES
2439     (true, 1, 1, 1);
2440
2441 -- User setting types
2442 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2443     VALUES ('opac.default_font', TRUE, 'OPAC Font Size', 'OPAC Font Size', 'string');
2444
2445 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2446     VALUES ('opac.default_search_depth', TRUE, 'OPAC Search Depth', 'OPAC Search Depth', 'integer');
2447
2448 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2449     VALUES ('opac.default_search_location', TRUE, 'OPAC Search Location', 'OPAC Search Location', 'integer');
2450
2451 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2452     VALUES ('opac.hits_per_page', TRUE, 'Hits per Page', 'Hits per Page', 'string');
2453
2454 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2455     VALUES ('opac.hold_notify', TRUE, 'Hold Notification Format', 'Hold Notification Format', 'string');
2456
2457 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2458     VALUES ('staff_client.catalog.record_view.default', TRUE, 'Default Record View', 'Default Record View', 'string');
2459
2460 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2461     VALUES ('staff_client.copy_editor.templates', TRUE, 'Copy Editor Template', 'Copy Editor Template', 'object');
2462
2463 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2464     VALUES ('circ.holds_behind_desk', FALSE, 'Hold is behind Circ Desk', 'Hold is behind Circ Desk', 'bool');
2465
2466 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2467     VALUES ('opac.default_pickup_location', TRUE, 'Default Hold Pickup Location', 'Default location for holds pickup', 'integer');
2468
2469 -- Add groups for org_unit settings
2470 INSERT INTO config.settings_group (name, label) VALUES
2471 ('acq', oils_i18n_gettext('config.settings_group.system', 'Acquisitions', 'coust', 'label')),
2472 ('sys', oils_i18n_gettext('config.settings_group.system', 'System', 'coust', 'label')),
2473 ('gui', oils_i18n_gettext('config.settings_group.gui', 'GUI', 'coust', 'label')),
2474 ('lib', oils_i18n_gettext('config.settings_group.lib', 'Library', 'coust', 'label')),
2475 ('sec', oils_i18n_gettext('config.settings_group.sec', 'Security', 'coust', 'label')),
2476 ('cat', oils_i18n_gettext('config.settings_group.cat', 'Cataloging', 'coust', 'label')),
2477 ('holds', oils_i18n_gettext('config.settings_group.holds', 'Holds', 'coust', 'label')),
2478 ('circ', oils_i18n_gettext('config.settings_group.circulation', 'Circulation', 'coust', 'label')),
2479 ('self', oils_i18n_gettext('config.settings_group.self', 'Self Check', 'coust', 'label')),
2480 ('opac', oils_i18n_gettext('config.settings_group.opac', 'OPAC', 'coust', 'label')),
2481 ('prog', oils_i18n_gettext('config.settings_group.program', 'Program', 'coust', 'label')),
2482 ('glob', oils_i18n_gettext('config.settings_group.global', 'Global', 'coust', 'label')),
2483 ('finance', oils_i18n_gettext('config.settings_group.finances', 'Finances', 'coust', 'label')),
2484 ('credit', oils_i18n_gettext('config.settings_group.ccp', 'Credit Card Processing', 'coust', 'label')),
2485 ('serial', oils_i18n_gettext('config.settings_group.serial', 'Serials', 'coust', 'label')),
2486 ('recall', oils_i18n_gettext('config.settings_group.recall', 'Recalls', 'coust', 'label')),
2487 ('booking', oils_i18n_gettext('config.settings_group.booking', 'Booking', 'coust', 'label')),
2488 ('offline', oils_i18n_gettext('config.settings_group.offline', 'Offline', 'coust', 'label')),
2489 ('receipt_template', oils_i18n_gettext('config.settings_group.receipt_template', 'Receipt Template', 'coust', 'label')),
2490 ('sms', oils_i18n_gettext('sms','SMS Text Messages','csg','label'))
2491 ;
2492
2493
2494
2495 -- org_unit setting types
2496 INSERT into config.org_unit_setting_type
2497 ( name, grp, label, description, datatype, fm_class ) VALUES
2498
2499 ( 'acq.copy_creator_uses_receiver', 'acq',
2500     oils_i18n_gettext('acq.copy_creator_uses_receiver',
2501         'Set copy creator as receiver',
2502         'coust', 'label'),
2503     oils_i18n_gettext('acq.copy_creator_uses_receiver',
2504         'When receiving a copy in acquisitions, set the copy "creator" to be the staff that received the copy',
2505         'coust', 'description'),
2506     'bool', null)
2507
2508 ,( 'acq.default_circ_modifier', 'acq',
2509     oils_i18n_gettext('acq.default_circ_modifier',
2510         'Default circulation modifier',
2511         'coust', 'label'),
2512     oils_i18n_gettext('acq.default_circ_modifier',
2513         'Default circulation modifier',
2514         'coust', 'description'),
2515     'string', null)
2516
2517 ,( 'acq.default_copy_location', 'acq',
2518     oils_i18n_gettext('acq.default_copy_location',
2519         'Default copy location',
2520         'coust', 'label'),
2521     oils_i18n_gettext('acq.default_copy_location',
2522         'Default copy location',
2523         'coust', 'description'),
2524     'link', 'acpl')
2525
2526 ,( 'acq.fund.balance_limit.block', 'acq',
2527     oils_i18n_gettext('acq.fund.balance_limit.block',
2528         'Fund Spending Limit for Block',
2529         'coust', 'label'),
2530     oils_i18n_gettext('acq.fund.balance_limit.block',
2531         '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.',
2532         'coust', 'description'),
2533     'integer', null)
2534
2535 ,( 'acq.fund.balance_limit.warn', 'acq',
2536     oils_i18n_gettext('acq.fund.balance_limit.warn',
2537         'Fund Spending Limit for Warning',
2538         'coust', 'label'),
2539     oils_i18n_gettext('acq.fund.balance_limit.warn',
2540         '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.',
2541         'coust', 'description'),
2542     'integer', null)
2543
2544 ,( 'acq.holds.allow_holds_from_purchase_request', 'acq',
2545     oils_i18n_gettext('acq.holds.allow_holds_from_purchase_request',
2546         'Allows patrons to create automatic holds from purchase requests.',
2547         'coust', 'label'),
2548     oils_i18n_gettext('acq.holds.allow_holds_from_purchase_request',
2549         'Allows patrons to create automatic holds from purchase requests.',
2550         'coust', 'description'),
2551     'bool', null)
2552
2553 ,( 'acq.tmp_barcode_prefix', 'acq',
2554     oils_i18n_gettext('acq.tmp_barcode_prefix',
2555         'Temporary barcode prefix',
2556         'coust', 'label'),
2557     oils_i18n_gettext('acq.tmp_barcode_prefix',
2558         'Temporary barcode prefix',
2559         'coust', 'description'),
2560     'string', null)
2561
2562 ,( 'acq.tmp_callnumber_prefix', 'acq',
2563     oils_i18n_gettext('acq.tmp_callnumber_prefix',
2564         'Temporary call number prefix',
2565         'coust', 'label'),
2566     oils_i18n_gettext('acq.tmp_callnumber_prefix',
2567         'Temporary call number prefix',
2568         'coust', 'description'),
2569     'string', null)
2570
2571 ,( 'auth.opac_timeout', 'sec',
2572     oils_i18n_gettext('auth.opac_timeout',
2573         'OPAC Inactivity Timeout (in seconds)',
2574         'coust', 'label'),
2575     oils_i18n_gettext('auth.opac_timeout',
2576         'OPAC Inactivity Timeout (in seconds)',
2577         'coust', 'description'),
2578     'integer', null)
2579
2580 ,( 'auth.persistent_login_interval', 'sec',
2581     oils_i18n_gettext('auth.persistent_login_interval',
2582         'Persistent Login Duration',
2583         'coust', 'label'),
2584     oils_i18n_gettext('auth.persistent_login_interval',
2585         'How long a persistent login lasts.  E.g. ''2 weeks''',
2586         'coust', 'description'),
2587     'interval', null)
2588
2589 ,( 'auth.staff_timeout', 'sec',
2590     oils_i18n_gettext('auth.staff_timeout',
2591         'Staff Login Inactivity Timeout (in seconds)',
2592         'coust', 'label'),
2593     oils_i18n_gettext('auth.staff_timeout',
2594         'Staff Login Inactivity Timeout (in seconds)',
2595         'coust', 'description'),
2596     'integer', null)
2597
2598 ,( 'booking.allow_email_notify', 'booking',
2599     oils_i18n_gettext('booking.allow_email_notify',
2600         'Allow Email Notify',
2601         'coust', 'label'),
2602     oils_i18n_gettext('booking.allow_email_notify',
2603         'Permit email notification when a reservation is ready for pickup.',
2604         'coust', 'description'),
2605     'bool', null)
2606
2607 ,( 'cat.bib.alert_on_empty', 'gui',
2608     oils_i18n_gettext('cat.bib.alert_on_empty',
2609         'Alert on empty bib records',
2610         'coust', 'label'),
2611     oils_i18n_gettext('cat.bib.alert_on_empty',
2612         'Alert staff when the last copy for a record is being deleted',
2613         'coust', 'description'),
2614     'bool', null)
2615
2616 ,( 'cat.bib.delete_on_no_copy_via_acq_lineitem_cancel', 'cat',
2617     oils_i18n_gettext('cat.bib.delete_on_no_copy_via_acq_lineitem_cancel',
2618         'Delete bib if all copies are deleted via Acquisitions lineitem cancellation.',
2619         'coust', 'label'),
2620     oils_i18n_gettext('cat.bib.delete_on_no_copy_via_acq_lineitem_cancel',
2621         'Delete bib if all copies are deleted via Acquisitions lineitem cancellation.',
2622         'coust', 'description'),
2623     'bool', null)
2624
2625 ,( 'cat.bib.keep_on_empty', 'prog',
2626     oils_i18n_gettext('cat.bib.keep_on_empty',
2627         'Retain empty bib records',
2628         'coust', 'label'),
2629     oils_i18n_gettext('cat.bib.keep_on_empty',
2630         'Retain a bib record even when all attached copies are deleted',
2631         'coust', 'description'),
2632     'bool', null)
2633
2634 ,( 'cat.default_classification_scheme', 'cat',
2635     oils_i18n_gettext('cat.default_classification_scheme',
2636         'Default Classification Scheme',
2637         'coust', 'label'),
2638     oils_i18n_gettext('cat.default_classification_scheme',
2639         'Defines the default classification scheme for new call numbers: 1 = Generic; 2 = Dewey; 3 = LC',
2640         'coust', 'description'),
2641     'link', 'acnc')
2642
2643 ,( 'cat.default_copy_status_fast', 'cat',
2644     oils_i18n_gettext('cat.default_copy_status_fast',
2645         'Default copy status (fast add)',
2646         'coust', 'label'),
2647     oils_i18n_gettext('cat.default_copy_status_fast',
2648         'Default status when a copy is created using the "Fast Add" interface.',
2649         'coust', 'description'),
2650     'link', 'ccs')
2651
2652 ,( 'cat.default_copy_status_normal', 'cat',
2653     oils_i18n_gettext('cat.default_copy_status_normal',
2654         'Default copy status (normal)',
2655         'coust', 'label'),
2656     oils_i18n_gettext('cat.default_copy_status_normal',
2657         'Default status when a copy is created using the normal volume/copy creator interface.',
2658         'coust', 'description'),
2659     'link', 'ccs')
2660
2661 ,( 'cat.default_item_price', 'finance',
2662     oils_i18n_gettext('cat.default_item_price',
2663         'Default Item Price',
2664         'coust', 'label'),
2665     oils_i18n_gettext('cat.default_item_price',
2666         'Default Item Price',
2667         'coust', 'description'),
2668     'currency', null)
2669
2670 ,( 'cat.label.font.family', 'cat',
2671     oils_i18n_gettext('cat.label.font.family',
2672         'Spine and pocket label font family',
2673         'coust', 'label'),
2674     oils_i18n_gettext('cat.label.font.family',
2675         '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".',
2676         'coust', 'description'),
2677     'string', null)
2678
2679 ,( 'cat.label.font.size', 'cat',
2680     oils_i18n_gettext('cat.label.font.size',
2681         'Spine and pocket label font size',
2682         'coust', 'label'),
2683     oils_i18n_gettext('cat.label.font.size',
2684         'Set the default font size for spine and pocket labels',
2685         'coust', 'description'),
2686     'integer', null)
2687
2688 ,( 'cat.label.font.weight', 'cat',
2689     oils_i18n_gettext('cat.label.font.weight',
2690         'Spine and pocket label font weight',
2691         'coust', 'label'),
2692     oils_i18n_gettext('cat.label.font.weight',
2693         'Set the preferred font weight for spine and pocket labels. You can specify "normal", "bold", "bolder", or "lighter".',
2694         'coust', 'description'),
2695     'string', null)
2696
2697 ,( 'cat.marc_control_number_identifier', 'cat',
2698     oils_i18n_gettext('cat.marc_control_number_identifier',
2699         'Defines the control number identifier used in 003 and 035 fields.',
2700         'coust', 'label'),
2701     oils_i18n_gettext('cat.marc_control_number_identifier',
2702         'Cat: Defines the control number identifier used in 003 and 035 fields.',
2703         'coust', 'description'),
2704     'string', null)
2705
2706 ,( 'cat.spine.line.height', 'cat',
2707     oils_i18n_gettext('cat.spine.line.height',
2708         'Spine label maximum lines',
2709         'coust', 'label'),
2710     oils_i18n_gettext('cat.spine.line.height',
2711         'Set the default maximum number of lines for spine labels.',
2712         'coust', 'description'),
2713     'integer', null)
2714
2715 ,( 'cat.spine.line.margin', 'cat',
2716     oils_i18n_gettext('cat.spine.line.margin',
2717         'Spine label left margin',
2718         'coust', 'label'),
2719     oils_i18n_gettext('cat.spine.line.margin',
2720         'Set the left margin for spine labels in number of characters.',
2721         'coust', 'description'),
2722     'integer', null)
2723
2724 ,( 'cat.spine.line.width', 'cat',
2725     oils_i18n_gettext('cat.spine.line.width',
2726         'Spine label line width',
2727         'coust', 'label'),
2728     oils_i18n_gettext('cat.spine.line.width',
2729         'Set the default line width for spine labels in number of characters. This specifies the boundary at which lines must be wrapped.',
2730         'coust', 'description'),
2731     'integer', null)
2732
2733 ,( 'cat.volume.delete_on_empty', 'cat',
2734     oils_i18n_gettext('cat.volume.delete_on_empty',
2735         'Delete volume with last copy',
2736         'coust', 'label'),
2737     oils_i18n_gettext('cat.volume.delete_on_empty',
2738         'Automatically delete a volume when the last linked copy is deleted',
2739         'coust', 'description'),
2740     'bool', null)
2741
2742 ,( 'circ.auto_hide_patron_summary', 'gui',
2743     oils_i18n_gettext('circ.auto_hide_patron_summary',
2744         'Toggle off the patron summary sidebar after first view.',
2745         'coust', 'label'),
2746     oils_i18n_gettext('circ.auto_hide_patron_summary',
2747         'When true, the patron summary sidebar will collapse after a new patron sub-interface is selected.',
2748         'coust', 'description'),
2749     'bool', null)
2750
2751 ,( 'circ.block_renews_for_holds', 'holds',
2752     oils_i18n_gettext('circ.block_renews_for_holds',
2753         'Block Renewal of Items Needed for Holds',
2754         'coust', 'label'),
2755     oils_i18n_gettext('circ.block_renews_for_holds',
2756         'When an item could fulfill a hold, do not allow the current patron to renew',
2757         'coust', 'description'),
2758     'bool', null)
2759
2760 ,( 'circ.booking_reservation.default_elbow_room', 'booking',
2761     oils_i18n_gettext('circ.booking_reservation.default_elbow_room',
2762         'Booking elbow room',
2763         'coust', 'label'),
2764     oils_i18n_gettext('circ.booking_reservation.default_elbow_room',
2765         '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.',
2766         'coust', 'description'),
2767     'interval', null)
2768
2769 ,( 'circ.charge_lost_on_zero', 'finance',
2770     oils_i18n_gettext('circ.charge_lost_on_zero',
2771         'Charge lost on zero',
2772         'coust', 'label'),
2773     oils_i18n_gettext('circ.charge_lost_on_zero',
2774         'Charge lost on zero',
2775         'coust', 'description'),
2776     'bool', null)
2777
2778 ,( 'circ.charge_on_damaged', 'finance',
2779     oils_i18n_gettext('circ.charge_on_damaged',
2780         'Charge item price when marked damaged',
2781         'coust', 'label'),
2782     oils_i18n_gettext('circ.charge_on_damaged',
2783         'Charge item price when marked damaged',
2784         'coust', 'description'),
2785     'bool', null)
2786
2787 ,( 'circ.checkout_auto_renew_age', 'circ',
2788     oils_i18n_gettext('circ.checkout_auto_renew_age',
2789         'Checkout auto renew age',
2790         'coust', 'label'),
2791     oils_i18n_gettext('circ.checkout_auto_renew_age',
2792         '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',
2793         'coust', 'description'),
2794     'interval', null)
2795
2796 ,( 'circ.checkout_fills_related_hold', 'circ',
2797     oils_i18n_gettext('circ.checkout_fills_related_hold',
2798         'Checkout Fills Related Hold',
2799         'coust', 'label'),
2800     oils_i18n_gettext('circ.checkout_fills_related_hold',
2801         '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',
2802         'coust', 'description'),
2803     'bool', null)
2804
2805 ,( 'circ.checkout_fills_related_hold_exact_match_only', 'circ',
2806     oils_i18n_gettext('circ.checkout_fills_related_hold_exact_match_only',
2807         'Checkout Fills Related Hold On Valid Copy Only',
2808         'coust', 'label'),
2809     oils_i18n_gettext('circ.checkout_fills_related_hold_exact_match_only',
2810         '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.',
2811         'coust', 'description'),
2812     'bool', null)
2813
2814 ,( 'circ.claim_never_checked_out.mark_missing', 'lib',
2815     oils_i18n_gettext('circ.claim_never_checked_out.mark_missing',
2816         'Claim Never Checked Out: Mark copy as missing',
2817         'coust', 'label'),
2818     oils_i18n_gettext('circ.claim_never_checked_out.mark_missing',
2819         'When a circ is marked as claims-never-checked-out, mark the copy as missing',
2820         'coust', 'description'),
2821     'bool', null)
2822
2823 ,( 'circ.claim_return.copy_status', 'lib',
2824     oils_i18n_gettext('circ.claim_return.copy_status',
2825         'Claim Return Copy Status',
2826         'coust', 'label'),
2827     oils_i18n_gettext('circ.claim_return.copy_status',
2828         'Claims returned copies are put into this status.  Default is to leave the copy in the Checked Out status',
2829         'coust', 'description'),
2830     'link', 'ccs')
2831
2832 ,( 'circ.damaged.void_ovedue', 'lib',
2833     oils_i18n_gettext('circ.damaged.void_ovedue',
2834         'Mark item damaged voids overdues',
2835         'coust', 'label'),
2836     oils_i18n_gettext('circ.damaged.void_ovedue',
2837         'When an item is marked damaged, overdue fines on the most recent circulation are voided.',
2838         'coust', 'description'),
2839     'bool', null)
2840
2841 ,( 'circ.damaged_item_processing_fee', 'finance',
2842     oils_i18n_gettext('circ.damaged_item_processing_fee',
2843         'Charge processing fee for damaged items',
2844         'coust', 'label'),
2845     oils_i18n_gettext('circ.damaged_item_processing_fee',
2846         'Charge processing fee for damaged items',
2847         'coust', 'description'),
2848     'currency', null)
2849
2850 ,( 'circ.do_not_tally_claims_returned', 'circ',
2851     oils_i18n_gettext('circ.do_not_tally_claims_returned',
2852         'Do not include outstanding Claims Returned circulations in lump sum tallies in Patron Display.',
2853         'coust', 'label'),
2854     oils_i18n_gettext('circ.do_not_tally_claims_returned',
2855         '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.',
2856         'coust', 'description'),
2857     'bool', null)
2858
2859 ,( 'circ.grace.extend', 'circ',
2860     oils_i18n_gettext('circ.grace.extend',
2861         'Auto-Extend Grace Periods',
2862         'coust', 'label'),
2863     oils_i18n_gettext('circ.grace.extend',
2864         '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.',
2865         'coust', 'description'),
2866     'bool', null)
2867
2868 ,( 'circ.grace.extend.all', 'circ',
2869     oils_i18n_gettext('circ.grace.extend.all',
2870         'Auto-Extending Grace Periods extend for all closed dates',
2871         'coust', 'label'),
2872     oils_i18n_gettext('circ.grace.extend.all',
2873         '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".',
2874         'coust', 'description'),
2875     'bool', null)
2876
2877 ,( 'circ.grace.extend.into_closed', 'circ',
2878     oils_i18n_gettext('circ.grace.extend.into_closed',
2879         'Auto-Extending Grace Periods include trailing closed dates',
2880         'coust', 'label'),
2881     oils_i18n_gettext('circ.grace.extend.into_closed',
2882          '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.',
2883         'coust', 'description'),
2884     'bool', null)
2885
2886 ,( 'circ.hold_boundary.hard', 'holds',
2887     oils_i18n_gettext('circ.hold_boundary.hard',
2888         'Hard boundary',
2889         'coust', 'label'),
2890     oils_i18n_gettext('circ.hold_boundary.hard',
2891         'Holds: Hard boundary',
2892         'coust', 'description'),
2893     'integer', null)
2894
2895 ,( 'circ.hold_boundary.soft', 'holds',
2896     oils_i18n_gettext('circ.hold_boundary.soft',
2897         'Soft boundary',
2898         'coust', 'label'),
2899     oils_i18n_gettext('circ.hold_boundary.soft',
2900         'Holds: Soft boundary',
2901         'coust', 'description'),
2902     'integer', null)
2903
2904 ,( 'circ.hold_expire_alert_interval', 'holds',
2905     oils_i18n_gettext('circ.hold_expire_alert_interval',
2906         'Expire Alert Interval',
2907         'coust', 'label'),
2908     oils_i18n_gettext('circ.hold_expire_alert_interval',
2909         'Amount of time before a hold expires at which point the patron should be alerted. Examples: "5 days", "1 hour"',
2910         'coust', 'description'),
2911     'interval', null)
2912
2913 ,( 'circ.hold_expire_interval', 'holds',
2914     oils_i18n_gettext('circ.hold_expire_interval',
2915         'Expire Interval',
2916         'coust', 'label'),
2917     oils_i18n_gettext('circ.hold_expire_interval',
2918         'Amount of time after a hold is placed before the hold expires.  Example "100 days"',
2919         'coust', 'description'),
2920     'interval', null)
2921
2922 ,( 'circ.hold_shelf_status_delay', 'circ',
2923     oils_i18n_gettext('circ.hold_shelf_status_delay',
2924         'Hold Shelf Status Delay',
2925         'coust', 'label'),
2926     oils_i18n_gettext('circ.hold_shelf_status_delay',
2927         '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"',
2928         'coust', 'description'),
2929     'interval', null)
2930
2931 ,( 'circ.hold_stalling.soft', 'holds',
2932     oils_i18n_gettext('circ.hold_stalling.soft',
2933         'Soft stalling interval',
2934         'coust', 'label'),
2935     oils_i18n_gettext('circ.hold_stalling.soft',
2936         'How long to wait before allowing remote items to be opportunistically captured for a hold.  Example "5 days"',
2937         'coust', 'description'),
2938     'interval', null)
2939
2940 ,( 'circ.hold_stalling_hard', 'holds',
2941     oils_i18n_gettext('circ.hold_stalling_hard',
2942         'Hard stalling interval',
2943         'coust', 'label'),
2944     oils_i18n_gettext('circ.hold_stalling_hard',
2945         'Holds: Hard stalling interval',
2946         'coust', 'description'),
2947     'interval', null)
2948
2949 ,( 'circ.holds.age_protect.active_date', 'holds',
2950     oils_i18n_gettext('circ.holds.age_protect.active_date',
2951         'Use Active Date for Age Protection',
2952         'coust', 'label'),
2953     oils_i18n_gettext('circ.holds.age_protect.active_date',
2954         'When calculating age protection rules use the active date instead of the creation date.',
2955         'coust', 'description'),
2956     'bool', null)
2957
2958 ,( 'circ.holds.behind_desk_pickup_supported', 'holds',
2959     oils_i18n_gettext('circ.holds.behind_desk_pickup_supported',
2960         'Behind Desk Pickup Supported',
2961         'coust', 'label'),
2962     oils_i18n_gettext('circ.holds.behind_desk_pickup_supported',
2963         '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',
2964         'coust', 'description'),
2965     'bool', null)
2966
2967 ,( 'circ.holds.canceled.display_age', 'holds',
2968     oils_i18n_gettext('circ.holds.canceled.display_age',
2969         'Canceled holds display age',
2970         'coust', 'label'),
2971     oils_i18n_gettext('circ.holds.canceled.display_age',
2972         'Show all canceled holds that were canceled within this amount of time',
2973         'coust', 'description'),
2974     'interval', null)
2975
2976 ,( 'circ.holds.canceled.display_count', 'holds',
2977     oils_i18n_gettext('circ.holds.canceled.display_count',
2978         'Canceled holds display count',
2979         'coust', 'label'),
2980     oils_i18n_gettext('circ.holds.canceled.display_count',
2981         'How many canceled holds to show in patron holds interfaces',
2982         'coust', 'description'),
2983     'integer', null)
2984
2985 ,( 'circ.holds.clear_shelf.copy_status', 'holds',
2986     oils_i18n_gettext('circ.holds.clear_shelf.copy_status',
2987         'Clear shelf copy status',
2988         'coust', 'label'),
2989     oils_i18n_gettext('circ.holds.clear_shelf.copy_status',
2990         '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',
2991         'coust', 'description'),
2992     'link', 'ccs')
2993
2994 ,( 'circ.holds.clear_shelf.no_capture_holds', 'holds',
2995     oils_i18n_gettext('circ.holds.clear_shelf.no_capture_holds',
2996         'Bypass hold capture during clear shelf process',
2997         'coust', 'label'),
2998     oils_i18n_gettext('circ.holds.clear_shelf.no_capture_holds',
2999         'During the clear shelf process, avoid capturing new holds on cleared items.',
3000         'coust', 'description'),
3001     'bool', null)
3002
3003 ,( 'circ.holds.default_estimated_wait_interval', 'holds',
3004     oils_i18n_gettext('circ.holds.default_estimated_wait_interval',
3005         'Default Estimated Wait',
3006         'coust', 'label'),
3007     oils_i18n_gettext('circ.holds.default_estimated_wait_interval',
3008         '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"',
3009         'coust', 'description'),
3010     'interval', null)
3011
3012 ,( 'circ.holds.default_shelf_expire_interval', 'holds',
3013     oils_i18n_gettext('circ.holds.default_shelf_expire_interval',
3014         'Default hold shelf expire interval',
3015         'coust', 'label'),
3016     oils_i18n_gettext('circ.holds.default_shelf_expire_interval',
3017         '',
3018         'coust', 'description'),
3019     'interval', null)
3020
3021 ,( 'circ.holds.expired_patron_block', 'circ',
3022     oils_i18n_gettext('circ.holds.expired_patron_block',
3023         'Block hold request if hold recipient privileges have expired',
3024         'coust', 'label'),
3025     oils_i18n_gettext('circ.holds.expired_patron_block',
3026         'Block hold request if hold recipient privileges have expired',
3027         'coust', 'description'),
3028     'bool', null)
3029
3030 ,( 'circ.holds.hold_has_copy_at.alert', 'holds',
3031     oils_i18n_gettext('circ.holds.hold_has_copy_at.alert',
3032         'Has Local Copy Alert',
3033         'coust', 'label'),
3034     oils_i18n_gettext('circ.holds.hold_has_copy_at.alert',
3035         'If there is an available copy at the requesting library that could fulfill a hold during hold placement time, alert the patron',
3036         'coust', 'description'),
3037     'bool', null)
3038
3039 ,( 'circ.holds.hold_has_copy_at.block', 'holds',
3040     oils_i18n_gettext('circ.holds.hold_has_copy_at.block',
3041         'Has Local Copy Block',
3042         'coust', 'label'),
3043     oils_i18n_gettext('circ.holds.hold_has_copy_at.block',
3044         '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',
3045         'coust', 'description'),
3046     'bool', null)
3047
3048 ,( 'circ.holds.max_org_unit_target_loops', 'holds',
3049     oils_i18n_gettext('circ.holds.max_org_unit_target_loops',
3050         'Maximum library target attempts',
3051         'coust', 'label'),
3052     oils_i18n_gettext('circ.holds.max_org_unit_target_loops',
3053         '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',
3054         'coust', 'description'),
3055     'integer', null)
3056
3057 ,( 'circ.holds.min_estimated_wait_interval', 'holds',
3058     oils_i18n_gettext('circ.holds.min_estimated_wait_interval',
3059         'Minimum Estimated Wait',
3060         'coust', 'label'),
3061     oils_i18n_gettext('circ.holds.min_estimated_wait_interval',
3062         '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"',
3063         'coust', 'description'),
3064     'interval', null)
3065
3066 ,( 'circ.holds.org_unit_target_weight', 'holds',
3067     oils_i18n_gettext('circ.holds.org_unit_target_weight',
3068         'Org Unit Target Weight',
3069         'coust', 'label'),
3070     oils_i18n_gettext('circ.holds.org_unit_target_weight',
3071         '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.',
3072         'coust', 'description'),
3073     'integer', null)
3074
3075 ,( 'circ.holds.recall_fine_rules', 'recall',
3076     oils_i18n_gettext('circ.holds.recall_fine_rules',
3077         'An array of fine amount, fine interval, and maximum fine.',
3078         'coust', 'label'),
3079     oils_i18n_gettext('circ.holds.recall_fine_rules',
3080         '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]',
3081         'coust', 'description'),
3082     'array', null)
3083
3084 ,( 'circ.holds.recall_return_interval', 'recall',
3085     oils_i18n_gettext('circ.holds.recall_return_interval',
3086         'Truncated loan period.',
3087         'coust', 'label'),
3088     oils_i18n_gettext('circ.holds.recall_return_interval',
3089         'Recalls: When a recall is triggered, this defines the adjusted loan period for the item. For example, "4 days" or "1 week".',
3090         'coust', 'description'),
3091     'interval', null)
3092
3093 ,( 'circ.holds.recall_threshold', 'recall',
3094     oils_i18n_gettext('circ.holds.recall_threshold',
3095         'Circulation duration that triggers a recall.',
3096         'coust', 'label'),
3097     oils_i18n_gettext('circ.holds.recall_threshold',
3098         '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".',
3099         'coust', 'description'),
3100     'interval', null)
3101
3102 ,( 'circ.holds.target_holds_by_org_unit_weight', 'holds',
3103     oils_i18n_gettext('circ.holds.target_holds_by_org_unit_weight',
3104         'Use weight-based hold targeting',
3105         'coust', 'label'),
3106     oils_i18n_gettext('circ.holds.target_holds_by_org_unit_weight',
3107         'Use library weight based hold targeting',
3108         'coust', 'description'),
3109     'bool', null)
3110
3111 ,( 'circ.holds.target_skip_me', 'holds',
3112     oils_i18n_gettext('circ.holds.target_skip_me',
3113         'Skip For Hold Targeting',
3114         'coust', 'label'),
3115     oils_i18n_gettext('circ.holds.target_skip_me',
3116         'When true, don''t target any copies at this org unit for holds',
3117         'coust', 'description'),
3118     'bool', null)
3119
3120 ,( 'circ.holds.uncancel.reset_request_time', 'holds',
3121     oils_i18n_gettext('circ.holds.uncancel.reset_request_time',
3122         'Reset request time on un-cancel',
3123         'coust', 'label'),
3124     oils_i18n_gettext('circ.holds.uncancel.reset_request_time',
3125         'When a hold is uncanceled, reset the request time to push it to the end of the queue',
3126         'coust', 'description'),
3127     'bool', null)
3128
3129 ,( 'circ.holds_fifo', 'holds',
3130     oils_i18n_gettext('circ.holds_fifo',
3131         'FIFO',
3132         'coust', 'label'),
3133     oils_i18n_gettext('circ.holds_fifo',
3134         'Force holds to a more strict First-In, First-Out capture',
3135         'coust', 'description'),
3136     'bool', null)
3137
3138 ,( 'circ.item_checkout_history.max', 'gui',
3139     oils_i18n_gettext('circ.item_checkout_history.max',
3140         'Maximum previous checkouts displayed',
3141         'coust', 'label'),
3142     oils_i18n_gettext('circ.item_checkout_history.max',
3143         'This is the maximum number of previous circulations the staff client will display when investigating item details',
3144         'coust', 'description'),
3145     'integer', null)
3146
3147 ,( 'circ.lost.generate_overdue_on_checkin', 'circ',
3148     oils_i18n_gettext('circ.lost.generate_overdue_on_checkin',
3149         'Lost Checkin Generates New Overdues',
3150         'coust', 'label'),
3151     oils_i18n_gettext('circ.lost.generate_overdue_on_checkin',
3152         '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',
3153         'coust', 'description'),
3154     'bool', null)
3155
3156 ,( 'circ.lost_immediately_available', 'circ',
3157     oils_i18n_gettext('circ.lost_immediately_available',
3158         'Lost items usable on checkin',
3159         'coust', 'label'),
3160     oils_i18n_gettext('circ.lost_immediately_available',
3161         'Lost items are usable on checkin instead of going ''home'' first',
3162         'coust', 'description'),
3163     'bool', null)
3164
3165 ,( 'circ.lost_materials_processing_fee', 'finance',
3166     oils_i18n_gettext('circ.lost_materials_processing_fee',
3167         'Lost Materials Processing Fee',
3168         'coust', 'label'),
3169     oils_i18n_gettext('circ.lost_materials_processing_fee',
3170         'Lost Materials Processing Fee',
3171         'coust', 'description'),
3172     'currency', null)
3173
3174 ,( 'circ.max_accept_return_of_lost', 'circ',
3175     oils_i18n_gettext('circ.max_accept_return_of_lost',
3176         'Void lost max interval',
3177         'coust', 'label'),
3178     oils_i18n_gettext('circ.max_accept_return_of_lost',
3179         'Items that have been lost this long will not result in voided billings when returned.  E.g. ''6 months''',
3180         'coust', 'description'),
3181     'interval', null)
3182
3183 ,( 'circ.max_fine.cap_at_price', 'circ',
3184     oils_i18n_gettext('circ.max_fine.cap_at_price',
3185         'Cap Max Fine at Item Price',
3186         'coust', 'label'),
3187     oils_i18n_gettext('circ.max_fine.cap_at_price',
3188         'This prevents the system from charging more than the item price in overdue fines',
3189         'coust', 'description'),
3190     'bool', null)
3191
3192 ,( 'circ.max_patron_claim_return_count', 'circ',
3193     oils_i18n_gettext('circ.max_patron_claim_return_count',
3194         'Max Patron Claims Returned Count',
3195         'coust', 'label'),
3196     oils_i18n_gettext('circ.max_patron_claim_return_count',
3197         'When this count is exceeded, a staff override is required to mark the item as claims returned',
3198         'coust', 'description'),
3199     'integer', null)
3200
3201 ,( 'circ.missing_pieces.copy_status', 'circ',
3202     oils_i18n_gettext('circ.missing_pieces.copy_status',
3203         'Item Status for Missing Pieces',
3204         'coust', 'label'),
3205     oils_i18n_gettext('circ.missing_pieces.copy_status',
3206         '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.',
3207         'coust', 'description'),
3208     'link', 'ccs')
3209
3210 ,( 'circ.obscure_dob', 'sec',
3211     oils_i18n_gettext('circ.obscure_dob',
3212         'Obscure the Date of Birth field',
3213         'coust', 'label'),
3214     oils_i18n_gettext('circ.obscure_dob',
3215         '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.',
3216         'coust', 'description'),
3217     'bool', null)
3218
3219 ,( 'circ.offline.skip_checkin_if_newer_status_changed_time', 'offline',
3220     oils_i18n_gettext('circ.offline.skip_checkin_if_newer_status_changed_time',
3221         'Skip offline checkin if newer item Status Changed Time.',
3222         'coust', 'label'),
3223     oils_i18n_gettext('circ.offline.skip_checkin_if_newer_status_changed_time',
3224         '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.',
3225         'coust', 'description'),
3226     'bool', null)
3227
3228 ,( 'circ.offline.skip_checkout_if_newer_status_changed_time', 'offline',
3229     oils_i18n_gettext('circ.offline.skip_checkout_if_newer_status_changed_time',
3230         'Skip offline checkout if newer item Status Changed Time.',
3231         'coust', 'label'),
3232     oils_i18n_gettext('circ.offline.skip_checkout_if_newer_status_changed_time',
3233         '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.',
3234         'coust', 'description'),
3235     'bool', null)
3236
3237 ,( 'circ.offline.skip_renew_if_newer_status_changed_time', 'offline',
3238     oils_i18n_gettext('circ.offline.skip_renew_if_newer_status_changed_time',
3239         'Skip offline renewal if newer item Status Changed Time.',
3240         'coust', 'label'),
3241     oils_i18n_gettext('circ.offline.skip_renew_if_newer_status_changed_time',
3242         '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.',
3243         'coust', 'description'),
3244     'bool', null)
3245
3246 ,( 'circ.offline.username_allowed', 'sec',
3247     oils_i18n_gettext('circ.offline.username_allowed',
3248         'Offline: Patron Usernames Allowed',
3249         'coust', 'label'),
3250     oils_i18n_gettext('circ.offline.username_allowed',
3251         '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',
3252         'coust', 'description'),
3253     'bool', null)
3254
3255 ,( 'circ.password_reset_request_per_user_limit', 'sec',
3256     oils_i18n_gettext('circ.password_reset_request_per_user_limit',
3257         'Maximum concurrently active self-serve password reset requests per user',
3258         'coust', 'label'),
3259     oils_i18n_gettext('circ.password_reset_request_per_user_limit',
3260         '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.',
3261         'coust', 'description'),
3262     'string', null)
3263
3264 ,( 'circ.password_reset_request_requires_matching_email', 'circ',
3265     oils_i18n_gettext('circ.password_reset_request_requires_matching_email',
3266         'Require matching email address for password reset requests',
3267         'coust', 'label'),
3268     oils_i18n_gettext('circ.password_reset_request_requires_matching_email',
3269         'Require matching email address for password reset requests',
3270         'coust', 'description'),
3271     'bool', null)
3272
3273 ,( 'circ.password_reset_request_throttle', 'sec',
3274     oils_i18n_gettext('circ.password_reset_request_throttle',
3275         'Maximum concurrently active self-serve password reset requests',
3276         'coust', 'label'),
3277     oils_i18n_gettext('circ.password_reset_request_throttle',
3278         'Prevent the creation of new self-serve password reset requests until the number of active requests drops back below this number.',
3279         'coust', 'description'),
3280     'string', null)
3281
3282 ,( 'circ.password_reset_request_time_to_live', 'sec',
3283     oils_i18n_gettext('circ.password_reset_request_time_to_live',
3284         'Self-serve password reset request time-to-live',
3285         'coust', 'label'),
3286     oils_i18n_gettext('circ.password_reset_request_time_to_live',
3287         'Length of time (in seconds) a self-serve password reset request should remain active.',
3288         'coust', 'description'),
3289     'string', null)
3290
3291 ,( 'circ.patron_edit.clone.copy_address', 'circ',
3292     oils_i18n_gettext('circ.patron_edit.clone.copy_address',
3293         'Patron Registration: Cloned patrons get address copy',
3294         'coust', 'label'),
3295     oils_i18n_gettext('circ.patron_edit.clone.copy_address',
3296         'In the Patron editor, copy addresses from the cloned user instead of linking directly to the address',
3297         'coust', 'description'),
3298     'bool', null)
3299
3300 ,( 'circ.patron_invalid_address_apply_penalty', 'circ',
3301     oils_i18n_gettext('circ.patron_invalid_address_apply_penalty',
3302         'Invalid patron address penalty',
3303         'coust', 'label'),
3304     oils_i18n_gettext('circ.patron_invalid_address_apply_penalty',
3305         'When set, if a patron address is set to invalid, a penalty is applied.',
3306         'coust', 'description'),
3307     'bool', null)
3308
3309 ,( 'circ.pre_cat_copy_circ_lib', 'lib',
3310     oils_i18n_gettext('circ.pre_cat_copy_circ_lib',
3311         'Pre-cat Item Circ Lib',
3312         'coust', 'label'),
3313     oils_i18n_gettext('circ.pre_cat_copy_circ_lib',
3314         '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',
3315         'coust', 'description'),
3316     'string', null)
3317
3318 ,( 'circ.reshelving_complete.interval', 'lib',
3319     oils_i18n_gettext('circ.reshelving_complete.interval',
3320         'Change reshelving status interval',
3321         'coust', 'label'),
3322     oils_i18n_gettext('circ.reshelving_complete.interval',
3323         'Amount of time to wait before changing an item from "reshelving" status to "available".  Examples: "1 day", "6 hours"',
3324         'coust', 'description'),
3325     'interval', null)
3326
3327 ,( 'circ.restore_overdue_on_lost_return', 'circ',
3328     oils_i18n_gettext('circ.restore_overdue_on_lost_return',
3329         'Restore overdues on lost item return',
3330         'coust', 'label'),
3331     oils_i18n_gettext('circ.restore_overdue_on_lost_return',
3332         'Restore overdue fines on lost item return',
3333         'coust', 'description'),
3334     'bool', null)
3335
3336 ,( 'circ.selfcheck.alert.popup', 'self',
3337     oils_i18n_gettext('circ.selfcheck.alert.popup',
3338         'Pop-up alert for errors',
3339         'coust', 'label'),
3340     oils_i18n_gettext('circ.selfcheck.alert.popup',
3341         'If true, checkout/renewal errors will cause a pop-up window in addition to the on-screen message',
3342         'coust', 'description'),
3343     'bool', null)
3344
3345 ,( 'circ.selfcheck.alert.sound', 'self',
3346     oils_i18n_gettext('circ.selfcheck.alert.sound',
3347         'Audio Alerts',
3348         'coust', 'label'),
3349     oils_i18n_gettext('circ.selfcheck.alert.sound',
3350         'Use audio alerts for selfcheck events',
3351         'coust', 'description'),
3352     'bool', null)
3353
3354 ,( 'circ.selfcheck.auto_override_checkout_events', 'self',
3355     oils_i18n_gettext('circ.selfcheck.auto_override_checkout_events',
3356         'Selfcheck override events list',
3357         'coust', 'label'),
3358     oils_i18n_gettext('circ.selfcheck.auto_override_checkout_events',
3359         'List of checkout/renewal events that the selfcheck interface should automatically override instead instead of alerting and stopping the transaction',
3360         'coust', 'description'),
3361     'array', null)
3362
3363 ,( 'circ.selfcheck.block_checkout_on_copy_status', 'self',
3364     oils_i18n_gettext('circ.selfcheck.block_checkout_on_copy_status',
3365         'Block copy checkout status',
3366         'coust', 'label'),
3367     oils_i18n_gettext('circ.selfcheck.block_checkout_on_copy_status',
3368         'List of copy status IDs that will block checkout even if the generic COPY_NOT_AVAILABLE event is overridden',
3369         'coust', 'description'),
3370     'array', null)
3371
3372 ,( 'circ.selfcheck.patron_login_timeout', 'self',
3373     oils_i18n_gettext('circ.selfcheck.patron_login_timeout',
3374         'Patron Login Timeout (in seconds)',
3375         'coust', 'label'),
3376     oils_i18n_gettext('circ.selfcheck.patron_login_timeout',
3377         'Number of seconds of inactivity before the patron is logged out of the selfcheck interface',
3378         'coust', 'description'),
3379     'integer', null)
3380
3381 ,( 'circ.selfcheck.patron_password_required', 'self',
3382     oils_i18n_gettext('circ.selfcheck.patron_password_required',
3383         'Require Patron Password',
3384         'coust', 'label'),
3385     oils_i18n_gettext('circ.selfcheck.patron_password_required',
3386         'Patron must log in with barcode and password at selfcheck station',
3387         'coust', 'description'),
3388     'bool', null)
3389
3390 ,( 'circ.selfcheck.require_patron_password', 'self',
3391     oils_i18n_gettext('circ.selfcheck.require_patron_password',
3392         'Require patron password',
3393         'coust', 'label'),
3394     oils_i18n_gettext('circ.selfcheck.require_patron_password',
3395         'If true, patrons will be required to enter their password in addition to their username/barcode to log into the selfcheck interface',
3396         'coust', 'description'),
3397     'bool', null)
3398
3399 ,( 'circ.selfcheck.workstation_required', 'self',
3400     oils_i18n_gettext('circ.selfcheck.workstation_required',
3401         'Workstation Required',
3402         'coust', 'label'),
3403     oils_i18n_gettext('circ.selfcheck.workstation_required',
3404         'All selfcheck stations must use a workstation',
3405         'coust', 'description'),
3406     'bool', null)
3407
3408 ,( 'circ.staff_client.actor_on_checkout', 'circ',
3409     oils_i18n_gettext('circ.staff_client.actor_on_checkout',
3410         'Load patron from Checkout',
3411         'coust', 'label'),
3412     oils_i18n_gettext('circ.staff_client.actor_on_checkout',
3413         'When scanning barcodes into Checkout auto-detect if a new patron barcode is scanned and auto-load the new patron.',
3414         'coust', 'description'),
3415     'bool', null)
3416
3417 ,( 'circ.staff_client.do_not_auto_attempt_print', 'prog',
3418     oils_i18n_gettext('circ.staff_client.do_not_auto_attempt_print',
3419         'Disable Automatic Print Attempt Type List',
3420         'coust', 'label'),
3421     oils_i18n_gettext('circ.staff_client.do_not_auto_attempt_print',
3422         '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).',
3423         'coust', 'description'),
3424     'array', null)
3425
3426 ,( 'circ.staff_client.receipt.alert_text', 'receipt_template',
3427     oils_i18n_gettext('circ.staff_client.receipt.alert_text',
3428         'Content of alert_text include',
3429         'coust', 'label'),
3430     oils_i18n_gettext('circ.staff_client.receipt.alert_text',
3431         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(alert_text)%',
3432         'coust', 'description'),
3433     'string', null)
3434
3435 ,( 'circ.staff_client.receipt.event_text', 'receipt_template',
3436     oils_i18n_gettext('circ.staff_client.receipt.event_text',
3437         'Content of event_text include',
3438         'coust', 'label'),
3439     oils_i18n_gettext('circ.staff_client.receipt.event_text',
3440         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(event_text)%',
3441         'coust', 'description'),
3442     'string', null)
3443
3444 ,( 'circ.staff_client.receipt.footer_text', 'receipt_template',
3445     oils_i18n_gettext('circ.staff_client.receipt.footer_text',
3446         'Content of footer_text include',
3447         'coust', 'label'),
3448     oils_i18n_gettext('circ.staff_client.receipt.footer_text',
3449         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(footer_text)%',
3450         'coust', 'description'),
3451     'string', null)
3452
3453 ,( 'circ.staff_client.receipt.header_text', 'receipt_template',
3454     oils_i18n_gettext('circ.staff_client.receipt.header_text',
3455         'Content of header_text include',
3456         'coust', 'label'),
3457     oils_i18n_gettext('circ.staff_client.receipt.header_text',
3458         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(header_text)%',
3459         'coust', 'description'),
3460     'string', null)
3461
3462 ,( 'circ.staff_client.receipt.notice_text', 'receipt_template',
3463     oils_i18n_gettext('circ.staff_client.receipt.notice_text',
3464         'Content of notice_text include',
3465         'coust', 'label'),
3466     oils_i18n_gettext('circ.staff_client.receipt.notice_text',
3467         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(notice_text)%',
3468         'coust', 'description'),
3469     'string', null)
3470
3471 ,( 'circ.transit.min_checkin_interval', 'circ',
3472     oils_i18n_gettext('circ.transit.min_checkin_interval',
3473         'Minimum Transit Checkin Interval',
3474         'coust', 'label'),
3475     oils_i18n_gettext('circ.transit.min_checkin_interval',
3476         'In-Transit items checked in this close to the transit start time will be prevented from checking in',
3477         'coust', 'description'),
3478     'interval', null)
3479
3480 ,( 'circ.transit.suppress_hold', 'circ',
3481     oils_i18n_gettext('circ.transit.suppress_hold',
3482         'Suppress Hold Transits Group',
3483         'coust', 'label'),
3484     oils_i18n_gettext('circ.transit.suppress_hold',
3485         '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.',
3486         'coust', 'description'),
3487     'string', null)
3488
3489 ,( 'circ.transit.suppress_non_hold', 'circ',
3490     oils_i18n_gettext('circ.transit.suppress_non_hold',
3491         'Suppress Non-Hold Transits Group',
3492         'coust', 'label'),
3493     oils_i18n_gettext('circ.transit.suppress_non_hold',
3494         '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.',
3495         'coust', 'description'),
3496     'string', null)
3497
3498 ,( 'circ.user_merge.deactivate_cards', 'circ',
3499     oils_i18n_gettext('circ.user_merge.deactivate_cards',
3500         'Patron Merge Deactivate Card',
3501         'coust', 'label'),
3502     oils_i18n_gettext('circ.user_merge.deactivate_cards',
3503         'Mark barcode(s) of subordinate user(s) in a patron merge as inactive',
3504         'coust', 'description'),
3505     'bool', null)
3506
3507 ,( 'circ.user_merge.delete_addresses', 'circ',
3508     oils_i18n_gettext('circ.user_merge.delete_addresses',
3509         'Patron Merge Address Delete',
3510         'coust', 'label'),
3511     oils_i18n_gettext('circ.user_merge.delete_addresses',
3512         'Delete address(es) of subordinate user(s) in a patron merge',
3513         'coust', 'description'),
3514     'bool', null)
3515
3516 ,( 'circ.user_merge.delete_cards', 'circ',
3517     oils_i18n_gettext('circ.user_merge.delete_cards',
3518         'Patron Merge Barcode Delete',
3519         'coust', 'label'),
3520     oils_i18n_gettext('circ.user_merge.delete_cards',
3521         'Delete barcode(s) of subordinate user(s) in a patron merge',
3522         'coust', 'description'),
3523     'bool', null)
3524
3525 ,( 'circ.void_lost_on_checkin', 'circ',
3526     oils_i18n_gettext('circ.void_lost_on_checkin',
3527         'Void lost item billing when returned',
3528         'coust', 'label'),
3529     oils_i18n_gettext('circ.void_lost_on_checkin',
3530         'Void lost item billing when returned',
3531         'coust', 'description'),
3532     'bool', null)
3533
3534 ,( 'circ.void_lost_proc_fee_on_checkin', 'circ',
3535     oils_i18n_gettext('circ.void_lost_proc_fee_on_checkin',
3536         'Void processing fee on lost item return',
3537         'coust', 'label'),
3538     oils_i18n_gettext('circ.void_lost_proc_fee_on_checkin',
3539         'Void processing fee when lost item returned',
3540         'coust', 'description'),
3541     'bool', null)
3542
3543 ,( 'circ.void_overdue_on_lost', 'finance',
3544     oils_i18n_gettext('circ.void_overdue_on_lost',
3545         'Void overdue fines when items are marked lost',
3546         'coust', 'label'),
3547     oils_i18n_gettext('circ.void_overdue_on_lost',
3548         'Void overdue fines when items are marked lost',
3549         'coust', 'description'),
3550     'bool', null)
3551
3552 ,( 'credit.payments.allow', 'finance',
3553     oils_i18n_gettext('credit.payments.allow',
3554         'Allow Credit Card Payments',
3555         'coust', 'label'),
3556     oils_i18n_gettext('credit.payments.allow',
3557         'If enabled, patrons will be able to pay fines accrued at this location via credit card',
3558         'coust', 'description'),
3559     'bool', null)
3560
3561 ,( 'credit.processor.authorizenet.enabled', 'credit',
3562     oils_i18n_gettext('credit.processor.authorizenet.enabled',
3563         'Enable AuthorizeNet payments',
3564         'coust', 'label'),
3565     oils_i18n_gettext('credit.processor.authorizenet.enabled',
3566         'Enable AuthorizeNet payments',
3567         'coust', 'description'),
3568     'bool', null)
3569
3570 ,( 'credit.processor.authorizenet.login', 'credit',
3571     oils_i18n_gettext('credit.processor.authorizenet.login',
3572         'AuthorizeNet login',
3573         'coust', 'label'),
3574     oils_i18n_gettext('credit.processor.authorizenet.login',
3575         'AuthorizeNet login',
3576         'coust', 'description'),
3577     'string', null)
3578
3579 ,( 'credit.processor.authorizenet.password', 'credit',
3580     oils_i18n_gettext('credit.processor.authorizenet.password',
3581         'AuthorizeNet password',
3582         'coust', 'label'),
3583     oils_i18n_gettext('credit.processor.authorizenet.password',
3584         'AuthorizeNet password',
3585         'coust', 'description'),
3586     'string', null)
3587
3588 ,( 'credit.processor.authorizenet.server', 'credit',
3589     oils_i18n_gettext('credit.processor.authorizenet.server',
3590         'AuthorizeNet server',
3591         'coust', 'label'),
3592     oils_i18n_gettext('credit.processor.authorizenet.server',
3593         'Required if using a developer/test account with AuthorizeNet',
3594         'coust', 'description'),
3595     'string', null)
3596
3597 ,( 'credit.processor.authorizenet.testmode', 'credit',
3598     oils_i18n_gettext('credit.processor.authorizenet.testmode',
3599         'AuthorizeNet test mode',
3600         'coust', 'label'),
3601     oils_i18n_gettext('credit.processor.authorizenet.testmode',
3602         'AuthorizeNet test mode',
3603         'coust', 'description'),
3604     'bool', null)
3605
3606 ,( 'credit.processor.default', 'credit',
3607     oils_i18n_gettext('credit.processor.default',
3608         'Name default credit processor',
3609         'coust', 'label'),
3610     oils_i18n_gettext('credit.processor.default',
3611         'This might be "AuthorizeNet", "PayPal", etc.',
3612         'coust', 'description'),
3613     'string', null)
3614
3615 ,( 'credit.processor.payflowpro.enabled', 'credit',
3616     oils_i18n_gettext('credit.processor.payflowpro.enabled',
3617         'Enable PayflowPro payments',
3618         'coust', 'label'),
3619     oils_i18n_gettext('credit.processor.payflowpro.enabled',
3620         'This is NOT the same thing as the settings labeled with just "PayPal."',
3621         'coust', 'description'),
3622     'bool', null)
3623
3624 ,( 'credit.processor.payflowpro.login', 'credit',
3625     oils_i18n_gettext('credit.processor.payflowpro.login',
3626         'PayflowPro login/merchant ID',
3627         'coust', 'label'),
3628     oils_i18n_gettext('credit.processor.payflowpro.login',
3629         'Often the same thing as the PayPal manager login',
3630         'coust', 'description'),
3631     'string', null)
3632
3633 ,( 'credit.processor.payflowpro.partner', 'credit',
3634     oils_i18n_gettext('credit.processor.payflowpro.partner',
3635         'PayflowPro partner',
3636         'coust', 'label'),
3637     oils_i18n_gettext('credit.processor.payflowpro.partner',
3638         'Often "PayPal" or "VeriSign", sometimes others',
3639         'coust', 'description'),
3640     'string', null)
3641
3642 ,( 'credit.processor.payflowpro.password', 'credit',
3643     oils_i18n_gettext('credit.processor.payflowpro.password',
3644         'PayflowPro password',
3645         'coust', 'label'),
3646     oils_i18n_gettext('credit.processor.payflowpro.password',
3647         'PayflowPro password',
3648         'coust', 'description'),
3649     'string', null)
3650
3651 ,( 'credit.processor.payflowpro.testmode', 'credit',
3652     oils_i18n_gettext('credit.processor.payflowpro.testmode',
3653         'PayflowPro test mode',
3654         'coust', 'label'),
3655     oils_i18n_gettext('credit.processor.payflowpro.testmode',
3656         'Do not really process transactions, but stay in test mode - uses pilot-payflowpro.paypal.com instead of the usual host',
3657         'coust', 'description'),
3658     'bool', null)
3659
3660 ,( 'credit.processor.payflowpro.vendor', 'credit',
3661     oils_i18n_gettext('credit.processor.payflowpro.vendor',
3662         'PayflowPro vendor',
3663         'coust', 'label'),
3664     oils_i18n_gettext('credit.processor.payflowpro.vendor',
3665         'Often the same thing as the login',
3666         'coust', 'description'),
3667     'string', null)
3668
3669 ,( 'credit.processor.paypal.enabled', 'credit',
3670     oils_i18n_gettext('credit.processor.paypal.enabled',
3671         'Enable PayPal payments',
3672         'coust', 'label'),
3673     oils_i18n_gettext('credit.processor.paypal.enabled',
3674         'Enable PayPal payments',
3675         'coust', 'description'),
3676     'bool', null)
3677
3678 ,( 'credit.processor.paypal.login', 'credit',
3679     oils_i18n_gettext('credit.processor.paypal.login',
3680         'PayPal login',
3681         'coust', 'label'),
3682     oils_i18n_gettext('credit.processor.paypal.login',
3683         'PayPal login',
3684         'coust', 'description'),
3685     'string', null)
3686
3687 ,( 'credit.processor.paypal.password', 'credit',
3688     oils_i18n_gettext('credit.processor.paypal.password',
3689         'PayPal password',
3690         'coust', 'label'),
3691     oils_i18n_gettext('credit.processor.paypal.password',
3692         'PayPal password',
3693         'coust', 'description'),
3694     'string', null)
3695
3696 ,( 'credit.processor.paypal.signature', 'credit',
3697     oils_i18n_gettext('credit.processor.paypal.signature',
3698         'PayPal signature',
3699         'coust', 'label'),
3700     oils_i18n_gettext('credit.processor.paypal.signature',
3701         'PayPal signature',
3702         'coust', 'description'),
3703     'string', null)
3704
3705 ,( 'credit.processor.paypal.testmode', 'credit',
3706     oils_i18n_gettext('credit.processor.paypal.testmode',
3707         'PayPal test mode',
3708         'coust', 'label'),
3709     oils_i18n_gettext('credit.processor.paypal.testmode',
3710         'PayPal test mode',
3711         'coust', 'description'),
3712     'bool', null)
3713
3714 ,( 'format.date', 'gui',
3715     oils_i18n_gettext('format.date',
3716         'Format Dates with this pattern.',
3717         'coust', 'label'),
3718     oils_i18n_gettext('format.date',
3719         'Format Dates with this pattern (examples: "yyyy-MM-dd" for "2010-04-26", "MMM d, yyyy" for "Apr 26, 2010")',
3720         'coust', 'description'),
3721     'string', null)
3722
3723 ,( 'format.time', 'gui',
3724     oils_i18n_gettext('format.time',
3725         'Format Times with this pattern.',
3726         'coust', 'label'),
3727     oils_i18n_gettext('format.time',
3728         '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")',
3729         'coust', 'description'),
3730     'string', null)
3731
3732 ,( 'global.default_locale', 'glob',
3733     oils_i18n_gettext('global.default_locale',
3734         'Global Default Locale',
3735         'coust', 'label'),
3736     oils_i18n_gettext('global.default_locale',
3737         'Global Default Locale',
3738         'coust', 'description'),
3739     'string', null)
3740
3741 ,( 'global.juvenile_age_threshold', 'lib',
3742     oils_i18n_gettext('global.juvenile_age_threshold',
3743         'Juvenile Age Threshold',
3744         'coust', 'label'),
3745     oils_i18n_gettext('global.juvenile_age_threshold',
3746         'The age at which a user is no long considered a juvenile.  For example, "18 years".',
3747         'coust', 'description'),
3748     'interval', null)
3749
3750 ,( 'global.password_regex', 'glob',
3751     oils_i18n_gettext('global.password_regex',
3752         'Password format',
3753         'coust', 'label'),
3754     oils_i18n_gettext('global.password_regex',
3755         'Regular expression defining the password format',
3756         'coust', 'description'),
3757     'string', null)
3758
3759 ,( 'gui.disable_local_save_columns', 'gui',
3760     oils_i18n_gettext('gui.disable_local_save_columns',
3761         'Disable the ability to save list column configurations locally.',
3762         'coust', 'label'),
3763     oils_i18n_gettext('gui.disable_local_save_columns',
3764         '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.',
3765         'coust', 'description'),
3766     'bool', null)
3767
3768 ,( 'lib.courier_code', 'lib',
3769     oils_i18n_gettext('lib.courier_code',
3770         'Courier Code',
3771         'coust', 'label'),
3772     oils_i18n_gettext('lib.courier_code',
3773         'Courier Code for the library.  Available in transit slip templates as the %courier_code% macro.',
3774         'coust', 'description'),
3775     'string', null)
3776
3777 ,( 'notice.telephony.callfile_lines', 'lib',
3778     oils_i18n_gettext('notice.telephony.callfile_lines',
3779         'Telephony: Arbitrary line(s) to include in each notice callfile',
3780         'coust', 'label'),
3781     oils_i18n_gettext('notice.telephony.callfile_lines',
3782         '
3783         This overrides lines from opensrf.xml.
3784         Line(s) must be valid for your target server and platform
3785         (e.g. Asterisk 1.4).
3786         ',
3787         'coust', 'description'),
3788     'string', null)
3789
3790 ,( 'opac.allow_pending_address', 'opac',
3791     oils_i18n_gettext('opac.allow_pending_address',
3792         'Allow pending addresses',
3793         'coust', 'label'),
3794     oils_i18n_gettext('opac.allow_pending_address',
3795         'If enabled, patrons can create and edit existing addresses.  Addresses are kept in a pending state until staff approves the changes',
3796         'coust', 'description'),
3797     'bool', null)
3798
3799 ,( 'opac.barcode_regex', 'glob',
3800     oils_i18n_gettext('opac.barcode_regex',
3801         'Patron barcode format',
3802         'coust', 'label'),
3803     oils_i18n_gettext('opac.barcode_regex',
3804         'Regular expression defining the patron barcode format',
3805         'coust', 'description'),
3806     'string', null)
3807
3808 ,( 'opac.fully_compressed_serial_holdings', 'opac',
3809     oils_i18n_gettext('opac.fully_compressed_serial_holdings',
3810         'Use fully compressed serial holdings',
3811         'coust', 'label'),
3812     oils_i18n_gettext('opac.fully_compressed_serial_holdings',
3813         'Show fully compressed serial holdings for all libraries at and below the current context unit',
3814         'coust', 'description'),
3815     'bool', null)
3816
3817 ,( 'opac.lock_usernames', 'glob',
3818     oils_i18n_gettext('opac.lock_usernames',
3819         'Lock Usernames',
3820         'coust', 'label'),
3821     oils_i18n_gettext('opac.lock_usernames',
3822         'If enabled username changing via the OPAC will be disabled',
3823         'coust', 'description'),
3824     'bool', null)
3825
3826 ,( 'opac.org_unit_hiding.depth', 'opac',
3827     oils_i18n_gettext('opac.org_unit_hiding.depth',
3828         'Org Unit Hiding Depth',
3829         'coust', 'label'),
3830     oils_i18n_gettext('opac.org_unit_hiding.depth',
3831         '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.',
3832         'coust', 'description'),
3833     'integer', null)
3834
3835 ,( 'opac.payment_history_age_limit', 'opac',
3836     oils_i18n_gettext('opac.payment_history_age_limit',
3837         'Payment History Age Limit',
3838         'coust', 'label'),
3839     oils_i18n_gettext('opac.payment_history_age_limit',
3840         'The OPAC should not display payments by patrons that are older than any interval defined here.',
3841         'coust', 'description'),
3842     'interval', null)
3843
3844 ,( 'opac.unlimit_usernames', 'glob',
3845     oils_i18n_gettext('opac.unlimit_usernames',
3846         'Allow multiple username changes',
3847         'coust', 'label'),
3848     oils_i18n_gettext('opac.unlimit_usernames',
3849         '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.',
3850         'coust', 'description'),
3851     'bool', null)
3852
3853 ,( 'opac.username_regex', 'glob',
3854     oils_i18n_gettext('opac.username_regex',
3855         'Patron username format',
3856         'coust', 'label'),
3857     oils_i18n_gettext('opac.username_regex',
3858         'Regular expression defining the patron username format, used for patron registration and self-service username changing only',
3859         'coust', 'description'),
3860     'string', null)
3861
3862 ,( 'org.bounced_emails', 'prog',
3863     oils_i18n_gettext('org.bounced_emails',
3864         'Sending email address for patron notices',
3865         'coust', 'label'),
3866     oils_i18n_gettext('org.bounced_emails',
3867         'Sending email address for patron notices',
3868         'coust', 'description'),
3869     'string', null)
3870
3871 ,( 'org.patron_opt_boundary', 'sec',
3872     oils_i18n_gettext('org.patron_opt_boundary',
3873         'Patron Opt-In Boundary',
3874         'coust', 'label'),
3875     oils_i18n_gettext('org.patron_opt_boundary',
3876         'This determines at which depth above which patrons must be opted in, and below which patrons will be assumed to be opted in.',
3877         'coust', 'description'),
3878     'integer', null)
3879
3880 ,( 'org.patron_opt_default', 'sec',
3881     oils_i18n_gettext('org.patron_opt_default',
3882         'Patron Opt-In Default',
3883         'coust', 'label'),
3884     oils_i18n_gettext('org.patron_opt_default',
3885         'This is the default depth at which a patron is opted in; it is calculated as an org unit relative to the current workstation.',
3886         'coust', 'description'),
3887     'integer', null)
3888
3889 ,( 'patron.password.use_phone', 'sec',
3890     oils_i18n_gettext('patron.password.use_phone',
3891         'Patron: password from phone #',
3892         'coust', 'label'),
3893     oils_i18n_gettext('patron.password.use_phone',
3894         '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.',
3895         'coust', 'description'),
3896     'bool', null)
3897
3898 ,( 'print.custom_js_file', 'circ',
3899     oils_i18n_gettext('print.custom_js_file',
3900         'Printing: Custom Javascript File',
3901         'coust', 'label'),
3902     oils_i18n_gettext('print.custom_js_file',
3903         'Full URL path to a Javascript File to be loaded when printing. Should'
3904         || ' implement a print_custom function for DOM manipulation. Can change'
3905         || ' the value of the do_print variable to false to cancel printing.',
3906         'coust', 'description'),
3907     'string', null)
3908
3909 ,( 'serial.prev_issuance_copy_location', 'serial',
3910     oils_i18n_gettext('serial.prev_issuance_copy_location',
3911         'Previous Issuance Copy Location',
3912         'coust', 'label'),
3913     oils_i18n_gettext('serial.prev_issuance_copy_location',
3914         'When a serial issuance is received, copies (units) of the previous issuance will be automatically moved into the configured shelving location',
3915         'coust', 'description'),
3916     'link', 'acpl')
3917
3918 ,( 'ui.admin.patron_log.max_entries', 'gui',
3919     oils_i18n_gettext('ui.admin.patron_log.max_entries',
3920         'Work Log: Maximum Patrons Logged',
3921         'coust', 'label'),
3922     oils_i18n_gettext('ui.admin.patron_log.max_entries',
3923         'Maximum entries for "Most Recently Affected Patrons..." section of the Work Log interface.',
3924         'coust', 'description'),
3925     'interval', null)
3926
3927 ,( 'ui.admin.work_log.max_entries', 'gui',
3928     oils_i18n_gettext('ui.admin.work_log.max_entries',
3929         'Work Log: Maximum Actions Logged',
3930         'coust', 'label'),
3931     oils_i18n_gettext('ui.admin.work_log.max_entries',
3932         'Maximum entries for "Most Recent Staff Actions" section of the Work Log interface.',
3933         'coust', 'description'),
3934     'interval', null)
3935
3936 ,( 'ui.cat.volume_copy_editor.horizontal', 'gui',
3937     oils_i18n_gettext('ui.cat.volume_copy_editor.horizontal',
3938         'Horizontal layout for Volume/Copy Creator/Editor.',
3939         'coust', 'label'),
3940     oils_i18n_gettext('ui.cat.volume_copy_editor.horizontal',
3941         '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.',
3942         'coust', 'description'),
3943     'bool', null)
3944
3945 ,( 'ui.circ.billing.uncheck_bills_and_unfocus_payment_box', 'gui',
3946     oils_i18n_gettext('ui.circ.billing.uncheck_bills_and_unfocus_payment_box',
3947         'Uncheck bills by default in the patron billing interface',
3948         'coust', 'label'),
3949     oils_i18n_gettext('ui.circ.billing.uncheck_bills_and_unfocus_payment_box',
3950         'Uncheck bills by default in the patron billing interface, and focus on the Uncheck All button instead of the Payment Received field.',
3951         'coust', 'description'),
3952     'bool', null)
3953
3954 ,( 'ui.circ.in_house_use.entry_cap', 'gui',
3955     oils_i18n_gettext('ui.circ.in_house_use.entry_cap',
3956         'Record In-House Use: Maximum # of uses allowed per entry.',
3957         'coust', 'label'),
3958     oils_i18n_gettext('ui.circ.in_house_use.entry_cap',
3959         'The # of uses entry in the Record In-House Use interface may not exceed the value of this setting.',
3960         'coust', 'description'),
3961     'integer', null)
3962
3963 ,( 'ui.circ.in_house_use.entry_warn', 'gui',
3964     oils_i18n_gettext('ui.circ.in_house_use.entry_warn',
3965         'Record In-House Use: # of uses threshold for Are You Sure? dialog.',
3966         'coust', 'label'),
3967     oils_i18n_gettext('ui.circ.in_house_use.entry_warn',
3968         'In the Record In-House Use interface, a submission attempt will warn if the # of uses field exceeds the value of this setting.',
3969         'coust', 'description'),
3970     'integer', null)
3971
3972 ,( 'ui.circ.patron_summary.horizontal', 'gui',
3973     oils_i18n_gettext('ui.circ.patron_summary.horizontal',
3974         'Patron circulation summary is horizontal',
3975         'coust', 'label'),
3976     oils_i18n_gettext('ui.circ.patron_summary.horizontal',
3977         'Patron circulation summary is horizontal',
3978         'coust', 'description'),
3979     'bool', null)
3980
3981 ,( 'ui.circ.show_billing_tab_on_bills', 'gui',
3982     oils_i18n_gettext('ui.circ.show_billing_tab_on_bills',
3983         'Show billing tab first when bills are present',
3984         'coust', 'label'),
3985     oils_i18n_gettext('ui.circ.show_billing_tab_on_bills',
3986         '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',
3987         'coust', 'description'),
3988     'bool', null)
3989
3990 ,( 'ui.circ.suppress_checkin_popups', 'circ',
3991     oils_i18n_gettext('ui.circ.suppress_checkin_popups',
3992         'Suppress popup-dialogs during check-in.',
3993         'coust', 'label'),
3994     oils_i18n_gettext('ui.circ.suppress_checkin_popups',
3995         'Suppress popup-dialogs during check-in.',
3996         'coust', 'description'),
3997     'bool', null)
3998
3999 ,( 'ui.general.button_bar', 'gui',
4000     oils_i18n_gettext('ui.general.button_bar',
4001         'Button bar',
4002         'coust', 'label'),
4003     oils_i18n_gettext('ui.general.button_bar',
4004         'Set to "circ" or "cat" for stock circulator or cataloger toolbar, respectively.',
4005         'coust', 'description'),
4006     'string', null)
4007
4008 ,( 'ui.general.hotkeyset', 'gui',
4009     oils_i18n_gettext('ui.general.hotkeyset',
4010         'Default Hotkeyset',
4011         'coust', 'label'),
4012     oils_i18n_gettext('ui.general.hotkeyset',
4013         'Default Hotkeyset for clients (filename without the .keyset).  Examples: Default, Minimal, and None',
4014         'coust', 'description'),
4015     'string', null)
4016
4017 ,( 'ui.general.idle_timeout', 'gui',
4018     oils_i18n_gettext('ui.general.idle_timeout',
4019         'Idle timeout',
4020         'coust', 'label'),
4021     oils_i18n_gettext('ui.general.idle_timeout',
4022         '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).',
4023         'coust', 'description'),
4024     'integer', null)
4025
4026 ,( 'ui.patron.default_country', 'gui',
4027     oils_i18n_gettext('ui.patron.default_country',
4028         'Default Country for New Addresses in Patron Editor',
4029         'coust', 'label'),
4030     oils_i18n_gettext('ui.patron.default_country',
4031         'This is the default Country for new addresses in the patron editor.',
4032         'coust', 'description'),
4033     'string', null)
4034
4035 ,( 'ui.patron.default_ident_type', 'gui',
4036     oils_i18n_gettext('ui.patron.default_ident_type',
4037         'Default Ident Type for Patron Registration',
4038         'coust', 'label'),
4039     oils_i18n_gettext('ui.patron.default_ident_type',
4040         'This is the default Ident Type for new users in the patron editor.',
4041         'coust', 'description'),
4042     'link', 'cit')
4043
4044 ,( 'ui.patron.default_inet_access_level', 'sec',
4045     oils_i18n_gettext('ui.patron.default_inet_access_level',
4046         'Default level of patrons'' internet access',
4047         'coust', 'label'),
4048     oils_i18n_gettext('ui.patron.default_inet_access_level',
4049         'Default level of patrons'' internet access',
4050         'coust', 'description'),
4051     'integer', null)
4052
4053 ,( 'ui.patron.edit.au.active.show', 'gui',
4054     oils_i18n_gettext('ui.patron.edit.au.active.show',
4055         'Show active field on patron registration',
4056         'coust', 'label'),
4057     oils_i18n_gettext('ui.patron.edit.au.active.show',
4058         '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.',
4059         'coust', 'description'),
4060     'bool', null)
4061
4062 ,( 'ui.patron.edit.au.active.suggest', 'gui',
4063     oils_i18n_gettext('ui.patron.edit.au.active.suggest',
4064         'Suggest active field on patron registration',
4065         'coust', 'label'),
4066     oils_i18n_gettext('ui.patron.edit.au.active.suggest',
4067         '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.',
4068         'coust', 'description'),
4069     'bool', null)
4070
4071 ,( 'ui.patron.edit.au.alert_message.show', 'gui',
4072     oils_i18n_gettext('ui.patron.edit.au.alert_message.show',
4073         'Show alert_message field on patron registration',
4074         'coust', 'label'),
4075     oils_i18n_gettext('ui.patron.edit.au.alert_message.show',
4076         '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.',
4077         'coust', 'description'),
4078     'bool', null)
4079
4080 ,( 'ui.patron.edit.au.alert_message.suggest', 'gui',
4081     oils_i18n_gettext('ui.patron.edit.au.alert_message.suggest',
4082         'Suggest alert_message field on patron registration',
4083         'coust', 'label'),
4084     oils_i18n_gettext('ui.patron.edit.au.alert_message.suggest',
4085         '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.',
4086         'coust', 'description'),
4087     'bool', null)
4088
4089 ,( 'ui.patron.edit.au.alias.show', 'gui',
4090     oils_i18n_gettext('ui.patron.edit.au.alias.show',
4091         'Show alias field on patron registration',
4092         'coust', 'label'),
4093     oils_i18n_gettext('ui.patron.edit.au.alias.show',
4094         '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.',
4095         'coust', 'description'),
4096     'bool', null)
4097
4098 ,( 'ui.patron.edit.au.alias.suggest', 'gui',
4099     oils_i18n_gettext('ui.patron.edit.au.alias.suggest',
4100         'Suggest alias field on patron registration',
4101         'coust', 'label'),
4102     oils_i18n_gettext('ui.patron.edit.au.alias.suggest',
4103         '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.',
4104         'coust', 'description'),
4105     'bool', null)
4106
4107 ,( 'ui.patron.edit.au.barred.show', 'gui',
4108     oils_i18n_gettext('ui.patron.edit.au.barred.show',
4109         'Show barred field on patron registration',
4110         'coust', 'label'),
4111     oils_i18n_gettext('ui.patron.edit.au.barred.show',
4112         '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.',
4113         'coust', 'description'),
4114     'bool', null)
4115
4116 ,( 'ui.patron.edit.au.barred.suggest', 'gui',
4117     oils_i18n_gettext('ui.patron.edit.au.barred.suggest',
4118         'Suggest barred field on patron registration',
4119         'coust', 'label'),
4120     oils_i18n_gettext('ui.patron.edit.au.barred.suggest',
4121         '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.',
4122         'coust', 'description'),
4123     'bool', null)
4124
4125 ,( 'ui.patron.edit.au.claims_never_checked_out_count.show', 'gui',
4126     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.show',
4127         'Show claims_never_checked_out_count field on patron registration',
4128         'coust', 'label'),
4129     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.show',
4130         '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.',
4131         'coust', 'description'),
4132     'bool', null)
4133
4134 ,( 'ui.patron.edit.au.claims_never_checked_out_count.suggest', 'gui',
4135     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.suggest',
4136         'Suggest claims_never_checked_out_count field on patron registration',
4137         'coust', 'label'),
4138     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.suggest',
4139         '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.',
4140         'coust', 'description'),
4141     'bool', null)
4142
4143 ,( 'ui.patron.edit.au.claims_returned_count.show', 'gui',
4144     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.show',
4145         'Show claims_returned_count field on patron registration',
4146         'coust', 'label'),
4147     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.show',
4148         '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.',
4149         'coust', 'description'),
4150     'bool', null)
4151
4152 ,( 'ui.patron.edit.au.claims_returned_count.suggest', 'gui',
4153     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.suggest',
4154         'Suggest claims_returned_count field on patron registration',
4155         'coust', 'label'),
4156     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.suggest',
4157         '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.',
4158         'coust', 'description'),
4159     'bool', null)
4160
4161 ,( 'ui.patron.edit.au.day_phone.example', 'gui',
4162     oils_i18n_gettext('ui.patron.edit.au.day_phone.example',
4163         'Example for day_phone field on patron registration',
4164         'coust', 'label'),
4165     oils_i18n_gettext('ui.patron.edit.au.day_phone.example',
4166         'The Example for validation on the day_phone field in patron registration.',
4167         'coust', 'description'),
4168     'string', null)
4169
4170 ,( 'ui.patron.edit.au.day_phone.regex', 'gui',
4171     oils_i18n_gettext('ui.patron.edit.au.day_phone.regex',
4172         'Regex for day_phone field on patron registration',
4173         'coust', 'label'),
4174     oils_i18n_gettext('ui.patron.edit.au.day_phone.regex',
4175         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.',
4176         'coust', 'description'),
4177     'string', null)
4178
4179 ,( 'ui.patron.edit.au.day_phone.require', 'gui',
4180     oils_i18n_gettext('ui.patron.edit.au.day_phone.require',
4181         'Require day_phone field on patron registration',
4182         'coust', 'label'),
4183     oils_i18n_gettext('ui.patron.edit.au.day_phone.require',
4184         'The day_phone field will be required on the patron registration screen.',
4185         'coust', 'description'),
4186     'bool', null)
4187
4188 ,( 'ui.patron.edit.au.day_phone.show', 'gui',
4189     oils_i18n_gettext('ui.patron.edit.au.day_phone.show',
4190         'Show day_phone field on patron registration',
4191         'coust', 'label'),
4192     oils_i18n_gettext('ui.patron.edit.au.day_phone.show',
4193         '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.',
4194         'coust', 'description'),
4195     'bool', null)
4196
4197 ,( 'ui.patron.edit.au.day_phone.suggest', 'gui',
4198     oils_i18n_gettext('ui.patron.edit.au.day_phone.suggest',
4199         'Suggest day_phone field on patron registration',
4200         'coust', 'label'),
4201     oils_i18n_gettext('ui.patron.edit.au.day_phone.suggest',
4202         '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.',
4203         'coust', 'description'),
4204     'bool', null)
4205
4206 ,( 'ui.patron.edit.au.dob.calendar', 'gui',
4207     oils_i18n_gettext('ui.patron.edit.au.dob.calendar',
4208         'Show calendar widget for dob field on patron registration',
4209         'coust', 'label'),
4210     oils_i18n_gettext('ui.patron.edit.au.dob.calendar',
4211         'If set the calendar widget will appear when editing the dob field on the patron registration form.',
4212         'coust', 'description'),
4213     'bool', null)
4214
4215 ,( 'ui.patron.edit.au.dob.require', 'gui',
4216     oils_i18n_gettext('ui.patron.edit.au.dob.require',
4217         'Require dob field on patron registration',
4218         'coust', 'label'),
4219     oils_i18n_gettext('ui.patron.edit.au.dob.require',
4220         'The dob field will be required on the patron registration screen.',
4221         'coust', 'description'),
4222     'bool', null)
4223
4224 ,( 'ui.patron.edit.au.dob.show', 'gui',
4225     oils_i18n_gettext('ui.patron.edit.au.dob.show',
4226         'Show dob field on patron registration',
4227         'coust', 'label'),
4228     oils_i18n_gettext('ui.patron.edit.au.dob.show',
4229         '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.',
4230         'coust', 'description'),
4231     'bool', null)
4232
4233 ,( 'ui.patron.edit.au.dob.suggest', 'gui',
4234     oils_i18n_gettext('ui.patron.edit.au.dob.suggest',
4235         'Suggest dob field on patron registration',
4236         'coust', 'label'),
4237     oils_i18n_gettext('ui.patron.edit.au.dob.suggest',
4238         '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.',
4239         'coust', 'description'),
4240     'bool', null)
4241
4242 ,( 'ui.patron.edit.au.email.example', 'gui',
4243     oils_i18n_gettext('ui.patron.edit.au.email.example',
4244         'Example for email field on patron registration',
4245         'coust', 'label'),
4246     oils_i18n_gettext('ui.patron.edit.au.email.example',
4247         'The Example for validation on the email field in patron registration.',
4248         'coust', 'description'),
4249     'string', null)
4250
4251 ,( 'ui.patron.edit.au.email.regex', 'gui',
4252     oils_i18n_gettext('ui.patron.edit.au.email.regex',
4253         'Regex for email field on patron registration',
4254         'coust', 'label'),
4255     oils_i18n_gettext('ui.patron.edit.au.email.regex',
4256         'The Regular Expression for validation on the email field in patron registration.',
4257         'coust', 'description'),
4258     'string', null)
4259
4260 ,( 'ui.patron.edit.au.email.require', 'gui',
4261     oils_i18n_gettext('ui.patron.edit.au.email.require',
4262         'Require email field on patron registration',
4263         'coust', 'label'),
4264     oils_i18n_gettext('ui.patron.edit.au.email.require',
4265         'The email field will be required on the patron registration screen.',
4266         'coust', 'description'),
4267     'bool', null)
4268
4269 ,( 'ui.patron.edit.au.email.show', 'gui',
4270     oils_i18n_gettext('ui.patron.edit.au.email.show',
4271         'Show email field on patron registration',
4272         'coust', 'label'),
4273     oils_i18n_gettext('ui.patron.edit.au.email.show',
4274         '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.',
4275         'coust', 'description'),
4276     'bool', null)
4277
4278 ,( 'ui.patron.edit.au.email.suggest', 'gui',
4279     oils_i18n_gettext('ui.patron.edit.au.email.suggest',
4280         'Suggest email field on patron registration',
4281         'coust', 'label'),
4282     oils_i18n_gettext('ui.patron.edit.au.email.suggest',
4283         '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.',
4284         'coust', 'description'),
4285     'bool', null)
4286
4287 ,( 'ui.patron.edit.au.evening_phone.example', 'gui',
4288     oils_i18n_gettext('ui.patron.edit.au.evening_phone.example',
4289         'Example for evening_phone field on patron registration',
4290         'coust', 'label'),
4291     oils_i18n_gettext('ui.patron.edit.au.evening_phone.example',
4292         'The Example for validation on the evening_phone field in patron registration.',
4293         'coust', 'description'),
4294     'string', null)
4295
4296 ,( 'ui.patron.edit.au.evening_phone.regex', 'gui',
4297     oils_i18n_gettext('ui.patron.edit.au.evening_phone.regex',
4298         'Regex for evening_phone field on patron registration',
4299         'coust', 'label'),
4300     oils_i18n_gettext('ui.patron.edit.au.evening_phone.regex',
4301         'The Regular Expression for validation on the evening_phone field in patron registration.',
4302         'coust', 'description'),
4303     'string', null)
4304
4305 ,( 'ui.patron.edit.au.evening_phone.require', 'gui',
4306     oils_i18n_gettext('ui.patron.edit.au.evening_phone.require',
4307         'Require evening_phone field on patron registration',
4308         'coust', 'label'),
4309     oils_i18n_gettext('ui.patron.edit.au.evening_phone.require',
4310         'The evening_phone field will be required on the patron registration screen.',
4311         'coust', 'description'),
4312     'bool', null)
4313
4314 ,( 'ui.patron.edit.au.evening_phone.show', 'gui',
4315     oils_i18n_gettext('ui.patron.edit.au.evening_phone.show',
4316         'Show evening_phone field on patron registration',
4317         'coust', 'label'),
4318     oils_i18n_gettext('ui.patron.edit.au.evening_phone.show',
4319         '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.',
4320         'coust', 'description'),
4321     'bool', null)
4322
4323 ,( 'ui.patron.edit.au.evening_phone.suggest', 'gui',
4324     oils_i18n_gettext('ui.patron.edit.au.evening_phone.suggest',
4325         'Suggest evening_phone field on patron registration',
4326         'coust', 'label'),
4327     oils_i18n_gettext('ui.patron.edit.au.evening_phone.suggest',
4328         '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.',
4329         'coust', 'description'),
4330     'bool', null)
4331
4332 ,( 'ui.patron.edit.au.ident_value.show', 'gui',
4333     oils_i18n_gettext('ui.patron.edit.au.ident_value.show',
4334         'Show ident_value field on patron registration',
4335         'coust', 'label'),
4336     oils_i18n_gettext('ui.patron.edit.au.ident_value.show',
4337         '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.',
4338         'coust', 'description'),
4339     'bool', null)
4340
4341 ,( 'ui.patron.edit.au.ident_value.suggest', 'gui',
4342     oils_i18n_gettext('ui.patron.edit.au.ident_value.suggest',
4343         'Suggest ident_value field on patron registration',
4344         'coust', 'label'),
4345     oils_i18n_gettext('ui.patron.edit.au.ident_value.suggest',
4346         '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.',
4347         'coust', 'description'),
4348     'bool', null)
4349
4350 ,( 'ui.patron.edit.au.ident_value2.show', 'gui',
4351     oils_i18n_gettext('ui.patron.edit.au.ident_value2.show',
4352         'Show ident_value2 field on patron registration',
4353         'coust', 'label'),
4354     oils_i18n_gettext('ui.patron.edit.au.ident_value2.show',
4355         '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.',
4356         'coust', 'description'),
4357     'bool', null)
4358
4359 ,( 'ui.patron.edit.au.ident_value2.suggest', 'gui',
4360     oils_i18n_gettext('ui.patron.edit.au.ident_value2.suggest',
4361         'Suggest ident_value2 field on patron registration',
4362         'coust', 'label'),
4363     oils_i18n_gettext('ui.patron.edit.au.ident_value2.suggest',
4364         '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.',
4365         'coust', 'description'),
4366     'bool', null)
4367
4368 ,( 'ui.patron.edit.au.juvenile.show', 'gui',
4369     oils_i18n_gettext('ui.patron.edit.au.juvenile.show',
4370         'Show juvenile field on patron registration',
4371         'coust', 'label'),
4372     oils_i18n_gettext('ui.patron.edit.au.juvenile.show',
4373         '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.',
4374         'coust', 'description'),
4375     'bool', null)
4376
4377 ,( 'ui.patron.edit.au.juvenile.suggest', 'gui',
4378     oils_i18n_gettext('ui.patron.edit.au.juvenile.suggest',
4379         'Suggest juvenile field on patron registration',
4380         'coust', 'label'),
4381     oils_i18n_gettext('ui.patron.edit.au.juvenile.suggest',
4382         '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.',
4383         'coust', 'description'),
4384     'bool', null)
4385
4386 ,( 'ui.patron.edit.au.master_account.show', 'gui',
4387     oils_i18n_gettext('ui.patron.edit.au.master_account.show',
4388         'Show master_account field on patron registration',
4389         'coust', 'label'),
4390     oils_i18n_gettext('ui.patron.edit.au.master_account.show',
4391         '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.',
4392         'coust', 'description'),
4393     'bool', null)
4394
4395 ,( 'ui.patron.edit.au.master_account.suggest', 'gui',
4396     oils_i18n_gettext('ui.patron.edit.au.master_account.suggest',
4397         'Suggest master_account field on patron registration',
4398         'coust', 'label'),
4399     oils_i18n_gettext('ui.patron.edit.au.master_account.suggest',
4400         '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.',
4401         'coust', 'description'),
4402     'bool', null)
4403
4404 ,( 'ui.patron.edit.au.other_phone.example', 'gui',
4405     oils_i18n_gettext('ui.patron.edit.au.other_phone.example',
4406         'Example for other_phone field on patron registration',
4407         'coust', 'label'),
4408     oils_i18n_gettext('ui.patron.edit.au.other_phone.example',
4409         'The Example for validation on the other_phone field in patron registration.',
4410         'coust', 'description'),
4411     'string', null)
4412
4413 ,( 'ui.patron.edit.au.other_phone.regex', 'gui',
4414     oils_i18n_gettext('ui.patron.edit.au.other_phone.regex',
4415         'Regex for other_phone field on patron registration',
4416         'coust', 'label'),
4417     oils_i18n_gettext('ui.patron.edit.au.other_phone.regex',
4418         'The Regular Expression for validation on the other_phone field in patron registration.',
4419         'coust', 'description'),
4420     'string', null)
4421
4422 ,( 'ui.patron.edit.au.other_phone.require', 'gui',
4423     oils_i18n_gettext('ui.patron.edit.au.other_phone.require',
4424         'Require other_phone field on patron registration',
4425         'coust', 'label'),
4426     oils_i18n_gettext('ui.patron.edit.au.other_phone.require',
4427         'The other_phone field will be required on the patron registration screen.',
4428         'coust', 'description'),
4429     'bool', null)
4430
4431 ,( 'ui.patron.edit.au.other_phone.show', 'gui',
4432     oils_i18n_gettext('ui.patron.edit.au.other_phone.show',
4433         'Show other_phone field on patron registration',
4434         'coust', 'label'),
4435     oils_i18n_gettext('ui.patron.edit.au.other_phone.show',
4436         '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.',
4437         'coust', 'description'),
4438     'bool', null)
4439
4440 ,( 'ui.patron.edit.au.other_phone.suggest', 'gui',
4441     oils_i18n_gettext('ui.patron.edit.au.other_phone.suggest',
4442         'Suggest other_phone field on patron registration',
4443         'coust', 'label'),
4444     oils_i18n_gettext('ui.patron.edit.au.other_phone.suggest',
4445         '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.',
4446         'coust', 'description'),
4447     'bool', null)
4448
4449 ,( 'ui.patron.edit.au.prefix.require', 'gui',
4450     oils_i18n_gettext('ui.patron.edit.au.prefix.require',
4451         'Require prefix field on patron registration',
4452         'coust', 'label'),
4453     oils_i18n_gettext('ui.patron.edit.au.prefix.require',
4454         'The prefix field will be required on the patron registration screen.',
4455         'coust', 'description'),
4456     'bool', null)
4457         
4458 ,( 'ui.patron.edit.au.prefix.show', 'gui',
4459     oils_i18n_gettext('ui.patron.edit.au.prefix.show',
4460         'Show prefix field on patron registration',
4461         'coust', 'label'),
4462     oils_i18n_gettext('ui.patron.edit.au.prefix.show',
4463         '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.',
4464         'coust', 'description'),
4465     'bool', null)
4466
4467 ,( 'ui.patron.edit.au.prefix.suggest', 'gui',
4468     oils_i18n_gettext('ui.patron.edit.au.prefix.suggest',
4469         'Suggest prefix field on patron registration',
4470         'coust', 'label'),
4471     oils_i18n_gettext('ui.patron.edit.au.prefix.suggest',
4472         '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.',
4473         'coust', 'description'),
4474     'bool', null)
4475
4476 ,( 'ui.patron.edit.au.second_given_name.show', 'gui',
4477     oils_i18n_gettext('ui.patron.edit.au.second_given_name.show',
4478         'Show second_given_name field on patron registration',
4479         'coust', 'label'),
4480     oils_i18n_gettext('ui.patron.edit.au.second_given_name.show',
4481         '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.',
4482         'coust', 'description'),
4483     'bool', null)
4484
4485 ,( 'ui.patron.edit.au.second_given_name.suggest', 'gui',
4486     oils_i18n_gettext('ui.patron.edit.au.second_given_name.suggest',
4487         'Suggest second_given_name field on patron registration',
4488         'coust', 'label'),
4489     oils_i18n_gettext('ui.patron.edit.au.second_given_name.suggest',
4490         '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.',
4491         'coust', 'description'),
4492     'bool', null)
4493
4494 ,( 'ui.patron.edit.au.suffix.show', 'gui',
4495     oils_i18n_gettext('ui.patron.edit.au.suffix.show',
4496         'Show suffix field on patron registration',
4497         'coust', 'label'),
4498     oils_i18n_gettext('ui.patron.edit.au.suffix.show',
4499         '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.',
4500         'coust', 'description'),
4501     'bool', null)
4502
4503 ,( 'ui.patron.edit.au.suffix.suggest', 'gui',
4504     oils_i18n_gettext('ui.patron.edit.au.suffix.suggest',
4505         'Suggest suffix field on patron registration',
4506         'coust', 'label'),
4507     oils_i18n_gettext('ui.patron.edit.au.suffix.suggest',
4508         '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.',
4509         'coust', 'description'),
4510     'bool', null)
4511
4512 ,( 'ui.patron.edit.aua.county.require', 'gui',
4513     oils_i18n_gettext('ui.patron.edit.aua.county.require',
4514         'Require county field on patron registration',
4515         'coust', 'label'),
4516     oils_i18n_gettext('ui.patron.edit.aua.county.require',
4517         'The county field will be required on the patron registration screen.',
4518         'coust', 'description'),
4519     'bool', null)
4520
4521 ,( 'ui.patron.edit.aua.post_code.example', 'gui',
4522     oils_i18n_gettext('ui.patron.edit.aua.post_code.example',
4523         'Example for post_code field on patron registration',
4524         'coust', 'label'),
4525     oils_i18n_gettext('ui.patron.edit.aua.post_code.example',
4526         'The Example for validation on the post_code field in patron registration.',
4527         'coust', 'description'),
4528     'string', null)
4529
4530 ,( 'ui.patron.edit.aua.post_code.regex', 'gui',
4531     oils_i18n_gettext('ui.patron.edit.aua.post_code.regex',
4532         'Regex for post_code field on patron registration',
4533         'coust', 'label'),
4534     oils_i18n_gettext('ui.patron.edit.aua.post_code.regex',
4535         'The Regular Expression for validation on the post_code field in patron registration.',
4536         'coust', 'description'),
4537     'string', null)
4538
4539 ,( 'ui.patron.edit.default_suggested', 'gui',
4540     oils_i18n_gettext('ui.patron.edit.default_suggested',
4541         'Default showing suggested patron registration fields',
4542         'coust', 'label'),
4543     oils_i18n_gettext('ui.patron.edit.default_suggested',
4544         'Instead of All fields, show just suggested fields in patron registration by default.',
4545         'coust', 'description'),
4546     'bool', null)
4547
4548 ,( 'ui.patron.edit.phone.example', 'gui',
4549     oils_i18n_gettext('ui.patron.edit.phone.example',
4550         'Example for phone fields on patron registration',
4551         'coust', 'label'),
4552     oils_i18n_gettext('ui.patron.edit.phone.example',
4553         'The Example for validation on phone fields in patron registration. Applies to all phone fields without their own setting.',
4554         'coust', 'description'),
4555     'string', null)
4556
4557 ,( 'ui.patron.edit.phone.regex', 'gui',
4558     oils_i18n_gettext('ui.patron.edit.phone.regex',
4559         'Regex for phone fields on patron registration',
4560         'coust', 'label'),
4561     oils_i18n_gettext('ui.patron.edit.phone.regex',
4562         '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.',
4563         'coust', 'description'),
4564     'string', null)
4565
4566 ,( 'ui.patron.registration.require_address', 'gui',
4567     oils_i18n_gettext('ui.patron.registration.require_address',
4568         'Require at least one address for Patron Registration',
4569         'coust', 'label'),
4570     oils_i18n_gettext('ui.patron.registration.require_address',
4571         'Enforces a requirement for having at least one address for a patron during registration.',
4572         'coust', 'description'),
4573     'bool', null)
4574
4575 ,( 'ui.patron_search.result_cap', 'gui',
4576     oils_i18n_gettext('ui.patron_search.result_cap',
4577         'Cap results in Patron Search at this number.',
4578         'coust', 'label'),
4579     oils_i18n_gettext('ui.patron_search.result_cap',
4580         '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.',
4581         'coust', 'description'),
4582     'integer', null)
4583
4584 ,( 'ui.staff.require_initials', 'gui',
4585     oils_i18n_gettext('ui.staff.require_initials',
4586         'Require staff initials for entry/edit of item/patron/penalty notes/messages.',
4587         'coust', 'label'),
4588     oils_i18n_gettext('ui.staff.require_initials',
4589         'Appends staff initials and edit date into note content.',
4590         'coust', 'description'),
4591     'bool', null)
4592
4593 ,( 'ui.unified_volume_copy_editor', 'gui',
4594     oils_i18n_gettext('ui.unified_volume_copy_editor',
4595         'Unified Volume/Item Creator/Editor',
4596         'coust', 'label'),
4597     oils_i18n_gettext('ui.unified_volume_copy_editor',
4598         'If true combines the Volume/Copy Creator and Item Attribute Editor in some instances.',
4599         'coust', 'description'),
4600     'bool', null)
4601
4602 ,( 'url.remote_column_settings', 'gui',
4603     oils_i18n_gettext('url.remote_column_settings',
4604         'URL for remote directory containing list column settings.',
4605         'coust', 'label'),
4606     oils_i18n_gettext('url.remote_column_settings',
4607         '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.',
4608         'coust', 'description'),
4609     'string', null)
4610 ,( 'opac.staff_saved_search.size', 'opac',
4611     oils_i18n_gettext('opac.staff_saved_search.size',
4612         'OPAC: Number of staff client saved searches to display on left side of results and record details pages',
4613         'coust', 'label'),
4614     oils_i18n_gettext('opac.staff_saved_search.size',
4615         '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.',
4616         'coust', 'description'),
4617     'integer', null)
4618 ,( 'circ.holds.target_when_closed', 'circ',
4619     oils_i18n_gettext('circ.holds.target_when_closed',
4620         'Target copies for a hold even if copy''s circ lib is closed',
4621         'coust', 'label'),
4622     oils_i18n_gettext('circ.holds.target_when_closed',
4623         '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).',
4624         'coust', 'description'),
4625     'bool', null)
4626 ,( 'circ.holds.target_when_closed_if_at_pickup_lib', 'circ',
4627     oils_i18n_gettext('circ.holds.target_when_closed_if_at_pickup_lib',
4628         'Target copies for a hold even if copy''s circ lib is closed IF the circ lib is the hold''s pickup lib',
4629         'coust', 'label'),
4630     oils_i18n_gettext('circ.holds.target_when_closed_if_at_pickup_lib',
4631         '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.',
4632         'coust', 'description'),
4633     'bool', null)
4634
4635
4636 ,( 'opac.staff.jump_to_details_on_single_hit', 'opac',
4637     oils_i18n_gettext('opac.staff.jump_to_details_on_single_hit',
4638         'Jump to details on 1 hit (staff client)',
4639         'coust', 'label'),
4640     oils_i18n_gettext('opac.staff.jump_to_details_on_single_hit',
4641         'When a search yields only 1 result, jump directly to the record details page.  This setting only affects the OPAC within the staff client',
4642         'coust', 'description'),
4643     'bool', null)
4644 ,( 'opac.patron.jump_to_details_on_single_hit', 'opac',
4645     oils_i18n_gettext('opac.patron.jump_to_details_on_single_hit',
4646         'Jump to details on 1 hit (public)',
4647         'coust', 'label'),
4648     oils_i18n_gettext('opac.patron.jump_to_details_on_single_hit',
4649         'When a search yields only 1 result, jump directly to the record details page.  This setting only affects the public OPAC',
4650         'coust', 'description'),
4651     'bool', null)
4652
4653 ,( 'opac.search.tag_circulated_items', 'opac',
4654     oils_i18n_gettext(
4655         'opac.search.tag_circulated_items',
4656         'Tag Circulated Items in Results',
4657         'coust', 'label'
4658     ),
4659     oils_i18n_gettext(
4660         'opac.search.tag_circulated_items',
4661         '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',
4662         'coust', 'description'
4663     ),
4664     'bool', null)
4665
4666 ,( 'sms.enable', 'sms',
4667     oils_i18n_gettext(
4668         'sms.enable',
4669         'Enable features that send SMS text messages.',
4670         'coust',
4671         'label'
4672     ),
4673     oils_i18n_gettext(
4674         'sms.enable',
4675         '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.',
4676         'coust',
4677         'description'
4678     ),
4679     'bool', null)
4680 ,( 'sms.disable_authentication_requirement.callnumbers', 'sms',
4681     oils_i18n_gettext(
4682         'sms.disable_authentication_requirement.callnumbers',
4683         'Disable auth requirement for texting call numbers.',
4684         'coust',
4685         'label'
4686     ),
4687     oils_i18n_gettext(
4688         'sms.disable_authentication_requirement.callnumbers',
4689         'Disable authentication requirement for sending call number information via SMS from the OPAC.',
4690         'coust',
4691         'description'
4692     ),
4693     'bool', null)
4694 ,( 'serial.default_display_grouping', 'serial',
4695     oils_i18n_gettext(
4696         'serial.default_display_grouping',
4697         'Default display grouping for serials distributions presented in the OPAC.',
4698         'coust',
4699         'label'
4700     ),
4701     oils_i18n_gettext(
4702         'serial.default_display_grouping',
4703         'Default display grouping for serials distributions presented in the OPAC. This can be "enum" or "chron".',
4704         'coust',
4705         'description'
4706     ),
4707     'string', null)
4708
4709 ;
4710
4711 UPDATE config.org_unit_setting_type
4712     SET view_perm = (SELECT id FROM permission.perm_list
4713         WHERE code = 'VIEW_CREDIT_CARD_PROCESSING' LIMIT 1)
4714     WHERE name LIKE 'credit.processor%' AND view_perm IS NULL;
4715
4716 UPDATE config.org_unit_setting_type
4717     SET update_perm = (SELECT id FROM permission.perm_list
4718         WHERE code = 'ADMIN_CREDIT_CARD_PROCESSING' LIMIT 1)
4719     WHERE name LIKE 'credit.processor%' AND update_perm IS NULL;
4720
4721 -- *** Has to go below coust definition to satisfy referential integrity ***
4722 -- In booking, elbow room defines:
4723 --  a) how far in the future you must make a reservation on a given item if
4724 --      that item will have to transit somewhere to fulfill the reservation.
4725 --  b) how soon a reservation must be starting for the reserved item to
4726 --      be op-captured by the checkin interface.
4727 INSERT INTO actor.org_unit_setting (org_unit, name, value) VALUES (
4728     (SELECT id FROM actor.org_unit WHERE parent_ou IS NULL),
4729     'circ.booking_reservation.default_elbow_room',
4730     '"1 day"')
4731     ,(1, 'cat.spine.line.margin', 0)
4732     ,(1, 'cat.spine.line.height', 9)
4733     ,(1, 'cat.spine.line.width', 8)
4734     ,(1, 'cat.label.font.family', '"monospace"')
4735     ,(1, 'cat.label.font.size', 10)
4736     ,(1, 'cat.label.font.weight', '"normal"')
4737     ,(1, 'circ.grace.extend', 'true')
4738 ;
4739
4740
4741 -- Staged Search (for default matchpoints)
4742 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(1, 'first_word', 1.5);
4743 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(1, 'full_match', 20);
4744
4745 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(2, 'first_word', 1.5);
4746 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(2, 'word_order', 10);
4747 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(2, 'full_match', 20);
4748
4749 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(3, 'first_word', 1.5);
4750 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(3, 'word_order', 10);
4751 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(3, 'full_match', 20);
4752
4753 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(4, 'first_word', 1.5);
4754 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(4, 'word_order', 10);
4755 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(4, 'full_match', 20);
4756
4757 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(5, 'first_word', 1.5);
4758 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(5, 'word_order', 10);
4759 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(5, 'full_match', 20);
4760
4761 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(6, 'first_word', 1.5);
4762 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(6, 'word_order', 10);
4763 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(6, 'full_match', 20);
4764
4765 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(7, 'first_word', 1.5);
4766
4767 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(8, 'first_word', 1.5);
4768
4769 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(9, 'first_word', 1.5);
4770
4771 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(10, 'first_word', 1.5);
4772
4773 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(15, 'word_order', 10);
4774
4775 -- Vandelay (for importing and exporting records) 012.schema.vandelay.sql 
4776 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)]');
4777 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)]');
4778 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]');
4779 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]');
4780 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$);
4781 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$);
4782 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]');
4783 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath) VALUES (8, 'rec_identifier',oils_i18n_gettext(8, 'Accession Number', 'vqbrad', 'description'),'//*[@tag="001"]');
4784 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"]');
4785 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"]');
4786 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"]');
4787 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]');
4788 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$);
4789 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]');
4790 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]');
4791 SELECT SETVAL('vandelay.bib_attr_definition_id_seq'::TEXT, 100);
4792
4793 INSERT INTO vandelay.import_item_attr_definition (
4794     owner, name, tag, owning_lib, circ_lib, location,
4795     call_number, circ_modifier, barcode, price, copy_number,
4796     circulate, ref, holdable, opac_visible, status
4797 ) VALUES (
4798     1,
4799     'Evergreen 852 export format',
4800     '852',
4801     '[@code = "b"][1]',
4802     '[@code = "b"][2]',
4803     'c',
4804     'j',
4805     'g',
4806     'p',
4807     'y',
4808     't',
4809     '[@code = "x" and text() = "circulating"]',
4810     '[@code = "x" and text() = "reference"]',
4811     '[@code = "x" and text() = "holdable"]',
4812     '[@code = "x" and text() = "visible"]',
4813     'z'
4814 );
4815
4816 INSERT INTO vandelay.import_item_attr_definition (
4817     owner,
4818     name,
4819     tag,
4820     owning_lib,
4821     location,
4822     call_number,
4823     circ_modifier,
4824     barcode,
4825     price,
4826     status
4827 ) VALUES (
4828     1,
4829     'Unicorn Import format -- 999',
4830     '999',
4831     'm',
4832     'l',
4833     'a',
4834     't',
4835     'i',
4836     'p',
4837     'k'
4838 );
4839
4840 INSERT INTO vandelay.authority_attr_definition (id, code, description, xpath) VALUES (1, 'rec_identifier',oils_i18n_gettext(1, 'Identifier', 'vqarad', 'description'),'//*[@tag="001"]');
4841 SELECT SETVAL('vandelay.authority_attr_definition_id_seq'::TEXT, 100);
4842
4843
4844 INSERT INTO container.copy_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'ccpbt', 'label'));
4845 INSERT INTO container.copy_bucket_type (code,label) VALUES ('staff_client', oils_i18n_gettext('staff_client', 'General Staff Client container', 'ccpbt', 'label'));
4846 INSERT INTO container.copy_bucket_type (code,label) VALUES ( 'circ_history', 'Circulation History' );
4847 INSERT INTO container.call_number_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'ccnbt', 'label'));
4848 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'cbrebt', 'label'));
4849 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('staff_client', oils_i18n_gettext('staff_client', 'General Staff Client container', 'cbrebt', 'label'));
4850 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('bookbag', oils_i18n_gettext('bookbag', 'Book Bag', 'cbrebt', 'label'));
4851 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('reading_list', oils_i18n_gettext('reading_list', 'Reading List', 'cbrebt', 'label'));
4852 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('template_merge',oils_i18n_gettext('template_merge','Template Merge Container', 'cbrebt', 'label'));
4853
4854 INSERT INTO container.user_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'cubt', 'label'));
4855 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks', oils_i18n_gettext('folks', 'Friends', 'cubt', 'label'));
4856 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'));
4857 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'));
4858 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:circ.view', oils_i18n_gettext('folks:circ.view', 'View Circulations', 'cubt', 'label'));
4859 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:circ.renew', oils_i18n_gettext('folks:circ.renew', 'Renew Circulations', 'cubt', 'label'));
4860 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:circ.checkout', oils_i18n_gettext('folks:circ.checkout', 'Checkout Items', 'cubt', 'label'));
4861 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:hold.view', oils_i18n_gettext('folks:hold.view', 'View Holds', 'cubt', 'label'));
4862 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:hold.cancel', oils_i18n_gettext('folks:hold.cancel', 'Cancel Holds', 'cubt', 'label'));
4863
4864
4865 ----------------------------------
4866 -- MARC21 record structure data --
4867 ----------------------------------
4868
4869 -- Record type map
4870 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('BKS','at','acdm');
4871 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('SER','a','bsi');
4872 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('VIS','gkro','abcdmsi');
4873 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('MIX','p','cdi');
4874 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('MAP','ef','abcdmsi');
4875 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('SCO','cd','abcdmsi');
4876 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('REC','ij','abcdmsi');
4877 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('COM','m','abcdmsi');
4878 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('AUT','z',' ');
4879 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('MFHD','uvxy',' ');
4880
4881
4882 ------ Physical Characteristics
4883
4884 -- Map
4885 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('a','Map');
4886 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','b','1','1','SMD');
4887 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Atlas');
4888 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Diagram');
4889 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Map');
4890 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Profile');
4891 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Model');
4892 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');
4893 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Section');
4894 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
4895 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('y',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'View');
4896 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4897 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','d','3','1','Color');
4898 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');
4899 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
4900 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','e','4','1','Physical medium');
4901 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
4902 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
4903 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
4904 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
4905 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
4906 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
4907 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
4908 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
4909 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');
4910 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');
4911 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');
4912 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');
4913 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4914 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');
4915 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4916 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','f','5','1','Type of reproduction');
4917 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Facsimile');
4918 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');
4919 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4920 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4921 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','g','6','1','Production/reproduction details');
4922 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');
4923 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Photocopy');
4924 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');
4925 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Film');
4926 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4927 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4928 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','h','7','1','Positive/negative');
4929 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Positive');
4930 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Negative');
4931 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
4932 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');
4933
4934 -- Electronic Resource
4935 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('c','Electronic Resource');
4936 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','b','1','1','SMD');
4937 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');
4938 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');
4939 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');
4940 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');
4941 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');
4942 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');
4943 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');
4944 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');
4945 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Remote');
4946 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
4947 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4948 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','d','3','1','Color');
4949 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');
4950 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');
4951 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
4952 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');
4953 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
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 ('c','e','4','1','Dimensions');
4958 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.');
4959 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.');
4960 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.');
4961 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.');
4962 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.');
4963 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');
4964 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.');
4965 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4966 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.');
4967 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
4968 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','f','5','1','Sound');
4969 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)');
4970 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound');
4971 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4972 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','g','6','3','Image bit depth');
4973 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('---',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4974 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('mmm',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multiple');
4975 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');
4976 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','h','9','1','File formats');
4977 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');
4978 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');
4979 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4980 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','i','10','1','Quality assurance target(s)');
4981 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Absent');
4982 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');
4983 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Present');
4984 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4985 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','j','11','1','Antecedent/Source');
4986 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');
4987 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');
4988 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');
4989 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)');
4990 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
4991 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');
4992 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4993 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','k','12','1','Level of compression');
4994 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Uncompressed');
4995 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Lossless');
4996 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Lossy');
4997 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
4998 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
4999 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','l','13','1','Reformatting quality');
5000 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Access');
5001 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');
5002 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Preservation');
5003 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Replacement');
5004 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5005
5006 -- Globe
5007 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('d','Globe');
5008 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','b','1','1','SMD');
5009 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');
5010 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');
5011 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');
5012 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');
5013 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5014 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5015 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','d','3','1','Color');
5016 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');
5017 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5018 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','e','4','1','Physical medium');
5019 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5020 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
5021 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
5022 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
5023 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5024 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
5025 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
5026 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
5027 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5028 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5029 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','f','5','1','Type of reproduction');
5030 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Facsimile');
5031 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');
5032 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5033 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5034
5035 -- Tactile Material
5036 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('f','Tactile Material');
5037 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','b','1','1','SMD');
5038 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Moon');
5039 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Braille');
5040 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Combination');
5041 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');
5042 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5043 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5044 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','d','3','2','Class of braille writing');
5045 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');
5046 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');
5047 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');
5048 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');
5049 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');
5050 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');
5051 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');
5052 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5053 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5054 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','e','4','1','Level of contraction');
5055 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Uncontracted');
5056 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Contracted');
5057 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Combination');
5058 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');
5059 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5060 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5061 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','f','6','3','Braille music format');
5062 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');
5063 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');
5064 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');
5065 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paragraph');
5066 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');
5067 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');
5068 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');
5069 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');
5070 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');
5071 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');
5072 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Outline');
5073 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');
5074 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');
5075 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5076 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5077 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','g','9','1','Special physical characteristics');
5078 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');
5079 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');
5080 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');
5081 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5082 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5083
5084 -- Projected Graphic
5085 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('g','Projected Graphic');
5086 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','b','1','1','SMD');
5087 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');
5088 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Filmstrip');
5089 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');
5090 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');
5091 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Slide');
5092 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Transparency');
5093 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5094 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','d','3','1','Color');
5095 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');
5096 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5097 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');
5098 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5099 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');
5100 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5101 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5102 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','e','4','1','Base of emulsion');
5103 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5104 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5105 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');
5106 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');
5107 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');
5108 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5109 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5110 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5111 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');
5112 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');
5113 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');
5114 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5115 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','g','6','1','Medium for sound');
5116 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');
5117 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');
5118 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');
5119 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');
5120 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');
5121 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');
5122 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');
5123 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videotape');
5124 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
5125 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5126 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5127 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','h','7','1','Dimensions');
5128 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.');
5129 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.');
5130 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.');
5131 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.');
5132 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.');
5133 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.');
5134 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.');
5135 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.)');
5136 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.)');
5137 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.)');
5138 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.)');
5139 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5140 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.)');
5141 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.)');
5142 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.)');
5143 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.)');
5144 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5145 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','i','8','1','Secondary support material');
5146 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Cardboard');
5147 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5148 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5149 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'metal');
5150 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');
5151 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');
5152 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');
5153 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5154 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5155
5156 -- Microform
5157 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('h','Microform');
5158 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','b','1','1','SMD');
5159 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');
5160 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');
5161 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');
5162 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');
5163 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Microfiche');
5164 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');
5165 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Microopaque');
5166 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5167 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5168 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','d','3','1','Positive/negative');
5169 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Positive');
5170 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Negative');
5171 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5172 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5173 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','e','4','1','Dimensions');
5174 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.');
5175 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.');
5176 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.');
5177 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'70mm.');
5178 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.');
5179 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.)');
5180 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.)');
5181 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.)');
5182 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.)');
5183 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5184 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5185 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');
5186 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)');
5187 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)');
5188 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)');
5189 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)');
5190 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-)');
5191 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5192 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');
5193 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','g','9','1','Color');
5194 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');
5195 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5196 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5197 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5198 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5199 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','h','10','1','Emulsion on film');
5200 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');
5201 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Diazo');
5202 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Vesicular');
5203 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5204 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');
5205 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5206 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5207 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','i','11','1','Quality assurance target(s)');
5208 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');
5209 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');
5210 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');
5211 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');
5212 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5213 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','j','12','1','Base of film');
5214 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');
5215 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');
5216 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');
5217 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');
5218 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');
5219 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');
5220 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');
5221 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');
5222 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');
5223 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5224 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5225
5226 -- Non-projected Graphic
5227 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('k','Non-projected Graphic');
5228 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','b','1','1','SMD');
5229 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Collage');
5230 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Drawing');
5231 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Painting');
5232 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');
5233 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Photonegative');
5234 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Photoprint');
5235 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Picture');
5236 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Print');
5237 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');
5238 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Chart');
5239 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');
5240 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5241 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5242 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','d','3','1','Color');
5243 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');
5244 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');
5245 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5246 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');
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');
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_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5250 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','e','4','1','Primary support material');
5251 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Canvas');
5252 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');
5253 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');
5254 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5255 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5256 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
5257 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
5258 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
5259 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');
5260 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5261 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
5262 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Hardboard');
5263 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Porcelain');
5264 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
5265 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
5266 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5267 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5268 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','f','5','1','Secondary support material');
5269 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Canvas');
5270 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');
5271 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');
5272 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5273 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5274 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
5275 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
5276 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
5277 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');
5278 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5279 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
5280 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Hardboard');
5281 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Porcelain');
5282 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
5283 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
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
5287 -- Motion Picture
5288 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('m','Motion Picture');
5289 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','b','1','1','SMD');
5290 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');
5291 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');
5292 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');
5293 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5294 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5295 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','d','3','1','Color');
5296 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');
5297 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5298 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');
5299 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5300 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5301 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5302 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','e','4','1','Motion picture presentation format');
5303 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');
5304 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)');
5305 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'3D');
5306 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)');
5307 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');
5308 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');
5309 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5310 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5311 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');
5312 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');
5313 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');
5314 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5315 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','g','6','1','Medium for sound');
5316 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');
5317 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');
5318 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');
5319 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');
5320 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');
5321 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');
5322 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');
5323 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videotape');
5324 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
5325 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5326 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5327 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','h','7','1','Dimensions');
5328 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.');
5329 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.');
5330 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.');
5331 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.');
5332 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.');
5333 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.');
5334 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.');
5335 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5336 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5337 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','i','8','1','Configuration of playback channels');
5338 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5339 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Monaural');
5340 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');
5341 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');
5342 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stereophonic');
5343 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5344 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5345 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','j','9','1','Production elements');
5346 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');
5347 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Trims');
5348 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Outtakes');
5349 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Rushes');
5350 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');
5351 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');
5352 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');
5353 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');
5354 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5355
5356 -- Remote-sensing Image
5357 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('r','Remote-sensing Image');
5358 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','b','1','1','SMD');
5359 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5360 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','d','3','1','Altitude of sensor');
5361 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Surface');
5362 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Airborne');
5363 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Spaceborne');
5364 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');
5365 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5366 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5367 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','e','4','1','Attitude of sensor');
5368 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');
5369 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');
5370 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Vertical');
5371 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');
5372 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5373 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','f','5','1','Cloud cover');
5374 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%');
5375 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%');
5376 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%');
5377 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%');
5378 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%');
5379 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%');
5380 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%');
5381 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%');
5382 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%');
5383 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%');
5384 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');
5385 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5386 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','g','6','1','Platform construction type');
5387 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Balloon');
5388 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');
5389 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');
5390 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');
5391 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');
5392 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');
5393 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');
5394 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');
5395 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');
5396 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');
5397 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5398 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5399 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','h','7','1','Platform use category');
5400 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Meteorological');
5401 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');
5402 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');
5403 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');
5404 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');
5405 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5406 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5407 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','i','8','1','Sensor type');
5408 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Active');
5409 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Passive');
5410 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5411 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5412 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','j','9','2','Data type');
5413 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');
5414 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');
5415 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');
5416 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');
5417 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');
5418 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)');
5419 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');
5420 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('dv',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Combinations');
5421 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');
5422 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)');
5423 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)');
5424 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)');
5425 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');
5426 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');
5427 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');
5428 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');
5429 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');
5430 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');
5431 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');
5432 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');
5433 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');
5434 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');
5435 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');
5436 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');
5437 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');
5438 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');
5439 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');
5440 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');
5441 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');
5442 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');
5443 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');
5444 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');
5445 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');
5446 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)');
5447 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');
5448 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('rc',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Bouger');
5449 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('rd',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Isostatic');
5450 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');
5451 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');
5452 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('uu',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5453 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('zz',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5454
5455 -- Sound Recording
5456 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('s','Sound Recording');
5457 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','b','1','1','SMD');
5458 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');
5459 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Cylinder');
5460 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');
5461 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');
5462 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Roll');
5463 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');
5464 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');
5465 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5466 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');
5467 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5468 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','d','3','1','Speed');
5469 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');
5470 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');
5471 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');
5472 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');
5473 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');
5474 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');
5475 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');
5476 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');
5477 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');
5478 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');
5479 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');
5480 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');
5481 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');
5482 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');
5483 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5484 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5485 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','e','4','1','Configuration of playback channels');
5486 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Monaural');
5487 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Quadraphonic');
5488 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stereophonic');
5489 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5490 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5491 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','f','5','1','Groove width or pitch');
5492 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');
5493 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');
5494 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');
5495 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5496 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5497 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','g','6','1','Dimensions');
5498 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.');
5499 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.');
5500 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.');
5501 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.');
5502 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.');
5503 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.');
5504 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.)');
5505 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.');
5506 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');
5507 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.');
5508 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.');
5509 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5510 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5511 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','h','7','1','Tape width');
5512 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.');
5513 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.');
5514 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');
5515 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.');
5516 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.');
5517 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5518 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5519 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','i','8','1','Tape configuration ');
5520 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');
5521 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');
5522 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');
5523 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');
5524 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');
5525 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');
5526 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');
5527 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5528 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5529 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','m','12','1','Special playback');
5530 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');
5531 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');
5532 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');
5533 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');
5534 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');
5535 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');
5536 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');
5537 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');
5538 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');
5539 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5540 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5541 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','n','13','1','Capture and storage');
5542 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');
5543 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');
5544 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');
5545 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');
5546 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5547 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5548
5549 -- Videorecording
5550 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('v','Videorecording');
5551 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','b','1','1','SMD');
5552 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videocartridge');
5553 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
5554 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videocassette');
5555 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videoreel');
5556 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5557 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5558 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','d','3','1','Color');
5559 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');
5560 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5561 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
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 ('v','e','4','1','Videorecording format');
5566 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Beta');
5567 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'VHS');
5568 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');
5569 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'EIAJ');
5570 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');
5571 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Quadruplex');
5572 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Laserdisc');
5573 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'CED');
5574 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Betacam');
5575 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');
5576 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');
5577 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');
5578 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');
5579 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.');
5580 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.');
5581 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');
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 ('v',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'DVD');
5584 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5585 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');
5586 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');
5587 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');
5588 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5589 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','g','6','1','Medium for sound');
5590 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');
5591 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');
5592 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');
5593 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');
5594 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');
5595 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');
5596 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');
5597 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videotape');
5598 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
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','h','7','1','Dimensions');
5602 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.');
5603 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.');
5604 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.');
5605 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.');
5606 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.');
5607 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.');
5608 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5609 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5610 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','i','8','1','Configuration of playback channel');
5611 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5612 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Monaural');
5613 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');
5614 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');
5615 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stereophonic');
5616 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5617 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5618
5619 -- Fixed Field position data -- 0-based!
5620 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Alph', '006', 'SER', 16, 1, ' ');
5621 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Alph', '008', 'SER', 33, 1, ' ');
5622 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'BKS', 5, 1, ' ');
5623 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'COM', 5, 1, ' ');
5624 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'REC', 5, 1, ' ');
5625 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'SCO', 5, 1, ' ');
5626 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'SER', 5, 1, ' ');
5627 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'VIS', 5, 1, ' ');
5628 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'BKS', 22, 1, ' ');
5629 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'COM', 22, 1, ' ');
5630 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'REC', 22, 1, ' ');
5631 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'SCO', 22, 1, ' ');
5632 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'SER', 22, 1, ' ');
5633 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'VIS', 22, 1, ' ');
5634 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'BKS', 7, 1, 'm');
5635 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'COM', 7, 1, 'm');
5636 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'MAP', 7, 1, 'm');
5637 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'MIX', 7, 1, 'c');
5638 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'REC', 7, 1, 'm');
5639 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'SCO', 7, 1, 'm');
5640 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'SER', 7, 1, 's');
5641 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'VIS', 7, 1, 'm');
5642 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Biog', '006', 'BKS', 17, 1, ' ');
5643 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Biog', '008', 'BKS', 34, 1, ' ');
5644 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '006', 'BKS', 11, 1, ' ');
5645 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '006', 'SER', 11, 1, ' ');
5646 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '008', 'BKS', 29, 1, ' ');
5647 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '008', 'SER', 29, 1, ' ');
5648 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '006', 'BKS', 7, 4, ' ');
5649 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '006', 'SER', 8, 3, ' ');
5650 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '008', 'BKS', 24, 4, ' ');
5651 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '008', 'SER', 25, 3, ' ');
5652 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'BKS', 8, 1, ' ');
5653 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'COM', 8, 1, ' ');
5654 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'MAP', 8, 1, ' ');
5655 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'MIX', 8, 1, ' ');
5656 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'REC', 8, 1, ' ');
5657 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'SCO', 8, 1, ' ');
5658 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'SER', 8, 1, ' ');
5659 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'VIS', 8, 1, ' ');
5660 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'BKS', 15, 3, ' ');
5661 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'COM', 15, 3, ' ');
5662 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'MAP', 15, 3, ' ');
5663 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'MIX', 15, 3, ' ');
5664 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'REC', 15, 3, ' ');
5665 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'SCO', 15, 3, ' ');
5666 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'SER', 15, 3, ' ');
5667 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'VIS', 15, 3, ' ');
5668 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'BKS', 7, 4, ' ');
5669 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'COM', 7, 4, ' ');
5670 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'MAP', 7, 4, ' ');
5671 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'MIX', 7, 4, ' ');
5672 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'REC', 7, 4, ' ');
5673 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'SCO', 7, 4, ' ');
5674 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'SER', 7, 4, ' ');
5675 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'VIS', 7, 4, ' ');
5676 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'BKS', 11, 4, ' ');
5677 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'COM', 11, 4, ' ');
5678 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'MAP', 11, 4, ' ');
5679 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'MIX', 11, 4, ' ');
5680 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'REC', 11, 4, ' ');
5681 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'SCO', 11, 4, ' ');
5682 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'SER', 11, 4, '9');
5683 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'VIS', 11, 4, ' ');
5684 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'BKS', 18, 1, ' ');
5685 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'COM', 18, 1, ' ');
5686 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'MAP', 18, 1, ' ');
5687 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'MIX', 18, 1, ' ');
5688 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'REC', 18, 1, ' ');
5689 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'SCO', 18, 1, ' ');
5690 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'SER', 18, 1, ' ');
5691 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'VIS', 18, 1, ' ');
5692 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'BKS', 6, 1, ' ');
5693 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'COM', 6, 1, ' ');
5694 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'MAP', 6, 1, ' ');
5695 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'MIX', 6, 1, ' ');
5696 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'REC', 6, 1, ' ');
5697 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'SCO', 6, 1, ' ');
5698 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'SER', 6, 1, 'c');
5699 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'VIS', 6, 1, ' ');
5700 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'BKS', 17, 1, ' ');
5701 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'COM', 17, 1, ' ');
5702 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'MAP', 17, 1, ' ');
5703 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'MIX', 17, 1, ' ');
5704 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'REC', 17, 1, ' ');
5705 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'SCO', 17, 1, ' ');
5706 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'SER', 17, 1, ' ');
5707 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'VIS', 17, 1, ' ');
5708 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'AUT', 17, 1, ' ');
5709 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Fest', '006', 'BKS', 13, 1, '0');
5710 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Fest', '008', 'BKS', 30, 1, '0');
5711 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'BKS', 6, 1, ' ');
5712 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'MAP', 12, 1, ' ');
5713 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'MIX', 6, 1, ' ');
5714 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'REC', 6, 1, ' ');
5715 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'SCO', 6, 1, ' ');
5716 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'SER', 6, 1, ' ');
5717 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'VIS', 12, 1, ' ');
5718 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'BKS', 23, 1, ' ');
5719 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'MAP', 29, 1, ' ');
5720 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'MIX', 23, 1, ' ');
5721 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'REC', 23, 1, ' ');
5722 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'SCO', 23, 1, ' ');
5723 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'SER', 23, 1, ' ');
5724 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'VIS', 29, 1, ' ');
5725 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'BKS', 11, 1, ' ');
5726 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'COM', 11, 1, ' ');
5727 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'MAP', 11, 1, ' ');
5728 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'SER', 11, 1, ' ');
5729 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'VIS', 11, 1, ' ');
5730 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'BKS', 28, 1, ' ');
5731 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'COM', 28, 1, ' ');
5732 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'MAP', 28, 1, ' ');
5733 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'SER', 28, 1, ' ');
5734 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'VIS', 28, 1, ' ');
5735 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills', '006', 'BKS', 1, 4, ' ');
5736 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills', '008', 'BKS', 18, 4, ' ');
5737 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '006', 'BKS', 14, 1, '0');
5738 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '006', 'MAP', 14, 1, '0');
5739 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '008', 'BKS', 31, 1, '0');
5740 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '008', 'MAP', 31, 1, '0');
5741 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'BKS', 35, 3, ' ');
5742 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'COM', 35, 3, ' ');
5743 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'MAP', 35, 3, ' ');
5744 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'MIX', 35, 3, ' ');
5745 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'REC', 35, 3, ' ');
5746 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'SCO', 35, 3, ' ');
5747 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'SER', 35, 3, ' ');
5748 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'VIS', 35, 3, ' ');
5749 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LitF', '006', 'BKS', 16, 1, '0');
5750 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LitF', '008', 'BKS', 33, 1, '0');
5751 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'BKS', 38, 1, ' ');
5752 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'COM', 38, 1, ' ');
5753 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'MAP', 38, 1, ' ');
5754 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'MIX', 38, 1, ' ');
5755 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'REC', 38, 1, ' ');
5756 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'SCO', 38, 1, ' ');
5757 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'SER', 38, 1, ' ');
5758 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'VIS', 38, 1, ' ');
5759 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');
5760 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');
5761 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TMat', '006', 'VIS', 16, 1, ' ');
5762 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TMat', '008', 'VIS', 33, 1, ' ');
5763 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'BKS', 6, 1, 'a');
5764 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'COM', 6, 1, 'm');
5765 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'MAP', 6, 1, 'e');
5766 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'MIX', 6, 1, 'p');
5767 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'REC', 6, 1, 'i');
5768 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'SCO', 6, 1, 'c');
5769 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'SER', 6, 1, 'a');
5770 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'VIS', 6, 1, 'g');
5771 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Subj', '008', 'AUT', 11, 1, '|');
5772 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('RecStat', 'ldr', 'AUT', 5, 1, 'n');
5773
5774 -- record attributes
5775 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('alph','Alph','Alph');
5776 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('audience','Audn','Audn');
5777 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('bib_level','BLvl','BLvl');
5778 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('biog','Biog','Biog');
5779 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('conf','Conf','Conf');
5780 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('control_type','Ctrl','Ctrl');
5781 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('ctry','Ctry','Ctry');
5782 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('date1','Date1','Date1');
5783 INSERT INTO config.record_attr_definition (name,label,fixed_field,sorter,filter) values ('pubdate','Pub Date','Date1',TRUE,FALSE);
5784 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('date2','Date2','Date2');
5785 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('cat_form','Desc','Desc');
5786 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('pub_status','DtSt','DtSt');
5787 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('enc_level','ELvl','ELvl');
5788 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('fest','Fest','Fest');
5789 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('item_form','Form','Form');
5790 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('gpub','GPub','GPub');
5791 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('ills','Ills','Ills');
5792 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('indx','Indx','Indx');
5793 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('item_lang','Lang','Lang');
5794 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('language','Language (2.0 compat version)','Lang');
5795 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('lit_form','LitF','LitF');
5796 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('mrec','MRec','MRec');
5797 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('ff_sl','S/L','S/L');
5798 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('type_mat','TMat','TMat');
5799 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('item_type','Type','Type');
5800 INSERT INTO config.record_attr_definition (name,label,phys_char_sf) values ('vr_format','Videorecording format',72);
5801 INSERT INTO config.record_attr_definition (name,label,sorter,filter,tag) values ('titlesort','Title',TRUE,FALSE,'tnf');
5802 INSERT INTO config.record_attr_definition (name,label,sorter,filter,tag,sf_list) values ('authorsort','Author',TRUE,FALSE,'1%','abcdefgklmnopqrstvxyz');
5803
5804 -- TO-DO: Auto-generate these values from CLDR
5805 -- XXX These are the values used in MARC records ... does that match CLDR, including deprecated languages?
5806 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
5807     (1, 'item_lang', 'aar', oils_i18n_gettext('aar', 'Afar', 'ccvm', 'value')),
5808     (2, 'item_lang', 'abk', oils_i18n_gettext('abk', 'Abkhaz', 'ccvm', 'value')),
5809     (3, 'item_lang', 'ace', oils_i18n_gettext('ace', 'Achinese', 'ccvm', 'value')),
5810     (4, 'item_lang', 'ach', oils_i18n_gettext('ach', 'Acoli', 'ccvm', 'value')),
5811     (5, 'item_lang', 'ada', oils_i18n_gettext('ada', 'Adangme', 'ccvm', 'value')),
5812     (6, 'item_lang', 'ady', oils_i18n_gettext('ady', 'Adygei', 'ccvm', 'value')),
5813     (7, 'item_lang', 'afa', oils_i18n_gettext('afa', 'Afroasiatic (Other)', 'ccvm', 'value')),
5814     (8, 'item_lang', 'afh', oils_i18n_gettext('afh', 'Afrihili (Artificial language)', 'ccvm', 'value')),
5815     (9, 'item_lang', 'afr', oils_i18n_gettext('afr', 'Afrikaans', 'ccvm', 'value')),
5816     (10, 'item_lang', '-ajm', oils_i18n_gettext('-ajm', 'Aljamía', 'ccvm', 'value')),
5817     (11, 'item_lang', 'aka', oils_i18n_gettext('aka', 'Akan', 'ccvm', 'value')),
5818     (12, 'item_lang', 'akk', oils_i18n_gettext('akk', 'Akkadian', 'ccvm', 'value')),
5819     (13, 'item_lang', 'alb', oils_i18n_gettext('alb', 'Albanian', 'ccvm', 'value')),
5820     (14, 'item_lang', 'ale', oils_i18n_gettext('ale', 'Aleut', 'ccvm', 'value')),
5821     (15, 'item_lang', 'alg', oils_i18n_gettext('alg', 'Algonquian (Other)', 'ccvm', 'value')),
5822     (16, 'item_lang', 'amh', oils_i18n_gettext('amh', 'Amharic', 'ccvm', 'value')),
5823     (17, 'item_lang', 'ang', oils_i18n_gettext('ang', 'English, Old (ca. 450-1100)', 'ccvm', 'value')),
5824     (18, 'item_lang', 'apa', oils_i18n_gettext('apa', 'Apache languages', 'ccvm', 'value')),
5825     (19, 'item_lang', 'ara', oils_i18n_gettext('ara', 'Arabic', 'ccvm', 'value')),
5826     (20, 'item_lang', 'arc', oils_i18n_gettext('arc', 'Aramaic', 'ccvm', 'value')),
5827     (21, 'item_lang', 'arg', oils_i18n_gettext('arg', 'Aragonese Spanish', 'ccvm', 'value')),
5828     (22, 'item_lang', 'arm', oils_i18n_gettext('arm', 'Armenian', 'ccvm', 'value')),
5829     (23, 'item_lang', 'arn', oils_i18n_gettext('arn', 'Mapuche', 'ccvm', 'value')),
5830     (24, 'item_lang', 'arp', oils_i18n_gettext('arp', 'Arapaho', 'ccvm', 'value')),
5831     (25, 'item_lang', 'art', oils_i18n_gettext('art', 'Artificial (Other)', 'ccvm', 'value')),
5832     (26, 'item_lang', 'arw', oils_i18n_gettext('arw', 'Arawak', 'ccvm', 'value')),
5833     (27, 'item_lang', 'asm', oils_i18n_gettext('asm', 'Assamese', 'ccvm', 'value')),
5834     (28, 'item_lang', 'ast', oils_i18n_gettext('ast', 'Bable', 'ccvm', 'value')),
5835     (29, 'item_lang', 'ath', oils_i18n_gettext('ath', 'Athapascan (Other)', 'ccvm', 'value')),
5836     (30, 'item_lang', 'aus', oils_i18n_gettext('aus', 'Australian languages', 'ccvm', 'value')),
5837     (31, 'item_lang', 'ava', oils_i18n_gettext('ava', 'Avaric', 'ccvm', 'value')),
5838     (32, 'item_lang', 'ave', oils_i18n_gettext('ave', 'Avestan', 'ccvm', 'value')),
5839     (33, 'item_lang', 'awa', oils_i18n_gettext('awa', 'Awadhi', 'ccvm', 'value')),
5840     (34, 'item_lang', 'aym', oils_i18n_gettext('aym', 'Aymara', 'ccvm', 'value')),
5841     (35, 'item_lang', 'aze', oils_i18n_gettext('aze', 'Azerbaijani', 'ccvm', 'value')),
5842     (36, 'item_lang', 'bad', oils_i18n_gettext('bad', 'Banda', 'ccvm', 'value')),
5843     (37, 'item_lang', 'bai', oils_i18n_gettext('bai', 'Bamileke languages', 'ccvm', 'value')),
5844     (38, 'item_lang', 'bak', oils_i18n_gettext('bak', 'Bashkir', 'ccvm', 'value')),
5845     (39, 'item_lang', 'bal', oils_i18n_gettext('bal', 'Baluchi', 'ccvm', 'value')),
5846     (40, 'item_lang', 'bam', oils_i18n_gettext('40', 'Bambara', 'ccvm', 'value')),
5847     (41, 'item_lang', 'ban', oils_i18n_gettext('41', 'Balinese', 'ccvm', 'value')),
5848     (42, 'item_lang', 'baq', oils_i18n_gettext('42', 'Basque', 'ccvm', 'value')),
5849     (43, 'item_lang', 'bas', oils_i18n_gettext('43', 'Basa', 'ccvm', 'value')),
5850     (44, 'item_lang', 'bat', oils_i18n_gettext('44', 'Baltic (Other)', 'ccvm', 'value')),
5851     (45, 'item_lang', 'bej', oils_i18n_gettext('45', 'Beja', 'ccvm', 'value')),
5852     (46, 'item_lang', 'bel', oils_i18n_gettext('46', 'Belarusian', 'ccvm', 'value')),
5853     (47, 'item_lang', 'bem', oils_i18n_gettext('47', 'Bemba', 'ccvm', 'value')),
5854     (48, 'item_lang', 'ben', oils_i18n_gettext('48', 'Bengali', 'ccvm', 'value')),
5855     (49, 'item_lang', 'ber', oils_i18n_gettext('49', 'Berber (Other)', 'ccvm', 'value')),
5856     (50, 'item_lang', 'bho', oils_i18n_gettext('50', 'Bhojpuri', 'ccvm', 'value')),
5857     (51, 'item_lang', 'bih', oils_i18n_gettext('51', 'Bihari', 'ccvm', 'value')),
5858     (52, 'item_lang', 'bik', oils_i18n_gettext('52', 'Bikol', 'ccvm', 'value')),
5859     (53, 'item_lang', 'bin', oils_i18n_gettext('53', 'Edo', 'ccvm', 'value')),
5860     (54, 'item_lang', 'bis', oils_i18n_gettext('54', 'Bislama', 'ccvm', 'value')),
5861     (55, 'item_lang', 'bla', oils_i18n_gettext('55', 'Siksika', 'ccvm', 'value')),
5862     (56, 'item_lang', 'bnt', oils_i18n_gettext('56', 'Bantu (Other)', 'ccvm', 'value')),
5863     (57, 'item_lang', 'bos', oils_i18n_gettext('57', 'Bosnian', 'ccvm', 'value')),
5864     (58, 'item_lang', 'bra', oils_i18n_gettext('58', 'Braj', 'ccvm', 'value')),
5865     (59, 'item_lang', 'bre', oils_i18n_gettext('59', 'Breton', 'ccvm', 'value')),
5866     (60, 'item_lang', 'btk', oils_i18n_gettext('60', 'Batak', 'ccvm', 'value')),
5867     (61, 'item_lang', 'bua', oils_i18n_gettext('61', 'Buriat', 'ccvm', 'value')),
5868     (62, 'item_lang', 'bug', oils_i18n_gettext('62', 'Bugis', 'ccvm', 'value')),
5869     (63, 'item_lang', 'bul', oils_i18n_gettext('63', 'Bulgarian', 'ccvm', 'value')),
5870     (64, 'item_lang', 'bur', oils_i18n_gettext('64', 'Burmese', 'ccvm', 'value')),
5871     (65, 'item_lang', 'cad', oils_i18n_gettext('65', 'Caddo', 'ccvm', 'value')),
5872     (66, 'item_lang', 'cai', oils_i18n_gettext('66', 'Central American Indian (Other)', 'ccvm', 'value')),
5873     (67, 'item_lang', '-cam', oils_i18n_gettext('67', 'Khmer', 'ccvm', 'value')),
5874     (68, 'item_lang', 'car', oils_i18n_gettext('68', 'Carib', 'ccvm', 'value')),
5875     (69, 'item_lang', 'cat', oils_i18n_gettext('69', 'Catalan', 'ccvm', 'value')),
5876     (70, 'item_lang', 'cau', oils_i18n_gettext('70', 'Caucasian (Other)', 'ccvm', 'value')),
5877     (71, 'item_lang', 'ceb', oils_i18n_gettext('71', 'Cebuano', 'ccvm', 'value')),
5878     (72, 'item_lang', 'cel', oils_i18n_gettext('72', 'Celtic (Other)', 'ccvm', 'value')),
5879     (73, 'item_lang', 'cha', oils_i18n_gettext('73', 'Chamorro', 'ccvm', 'value')),
5880     (74, 'item_lang', 'chb', oils_i18n_gettext('74', 'Chibcha', 'ccvm', 'value')),
5881     (75, 'item_lang', 'che', oils_i18n_gettext('75', 'Chechen', 'ccvm', 'value')),
5882     (76, 'item_lang', 'chg', oils_i18n_gettext('76', 'Chagatai', 'ccvm', 'value')),
5883     (77, 'item_lang', 'chi', oils_i18n_gettext('77', 'Chinese', 'ccvm', 'value')),
5884     (78, 'item_lang', 'chk', oils_i18n_gettext('78', 'Truk', 'ccvm', 'value')),
5885     (79, 'item_lang', 'chm', oils_i18n_gettext('79', 'Mari', 'ccvm', 'value')),
5886     (80, 'item_lang', 'chn', oils_i18n_gettext('80', 'Chinook jargon', 'ccvm', 'value')),
5887     (81, 'item_lang', 'cho', oils_i18n_gettext('81', 'Choctaw', 'ccvm', 'value')),
5888     (82, 'item_lang', 'chp', oils_i18n_gettext('82', 'Chipewyan', 'ccvm', 'value')),
5889     (83, 'item_lang', 'chr', oils_i18n_gettext('83', 'Cherokee', 'ccvm', 'value')),
5890     (84, 'item_lang', 'chu', oils_i18n_gettext('84', 'Church Slavic', 'ccvm', 'value')),
5891     (85, 'item_lang', 'chv', oils_i18n_gettext('85', 'Chuvash', 'ccvm', 'value')),
5892     (86, 'item_lang', 'chy', oils_i18n_gettext('86', 'Cheyenne', 'ccvm', 'value')),
5893     (87, 'item_lang', 'cmc', oils_i18n_gettext('87', 'Chamic languages', 'ccvm', 'value')),
5894     (88, 'item_lang', 'cop', oils_i18n_gettext('88', 'Coptic', 'ccvm', 'value')),
5895     (89, 'item_lang', 'cor', oils_i18n_gettext('89', 'Cornish', 'ccvm', 'value')),
5896     (90, 'item_lang', 'cos', oils_i18n_gettext('90', 'Corsican', 'ccvm', 'value')),
5897     (91, 'item_lang', 'cpe', oils_i18n_gettext('91', 'Creoles and Pidgins, English-based (Other)', 'ccvm', 'value')),
5898     (92, 'item_lang', 'cpf', oils_i18n_gettext('92', 'Creoles and Pidgins, French-based (Other)', 'ccvm', 'value')),
5899     (93, 'item_lang', 'cpp', oils_i18n_gettext('93', 'Creoles and Pidgins, Portuguese-based (Other)', 'ccvm', 'value')),
5900     (94, 'item_lang', 'cre', oils_i18n_gettext('94', 'Cree', 'ccvm', 'value')),
5901     (95, 'item_lang', 'crh', oils_i18n_gettext('95', 'Crimean Tatar', 'ccvm', 'value')),
5902     (96, 'item_lang', 'crp', oils_i18n_gettext('96', 'Creoles and Pidgins (Other)', 'ccvm', 'value')),
5903     (97, 'item_lang', 'cus', oils_i18n_gettext('97', 'Cushitic (Other)', 'ccvm', 'value')),
5904     (98, 'item_lang', 'cze', oils_i18n_gettext('98', 'Czech', 'ccvm', 'value')),
5905     (99, 'item_lang', 'dak', oils_i18n_gettext('99', 'Dakota', 'ccvm', 'value')),
5906     (100, 'item_lang', 'dan', oils_i18n_gettext('100', 'Danish', 'ccvm', 'value')),
5907     (101, 'item_lang', 'dar', oils_i18n_gettext('101', 'Dargwa', 'ccvm', 'value')),
5908     (102, 'item_lang', 'day', oils_i18n_gettext('102', 'Dayak', 'ccvm', 'value')),
5909     (103, 'item_lang', 'del', oils_i18n_gettext('103', 'Delaware', 'ccvm', 'value')),
5910     (104, 'item_lang', 'den', oils_i18n_gettext('104', 'Slave', 'ccvm', 'value')),
5911     (105, 'item_lang', 'dgr', oils_i18n_gettext('105', 'Dogrib', 'ccvm', 'value')),
5912     (106, 'item_lang', 'din', oils_i18n_gettext('106', 'Dinka', 'ccvm', 'value')),
5913     (107, 'item_lang', 'div', oils_i18n_gettext('107', 'Divehi', 'ccvm', 'value')),
5914     (108, 'item_lang', 'doi', oils_i18n_gettext('108', 'Dogri', 'ccvm', 'value')),
5915     (109, 'item_lang', 'dra', oils_i18n_gettext('109', 'Dravidian (Other)', 'ccvm', 'value')),
5916     (110, 'item_lang', 'dua', oils_i18n_gettext('110', 'Duala', 'ccvm', 'value')),
5917     (111, 'item_lang', 'dum', oils_i18n_gettext('111', 'Dutch, Middle (ca. 1050-1350)', 'ccvm', 'value')),
5918     (112, 'item_lang', 'dut', oils_i18n_gettext('112', 'Dutch', 'ccvm', 'value')),
5919     (113, 'item_lang', 'dyu', oils_i18n_gettext('113', 'Dyula', 'ccvm', 'value')),
5920     (114, 'item_lang', 'dzo', oils_i18n_gettext('114', 'Dzongkha', 'ccvm', 'value')),
5921     (115, 'item_lang', 'efi', oils_i18n_gettext('115', 'Efik', 'ccvm', 'value')),
5922     (116, 'item_lang', 'egy', oils_i18n_gettext('116', 'Egyptian', 'ccvm', 'value')),
5923     (117, 'item_lang', 'eka', oils_i18n_gettext('117', 'Ekajuk', 'ccvm', 'value')),
5924     (118, 'item_lang', 'elx', oils_i18n_gettext('118', 'Elamite', 'ccvm', 'value')),
5925     (119, 'item_lang', 'eng', oils_i18n_gettext('119', 'English', 'ccvm', 'value')),
5926     (120, 'item_lang', 'enm', oils_i18n_gettext('120', 'English, Middle (1100-1500)', 'ccvm', 'value')),
5927     (121, 'item_lang', 'epo', oils_i18n_gettext('121', 'Esperanto', 'ccvm', 'value')),
5928     (122, 'item_lang', '-esk', oils_i18n_gettext('122', 'Eskimo languages', 'ccvm', 'value')),
5929     (123, 'item_lang', '-esp', oils_i18n_gettext('123', 'Esperanto', 'ccvm', 'value')),
5930     (124, 'item_lang', 'est', oils_i18n_gettext('124', 'Estonian', 'ccvm', 'value')),
5931     (125, 'item_lang', '-eth', oils_i18n_gettext('125', 'Ethiopic', 'ccvm', 'value')),
5932     (126, 'item_lang', 'ewe', oils_i18n_gettext('126', 'Ewe', 'ccvm', 'value')),
5933     (127, 'item_lang', 'ewo', oils_i18n_gettext('127', 'Ewondo', 'ccvm', 'value')),
5934     (128, 'item_lang', 'fan', oils_i18n_gettext('128', 'Fang', 'ccvm', 'value')),
5935     (129, 'item_lang', 'fao', oils_i18n_gettext('129', 'Faroese', 'ccvm', 'value')),
5936     (130, 'item_lang', '-far', oils_i18n_gettext('130', 'Faroese', 'ccvm', 'value')),
5937     (131, 'item_lang', 'fat', oils_i18n_gettext('131', 'Fanti', 'ccvm', 'value')),
5938     (132, 'item_lang', 'fij', oils_i18n_gettext('132', 'Fijian', 'ccvm', 'value')),
5939     (133, 'item_lang', 'fin', oils_i18n_gettext('133', 'Finnish', 'ccvm', 'value')),
5940     (134, 'item_lang', 'fiu', oils_i18n_gettext('134', 'Finno-Ugrian (Other)', 'ccvm', 'value')),
5941     (135, 'item_lang', 'fon', oils_i18n_gettext('135', 'Fon', 'ccvm', 'value')),
5942     (136, 'item_lang', 'fre', oils_i18n_gettext('136', 'French', 'ccvm', 'value')),
5943     (137, 'item_lang', '-fri', oils_i18n_gettext('137', 'Frisian', 'ccvm', 'value')),
5944     (138, 'item_lang', 'frm', oils_i18n_gettext('138', 'French, Middle (ca. 1400-1600)', 'ccvm', 'value')),
5945     (139, 'item_lang', 'fro', oils_i18n_gettext('139', 'French, Old (ca. 842-1400)', 'ccvm', 'value')),
5946     (140, 'item_lang', 'fry', oils_i18n_gettext('140', 'Frisian', 'ccvm', 'value')),
5947     (141, 'item_lang', 'ful', oils_i18n_gettext('141', 'Fula', 'ccvm', 'value')),
5948     (142, 'item_lang', 'fur', oils_i18n_gettext('142', 'Friulian', 'ccvm', 'value')),
5949     (143, 'item_lang', 'gaa', oils_i18n_gettext('143', 'Gã', 'ccvm', 'value')),
5950     (144, 'item_lang', '-gae', oils_i18n_gettext('144', 'Scottish Gaelic', 'ccvm', 'value')),
5951     (145, 'item_lang', '-gag', oils_i18n_gettext('145', 'Galician', 'ccvm', 'value')),
5952     (146, 'item_lang', '-gal', oils_i18n_gettext('146', 'Oromo', 'ccvm', 'value')),
5953     (147, 'item_lang', 'gay', oils_i18n_gettext('147', 'Gayo', 'ccvm', 'value')),
5954     (148, 'item_lang', 'gba', oils_i18n_gettext('148', 'Gbaya', 'ccvm', 'value')),
5955     (149, 'item_lang', 'gem', oils_i18n_gettext('149', 'Germanic (Other)', 'ccvm', 'value')),
5956     (150, 'item_lang', 'geo', oils_i18n_gettext('150', 'Georgian', 'ccvm', 'value')),
5957     (151, 'item_lang', 'ger', oils_i18n_gettext('151', 'German', 'ccvm', 'value')),
5958     (152, 'item_lang', 'gez', oils_i18n_gettext('152', 'Ethiopic', 'ccvm', 'value')),
5959     (153, 'item_lang', 'gil', oils_i18n_gettext('153', 'Gilbertese', 'ccvm', 'value')),
5960     (154, 'item_lang', 'gla', oils_i18n_gettext('154', 'Scottish Gaelic', 'ccvm', 'value')),
5961     (155, 'item_lang', 'gle', oils_i18n_gettext('155', 'Irish', 'ccvm', 'value')),
5962     (156, 'item_lang', 'glg', oils_i18n_gettext('156', 'Galician', 'ccvm', 'value')),
5963     (157, 'item_lang', 'glv', oils_i18n_gettext('157', 'Manx', 'ccvm', 'value')),
5964     (158, 'item_lang', 'gmh', oils_i18n_gettext('158', 'German, Middle High (ca. 1050-1500)', 'ccvm', 'value')),
5965     (159, 'item_lang', 'goh', oils_i18n_gettext('159', 'German, Old High (ca. 750-1050)', 'ccvm', 'value')),
5966     (160, 'item_lang', 'gon', oils_i18n_gettext('160', 'Gondi', 'ccvm', 'value')),
5967     (161, 'item_lang', 'gor', oils_i18n_gettext('161', 'Gorontalo', 'ccvm', 'value')),
5968     (162, 'item_lang', 'got', oils_i18n_gettext('162', 'Gothic', 'ccvm', 'value')),
5969     (163, 'item_lang', 'grb', oils_i18n_gettext('163', 'Grebo', 'ccvm', 'value')),
5970     (164, 'item_lang', 'grc', oils_i18n_gettext('164', 'Greek, Ancient (to 1453)', 'ccvm', 'value')),
5971     (165, 'item_lang', 'gre', oils_i18n_gettext('165', 'Greek, Modern (1453- )', 'ccvm', 'value')),
5972     (166, 'item_lang', 'grn', oils_i18n_gettext('166', 'Guarani', 'ccvm', 'value')),
5973     (167, 'item_lang', '-gua', oils_i18n_gettext('167', 'Guarani', 'ccvm', 'value')),
5974     (168, 'item_lang', 'guj', oils_i18n_gettext('168', 'Gujarati', 'ccvm', 'value')),
5975     (169, 'item_lang', 'gwi', oils_i18n_gettext('169', 'Gwich', 'ccvm', 'value''in')),
5976     (170, 'item_lang', 'hai', oils_i18n_gettext('170', 'Haida', 'ccvm', 'value')),
5977     (171, 'item_lang', 'hat', oils_i18n_gettext('171', 'Haitian French Creole', 'ccvm', 'value')),
5978     (172, 'item_lang', 'hau', oils_i18n_gettext('172', 'Hausa', 'ccvm', 'value')),
5979     (173, 'item_lang', 'haw', oils_i18n_gettext('173', 'Hawaiian', 'ccvm', 'value')),
5980     (174, 'item_lang', 'heb', oils_i18n_gettext('174', 'Hebrew', 'ccvm', 'value')),
5981     (175, 'item_lang', 'her', oils_i18n_gettext('175', 'Herero', 'ccvm', 'value')),
5982     (176, 'item_lang', 'hil', oils_i18n_gettext('176', 'Hiligaynon', 'ccvm', 'value')),
5983     (177, 'item_lang', 'him', oils_i18n_gettext('177', 'Himachali', 'ccvm', 'value')),
5984     (178, 'item_lang', 'hin', oils_i18n_gettext('178', 'Hindi', 'ccvm', 'value')),
5985     (179, 'item_lang', 'hit', oils_i18n_gettext('179', 'Hittite', 'ccvm', 'value')),
5986     (180, 'item_lang', 'hmn', oils_i18n_gettext('180', 'Hmong', 'ccvm', 'value')),
5987     (181, 'item_lang', 'hmo', oils_i18n_gettext('181', 'Hiri Motu', 'ccvm', 'value')),
5988     (182, 'item_lang', 'hun', oils_i18n_gettext('182', 'Hungarian', 'ccvm', 'value')),
5989     (183, 'item_lang', 'hup', oils_i18n_gettext('183', 'Hupa', 'ccvm', 'value')),
5990     (184, 'item_lang', 'iba', oils_i18n_gettext('184', 'Iban', 'ccvm', 'value')),
5991     (185, 'item_lang', 'ibo', oils_i18n_gettext('185', 'Igbo', 'ccvm', 'value')),
5992     (186, 'item_lang', 'ice', oils_i18n_gettext('186', 'Icelandic', 'ccvm', 'value')),
5993     (187, 'item_lang', 'ido', oils_i18n_gettext('187', 'Ido', 'ccvm', 'value')),
5994     (188, 'item_lang', 'iii', oils_i18n_gettext('188', 'Sichuan Yi', 'ccvm', 'value')),
5995     (189, 'item_lang', 'ijo', oils_i18n_gettext('189', 'Ijo', 'ccvm', 'value')),
5996     (190, 'item_lang', 'iku', oils_i18n_gettext('190', 'Inuktitut', 'ccvm', 'value')),
5997     (191, 'item_lang', 'ile', oils_i18n_gettext('191', 'Interlingue', 'ccvm', 'value')),
5998     (192, 'item_lang', 'ilo', oils_i18n_gettext('192', 'Iloko', 'ccvm', 'value')),
5999     (193, 'item_lang', 'ina', oils_i18n_gettext('193', 'Interlingua (International Auxiliary Language Association)', 'ccvm', 'value')),
6000     (194, 'item_lang', 'inc', oils_i18n_gettext('194', 'Indic (Other)', 'ccvm', 'value')),
6001     (195, 'item_lang', 'ind', oils_i18n_gettext('195', 'Indonesian', 'ccvm', 'value')),
6002     (196, 'item_lang', 'ine', oils_i18n_gettext('196', 'Indo-European (Other)', 'ccvm', 'value')),
6003     (197, 'item_lang', 'inh', oils_i18n_gettext('197', 'Ingush', 'ccvm', 'value')),
6004     (198, 'item_lang', '-int', oils_i18n_gettext('198', 'Interlingua (International Auxiliary Language Association)', 'ccvm', 'value')),
6005     (199, 'item_lang', 'ipk', oils_i18n_gettext('199', 'Inupiaq', 'ccvm', 'value')),
6006     (200, 'item_lang', 'ira', oils_i18n_gettext('200', 'Iranian (Other)', 'ccvm', 'value')),
6007     (201, 'item_lang', '-iri', oils_i18n_gettext('201', 'Irish', 'ccvm', 'value')),
6008     (202, 'item_lang', 'iro', oils_i18n_gettext('202', 'Iroquoian (Other)', 'ccvm', 'value')),
6009     (203, 'item_lang', 'ita', oils_i18n_gettext('203', 'Italian', 'ccvm', 'value')),
6010     (204, 'item_lang', 'jav', oils_i18n_gettext('204', 'Javanese', 'ccvm', 'value')),
6011     (205, 'item_lang', 'jpn', oils_i18n_gettext('205', 'Japanese', 'ccvm', 'value')),
6012     (206, 'item_lang', 'jpr', oils_i18n_gettext('206', 'Judeo-Persian', 'ccvm', 'value')),
6013     (207, 'item_lang', 'jrb', oils_i18n_gettext('207', 'Judeo-Arabic', 'ccvm', 'value')),
6014     (208, 'item_lang', 'kaa', oils_i18n_gettext('208', 'Kara-Kalpak', 'ccvm', 'value')),
6015     (209, 'item_lang', 'kab', oils_i18n_gettext('209', 'Kabyle', 'ccvm', 'value')),
6016     (210, 'item_lang', 'kac', oils_i18n_gettext('210', 'Kachin', 'ccvm', 'value')),
6017     (211, 'item_lang', 'kal', oils_i18n_gettext('211', 'Kalâtdlisut', 'ccvm', 'value')),
6018     (212, 'item_lang', 'kam', oils_i18n_gettext('212', 'Kamba', 'ccvm', 'value')),
6019     (213, 'item_lang', 'kan', oils_i18n_gettext('213', 'Kannada', 'ccvm', 'value')),
6020     (214, 'item_lang', 'kar', oils_i18n_gettext('214', 'Karen', 'ccvm', 'value')),
6021     (215, 'item_lang', 'kas', oils_i18n_gettext('215', 'Kashmiri', 'ccvm', 'value')),
6022     (216, 'item_lang', 'kau', oils_i18n_gettext('216', 'Kanuri', 'ccvm', 'value')),
6023     (217, 'item_lang', 'kaw', oils_i18n_gettext('217', 'Kawi', 'ccvm', 'value')),
6024     (218, 'item_lang', 'kaz', oils_i18n_gettext('218', 'Kazakh', 'ccvm', 'value')),
6025     (219, 'item_lang', 'kbd', oils_i18n_gettext('219', 'Kabardian', 'ccvm', 'value')),
6026     (220, 'item_lang', 'kha', oils_i18n_gettext('220', 'Khasi', 'ccvm', 'value')),
6027     (221, 'item_lang', 'khi', oils_i18n_gettext('221', 'Khoisan (Other)', 'ccvm', 'value')),
6028     (222, 'item_lang', 'khm', oils_i18n_gettext('222', 'Khmer', 'ccvm', 'value')),
6029     (223, 'item_lang', 'kho', oils_i18n_gettext('223', 'Khotanese', 'ccvm', 'value')),
6030     (224, 'item_lang', 'kik', oils_i18n_gettext('224', 'Kikuyu', 'ccvm', 'value')),
6031     (225, 'item_lang', 'kin', oils_i18n_gettext('225', 'Kinyarwanda', 'ccvm', 'value')),
6032     (226, 'item_lang', 'kir', oils_i18n_gettext('226', 'Kyrgyz', 'ccvm', 'value')),
6033     (227, 'item_lang', 'kmb', oils_i18n_gettext('227', 'Kimbundu', 'ccvm', 'value')),
6034     (228, 'item_lang', 'kok', oils_i18n_gettext('228', 'Konkani', 'ccvm', 'value')),
6035     (229, 'item_lang', 'kom', oils_i18n_gettext('229', 'Komi', 'ccvm', 'value')),
6036     (230, 'item_lang', 'kon', oils_i18n_gettext('230', 'Kongo', 'ccvm', 'value')),
6037     (231, 'item_lang', 'kor', oils_i18n_gettext('231', 'Korean', 'ccvm', 'value')),
6038     (232, 'item_lang', 'kos', oils_i18n_gettext('232', 'Kusaie', 'ccvm', 'value')),
6039     (233, 'item_lang', 'kpe', oils_i18n_gettext('233', 'Kpelle', 'ccvm', 'value')),
6040     (234, 'item_lang', 'kro', oils_i18n_gettext('234', 'Kru', 'ccvm', 'value')),
6041     (235, 'item_lang', 'kru', oils_i18n_gettext('235', 'Kurukh', 'ccvm', 'value')),
6042     (236, 'item_lang', 'kua', oils_i18n_gettext('236', 'Kuanyama', 'ccvm', 'value')),
6043     (237, 'item_lang', 'kum', oils_i18n_gettext('237', 'Kumyk', 'ccvm', 'value')),
6044     (238, 'item_lang', 'kur', oils_i18n_gettext('238', 'Kurdish', 'ccvm', 'value')),
6045     (239, 'item_lang', '-kus', oils_i18n_gettext('239', 'Kusaie', 'ccvm', 'value')),
6046     (240, 'item_lang', 'kut', oils_i18n_gettext('240', 'Kutenai', 'ccvm', 'value')),
6047     (241, 'item_lang', 'lad', oils_i18n_gettext('241', 'Ladino', 'ccvm', 'value')),
6048     (242, 'item_lang', 'lah', oils_i18n_gettext('242', 'Lahnda', 'ccvm', 'value')),
6049     (243, 'item_lang', 'lam', oils_i18n_gettext('243', 'Lamba', 'ccvm', 'value')),
6050     (244, 'item_lang', '-lan', oils_i18n_gettext('244', 'Occitan (post-1500)', 'ccvm', 'value')),
6051     (245, 'item_lang', 'lao', oils_i18n_gettext('245', 'Lao', 'ccvm', 'value')),
6052     (246, 'item_lang', '-lap', oils_i18n_gettext('246', 'Sami', 'ccvm', 'value')),
6053     (247, 'item_lang', 'lat', oils_i18n_gettext('247', 'Latin', 'ccvm', 'value')),
6054     (248, 'item_lang', 'lav', oils_i18n_gettext('248', 'Latvian', 'ccvm', 'value')),
6055     (249, 'item_lang', 'lez', oils_i18n_gettext('249', 'Lezgian', 'ccvm', 'value')),
6056     (250, 'item_lang', 'lim', oils_i18n_gettext('250', 'Limburgish', 'ccvm', 'value')),
6057     (251, 'item_lang', 'lin', oils_i18n_gettext('251', 'Lingala', 'ccvm', 'value')),
6058     (252, 'item_lang', 'lit', oils_i18n_gettext('252', 'Lithuanian', 'ccvm', 'value')),
6059     (253, 'item_lang', 'lol', oils_i18n_gettext('253', 'Mongo-Nkundu', 'ccvm', 'value')),
6060     (254, 'item_lang', 'loz', oils_i18n_gettext('254', 'Lozi', 'ccvm', 'value')),
6061     (255, 'item_lang', 'ltz', oils_i18n_gettext('255', 'Letzeburgesch', 'ccvm', 'value')),
6062     (256, 'item_lang', 'lua', oils_i18n_gettext('256', 'Luba-Lulua', 'ccvm', 'value')),
6063     (257, 'item_lang', 'lub', oils_i18n_gettext('257', 'Luba-Katanga', 'ccvm', 'value')),
6064     (258, 'item_lang', 'lug', oils_i18n_gettext('258', 'Ganda', 'ccvm', 'value')),
6065     (259, 'item_lang', 'lui', oils_i18n_gettext('259', 'Luiseño', 'ccvm', 'value')),
6066     (260, 'item_lang', 'lun', oils_i18n_gettext('260', 'Lunda', 'ccvm', 'value')),
6067     (261, 'item_lang', 'luo', oils_i18n_gettext('261', 'Luo (Kenya and Tanzania)', 'ccvm', 'value')),
6068     (262, 'item_lang', 'lus', oils_i18n_gettext('262', 'Lushai', 'ccvm', 'value')),
6069     (263, 'item_lang', 'mac', oils_i18n_gettext('263', 'Macedonian', 'ccvm', 'value')),
6070     (264, 'item_lang', 'mad', oils_i18n_gettext('264', 'Madurese', 'ccvm', 'value')),
6071     (265, 'item_lang', 'mag', oils_i18n_gettext('265', 'Magahi', 'ccvm', 'value')),
6072     (266, 'item_lang', 'mah', oils_i18n_gettext('266', 'Marshallese', 'ccvm', 'value')),
6073     (267, 'item_lang', 'mai', oils_i18n_gettext('267', 'Maithili', 'ccvm', 'value')),
6074     (268, 'item_lang', 'mak', oils_i18n_gettext('268', 'Makasar', 'ccvm', 'value')),
6075     (269, 'item_lang', 'mal', oils_i18n_gettext('269', 'Malayalam', 'ccvm', 'value')),
6076     (270, 'item_lang', 'man', oils_i18n_gettext('270', 'Mandingo', 'ccvm', 'value')),
6077     (271, 'item_lang', 'mao', oils_i18n_gettext('271', 'Maori', 'ccvm', 'value')),
6078     (272, 'item_lang', 'map', oils_i18n_gettext('272', 'Austronesian (Other)', 'ccvm', 'value')),
6079     (273, 'item_lang', 'mar', oils_i18n_gettext('273', 'Marathi', 'ccvm', 'value')),
6080     (274, 'item_lang', 'mas', oils_i18n_gettext('274', 'Masai', 'ccvm', 'value')),
6081     (275, 'item_lang', '-max', oils_i18n_gettext('275', 'Manx', 'ccvm', 'value')),
6082     (276, 'item_lang', 'may', oils_i18n_gettext('276', 'Malay', 'ccvm', 'value')),
6083     (277, 'item_lang', 'mdr', oils_i18n_gettext('277', 'Mandar', 'ccvm', 'value')),
6084     (278, 'item_lang', 'men', oils_i18n_gettext('278', 'Mende', 'ccvm', 'value')),
6085     (279, 'item_lang', 'mga', oils_i18n_gettext('279', 'Irish, Middle (ca. 1100-1550)', 'ccvm', 'value')),
6086     (280, 'item_lang', 'mic', oils_i18n_gettext('280', 'Micmac', 'ccvm', 'value')),
6087     (281, 'item_lang', 'min', oils_i18n_gettext('281', 'Minangkabau', 'ccvm', 'value')),
6088     (282, 'item_lang', 'mis', oils_i18n_gettext('282', 'Miscellaneous languages', 'ccvm', 'value')),
6089     (283, 'item_lang', 'mkh', oils_i18n_gettext('283', 'Mon-Khmer (Other)', 'ccvm', 'value')),
6090     (284, 'item_lang', '-mla', oils_i18n_gettext('284', 'Malagasy', 'ccvm', 'value')),
6091     (285, 'item_lang', 'mlg', oils_i18n_gettext('285', 'Malagasy', 'ccvm', 'value')),
6092     (286, 'item_lang', 'mlt', oils_i18n_gettext('286', 'Maltese', 'ccvm', 'value')),
6093     (287, 'item_lang', 'mnc', oils_i18n_gettext('287', 'Manchu', 'ccvm', 'value')),
6094     (288, 'item_lang', 'mni', oils_i18n_gettext('288', 'Manipuri', 'ccvm', 'value')),
6095     (289, 'item_lang', 'mno', oils_i18n_gettext('289', 'Manobo languages', 'ccvm', 'value')),
6096     (290, 'item_lang', 'moh', oils_i18n_gettext('290', 'Mohawk', 'ccvm', 'value')),
6097     (291, 'item_lang', 'mol', oils_i18n_gettext('291', 'Moldavian', 'ccvm', 'value')),
6098     (292, 'item_lang', 'mon', oils_i18n_gettext('292', 'Mongolian', 'ccvm', 'value')),
6099     (293, 'item_lang', 'mos', oils_i18n_gettext('293', 'Mooré', 'ccvm', 'value')),
6100     (294, 'item_lang', 'mul', oils_i18n_gettext('294', 'Multiple languages', 'ccvm', 'value')),
6101     (295, 'item_lang', 'mun', oils_i18n_gettext('295', 'Munda (Other)', 'ccvm', 'value')),
6102     (296, 'item_lang', 'mus', oils_i18n_gettext('296', 'Creek', 'ccvm', 'value')),
6103     (297, 'item_lang', 'mwr', oils_i18n_gettext('297', 'Marwari', 'ccvm', 'value')),
6104     (298, 'item_lang', 'myn', oils_i18n_gettext('298', 'Mayan languages', 'ccvm', 'value')),
6105     (299, 'item_lang', 'nah', oils_i18n_gettext('299', 'Nahuatl', 'ccvm', 'value')),
6106     (300, 'item_lang', 'nai', oils_i18n_gettext('300', 'North American Indian (Other)', 'ccvm', 'value')),
6107     (301, 'item_lang', 'nap', oils_i18n_gettext('301', 'Neapolitan Italian', 'ccvm', 'value')),
6108     (302, 'item_lang', 'nau', oils_i18n_gettext('302', 'Nauru', 'ccvm', 'value')),
6109     (303, 'item_lang', 'nav', oils_i18n_gettext('303', 'Navajo', 'ccvm', 'value')),
6110     (304, 'item_lang', 'nbl', oils_i18n_gettext('304', 'Ndebele (South Africa)', 'ccvm', 'value')),
6111     (305, 'item_lang', 'nde', oils_i18n_gettext('305', 'Ndebele (Zimbabwe)  ', 'ccvm', 'value')),
6112     (306, 'item_lang', 'ndo', oils_i18n_gettext('306', 'Ndonga', 'ccvm', 'value')),
6113     (307, 'item_lang', 'nds', oils_i18n_gettext('307', 'Low German', 'ccvm', 'value')),
6114     (308, 'item_lang', 'nep', oils_i18n_gettext('308', 'Nepali', 'ccvm', 'value')),
6115     (309, 'item_lang', 'new', oils_i18n_gettext('309', 'Newari', 'ccvm', 'value')),
6116     (310, 'item_lang', 'nia', oils_i18n_gettext('310', 'Nias', 'ccvm', 'value')),
6117     (311, 'item_lang', 'nic', oils_i18n_gettext('311', 'Niger-Kordofanian (Other)', 'ccvm', 'value')),
6118     (312, 'item_lang', 'niu', oils_i18n_gettext('312', 'Niuean', 'ccvm', 'value')),
6119     (313, 'item_lang', 'nno', oils_i18n_gettext('313', 'Norwegian (Nynorsk)', 'ccvm', 'value')),
6120     (314, 'item_lang', 'nob', oils_i18n_gettext('314', 'Norwegian (BokmÃ¥l)', 'ccvm', 'value')),
6121     (315, 'item_lang', 'nog', oils_i18n_gettext('315', 'Nogai', 'ccvm', 'value')),
6122     (316, 'item_lang', 'non', oils_i18n_gettext('316', 'Old Norse', 'ccvm', 'value')),
6123     (317, 'item_lang', 'nor', oils_i18n_gettext('317', 'Norwegian', 'ccvm', 'value')),
6124     (318, 'item_lang', 'nso', oils_i18n_gettext('318', 'Northern Sotho', 'ccvm', 'value')),
6125     (319, 'item_lang', 'nub', oils_i18n_gettext('319', 'Nubian languages', 'ccvm', 'value')),
6126     (320, 'item_lang', 'nya', oils_i18n_gettext('320', 'Nyanja', 'ccvm', 'value')),
6127     (321, 'item_lang', 'nym', oils_i18n_gettext('321', 'Nyamwezi', 'ccvm', 'value')),
6128     (322, 'item_lang', 'nyn', oils_i18n_gettext('322', 'Nyankole', 'ccvm', 'value')),
6129     (323, 'item_lang', 'nyo', oils_i18n_gettext('323', 'Nyoro', 'ccvm', 'value')),
6130     (324, 'item_lang', 'nzi', oils_i18n_gettext('324', 'Nzima', 'ccvm', 'value')),
6131     (325, 'item_lang', 'oci', oils_i18n_gettext('325', 'Occitan (post-1500)', 'ccvm', 'value')),
6132     (326, 'item_lang', 'oji', oils_i18n_gettext('326', 'Ojibwa', 'ccvm', 'value')),
6133     (327, 'item_lang', 'ori', oils_i18n_gettext('327', 'Oriya', 'ccvm', 'value')),
6134     (328, 'item_lang', 'orm', oils_i18n_gettext('328', 'Oromo', 'ccvm', 'value')),
6135     (329, 'item_lang', 'osa', oils_i18n_gettext('329', 'Osage', 'ccvm', 'value')),
6136     (330, 'item_lang', 'oss', oils_i18n_gettext('330', 'Ossetic', 'ccvm', 'value')),
6137     (331, 'item_lang', 'ota', oils_i18n_gettext('331', 'Turkish, Ottoman', 'ccvm', 'value')),
6138     (332, 'item_lang', 'oto', oils_i18n_gettext('332', 'Otomian languages', 'ccvm', 'value')),
6139     (333, 'item_lang', 'paa', oils_i18n_gettext('333', 'Papuan (Other)', 'ccvm', 'value')),
6140     (334, 'item_lang', 'pag', oils_i18n_gettext('334', 'Pangasinan', 'ccvm', 'value')),
6141     (335, 'item_lang', 'pal', oils_i18n_gettext('335', 'Pahlavi', 'ccvm', 'value')),
6142     (336, 'item_lang', 'pam', oils_i18n_gettext('336', 'Pampanga', 'ccvm', 'value')),
6143     (337, 'item_lang', 'pan', oils_i18n_gettext('337', 'Panjabi', 'ccvm', 'value')),
6144     (338, 'item_lang', 'pap', oils_i18n_gettext('338', 'Papiamento', 'ccvm', 'value')),
6145     (339, 'item_lang', 'pau', oils_i18n_gettext('339', 'Palauan', 'ccvm', 'value')),
6146     (340, 'item_lang', 'peo', oils_i18n_gettext('340', 'Old Persian (ca. 600-400 B.C.)', 'ccvm', 'value')),
6147     (341, 'item_lang', 'per', oils_i18n_gettext('341', 'Persian', 'ccvm', 'value')),
6148     (342, 'item_lang', 'phi', oils_i18n_gettext('342', 'Philippine (Other)', 'ccvm', 'value')),
6149     (343, 'item_lang', 'phn', oils_i18n_gettext('343', 'Phoenician', 'ccvm', 'value')),
6150     (344, 'item_lang', 'pli', oils_i18n_gettext('344', 'Pali', 'ccvm', 'value')),
6151     (345, 'item_lang', 'pol', oils_i18n_gettext('345', 'Polish', 'ccvm', 'value')),
6152     (346, 'item_lang', 'pon', oils_i18n_gettext('346', 'Ponape', 'ccvm', 'value')),
6153     (347, 'item_lang', 'por', oils_i18n_gettext('347', 'Portuguese', 'ccvm', 'value')),
6154     (348, 'item_lang', 'pra', oils_i18n_gettext('348', 'Prakrit languages', 'ccvm', 'value')),
6155     (349, 'item_lang', 'pro', oils_i18n_gettext('349', 'Provençal (to 1500)', 'ccvm', 'value')),
6156     (350, 'item_lang', 'pus', oils_i18n_gettext('350', 'Pushto', 'ccvm', 'value')),
6157     (351, 'item_lang', 'que', oils_i18n_gettext('351', 'Quechua', 'ccvm', 'value')),
6158     (352, 'item_lang', 'raj', oils_i18n_gettext('352', 'Rajasthani', 'ccvm', 'value')),
6159     (353, 'item_lang', 'rap', oils_i18n_gettext('353', 'Rapanui', 'ccvm', 'value')),
6160     (354, 'item_lang', 'rar', oils_i18n_gettext('354', 'Rarotongan', 'ccvm', 'value')),
6161     (355, 'item_lang', 'roa', oils_i18n_gettext('355', 'Romance (Other)', 'ccvm', 'value')),
6162     (356, 'item_lang', 'roh', oils_i18n_gettext('356', 'Raeto-Romance', 'ccvm', 'value')),
6163     (357, 'item_lang', 'rom', oils_i18n_gettext('357', 'Romani', 'ccvm', 'value')),
6164     (358, 'item_lang', 'rum', oils_i18n_gettext('358', 'Romanian', 'ccvm', 'value')),
6165     (359, 'item_lang', 'run', oils_i18n_gettext('359', 'Rundi', 'ccvm', 'value')),
6166     (360, 'item_lang', 'rus', oils_i18n_gettext('360', 'Russian', 'ccvm', 'value')),
6167     (361, 'item_lang', 'sad', oils_i18n_gettext('361', 'Sandawe', 'ccvm', 'value')),
6168     (362, 'item_lang', 'sag', oils_i18n_gettext('362', 'Sango (Ubangi Creole)', 'ccvm', 'value')),
6169     (363, 'item_lang', 'sah', oils_i18n_gettext('363', 'Yakut', 'ccvm', 'value')),
6170     (364, 'item_lang', 'sai', oils_i18n_gettext('364', 'South American Indian (Other)', 'ccvm', 'value')),
6171     (365, 'item_lang', 'sal', oils_i18n_gettext('365', 'Salishan languages', 'ccvm', 'value')),
6172     (366, 'item_lang', 'sam', oils_i18n_gettext('366', 'Samaritan Aramaic', 'ccvm', 'value')),
6173     (367, 'item_lang', 'san', oils_i18n_gettext('367', 'Sanskrit', 'ccvm', 'value')),
6174     (368, 'item_lang', '-sao', oils_i18n_gettext('368', 'Samoan', 'ccvm', 'value')),
6175     (369, 'item_lang', 'sas', oils_i18n_gettext('369', 'Sasak', 'ccvm', 'value')),
6176     (370, 'item_lang', 'sat', oils_i18n_gettext('370', 'Santali', 'ccvm', 'value')),
6177     (371, 'item_lang', 'scc', oils_i18n_gettext('371', 'Serbian', 'ccvm', 'value')),
6178     (372, 'item_lang', 'sco', oils_i18n_gettext('372', 'Scots', 'ccvm', 'value')),
6179     (373, 'item_lang', 'scr', oils_i18n_gettext('373', 'Croatian', 'ccvm', 'value')),
6180     (374, 'item_lang', 'sel', oils_i18n_gettext('374', 'Selkup', 'ccvm', 'value')),
6181     (375, 'item_lang', 'sem', oils_i18n_gettext('375', 'Semitic (Other)', 'ccvm', 'value')),
6182     (376, 'item_lang', 'sga', oils_i18n_gettext('376', 'Irish, Old (to 1100)', 'ccvm', 'value')),
6183     (377, 'item_lang', 'sgn', oils_i18n_gettext('377', 'Sign languages', 'ccvm', 'value')),
6184     (378, 'item_lang', 'shn', oils_i18n_gettext('378', 'Shan', 'ccvm', 'value')),
6185     (379, 'item_lang', '-sho', oils_i18n_gettext('379', 'Shona', 'ccvm', 'value')),
6186     (380, 'item_lang', 'sid', oils_i18n_gettext('380', 'Sidamo', 'ccvm', 'value')),
6187     (381, 'item_lang', 'sin', oils_i18n_gettext('381', 'Sinhalese', 'ccvm', 'value')),
6188     (382, 'item_lang', 'sio', oils_i18n_gettext('382', 'Siouan (Other)', 'ccvm', 'value')),
6189     (383, 'item_lang', 'sit', oils_i18n_gettext('383', 'Sino-Tibetan (Other)', 'ccvm', 'value')),
6190     (384, 'item_lang', 'sla', oils_i18n_gettext('384', 'Slavic (Other)', 'ccvm', 'value')),
6191     (385, 'item_lang', 'slo', oils_i18n_gettext('385', 'Slovak', 'ccvm', 'value')),
6192     (386, 'item_lang', 'slv', oils_i18n_gettext('386', 'Slovenian', 'ccvm', 'value')),
6193     (387, 'item_lang', 'sma', oils_i18n_gettext('387', 'Southern Sami', 'ccvm', 'value')),
6194     (388, 'item_lang', 'sme', oils_i18n_gettext('388', 'Northern Sami', 'ccvm', 'value')),
6195     (389, 'item_lang', 'smi', oils_i18n_gettext('389', 'Sami', 'ccvm', 'value')),
6196     (390, 'item_lang', 'smj', oils_i18n_gettext('390', 'Lule Sami', 'ccvm', 'value')),
6197     (391, 'item_lang', 'smn', oils_i18n_gettext('391', 'Inari Sami', 'ccvm', 'value')),
6198     (392, 'item_lang', 'smo', oils_i18n_gettext('392', 'Samoan', 'ccvm', 'value')),
6199     (393, 'item_lang', 'sms', oils_i18n_gettext('393', 'Skolt Sami', 'ccvm', 'value')),
6200     (394, 'item_lang', 'sna', oils_i18n_gettext('394', 'Shona', 'ccvm', 'value')),
6201     (395, 'item_lang', 'snd', oils_i18n_gettext('395', 'Sindhi', 'ccvm', 'value')),
6202     (396, 'item_lang', '-snh', oils_i18n_gettext('396', 'Sinhalese', 'ccvm', 'value')),
6203     (397, 'item_lang', 'snk', oils_i18n_gettext('397', 'Soninke', 'ccvm', 'value')),
6204     (398, 'item_lang', 'sog', oils_i18n_gettext('398', 'Sogdian', 'ccvm', 'value')),
6205     (399, 'item_lang', 'som', oils_i18n_gettext('399', 'Somali', 'ccvm', 'value')),
6206     (400, 'item_lang', 'son', oils_i18n_gettext('400', 'Songhai', 'ccvm', 'value')),
6207     (401, 'item_lang', 'sot', oils_i18n_gettext('401', 'Sotho', 'ccvm', 'value')),
6208     (402, 'item_lang', 'spa', oils_i18n_gettext('402', 'Spanish', 'ccvm', 'value')),
6209     (403, 'item_lang', 'srd', oils_i18n_gettext('403', 'Sardinian', 'ccvm', 'value')),
6210     (404, 'item_lang', 'srr', oils_i18n_gettext('404', 'Serer', 'ccvm', 'value')),
6211     (405, 'item_lang', 'ssa', oils_i18n_gettext('405', 'Nilo-Saharan (Other)', 'ccvm', 'value')),
6212     (406, 'item_lang', '-sso', oils_i18n_gettext('406', 'Sotho', 'ccvm', 'value')),
6213     (407, 'item_lang', 'ssw', oils_i18n_gettext('407', 'Swazi', 'ccvm', 'value')),
6214     (408, 'item_lang', 'suk', oils_i18n_gettext('408', 'Sukuma', 'ccvm', 'value')),
6215     (409, 'item_lang', 'sun', oils_i18n_gettext('409', 'Sundanese', 'ccvm', 'value')),
6216     (410, 'item_lang', 'sus', oils_i18n_gettext('410', 'Susu', 'ccvm', 'value')),
6217     (411, 'item_lang', 'sux', oils_i18n_gettext('411', 'Sumerian', 'ccvm', 'value')),
6218     (412, 'item_lang', 'swa', oils_i18n_gettext('412', 'Swahili', 'ccvm', 'value')),
6219     (413, 'item_lang', 'swe', oils_i18n_gettext('413', 'Swedish', 'ccvm', 'value')),
6220     (414, 'item_lang', '-swz', oils_i18n_gettext('414', 'Swazi', 'ccvm', 'value')),
6221     (415, 'item_lang', 'syr', oils_i18n_gettext('415', 'Syriac', 'ccvm', 'value')),
6222     (416, 'item_lang', '-tag', oils_i18n_gettext('416', 'Tagalog', 'ccvm', 'value')),
6223     (417, 'item_lang', 'tah', oils_i18n_gettext('417', 'Tahitian', 'ccvm', 'value')),
6224     (418, 'item_lang', 'tai', oils_i18n_gettext('418', 'Tai (Other)', 'ccvm', 'value')),
6225     (419, 'item_lang', '-taj', oils_i18n_gettext('419', 'Tajik', 'ccvm', 'value')),
6226     (420, 'item_lang', 'tam', oils_i18n_gettext('420', 'Tamil', 'ccvm', 'value')),
6227     (421, 'item_lang', '-tar', oils_i18n_gettext('421', 'Tatar', 'ccvm', 'value')),
6228     (422, 'item_lang', 'tat', oils_i18n_gettext('422', 'Tatar', 'ccvm', 'value')),
6229     (423, 'item_lang', 'tel', oils_i18n_gettext('423', 'Telugu', 'ccvm', 'value')),
6230     (424, 'item_lang', 'tem', oils_i18n_gettext('424', 'Temne', 'ccvm', 'value')),
6231     (425, 'item_lang', 'ter', oils_i18n_gettext('425', 'Terena', 'ccvm', 'value')),
6232     (426, 'item_lang', 'tet', oils_i18n_gettext('426', 'Tetum', 'ccvm', 'value')),
6233     (427, 'item_lang', 'tgk', oils_i18n_gettext('427', 'Tajik', 'ccvm', 'value')),
6234     (428, 'item_lang', 'tgl', oils_i18n_gettext('428', 'Tagalog', 'ccvm', 'value')),
6235     (429, 'item_lang', 'tha', oils_i18n_gettext('429', 'Thai', 'ccvm', 'value')),
6236     (430, 'item_lang', 'tib', oils_i18n_gettext('430', 'Tibetan', 'ccvm', 'value')),
6237     (431, 'item_lang', 'tig', oils_i18n_gettext('431', 'Tigré', 'ccvm', 'value')),
6238     (432, 'item_lang', 'tir', oils_i18n_gettext('432', 'Tigrinya', 'ccvm', 'value')),
6239     (433, 'item_lang', 'tiv', oils_i18n_gettext('433', 'Tiv', 'ccvm', 'value')),
6240     (434, 'item_lang', 'tkl', oils_i18n_gettext('434', 'Tokelauan', 'ccvm', 'value')),
6241     (435, 'item_lang', 'tli', oils_i18n_gettext('435', 'Tlingit', 'ccvm', 'value')),
6242     (436, 'item_lang', 'tmh', oils_i18n_gettext('436', 'Tamashek', 'ccvm', 'value')),
6243     (437, 'item_lang', 'tog', oils_i18n_gettext('437', 'Tonga (Nyasa)', 'ccvm', 'value')),
6244     (438, 'item_lang', 'ton', oils_i18n_gettext('438', 'Tongan', 'ccvm', 'value')),
6245     (439, 'item_lang', 'tpi', oils_i18n_gettext('439', 'Tok Pisin', 'ccvm', 'value')),
6246     (440, 'item_lang', '-tru', oils_i18n_gettext('440', 'Truk', 'ccvm', 'value')),
6247     (441, 'item_lang', 'tsi', oils_i18n_gettext('441', 'Tsimshian', 'ccvm', 'value')),
6248     (442, 'item_lang', 'tsn', oils_i18n_gettext('442', 'Tswana', 'ccvm', 'value')),
6249     (443, 'item_lang', 'tso', oils_i18n_gettext('443', 'Tsonga', 'ccvm', 'value')),
6250     (444, 'item_lang', '-tsw', oils_i18n_gettext('444', 'Tswana', 'ccvm', 'value')),
6251     (445, 'item_lang', 'tuk', oils_i18n_gettext('445', 'Turkmen', 'ccvm', 'value')),
6252     (446, 'item_lang', 'tum', oils_i18n_gettext('446', 'Tumbuka', 'ccvm', 'value')),
6253     (447, 'item_lang', 'tup', oils_i18n_gettext('447', 'Tupi languages', 'ccvm', 'value')),
6254     (448, 'item_lang', 'tur', oils_i18n_gettext('448', 'Turkish', 'ccvm', 'value')),
6255     (449, 'item_lang', 'tut', oils_i18n_gettext('449', 'Altaic (Other)', 'ccvm', 'value')),
6256     (450, 'item_lang', 'tvl', oils_i18n_gettext('450', 'Tuvaluan', 'ccvm', 'value')),
6257     (451, 'item_lang', 'twi', oils_i18n_gettext('451', 'Twi', 'ccvm', 'value')),
6258     (452, 'item_lang', 'tyv', oils_i18n_gettext('452', 'Tuvinian', 'ccvm', 'value')),
6259     (453, 'item_lang', 'udm', oils_i18n_gettext('453', 'Udmurt', 'ccvm', 'value')),
6260     (454, 'item_lang', 'uga', oils_i18n_gettext('454', 'Ugaritic', 'ccvm', 'value')),
6261     (455, 'item_lang', 'uig', oils_i18n_gettext('455', 'Uighur', 'ccvm', 'value')),
6262     (456, 'item_lang', 'ukr', oils_i18n_gettext('456', 'Ukrainian', 'ccvm', 'value')),
6263     (457, 'item_lang', 'umb', oils_i18n_gettext('457', 'Umbundu', 'ccvm', 'value')),
6264     (458, 'item_lang', 'und', oils_i18n_gettext('458', 'Undetermined', 'ccvm', 'value')),
6265     (459, 'item_lang', 'urd', oils_i18n_gettext('459', 'Urdu', 'ccvm', 'value')),
6266     (460, 'item_lang', 'uzb', oils_i18n_gettext('460', 'Uzbek', 'ccvm', 'value')),
6267     (461, 'item_lang', 'vai', oils_i18n_gettext('461', 'Vai', 'ccvm', 'value')),
6268     (462, 'item_lang', 'ven', oils_i18n_gettext('462', 'Venda', 'ccvm', 'value')),
6269     (463, 'item_lang', 'vie', oils_i18n_gettext('463', 'Vietnamese', 'ccvm', 'value')),
6270     (464, 'item_lang', 'vol', oils_i18n_gettext('464', 'Volapük', 'ccvm', 'value')),
6271     (465, 'item_lang', 'vot', oils_i18n_gettext('465', 'Votic', 'ccvm', 'value')),
6272     (466, 'item_lang', 'wak', oils_i18n_gettext('466', 'Wakashan languages', 'ccvm', 'value')),
6273     (467, 'item_lang', 'wal', oils_i18n_gettext('467', 'Walamo', 'ccvm', 'value')),
6274     (468, 'item_lang', 'war', oils_i18n_gettext('468', 'Waray', 'ccvm', 'value')),
6275     (469, 'item_lang', 'was', oils_i18n_gettext('469', 'Washo', 'ccvm', 'value')),
6276     (470, 'item_lang', 'wel', oils_i18n_gettext('470', 'Welsh', 'ccvm', 'value')),
6277     (471, 'item_lang', 'wen', oils_i18n_gettext('471', 'Sorbian languages', 'ccvm', 'value')),
6278     (472, 'item_lang', 'wln', oils_i18n_gettext('472', 'Walloon', 'ccvm', 'value')),
6279     (473, 'item_lang', 'wol', oils_i18n_gettext('473', 'Wolof', 'ccvm', 'value')),
6280     (474, 'item_lang', 'xal', oils_i18n_gettext('474', 'Kalmyk', 'ccvm', 'value')),
6281     (475, 'item_lang', 'xho', oils_i18n_gettext('475', 'Xhosa', 'ccvm', 'value')),
6282     (476, 'item_lang', 'yao', oils_i18n_gettext('476', 'Yao (Africa)', 'ccvm', 'value')),
6283     (477, 'item_lang', 'yap', oils_i18n_gettext('477', 'Yapese', 'ccvm', 'value')),
6284     (478, 'item_lang', 'yid', oils_i18n_gettext('478', 'Yiddish', 'ccvm', 'value')),
6285     (479, 'item_lang', 'yor', oils_i18n_gettext('479', 'Yoruba', 'ccvm', 'value')),
6286     (480, 'item_lang', 'ypk', oils_i18n_gettext('480', 'Yupik languages', 'ccvm', 'value')),
6287     (481, 'item_lang', 'zap', oils_i18n_gettext('481', 'Zapotec', 'ccvm', 'value')),
6288     (482, 'item_lang', 'zen', oils_i18n_gettext('482', 'Zenaga', 'ccvm', 'value')),
6289     (483, 'item_lang', 'zha', oils_i18n_gettext('483', 'Zhuang', 'ccvm', 'value')),
6290     (484, 'item_lang', 'znd', oils_i18n_gettext('484', 'Zande', 'ccvm', 'value')),
6291     (485, 'item_lang', 'zul', oils_i18n_gettext('485', 'Zulu', 'ccvm', 'value')),
6292     (486, 'item_lang', 'zun', oils_i18n_gettext('486', 'Zuni', 'ccvm', 'value'));
6293
6294 INSERT INTO config.coded_value_map (id, ctype, code, value, description) VALUES 
6295     (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')),
6296     (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')),
6297     (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')),
6298     (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')),
6299     (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')),
6300     (492,'audience', 'e', oils_i18n_gettext('492', 'Adult', 'ccvm', 'value'),                   oils_i18n_gettext('492', 'The item is intended for adults.', 'ccvm', 'description')),
6301     (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')),
6302     (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')),
6303     (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'));
6304
6305 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
6306     (496, 'item_type', 'a', oils_i18n_gettext('496', 'Language material', 'ccvm', 'value')),
6307     (497, 'item_type', 't', oils_i18n_gettext('497', 'Manuscript language material', 'ccvm', 'value')),
6308     (498, 'item_type', 'g', oils_i18n_gettext('498', 'Projected medium', 'ccvm', 'value')),
6309     (499, 'item_type', 'k', oils_i18n_gettext('499', 'Two-dimensional nonprojectable graphic', 'ccvm', 'value')),
6310     (500, 'item_type', 'r', oils_i18n_gettext('500', 'Three-dimensional artifact or naturally occurring object', 'ccvm', 'value')),
6311     (501, 'item_type', 'o', oils_i18n_gettext('501', 'Kit', 'ccvm', 'value')),
6312     (502, 'item_type', 'p', oils_i18n_gettext('502', 'Mixed materials', 'ccvm', 'value')),
6313     (503, 'item_type', 'e', oils_i18n_gettext('503', 'Cartographic material', 'ccvm', 'value')),
6314     (504, 'item_type', 'f', oils_i18n_gettext('504', 'Manuscript cartographic material', 'ccvm', 'value')),
6315     (505, 'item_type', 'c', oils_i18n_gettext('505', 'Notated music', 'ccvm', 'value')),
6316     (506, 'item_type', 'd', oils_i18n_gettext('506', 'Manuscript notated music', 'ccvm', 'value')),
6317     (507, 'item_type', 'i', oils_i18n_gettext('507', 'Nonmusical sound recording', 'ccvm', 'value')),
6318     (508, 'item_type', 'j', oils_i18n_gettext('508', 'Musical sound recording', 'ccvm', 'value')),
6319     (509, 'item_type', 'm', oils_i18n_gettext('509', 'Computer file', 'ccvm', 'value'));
6320
6321 INSERT INTO config.coded_value_map (id, ctype, code, value, description) VALUES 
6322     (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')),
6323     (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')),
6324     (512, 'lit_form', 'c', oils_i18n_gettext('512', 'Comic strips', 'ccvm', 'value'), NULL),
6325     (513, 'lit_form', 'd', oils_i18n_gettext('513', 'Dramas', 'ccvm', 'value'), NULL),
6326     (514, 'lit_form', 'e', oils_i18n_gettext('514', 'Essays', 'ccvm', 'value'), NULL),
6327     (515, 'lit_form', 'f', oils_i18n_gettext('515', 'Novels', 'ccvm', 'value'), NULL),
6328     (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')),
6329     (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')),
6330     (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')),
6331     (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')),
6332     (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')),
6333     (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')),
6334     (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'));
6335
6336
6337 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
6338     (523, 'item_form', 'a', oils_i18n_gettext('523', 'Microfilm', 'ccvm', 'value')),
6339     (524, 'item_form', 'b', oils_i18n_gettext('524', 'Microfiche', 'ccvm', 'value')),
6340     (525, 'item_form', 'c', oils_i18n_gettext('525', 'Microopaque', 'ccvm', 'value')),
6341     (526, 'item_form', 'd', oils_i18n_gettext('526', 'Large print', 'ccvm', 'value')),
6342     (527, 'item_form', 'f', oils_i18n_gettext('527', 'Braille', 'ccvm', 'value')),
6343     (528, 'item_form', 'r', oils_i18n_gettext('528', 'Regular print reproduction', 'ccvm', 'value')),
6344     (529, 'item_form', 's', oils_i18n_gettext('529', 'Electronic', 'ccvm', 'value'));
6345
6346 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
6347     (530, 'bib_level', 'a', oils_i18n_gettext('530', 'Monographic component part', 'ccvm', 'value')),
6348     (531, 'bib_level', 'b', oils_i18n_gettext('531', 'Serial component part', 'ccvm', 'value')),
6349     (532, 'bib_level', 'c', oils_i18n_gettext('532', 'Collection', 'ccvm', 'value')),
6350     (533, 'bib_level', 'd', oils_i18n_gettext('533', 'Subunit', 'ccvm', 'value')),
6351     (534, 'bib_level', 'i', oils_i18n_gettext('534', 'Integrating resource', 'ccvm', 'value')),
6352     (535, 'bib_level', 'm', oils_i18n_gettext('535', 'Monograph/Item', 'ccvm', 'value')),
6353     (536, 'bib_level', 's', oils_i18n_gettext('536', 'Serial', 'ccvm', 'value'));
6354
6355 INSERT INTO config.coded_value_map(id, ctype, code, value) VALUES
6356     (537, 'vr_format', 'a', oils_i18n_gettext('537', 'Beta', 'ccvm', 'value')),
6357     (538, 'vr_format', 'b', oils_i18n_gettext('538', 'VHS', 'ccvm', 'value')),
6358     (539, 'vr_format', 'c', oils_i18n_gettext('539', 'U-matic', 'ccvm', 'value')),
6359     (540, 'vr_format', 'd', oils_i18n_gettext('540', 'EIAJ', 'ccvm', 'value')),
6360     (541, 'vr_format', 'e', oils_i18n_gettext('541', 'Type C', 'ccvm', 'value')),
6361     (542, 'vr_format', 'f', oils_i18n_gettext('542', 'Quadruplex', 'ccvm', 'value')),
6362     (543, 'vr_format', 'g', oils_i18n_gettext('543', 'Laserdisc', 'ccvm', 'value')),
6363     (544, 'vr_format', 'h', oils_i18n_gettext('544', 'CED videodisc', 'ccvm', 'value')),
6364     (545, 'vr_format', 'i', oils_i18n_gettext('545', 'Betacam', 'ccvm', 'value')),
6365     (546, 'vr_format', 'j', oils_i18n_gettext('546', 'Betacam SP', 'ccvm', 'value')),
6366     (547, 'vr_format', 'k', oils_i18n_gettext('547', 'Super-VHS', 'ccvm', 'value')),
6367     (548, 'vr_format', 'm', oils_i18n_gettext('548', 'M-II', 'ccvm', 'value')),
6368     (549, 'vr_format', 'o', oils_i18n_gettext('549', 'D-2', 'ccvm', 'value')),
6369     (550, 'vr_format', 'p', oils_i18n_gettext('550', '8 mm.', 'ccvm', 'value')),
6370     (551, 'vr_format', 'q', oils_i18n_gettext('551', 'Hi-8 mm.', 'ccvm', 'value')),
6371     (552, 'vr_format', 's', oils_i18n_gettext('552', 'Blu-ray disc', 'ccvm', 'value')),
6372     (553, 'vr_format', 'u', oils_i18n_gettext('553', 'Unknown', 'ccvm', 'value')),
6373     (554, 'vr_format', 'v', oils_i18n_gettext('554', 'DVD', 'ccvm', 'value')),
6374     (555, 'vr_format', 'z', oils_i18n_gettext('555', 'Other', 'ccvm', 'value')),
6375     (556, 'vr_format', ' ', oils_i18n_gettext('556', 'Unspecified', 'ccvm', 'value'));
6376
6377 SELECT SETVAL('config.coded_value_map_id_seq'::TEXT, (SELECT max(id) FROM config.coded_value_map));
6378
6379 -- Trigger Event Definitions -------------------------------------------------
6380
6381 -- Sample Overdue Notice --
6382
6383 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, template) 
6384     VALUES (1, 'f', 1, '7 Day Overdue Email Notification', 'checkout.due', 'CircIsOverdue', 'SendEmail', '7 days', 'due_date', 'usr', '8 days', 
6385 $$
6386 [%- USE date -%]
6387 [%- user = target.0.usr -%]
6388 To: [%- params.recipient_email || user.email %]
6389 From: [%- params.sender_email || default_sender %]
6390 Subject: Overdue Notification
6391
6392 Dear [% user.family_name %], [% user.first_given_name %]
6393 Our records indicate the following items are overdue.
6394
6395 [% FOR circ IN target %]
6396     [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
6397     Title: [% copy_details.title %]
6398     Author: [% copy_details.author %]
6399     Call Number: [% circ.target_copy.call_number.label %]
6400     Barcode: [% circ.target_copy.barcode %]
6401     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
6402     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
6403     Total Owed For Transaction: [% circ.billable_transaction.summary.balance_owed %]
6404     Library: [% circ.circ_lib.name %]
6405
6406 [% END %]
6407
6408 $$);
6409
6410 INSERT INTO action_trigger.environment (event_def, path) VALUES 
6411     (1, 'target_copy.call_number'),
6412     (1, 'target_copy.location'),
6413     (1, 'usr'),
6414     (1, 'billable_transaction.summary'),
6415     (1, 'circ_lib.billing_address');
6416
6417 -- Sample Mark Long-Overdue Item Lost --
6418
6419 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field) 
6420     VALUES (2, 'f', 1, '90 Day Overdue Mark Lost', 'checkout.due', 'CircIsOverdue', 'MarkItemLost', '90 days', 'due_date');
6421
6422 INSERT INTO action_trigger.event_params (event_def, param, value) VALUES
6423     (2, 'editor', '''1''');
6424
6425 -- Sample Auto Mark Lost Notice --
6426
6427 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, template) 
6428     VALUES (3, 'f', 1, '90 Day Overdue Mark Lost Notice', 'lost.auto', 'NOOP_True', 'SendEmail', 'usr',
6429 $$
6430 [%- USE date -%]
6431 [%- user = target.0.usr -%]
6432 To: [%- params.recipient_email || user.email %]
6433 From: [%- params.sender_email || default_sender %]
6434 Subject: Overdue Items Marked Lost
6435
6436 Dear [% user.family_name %], [% user.first_given_name %]
6437 The following items are 90 days overdue and have been marked LOST.
6438
6439 [% FOR circ IN target %]
6440     [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
6441     Title: [% copy_details.title %], by [% copy_details.author %]
6442     Call Number: [% circ.target_copy.call_number.label %]
6443     Shelving Location: [% circ.target_copy.location.name %]
6444     Barcode: [% circ.target_copy.barcode %]
6445     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
6446     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
6447     Total Owed For Transaction: [% circ.billable_transaction.summary.balance_owed %]
6448     Library: [% circ.circ_lib.name %]
6449
6450 [% END %]
6451
6452 $$);
6453
6454
6455 INSERT INTO action_trigger.environment (event_def, path) VALUES 
6456     (3, 'target_copy.call_number'),
6457     (3, 'usr'),
6458     (3, 'billable_transaction.summary'),
6459     (3, 'circ_lib.billing_address'),
6460     (3, 'target_copy.location');
6461
6462
6463 -- Sample Purchase Order HTML Template --
6464
6465 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, template) 
6466     VALUES (4, 't', 1, 'PO HTML', 'format.po.html', 'NOOP_True', 'ProcessTemplate', 
6467 $$
6468 [%- USE date -%]
6469 [%-
6470     # find a lineitem attribute by name and optional type
6471     BLOCK get_li_attr;
6472         FOR attr IN li.attributes;
6473             IF attr.attr_name == attr_name;
6474                 IF !attr_type OR attr_type == attr.attr_type;
6475                     attr.attr_value;
6476                     LAST;
6477                 END;
6478             END;
6479         END;
6480     END
6481 -%]
6482
6483 <h2>Purchase Order [% target.id %]</h2>
6484 <br/>
6485 date <b>[% date.format(date.now, '%Y%m%d') %]</b>
6486 <br/>
6487
6488 <style>
6489     table td { padding:5px; border:1px solid #aaa;}
6490     table { width:95%; border-collapse:collapse; }
6491     #vendor-notes { padding:5px; border:1px solid #aaa; }
6492 </style>
6493 <table id='vendor-table'>
6494   <tr>
6495     <td valign='top'>Vendor</td>
6496     <td>
6497       <div>[% target.provider.name %]</div>
6498       <div>[% target.provider.addresses.0.street1 %]</div>
6499       <div>[% target.provider.addresses.0.street2 %]</div>
6500       <div>[% target.provider.addresses.0.city %]</div>
6501       <div>[% target.provider.addresses.0.state %]</div>
6502       <div>[% target.provider.addresses.0.country %]</div>
6503       <div>[% target.provider.addresses.0.post_code %]</div>
6504     </td>
6505     <td valign='top'>Ship to / Bill to</td>
6506     <td>
6507       <div>[% target.ordering_agency.name %]</div>
6508       <div>[% target.ordering_agency.billing_address.street1 %]</div>
6509       <div>[% target.ordering_agency.billing_address.street2 %]</div>
6510       <div>[% target.ordering_agency.billing_address.city %]</div>
6511       <div>[% target.ordering_agency.billing_address.state %]</div>
6512       <div>[% target.ordering_agency.billing_address.country %]</div>
6513       <div>[% target.ordering_agency.billing_address.post_code %]</div>
6514     </td>
6515   </tr>
6516 </table>
6517
6518 <br/><br/>
6519 <fieldset id='vendor-notes'>
6520     <legend>Notes to the Vendor</legend>
6521     <ul>
6522     [% FOR note IN target.notes %]
6523         [% IF note.vendor_public == 't' %]
6524             <li>[% note.value %]</li>
6525         [% END %]
6526     [% END %]
6527     </ul>
6528 </fieldset>
6529 <br/><br/>
6530
6531 <table>
6532   <thead>
6533     <tr>
6534       <th>PO#</th>
6535       <th>ISBN or Item #</th>
6536       <th>Title</th>
6537       <th>Quantity</th>
6538       <th>Unit Price</th>
6539       <th>Line Total</th>
6540       <th>Notes</th>
6541     </tr>
6542   </thead>
6543   <tbody>
6544
6545   [% subtotal = 0 %]
6546   [% FOR li IN target.lineitems %]
6547
6548   <tr>
6549     [% count = li.lineitem_details.size %]
6550     [% price = li.estimated_unit_price %]
6551     [% litotal = (price * count) %]
6552     [% subtotal = subtotal + litotal %]
6553     [% isbn = PROCESS get_li_attr attr_name = 'isbn' %]
6554     [% ident = PROCESS get_li_attr attr_name = 'identifier' %]
6555
6556     <td>[% target.id %]</td>
6557     <td>[% isbn || ident %]</td>
6558     <td>[% PROCESS get_li_attr attr_name = 'title' %]</td>
6559     <td>[% count %]</td>
6560     <td>[% price %]</td>
6561     <td>[% litotal %]</td>
6562     <td>
6563         <ul>
6564         [% FOR note IN li.lineitem_notes %]
6565             [% IF note.vendor_public == 't' %]
6566                 <li>[% note.value %]</li>
6567             [% END %]
6568         [% END %]
6569         </ul>
6570     </td>
6571   </tr>
6572   [% END %]
6573   <tr>
6574     <td/><td/><td/><td/>
6575     <td>Subtotal</td>
6576     <td>[% subtotal %]</td>
6577   </tr>
6578   </tbody>
6579 </table>
6580
6581 <br/>
6582
6583 Total Line Item Count: [% target.lineitems.size %]
6584 $$);
6585
6586 INSERT INTO action_trigger.environment (event_def, path) VALUES 
6587     (4, 'lineitems.lineitem_details.fund'),
6588     (4, 'lineitems.lineitem_details.location'),
6589     (4, 'lineitems.lineitem_details.owning_lib'),
6590     (4, 'ordering_agency.mailing_address'),
6591     (4, 'ordering_agency.billing_address'),
6592     (4, 'provider.addresses'),
6593     (4, 'lineitems.attributes'),
6594     (4, 'lineitems.lineitem_notes'),
6595     (4, 'notes');
6596
6597 INSERT INTO action_trigger.cleanup ( module, description ) VALUES (
6598     'CreateHoldNotification',
6599     oils_i18n_gettext(
6600         'CreateHoldNotification',
6601         'Creates a hold_notification record for each notified hold',
6602         'atclean',
6603         'description'
6604     )
6605 );
6606
6607 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, cleanup_success, template)
6608     VALUES (5, 'f', 1, 'Hold Ready for Pickup Email Notification', 'hold.available', 'HoldIsAvailable', 'SendEmail', '30 minutes', 'shelf_time', 'usr', 'CreateHoldNotification',
6609 $$
6610 [%- USE date -%]
6611 [%- user = target.0.usr -%]
6612 To: [%- params.recipient_email || user.email %]
6613 From: [%- params.sender_email || default_sender %]
6614 Subject: Hold Available Notification
6615
6616 Dear [% user.family_name %], [% user.first_given_name %]
6617 The item(s) you requested are available for pickup from the Library.
6618
6619 [% FOR hold IN target %]
6620     [%- copy_details = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
6621     Title: [% copy_details.title %]
6622     Author: [% copy_details.author %]
6623     Call Number: [% hold.current_copy.call_number.label %]
6624     Barcode: [% hold.current_copy.barcode %]
6625     Library: [% hold.pickup_lib.name %]
6626 [% END %]
6627
6628 $$);
6629
6630 INSERT INTO action_trigger.event_params (event_def, param, value)
6631     VALUES (5, 'check_email_notify', 1);
6632
6633 INSERT INTO action_trigger.hook (
6634         key,
6635         core_type,
6636         description,
6637         passive
6638     ) VALUES (
6639         'hold_request.shelf_expires_soon',
6640         'ahr',
6641         'A hold on the shelf will expire there soon.',
6642         TRUE
6643     );
6644
6645 INSERT INTO action_trigger.environment (event_def, path) VALUES
6646     (5, 'current_copy.call_number'),
6647     (5, 'usr'),
6648     (5, 'pickup_lib.billing_address');
6649
6650
6651 INSERT INTO action_trigger.event_definition (
6652         id,
6653         active,
6654         owner,
6655         name,
6656         hook,
6657         validator,
6658         reactor,
6659         delay,
6660         delay_field,
6661         group_field,
6662         template
6663     ) VALUES (
6664         7,
6665         FALSE,
6666         1,
6667         'Hold Expires from Shelf Soon',
6668         'hold_request.shelf_expires_soon',
6669         'HoldIsAvailable',
6670         'SendEmail',
6671         '- 1 DAY',
6672         'shelf_expire_time',
6673         'usr',
6674 $$
6675 [%- USE date -%]
6676 [%- user = target.0.usr -%]
6677 To: [%- params.recipient_email || user.email %]
6678 From: [%- params.sender_email || default_sender %]
6679 Subject: Hold Available Notification
6680
6681 Dear [% user.family_name %], [% user.first_given_name %]
6682 You requested holds on the following item(s), which are available for
6683 pickup, but these holds will soon expire.
6684
6685 [% FOR hold IN target %]
6686     [%- data = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
6687     Title: [% data.title %]
6688     Author: [% data.author %]
6689     Library: [% hold.pickup_lib.name %]
6690 [% END %]
6691 $$
6692 );
6693
6694 INSERT INTO action_trigger.event_params (event_def, param, value)
6695     VALUES (7, 'check_email_notify', 1);
6696
6697 INSERT INTO action_trigger.environment (
6698         event_def,
6699         path
6700     ) VALUES
6701     ( 7, 'current_copy'),
6702     ( 7, 'pickup_lib.billing_address'),
6703     ( 7, 'usr');
6704
6705 -- long wait hold request notifications
6706
6707 INSERT INTO action_trigger.hook (
6708         key,
6709         core_type,
6710         description,
6711         passive
6712     ) VALUES (
6713         'hold_request.long_wait',
6714         'ahr',
6715         'A patron has been waiting on a hold to be fulfilled for a long time.',
6716         TRUE
6717     );
6718
6719 INSERT INTO action_trigger.validator (module,description) VALUES
6720     ('HoldNotifyCheck',
6721     oils_i18n_gettext(
6722         'HoldNotifyCheck',
6723         'Check Hold notification flag(s)',
6724         'atval',
6725         'description'
6726     ));
6727
6728 INSERT INTO action_trigger.event_definition (
6729         id,
6730         active,
6731         owner,
6732         name,
6733         hook,
6734         validator,
6735         reactor,
6736         delay,
6737         delay_field,
6738         group_field,
6739         template
6740     ) VALUES (
6741         9,
6742         FALSE,
6743         1,
6744         'Hold waiting for pickup for long time',
6745         'hold_request.long_wait',
6746         'HoldNotifyCheck',
6747         'SendEmail',
6748         '6 MONTHS',
6749         'request_time',
6750         'usr',
6751 $$
6752 [%- USE date -%]
6753 [%- user = target.0.usr -%]
6754 To: [%- params.recipient_email || user.email %]
6755 From: [%- params.sender_email || default_sender %]
6756 Subject: Long Wait Hold Notification
6757
6758 Dear [% user.family_name %], [% user.first_given_name %]
6759
6760 You requested hold(s) on the following item(s), but unfortunately
6761 we have not been able to fulfill your request after a considerable
6762 length of time.  If you would still like to receive these items,
6763 no action is required.
6764
6765 [% FOR hold IN target %]
6766     [%- copy_details = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
6767     Title: [% copy_details.title %]
6768     Author: [% copy_details.author %]
6769 [% END %]
6770 $$
6771 );
6772
6773 INSERT INTO action_trigger.environment (event_def, path)
6774     VALUES
6775     (9, 'pickup_lib'),
6776     (9, 'usr'),
6777     (9, 'current_copy.call_number');
6778
6779 INSERT INTO action_trigger.event_params (event_def, param, value)
6780     VALUES (9, 'check_email_notify', 1);
6781
6782 -- trigger data related to acq user requests
6783
6784 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
6785         'aur.ordered',
6786         'aur', 
6787         oils_i18n_gettext(
6788             'aur.ordered',
6789             'A patron acquisition request has been marked On-Order.',
6790             'ath',
6791             'description'
6792         ), 
6793         TRUE
6794     ), (
6795         'aur.received', 
6796         'aur', 
6797         oils_i18n_gettext(
6798             'aur.received', 
6799             'A patron acquisition request has been marked Received.',
6800             'ath',
6801             'description'
6802         ),
6803         TRUE
6804     ), (
6805         'aur.cancelled',
6806         'aur',
6807         oils_i18n_gettext(
6808             'aur.cancelled',
6809             'A patron acquisition request has been marked Cancelled.',
6810             'ath',
6811             'description'
6812         ),
6813         TRUE
6814     ), (
6815         'aur.created',
6816         'aur',
6817         oils_i18n_gettext(
6818             'aur.created',
6819             'A patron has made an acquisitions request.',
6820             'ath',
6821             'description'
6822         ),
6823         TRUE
6824     ), (
6825         'aur.rejected',
6826         'aur',
6827         oils_i18n_gettext(
6828             'aur.rejected',
6829             'A patron acquisition request has been rejected.',
6830             'ath',
6831             'description'
6832         ),
6833         TRUE
6834     )
6835 ;
6836
6837 INSERT INTO action_trigger.validator (module,description) VALUES (
6838         'Acq::UserRequestOrdered',
6839         oils_i18n_gettext(
6840             'Acq::UserRequestOrdered',
6841             'Tests to see if the corresponding Line Item has a state of "on-order".',
6842             'atval',
6843             'description'
6844         )
6845     ), (
6846         'Acq::UserRequestReceived',
6847         oils_i18n_gettext(
6848             'Acq::UserRequestReceived',
6849             'Tests to see if the corresponding Line Item has a state of "received".',
6850             'atval',
6851             'description'
6852         )
6853     ), (
6854         'Acq::UserRequestCancelled',
6855         oils_i18n_gettext(
6856             'Acq::UserRequestCancelled',
6857             'Tests to see if the corresponding Line Item has a state of "cancelled".',
6858             'atval',
6859             'description'
6860         )
6861     )
6862 ;
6863
6864 INSERT INTO action_trigger.event_definition (
6865         id,
6866         active,
6867         owner,
6868         name,
6869         hook,
6870         validator,
6871         reactor,
6872         template
6873     ) VALUES (
6874         15,
6875         FALSE,
6876         1,
6877         'Email Notice: Patron Acquisition Request marked On-Order.',
6878         'aur.ordered',
6879         'Acq::UserRequestOrdered',
6880         'SendEmail',
6881 $$
6882 [%- USE date -%]
6883 [%- SET li = target.lineitem; -%]
6884 [%- SET user = target.usr -%]
6885 [%- SET title = helpers.get_li_attr("title", "", li.attributes) -%]
6886 [%- SET author = helpers.get_li_attr("author", "", li.attributes) -%]
6887 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) -%]
6888 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) -%]
6889 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
6890 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
6891
6892 To: [%- params.recipient_email || user.email %]
6893 From: [%- params.sender_email || default_sender %]
6894 Subject: Acquisition Request Notification
6895
6896 Dear [% user.family_name %], [% user.first_given_name %]
6897 Our records indicate the following acquisition request has been placed on order.
6898
6899 Title: [% title %]
6900 [% IF author %]Author: [% author %][% END %]
6901 [% IF edition %]Edition: [% edition %][% END %]
6902 [% IF isbn %]ISBN: [% isbn %][% END %]
6903 [% IF publisher %]Publisher: [% publisher %][% END %]
6904 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
6905 Lineitem ID: [% li.id %]
6906 $$
6907     ), (
6908         16,
6909         FALSE,
6910         1,
6911         'Email Notice: Patron Acquisition Request marked Received.',
6912         'aur.received',
6913         'Acq::UserRequestReceived',
6914         'SendEmail',
6915 $$
6916 [%- USE date -%]
6917 [%- SET li = target.lineitem; -%]
6918 [%- SET user = target.usr -%]
6919 [%- SET title = helpers.get_li_attr("title", "", li.attributes) %]
6920 [%- SET author = helpers.get_li_attr("author", "", li.attributes) %]
6921 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) %]
6922 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) %]
6923 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
6924 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
6925
6926 To: [%- params.recipient_email || user.email %]
6927 From: [%- params.sender_email || default_sender %]
6928 Subject: Acquisition Request Notification
6929
6930 Dear [% user.family_name %], [% user.first_given_name %]
6931 Our records indicate the materials for the following acquisition request have been received.
6932
6933 Title: [% title %]
6934 [% IF author %]Author: [% author %][% END %]
6935 [% IF edition %]Edition: [% edition %][% END %]
6936 [% IF isbn %]ISBN: [% isbn %][% END %]
6937 [% IF publisher %]Publisher: [% publisher %][% END %]
6938 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
6939 Lineitem ID: [% li.id %]
6940 $$
6941     ), (
6942         17,
6943         FALSE,
6944         1,
6945         'Email Notice: Patron Acquisition Request marked Cancelled.',
6946         'aur.cancelled',
6947         'Acq::UserRequestCancelled',
6948         'SendEmail',
6949 $$
6950 [%- USE date -%]
6951 [%- SET li = target.lineitem; -%]
6952 [%- SET user = target.usr -%]
6953 [%- SET title = helpers.get_li_attr("title", "", li.attributes) %]
6954 [%- SET author = helpers.get_li_attr("author", "", li.attributes) %]
6955 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) %]
6956 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) %]
6957 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
6958 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
6959
6960 To: [%- params.recipient_email || user.email %]
6961 From: [%- params.sender_email || default_sender %]
6962 Subject: Acquisition Request Notification
6963
6964 Dear [% user.family_name %], [% user.first_given_name %]
6965 Our records indicate the following acquisition request has been cancelled.
6966
6967 Title: [% title %]
6968 [% IF author %]Author: [% author %][% END %]
6969 [% IF edition %]Edition: [% edition %][% END %]
6970 [% IF isbn %]ISBN: [% isbn %][% END %]
6971 [% IF publisher %]Publisher: [% publisher %][% END %]
6972 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
6973 Lineitem ID: [% li.id %]
6974 $$
6975     ), (
6976         18,
6977         FALSE,
6978         1,
6979         'Email Notice: Acquisition Request created.',
6980         'aur.created',
6981         'NOOP_True',
6982         'SendEmail',
6983 $$
6984 [%- USE date -%]
6985 [%- SET user = target.usr -%]
6986 [%- SET title = target.title -%]
6987 [%- SET author = target.author -%]
6988 [%- SET isxn = target.isxn -%]
6989 [%- SET publisher = target.publisher -%]
6990 [%- SET pubdate = target.pubdate -%]
6991
6992 To: [%- params.recipient_email || user.email %]
6993 From: [%- params.sender_email || default_sender %]
6994 Subject: Acquisition Request Notification
6995
6996 Dear [% user.family_name %], [% user.first_given_name %]
6997 Our records indicate that you have made the following acquisition request:
6998
6999 Title: [% title %]
7000 [% IF author %]Author: [% author %][% END %]
7001 [% IF edition %]Edition: [% edition %][% END %]
7002 [% IF isbn %]ISXN: [% isxn %][% END %]
7003 [% IF publisher %]Publisher: [% publisher %][% END %]
7004 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7005 $$
7006     ), (
7007         19,
7008         FALSE,
7009         1,
7010         'Email Notice: Acquisition Request Rejected.',
7011         'aur.rejected',
7012         'NOOP_True',
7013         'SendEmail',
7014 $$
7015 [%- USE date -%]
7016 [%- SET user = target.usr -%]
7017 [%- SET title = target.title -%]
7018 [%- SET author = target.author -%]
7019 [%- SET isxn = target.isxn -%]
7020 [%- SET publisher = target.publisher -%]
7021 [%- SET pubdate = target.pubdate -%]
7022 [%- SET cancel_reason = target.cancel_reason.description -%]
7023
7024 To: [%- params.recipient_email || user.email %]
7025 From: [%- params.sender_email || default_sender %]
7026 Subject: Acquisition Request Notification
7027
7028 Dear [% user.family_name %], [% user.first_given_name %]
7029 Our records indicate the following acquisition request has been rejected for this reason: [% cancel_reason %]
7030
7031 Title: [% title %]
7032 [% IF author %]Author: [% author %][% END %]
7033 [% IF edition %]Edition: [% edition %][% END %]
7034 [% IF isbn %]ISBN: [% isbn %][% END %]
7035 [% IF publisher %]Publisher: [% publisher %][% END %]
7036 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7037 $$
7038     )
7039 ;
7040
7041 INSERT INTO action_trigger.environment (
7042         event_def,
7043         path
7044     ) VALUES 
7045         ( 15, 'lineitem' ),
7046         ( 15, 'lineitem.attributes' ),
7047         ( 15, 'usr' ),
7048
7049         ( 16, 'lineitem' ),
7050         ( 16, 'lineitem.attributes' ),
7051         ( 16, 'usr' ),
7052
7053         ( 17, 'lineitem' ),
7054         ( 17, 'lineitem.attributes' ),
7055         ( 17, 'usr' ),
7056
7057         ( 18, 'usr' ),
7058         ( 19, 'usr' ),
7059         ( 19, 'cancel_reason' )
7060     ;
7061
7062 INSERT INTO action_trigger.hook (key,core_type,description) VALUES ('password.reset_request','aupr','Patron has requested a self-serve password reset');
7063 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, template) 
7064     VALUES (20, 'f', 1, 'Password reset request notification', 'password.reset_request', 'NOOP_True', 'SendEmail', '00:00:01',
7065 $$
7066 [%- USE date -%]
7067 [%- user = target.usr -%]
7068 To: [%- params.recipient_email || user.email %]
7069 From: [%- params.sender_email || user.home_ou.email || default_sender %]
7070 Subject: [% user.home_ou.name %]: library account password reset request
7071
7072 You have received this message because you, or somebody else, requested a reset
7073 of your library system password. If you did not request a reset of your library
7074 system password, just ignore this message and your current password will
7075 continue to work.
7076
7077 If you did request a reset of your library system password, please perform
7078 the following steps to continue the process of resetting your password:
7079
7080 1. Open the following link in a web browser: https://[% params.hostname %]/eg/opac/password_reset/[% target.uuid %]
7081 The browser displays a password reset form.
7082
7083 2. Enter your new password in the password reset form in the browser. You must
7084 enter the password twice to ensure that you do not make a mistake. If the
7085 passwords match, you will then be able to log in to your library system account
7086 with the new password.
7087
7088 $$);
7089 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7090     ( 20, 'usr' );
7091 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7092     ( 20, 'usr.home_ou' );
7093
7094
7095 INSERT INTO action_trigger.hook (key, core_type, description, passive)
7096     VALUES (
7097         'format.acqcle.html',
7098         'acqcle',
7099         'Formats claim events into a voucher',
7100         TRUE
7101     );
7102
7103 INSERT INTO action_trigger.event_definition (
7104         id, active, owner, name, hook, group_field,
7105         validator, reactor, granularity, template
7106     ) VALUES (
7107         21,
7108         TRUE,
7109         1,
7110         'Claim Voucher',
7111         'format.acqcle.html',
7112         'claim',
7113         'NOOP_True',
7114         'ProcessTemplate',
7115         'print-on-demand',
7116 $$
7117 [%- USE date -%]
7118 [%- SET claim = target.0.claim -%]
7119 <!-- This will need refined/prettified. -->
7120 <div class="acq-claim-voucher">
7121     <h2>Claim: [% claim.id %] ([% claim.type.code %])</h2>
7122     <h3>Against: [%- helpers.get_li_attr("title", "", claim.lineitem_detail.lineitem.attributes) -%]</h3>
7123     <ul>
7124         [% FOR event IN target %]
7125         <li>
7126             Event type: [% event.type.code %]
7127             [% IF event.type.library_initiated %](Library initiated)[% END %]
7128             <br />
7129             Event date: [% event.event_date %]<br />
7130             Order date: [% event.claim.lineitem_detail.lineitem.purchase_order.order_date %]<br />
7131             Expected receive date: [% event.claim.lineitem_detail.lineitem.expected_recv_time %]<br />
7132             Initiated by: [% event.creator.family_name %], [% event.creator.first_given_name %] [% event.creator.second_given_name %]<br />
7133             Barcode: [% event.claim.lineitem_detail.barcode %]; Fund:
7134             [% event.claim.lineitem_detail.fund.code %]
7135             ([% event.claim.lineitem_detail.fund.year %])
7136         </li>
7137         [% END %]
7138     </ul>
7139 </div>
7140 $$
7141 );
7142
7143 INSERT INTO action_trigger.environment (event_def, path) VALUES
7144     (21, 'claim'),
7145     (21, 'claim.type'),
7146     (21, 'claim.lineitem_detail'),
7147     (21, 'claim.lineitem_detail.fund'),
7148     (21, 'claim.lineitem_detail.lineitem.attributes'),
7149     (21, 'claim.lineitem_detail.lineitem.purchase_order'),
7150     (21, 'creator'),
7151     (21, 'type')
7152 ;
7153
7154
7155 INSERT INTO action_trigger.hook (key, core_type, description, passive)
7156     VALUES (
7157         'format.acqinv.html',
7158         'acqinv',
7159         'Formats invoices into a voucher',
7160         TRUE
7161     );
7162
7163 INSERT INTO action_trigger.event_definition (
7164         id, active, owner, name, hook,
7165         validator, reactor, granularity, template
7166     ) VALUES (
7167         22,
7168         TRUE,
7169         1,
7170         'Invoice',
7171         'format.acqinv.html',
7172         'NOOP_True',
7173         'ProcessTemplate',
7174         'print-on-demand',
7175 $$
7176 [% FILTER collapse %]
7177 [%- SET invoice = target -%]
7178 <!-- This lacks general refinement -->
7179 <div class="acq-invoice-voucher">
7180     <h1>Invoice</h1>
7181     <div>
7182         <strong>No.</strong> [% invoice.inv_ident %]
7183         [% IF invoice.inv_type %]
7184             / <strong>Type:</strong>[% invoice.inv_type %]
7185         [% END %]
7186     </div>
7187     <div>
7188         <dl>
7189             [% BLOCK ent_with_address %]
7190             <dt>[% ent_label %]: [% ent.name %] ([% ent.code %])</dt>
7191             <dd>
7192                 [% IF ent.addresses.0 %]
7193                     [% SET addr = ent.addresses.0 %]
7194                     [% addr.street1 %]<br />
7195                     [% IF addr.street2 %][% addr.street2 %]<br />[% END %]
7196                     [% addr.city %],
7197                     [% IF addr.county %] [% addr.county %], [% END %]
7198                     [% IF addr.state %] [% addr.state %] [% END %]
7199                     [% IF addr.post_code %][% addr.post_code %][% END %]<br />
7200                     [% IF addr.country %] [% addr.country %] [% END %]
7201                 [% END %]
7202                 <p>
7203                     [% IF ent.phone %] Phone: [% ent.phone %]<br />[% END %]
7204                     [% IF ent.fax_phone %] Fax: [% ent.fax_phone %]<br />[% END %]
7205                     [% IF ent.url %] URL: [% ent.url %]<br />[% END %]
7206                     [% IF ent.email %] E-mail: [% ent.email %] [% END %]
7207                 </p>
7208             </dd>
7209             [% END %]
7210             [% INCLUDE ent_with_address
7211                 ent = invoice.provider
7212                 ent_label = "Provider" %]
7213             [% INCLUDE ent_with_address
7214                 ent = invoice.shipper
7215                 ent_label = "Shipper" %]
7216             <dt>Receiver</dt>
7217             <dd>
7218                 [% invoice.receiver.name %] ([% invoice.receiver.shortname %])
7219             </dd>
7220             <dt>Received</dt>
7221             <dd>
7222                 [% helpers.format_date(invoice.recv_date) %] by
7223                 [% invoice.recv_method %]
7224             </dd>
7225             [% IF invoice.note %]
7226                 <dt>Note</dt>
7227                 <dd>
7228                     [% invoice.note %]
7229                 </dd>
7230             [% END %]
7231         </dl>
7232     </div>
7233     <ul>
7234         [% FOR entry IN invoice.entries %]
7235             <li>
7236                 [% IF entry.lineitem %]
7237                     Title: [% helpers.get_li_attr(
7238                         "title", "", entry.lineitem.attributes
7239                     ) %]<br />
7240                     Author: [% helpers.get_li_attr(
7241                         "author", "", entry.lineitem.attributes
7242                     ) %]
7243                 [% END %]
7244                 [% IF entry.purchase_order %]
7245                     (PO: [% entry.purchase_order.name %])
7246                 [% END %]<br />
7247                 Invoice item count: [% entry.inv_item_count %]
7248                 [% IF entry.phys_item_count %]
7249                     / Physical item count: [% entry.phys_item_count %]
7250                 [% END %]
7251                 <br />
7252                 [% IF entry.cost_billed %]
7253                     Cost billed: [% entry.cost_billed %]
7254                     [% IF entry.billed_per_item %](per item)[% END %]
7255                     <br />
7256                 [% END %]
7257                 [% IF entry.actual_cost %]
7258                     Actual cost: [% entry.actual_cost %]<br />
7259                 [% END %]
7260                 [% IF entry.amount_paid %]
7261                     Amount paid: [% entry.amount_paid %]<br />
7262                 [% END %]
7263                 [% IF entry.note %]Note: [% entry.note %][% END %]
7264             </li>
7265         [% END %]
7266         [% FOR item IN invoice.items %]
7267             <li>
7268                 [% IF item.inv_item_type %]
7269                     Item Type: [% item.inv_item_type %]<br />
7270                 [% END %]
7271                 [% IF item.title %]Title/Description:
7272                     [% item.title %]<br />
7273                 [% END %]
7274                 [% IF item.author %]Author: [% item.author %]<br />[% END %]
7275                 [% IF item.purchase_order %]PO: [% item.purchase_order %]<br />[% END %]
7276                 [% IF item.note %]Note: [% item.note %]<br />[% END %]
7277                 [% IF item.cost_billed %]
7278                     Cost billed: [% item.cost_billed %]<br />
7279                 [% END %]
7280                 [% IF item.actual_cost %]
7281                     Actual cost: [% item.actual_cost %]<br />
7282                 [% END %]
7283                 [% IF item.amount_paid %]
7284                     Amount paid: [% item.amount_paid %]<br />
7285                 [% END %]
7286             </li>
7287         [% END %]
7288     </ul>
7289     <div>
7290         Amounts spent per fund:
7291         <table>
7292         [% FOR blob IN user_data %]
7293             <tr>
7294                 <th style="text-align: left;">[% blob.fund.code %] ([% blob.fund.year %]):</th>
7295                 <td>$[% blob.total %]</td>
7296             </tr>
7297         [% END %]
7298         </table>
7299     </div>
7300 </div>
7301 [% END %]$$
7302 );
7303
7304
7305 INSERT INTO action_trigger.environment (event_def, path) VALUES
7306     (22, 'provider'),
7307     (22, 'provider.addresses'),
7308     (22, 'shipper'),
7309     (22, 'shipper.addresses'),
7310     (22, 'receiver'),
7311     (22, 'entries'),
7312     (22, 'entries.purchase_order'),
7313     (22, 'entries.lineitem'),
7314     (22, 'entries.lineitem.attributes'),
7315     (22, 'items')
7316 ;
7317
7318 SELECT SETVAL('action_trigger.event_definition_id_seq'::TEXT, 100);
7319
7320 -- Hold cancel action/trigger hooks
7321
7322 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7323     'hold_request.cancel.expire_no_target',
7324     'ahr',
7325     'A hold is cancelled because no copies were found'
7326 );
7327
7328 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7329     'hold_request.cancel.expire_holds_shelf',
7330     'ahr',
7331     'A hold is cancelled because it was on the holds shelf too long'
7332 );
7333
7334 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7335     'hold_request.cancel.staff',
7336     'ahr',
7337     'A hold is cancelled because it was cancelled by staff'
7338 );
7339
7340 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7341     'hold_request.cancel.patron',
7342     'ahr',
7343     'A hold is cancelled by the patron'
7344 );
7345
7346
7347 -- in-db indexing normalizers
7348 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7349         'NACO Normalize',
7350         'Apply NACO normalization rules to the extracted text.  See http://www.loc.gov/catdir/pcc/naco/normrule-2.html for details.',
7351         'naco_normalize',
7352         0
7353 );
7354
7355 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7356         'Normalize date range',
7357         'Split date ranges in the form of "XXXX-YYYY" into "XXXX YYYY" for proper index.',
7358         'split_date_range',
7359         0
7360 );
7361
7362 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7363         'NACO Normalize -- retain first comma',
7364         '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.',
7365         'naco_normalize_keep_comma',
7366         0
7367 );
7368
7369 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7370         'Strip Diacritics',
7371         'Convert text to NFD form and remove non-spacing combining marks.',
7372         'remove_diacritics',
7373         0
7374 );
7375
7376 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7377         'Remove Parenthesized Substring',
7378         'Remove any parenthesized substrings from the extracted text, such as the agency code preceding authority record control numbers in subfield 0.',
7379         'remove_paren_substring',
7380         0
7381 );
7382
7383 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7384         'Up-case',
7385         'Convert text upper case.',
7386         'uppercase',
7387         0
7388 );
7389
7390 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7391         'Down-case',
7392         'Convert text lower case.',
7393         'lowercase',
7394         0
7395 );
7396
7397 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7398         'Extract Dewey-like number',
7399         'Extract a string of numeric characters that resembles a DDC number.',
7400         'call_number_dewey',
7401         0
7402 );
7403
7404 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7405         'Left truncation',
7406         'Discard the specified number of characters from the left side of the string.',
7407         'left_trunc',
7408         1
7409 );
7410
7411 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7412         'Right truncation',
7413         'Include only the specified number of characters from the left side of the string.',
7414         'right_trunc',
7415         1
7416 );
7417
7418 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7419         'First word',
7420         'Include only the first space-separated word of a string.',
7421         'first_word',
7422         0
7423 );
7424
7425 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7426         'ISBN 10/13 conversion',
7427         'Translate ISBN10 to ISBN13 and vice versa.',
7428         'translate_isbn1013',
7429         0
7430 );
7431
7432 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7433         'Replace',
7434         'Replace all occurences of first parameter in the string with the second parameter.',
7435         'replace',
7436         2
7437 );
7438
7439 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7440         'Trim Surrounding Space',
7441         'Trim leading and trailing spaces from extracted text.',
7442         'btrim',
7443         0
7444 );
7445
7446 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7447     'Generic Mapping Normalizer', 
7448     'Map values or sets of values to new values',
7449     'generic_map_normalizer', 
7450     1
7451 );
7452
7453 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7454     'Coded Value Map Normalizer', 
7455     'Applies coded_value_map mapping of values',
7456     'coded_value_map_normalizer', 
7457     1
7458 );
7459
7460 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7461         'Search Normalize',
7462         'Apply search normalization rules to the extracted text. A less extreme version of NACO normalization.',
7463         'search_normalize',
7464         0
7465 );
7466
7467 -- make use of the index normalizers
7468
7469 INSERT INTO config.metabib_field_index_norm_map (field,norm)
7470     SELECT  m.id,
7471             i.id
7472       FROM  config.metabib_field m,
7473         config.index_normalizer i
7474       WHERE i.func IN ('search_normalize','split_date_range')
7475             AND m.id NOT IN (18, 19);
7476
7477 INSERT INTO config.metabib_field_index_norm_map (field,norm,pos)
7478     SELECT  m.id,
7479             i.id,
7480             2
7481       FROM  config.metabib_field m,
7482             config.index_normalizer i
7483       WHERE i.func IN ('translate_isbn1013')
7484             AND m.id IN (18);
7485
7486 INSERT INTO config.metabib_field_index_norm_map (field,norm,params)
7487     SELECT  m.id,
7488             i.id,
7489             $$["-",""]$$
7490       FROM  config.metabib_field m,
7491             config.index_normalizer i
7492       WHERE i.func IN ('replace')
7493             AND m.id IN (19);
7494
7495 INSERT INTO config.metabib_field_index_norm_map (field,norm,pos)
7496     SELECT  m.id,
7497             i.id,
7498             -1
7499       FROM  config.metabib_field m,
7500             config.index_normalizer i
7501       WHERE i.func = 'remove_paren_substring'
7502             AND m.id IN (28);
7503
7504 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7505     SELECT  m.name, i.id, 0
7506       FROM  config.record_attr_definition m,
7507             config.index_normalizer i
7508       WHERE i.func IN ('content_or_null')
7509             AND m.name IN ('titlesort', 'authorsort');
7510
7511 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7512     SELECT  m.name, i.id, 0
7513       FROM  config.record_attr_definition m,
7514             config.index_normalizer i
7515       WHERE i.func IN ('integer_or_null')
7516             AND m.name IN ('date1', 'date2', 'pubdate');
7517
7518 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7519     SELECT  m.name, i.id, 0
7520       FROM  config.record_attr_definition m,
7521             config.index_normalizer i
7522       WHERE i.func IN ('approximate_low_date')
7523             AND m.name IN ('date1', 'pubdate');
7524
7525 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7526     SELECT  m.name, i.id, 0
7527       FROM  config.record_attr_definition m,
7528             config.index_normalizer i
7529       WHERE i.func IN ('approximate_high_date')
7530             AND m.name IN ('date2');
7531
7532 -- Sample Pre-due Notice --
7533
7534 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, template) 
7535     VALUES (6, 'f', 1, '3 Day Courtesy Notice', 'checkout.due', 'CircIsOpen', 'SendEmail', '-3 days', 'due_date', 'usr', '-2 days',
7536 $$
7537 [%- USE date -%]
7538 [%- user = target.0.usr -%]
7539 To: [%- params.recipient_email || user.email %]
7540 From: [%- params.sender_email || default_sender %]
7541 Subject: Courtesy Notice
7542
7543 Dear [% user.family_name %], [% user.first_given_name %]
7544 As a reminder, the following items are due in 3 days.
7545
7546 [% FOR circ IN target %]
7547     [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
7548     Title: [% copy_details.title %]
7549     Author: [% copy_details.author %]
7550     Barcode: [% circ.target_copy.barcode %] 
7551     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
7552     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
7553     Library: [% circ.circ_lib.name %]
7554     Library Phone: [% circ.circ_lib.phone %]
7555
7556 [% END %]
7557
7558 $$);
7559
7560 INSERT INTO action_trigger.environment (event_def, path) VALUES 
7561     (6, 'target_copy.call_number'),
7562     (6, 'usr'),
7563     (6, 'circ_lib.billing_address');
7564
7565 -- Additional A/T Reactors
7566
7567 INSERT INTO action_trigger.reactor (module,description) VALUES
7568 (   'ApplyPatronPenalty',
7569     oils_i18n_gettext(
7570         'ApplyPatronPenalty',
7571         '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.',
7572         'atreact',
7573         'description'
7574     )
7575 );
7576
7577 INSERT INTO action_trigger.reactor (module,description) VALUES
7578 (   'SendFile',
7579     oils_i18n_gettext(
7580         'SendFile',
7581         '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.',
7582         'atreact',
7583         'description'
7584     )
7585 );
7586
7587 -- self-check checkout receipt
7588
7589 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7590     VALUES (
7591         'format.selfcheck.checkout',
7592         'circ',
7593         'Formats circ objects for self-checkout receipt',
7594         TRUE
7595     );
7596
7597 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
7598     VALUES (
7599         10,
7600         TRUE,
7601         1,
7602         'Self-Checkout Receipt',
7603         'format.selfcheck.checkout',
7604         'NOOP_True',
7605         'ProcessTemplate',
7606         'usr',
7607         'print-on-demand',
7608 $$
7609 [%- USE date -%]
7610 [%- SET user = target.0.usr -%]
7611 [%- SET lib = target.0.circ_lib -%]
7612 [%- SET lib_addr = target.0.circ_lib.billing_address -%]
7613 [%- SET hours = lib.hours_of_operation -%]
7614 <div>
7615     <style> li { padding: 8px; margin 5px; }</style>
7616     <div>[% date.format %]</div>
7617     <div>[% lib.name %]</div>
7618     <div>[% lib_addr.street1 %] [% lib_addr.street2 %]</div>
7619     <div>[% lib_addr.city %], [% lib_addr.state %] [% lb_addr.post_code %]</div>
7620     <div>[% lib.phone %]</div>
7621     <br/>
7622
7623     [% user.family_name %], [% user.first_given_name %]
7624     <ol>
7625     [% FOR circ IN target %]
7626         [%-
7627             SET idx = loop.count - 1;
7628             SET udata =  user_data.$idx
7629         -%]
7630         <li>
7631             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
7632             <div>Barcode: [% circ.target_copy.barcode %]</div>
7633             [% IF user_data.renewal_failure %]
7634                 <div style='color:red;'>Renewal Failed</div>
7635             [% ELSE %]
7636                 <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
7637             [% END %]
7638         </li>
7639     [% END %]
7640     </ol>
7641     
7642     <div>
7643         Library Hours
7644         [%- BLOCK format_time; date.format(time _ ' 1/1/1000', format='%I:%M %p'); END -%]
7645         <div>
7646             Monday 
7647             [% PROCESS format_time time = hours.dow_0_open %] 
7648             [% PROCESS format_time time = hours.dow_0_close %] 
7649         </div>
7650         <div>
7651             Tuesday 
7652             [% PROCESS format_time time = hours.dow_1_open %] 
7653             [% PROCESS format_time time = hours.dow_1_close %] 
7654         </div>
7655         <div>
7656             Wednesday 
7657             [% PROCESS format_time time = hours.dow_2_open %] 
7658             [% PROCESS format_time time = hours.dow_2_close %] 
7659         </div>
7660         <div>
7661             Thursday
7662             [% PROCESS format_time time = hours.dow_3_open %] 
7663             [% PROCESS format_time time = hours.dow_3_close %] 
7664         </div>
7665         <div>
7666             Friday
7667             [% PROCESS format_time time = hours.dow_4_open %] 
7668             [% PROCESS format_time time = hours.dow_4_close %] 
7669         </div>
7670         <div>
7671             Saturday
7672             [% PROCESS format_time time = hours.dow_5_open %] 
7673             [% PROCESS format_time time = hours.dow_5_close %] 
7674         </div>
7675         <div>
7676             Sunday 
7677             [% PROCESS format_time time = hours.dow_6_open %] 
7678             [% PROCESS format_time time = hours.dow_6_close %] 
7679         </div>
7680     </div>
7681 </div>
7682 $$
7683 );
7684
7685
7686 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7687     ( 10, 'target_copy'),
7688     ( 10, 'circ_lib.billing_address'),
7689     ( 10, 'circ_lib.hours_of_operation'),
7690     ( 10, 'usr');
7691
7692
7693 -- items out selfcheck receipt
7694
7695 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7696     VALUES (
7697         'format.selfcheck.items_out',
7698         'circ',
7699         'Formats items out for self-checkout receipt',
7700         TRUE
7701     );
7702
7703 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
7704     VALUES (
7705         11,
7706         TRUE,
7707         1,
7708         'Self-Checkout Items Out Receipt',
7709         'format.selfcheck.items_out',
7710         'NOOP_True',
7711         'ProcessTemplate',
7712         'usr',
7713         'print-on-demand',
7714 $$
7715 [%- USE date -%]
7716 [%- SET user = target.0.usr -%]
7717 <div>
7718     <style> li { padding: 8px; margin 5px; }</style>
7719     <div>[% date.format %]</div>
7720     <br/>
7721
7722     [% user.family_name %], [% user.first_given_name %]
7723     <ol>
7724     [% FOR circ IN target %]
7725         <li>
7726             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
7727             <div>Barcode: [% circ.target_copy.barcode %]</div>
7728             <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
7729         </li>
7730     [% END %]
7731     </ol>
7732 </div>
7733 $$
7734 );
7735
7736
7737 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7738     ( 11, 'target_copy'),
7739     ( 11, 'circ_lib.billing_address'),
7740     ( 11, 'circ_lib.hours_of_operation'),
7741     ( 11, 'usr');
7742
7743 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7744     VALUES (
7745         'format.selfcheck.holds',
7746         'ahr',
7747         'Formats holds for self-checkout receipt',
7748         TRUE
7749     );
7750
7751 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
7752     VALUES (
7753         12,
7754         TRUE,
7755         1,
7756         'Self-Checkout Holds Receipt',
7757         'format.selfcheck.holds',
7758         'NOOP_True',
7759         'ProcessTemplate',
7760         'usr',
7761         'print-on-demand',
7762 $$
7763 [%- USE date -%]
7764 [%- SET user = target.0.usr -%]
7765 <div>
7766     <style> li { padding: 8px; margin 5px; }</style>
7767     <div>[% date.format %]</div>
7768     <br/>
7769
7770     [% user.family_name %], [% user.first_given_name %]
7771     <ol>
7772     [% FOR hold IN target %]
7773         [%-
7774             SET idx = loop.count - 1;
7775             SET udata =  user_data.$idx
7776         -%]
7777         <li>
7778             <div>Title: [% hold.bib_rec.bib_record.simple_record.title %]</div>
7779             <div>Author: [% hold.bib_rec.bib_record.simple_record.author %]</div>
7780             <div>Pickup Location: [% hold.pickup_lib.name %]</div>
7781             <div>Status: 
7782                 [%- IF udata.ready -%]
7783                     Ready for pickup
7784                 [% ELSE %]
7785                     #[% udata.queue_position %] of [% udata.potential_copies %] copies.
7786                 [% END %]
7787             </div>
7788         </li>
7789     [% END %]
7790     </ol>
7791 </div>
7792 $$
7793 );
7794
7795
7796 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7797     ( 12, 'bib_rec.bib_record.simple_record'),
7798     ( 12, 'pickup_lib'),
7799     ( 12, 'usr');
7800
7801 -- fines receipt
7802
7803 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7804     VALUES (
7805         'format.selfcheck.fines',
7806         'au',
7807         'Formats fines for self-checkout receipt',
7808         TRUE
7809     );
7810
7811 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, granularity, template )
7812     VALUES (
7813         13,
7814         TRUE,
7815         1,
7816         'Self-Checkout Fines Receipt',
7817         'format.selfcheck.fines',
7818         'NOOP_True',
7819         'ProcessTemplate',
7820         'print-on-demand',
7821 $$
7822 [%- USE date -%]
7823 [%- SET user = target -%]
7824 <div>
7825     <style> li { padding: 8px; margin 5px; }</style>
7826     <div>[% date.format %]</div>
7827     <br/>
7828
7829     [% user.family_name %], [% user.first_given_name %]
7830     <ol>
7831     [% FOR xact IN user.open_billable_transactions_summary %]
7832         <li>
7833             <div>Details: 
7834                 [% IF xact.xact_type == 'circulation' %]
7835                     [%- helpers.get_copy_bib_basics(xact.circulation.target_copy).title -%]
7836                 [% ELSE %]
7837                     [%- xact.last_billing_type -%]
7838                 [% END %]
7839             </div>
7840             <div>Total Billed: [% xact.total_owed %]</div>
7841             <div>Total Paid: [% xact.total_paid %]</div>
7842             <div>Balance Owed : [% xact.balance_owed %]</div>
7843         </li>
7844     [% END %]
7845     </ol>
7846 </div>
7847 $$
7848 );
7849
7850 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7851     VALUES (
7852         'format.acqli.html',
7853         'jub',
7854         'Formats lineitem worksheet for titles received',
7855         TRUE
7856     );
7857
7858 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, granularity, template)
7859     VALUES (
7860         14,
7861         TRUE,
7862         1,
7863         'Lineitem Worksheet',
7864         'format.acqli.html',
7865         'NOOP_True',
7866         'ProcessTemplate',
7867         'print-on-demand',
7868 $$
7869 [%- USE date -%]
7870 [%- SET li = target; -%]
7871 <div class="wrapper">
7872     <div class="summary" style='font-size:110%; font-weight:bold;'>
7873
7874         <div>Title: [% helpers.get_li_attr("title", "", li.attributes) %]</div>
7875         <div>Author: [% helpers.get_li_attr("author", "", li.attributes) %]</div>
7876         <div class="count">Item Count: [% li.lineitem_details.size %]</div>
7877         <div class="lineid">Lineitem ID: [% li.id %]</div>
7878         <div>Open Holds: [% helpers.bre_open_hold_count(li.eg_bib_id) %]</div>
7879
7880         [% IF li.distribution_formulas.size > 0 %]
7881             [% SET forms = [] %]
7882             [% FOREACH form IN li.distribution_formulas; forms.push(form.formula.name); END %]
7883             <div>Distribution Formulas: [% forms.join(',') %]</div>
7884         [% END %]
7885
7886         [% IF li.lineitem_notes.size > 0 %]
7887             Lineitem Notes:
7888             <ul>
7889                 [%- FOR note IN li.lineitem_notes -%]
7890                     <li>
7891                     [% IF note.alert_text %]
7892                         [% note.alert_text.code -%] 
7893                         [% IF note.value -%]
7894                             : [% note.value %]
7895                         [% END %]
7896                     [% ELSE %]
7897                         [% note.value -%] 
7898                     [% END %]
7899                     </li>
7900                 [% END %]
7901             </ul>
7902         [% END %]
7903     </div>
7904     <br/>
7905     <table>
7906         <thead>
7907             <tr>
7908                 <th>Branch</th>
7909                 <th>Barcode</th>
7910                 <th>Call Number</th>
7911                 <th>Fund</th>
7912                 <th>Shelving Location</th>
7913                 <th>Recd.</th>
7914                 <th>Notes</th>
7915             </tr>
7916         </thead>
7917         <tbody>
7918         [% FOREACH detail IN li.lineitem_details.sort('owning_lib') %]
7919             [% 
7920                 IF detail.eg_copy_id;
7921                     SET copy = detail.eg_copy_id;
7922                     SET cn_label = copy.call_number.label;
7923                 ELSE; 
7924                     SET copy = detail; 
7925                     SET cn_label = detail.cn_label;
7926                 END 
7927             %]
7928             <tr>
7929                 <!-- acq.lineitem_detail.id = [%- detail.id -%] -->
7930                 <td style='padding:5px;'>[% detail.owning_lib.shortname %]</td>
7931                 <td style='padding:5px;'>[% IF copy.barcode   %]<span class="barcode"  >[% detail.barcode   %]</span>[% END %]</td>
7932                 <td style='padding:5px;'>[% IF cn_label %]<span class="cn_label" >[% cn_label  %]</span>[% END %]</td>
7933                 <td style='padding:5px;'>[% IF detail.fund %]<span class="fund">[% detail.fund.code %] ([% detail.fund.year %])</span>[% END %]</td>
7934                 <td style='padding:5px;'>[% copy.location.name %]</td>
7935                 <td style='padding:5px;'>[% IF detail.recv_time %]<span class="recv_time">[% detail.recv_time %]</span>[% END %]</td>
7936                 <td style='padding:5px;'>[% detail.note %]</td>
7937             </tr>
7938         [% END %]
7939         </tbody>
7940     </table>
7941 </div>
7942 $$
7943 );
7944
7945
7946 INSERT INTO action_trigger.environment (event_def, path) VALUES
7947     ( 14, 'attributes' ),
7948     ( 14, 'lineitem_notes' ),
7949     ( 14, 'lineitem_notes.alert_text' ),
7950     ( 14, 'distribution_formulas.formula' ),
7951     ( 14, 'lineitem_details' ),
7952     ( 14, 'lineitem_details.owning_lib' ),
7953     ( 14, 'lineitem_details.fund' ),
7954     ( 14, 'lineitem_details.location' ),
7955     ( 14, 'lineitem_details.eg_copy_id' ),
7956     ( 14, 'lineitem_details.eg_copy_id.call_number' ),
7957     ( 14, 'lineitem_details.eg_copy_id.location' )
7958 ;
7959
7960 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7961     ( 13, 'open_billable_transactions_summary.circulation' );
7962
7963
7964 INSERT INTO action_trigger.validator (module, description) 
7965     VALUES (
7966         'Acq::PurchaseOrderEDIRequired',
7967         oils_i18n_gettext(
7968             'Acq::PurchaseOrderEDIRequired',
7969             'Purchase order is delivered via EDI',
7970             'atval',
7971             'description'
7972         )
7973     );
7974
7975 INSERT INTO action_trigger.reactor (module, description)
7976     VALUES (
7977         'GeneratePurchaseOrderJEDI',
7978         oils_i18n_gettext(
7979             'GeneratePurchaseOrderJEDI',
7980             'Creates purchase order JEDI (JSON EDI) for subsequent EDI processing',
7981             'atreact',
7982             'description'
7983         )
7984     );
7985
7986
7987 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, cleanup_success, cleanup_failure, delay, delay_field, group_field, template) 
7988     VALUES (23, true, 1, 'PO JEDI', 'acqpo.activated', 'Acq::PurchaseOrderEDIRequired', 'GeneratePurchaseOrderJEDI', NULL, NULL, '00:00:00', NULL, NULL,
7989 $$[%- USE date -%]
7990 [%# start JEDI document 
7991   # Vendor specific kludges:
7992   # BT      - vendcode goes to NAD/BY *suffix*  w/ 91 qualifier
7993   # INGRAM  - vendcode goes to NAD/BY *segment* w/ 91 qualifier (separately)
7994   # BRODART - vendcode goes to FTX segment (lineitem level)
7995 -%]
7996 [%- 
7997 IF target.provider.edi_default.vendcode && target.provider.code == 'BRODART';
7998     xtra_ftx = target.provider.edi_default.vendcode;
7999 END;
8000 -%]
8001 [%- BLOCK big_block -%]
8002 {
8003    "recipient":"[% target.provider.san %]",
8004    "sender":"[% target.ordering_agency.mailing_address.san %]",
8005    "body": [{
8006      "ORDERS":[ "order", {
8007         "po_number":[% target.id %],
8008         "date":"[% date.format(date.now, '%Y%m%d') %]",
8009         "buyer":[
8010             [%   IF   target.provider.edi_default.vendcode && (target.provider.code == 'BT' || target.provider.name.match('(?i)^BAKER & TAYLOR'))  -%]
8011                 {"id-qualifier": 91, "id":"[% target.ordering_agency.mailing_address.san _ ' ' _ target.provider.edi_default.vendcode %]"}
8012             [%- ELSIF target.provider.edi_default.vendcode && target.provider.code == 'INGRAM' -%]
8013                 {"id":"[% target.ordering_agency.mailing_address.san %]"},
8014                 {"id-qualifier": 91, "id":"[% target.provider.edi_default.vendcode %]"}
8015             [%- ELSE -%]
8016                 {"id":"[% target.ordering_agency.mailing_address.san %]"}
8017             [%- END -%]
8018         ],
8019         "vendor":[
8020             [%- # target.provider.name (target.provider.id) -%]
8021             "[% target.provider.san %]",
8022             {"id-qualifier": 92, "id":"[% target.provider.id %]"}
8023         ],
8024         "currency":"[% target.provider.currency_type %]",
8025                 
8026         "items":[
8027         [%- FOR li IN target.lineitems %]
8028         {
8029             "line_index":"[% li.id %]",
8030             "identifiers":[   [%-# li.isbns = helpers.get_li_isbns(li.attributes) %]
8031             [% FOR isbn IN helpers.get_li_isbns(li.attributes) -%]
8032                 [% IF isbn.length == 13 -%]
8033                 {"id-qualifier":"EN","id":"[% isbn %]"},
8034                 [% ELSE -%]
8035                 {"id-qualifier":"IB","id":"[% isbn %]"},
8036                 [%- END %]
8037             [% END %]
8038                 {"id-qualifier":"IN","id":"[% li.id %]"}
8039             ],
8040             "price":[% li.estimated_unit_price || '0.00' %],
8041             "desc":[
8042                 {"BTI":"[% helpers.get_li_attr_jedi('title',     '', li.attributes) %]"},
8043                 {"BPU":"[% helpers.get_li_attr_jedi('publisher', '', li.attributes) %]"},
8044                 {"BPD":"[% helpers.get_li_attr_jedi('pubdate',   '', li.attributes) %]"},
8045                 {"BPH":"[% helpers.get_li_attr_jedi('pagination','', li.attributes) %]"}
8046             ],
8047             [%- ftx_vals = []; 
8048                 FOR note IN li.lineitem_notes; 
8049                     NEXT UNLESS note.vendor_public == 't'; 
8050                     ftx_vals.push(note.value); 
8051                 END; 
8052                 IF xtra_ftx;           ftx_vals.unshift(xtra_ftx); END; 
8053                 IF ftx_vals.size == 0; ftx_vals.unshift('');       END;  # BT needs FTX+LIN for every LI, even if it is an empty one
8054             -%]
8055
8056             "free-text":[ 
8057                 [% FOR note IN ftx_vals -%] "[% note %]"[% UNLESS loop.last %], [% END %][% END %] 
8058             ],            
8059             "quantity":[% li.lineitem_details.size %]
8060         }[% UNLESS loop.last %],[% END %]
8061         [%-# TODO: lineitem details (later) -%]
8062         [% END %]
8063         ],
8064         "line_items":[% target.lineitems.size %]
8065      }]  [%# close ORDERS array %]
8066    }]    [%# close  body  array %]
8067 }
8068 [% END %]
8069 [% tempo = PROCESS big_block; helpers.escape_json(tempo) %]
8070 $$
8071 );
8072
8073 INSERT INTO action_trigger.environment (event_def, path) VALUES 
8074   (23, 'lineitems.attributes'), 
8075   (23, 'lineitems.lineitem_details'), 
8076   (23, 'lineitems.lineitem_notes'), 
8077   (23, 'ordering_agency.mailing_address'), 
8078   (23, 'provider'),
8079   (23, 'provider.edi_default');
8080
8081 INSERT INTO action_trigger.reactor (module, description) VALUES (
8082     'AstCall', 'Possibly place a phone call with Asterisk'
8083 );
8084
8085 INSERT INTO
8086     action_trigger.event_definition (
8087         id, active, owner, name, hook, validator, reactor,
8088         cleanup_success, cleanup_failure, delay, delay_field, group_field,
8089         max_delay, granularity, usr_field, opt_in_setting, template
8090     ) VALUES (
8091         24,
8092         FALSE,
8093         1,
8094         'Telephone Overdue Notice',
8095         'checkout.due', 'NOOP_True', 'AstCall',
8096         DEFAULT, DEFAULT, '5 seconds', 'due_date', 'usr',
8097         DEFAULT, DEFAULT, DEFAULT, DEFAULT,
8098         $$
8099 [% phone = target.0.usr.day_phone | replace('[\s\-\(\)]', '') -%]
8100 [% IF phone.match('^[2-9]') %][% country = 1 %][% ELSE %][% country = '' %][% END -%]
8101 Channel: [% channel_prefix %]/[% country %][% phone %]
8102 Context: overdue-test
8103 MaxRetries: 1
8104 RetryTime: 60
8105 WaitTime: 30
8106 Extension: 10
8107 Archive: 1
8108 Set: eg_user_id=[% target.0.usr.id %]
8109 Set: items=[% target.size %]
8110 Set: titlestring=[% titles = [] %][% FOR circ IN target %][% titles.push(circ.target_copy.call_number.record.simple_record.title) %][% END %][% titles.join(". ") %]
8111 $$
8112     );
8113
8114 INSERT INTO
8115     action_trigger.environment (id, event_def, path)
8116     VALUES
8117         (DEFAULT, 24, 'target_copy.call_number.record.simple_record'),
8118         (DEFAULT, 24, 'usr')
8119     ;
8120
8121 -- 0285.data.history_format.sql
8122
8123 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8124         'circ.format.history.email',
8125         'circ', 
8126         oils_i18n_gettext(
8127             'circ.format.history.email',
8128             'An email has been requested for a circ history.',
8129             'ath',
8130             'description'
8131         ), 
8132         FALSE
8133     )
8134     ,(
8135         'circ.format.history.print',
8136         'circ', 
8137         oils_i18n_gettext(
8138             'circ.format.history.print',
8139             'A circ history needs to be formatted for printing.',
8140             'ath',
8141             'description'
8142         ), 
8143         FALSE
8144     )
8145     ,(
8146         'ahr.format.history.email',
8147         'ahr', 
8148         oils_i18n_gettext(
8149             'ahr.format.history.email',
8150             'An email has been requested for a hold request history.',
8151             'ath',
8152             'description'
8153         ), 
8154         FALSE
8155     )
8156     ,(
8157         'ahr.format.history.print',
8158         'ahr', 
8159         oils_i18n_gettext(
8160             'ahr.format.history.print',
8161             'A hold request history needs to be formatted for printing.',
8162             'ath',
8163             'description'
8164         ), 
8165         FALSE
8166     )
8167
8168 ;
8169
8170 INSERT INTO action_trigger.event_definition (
8171         id,
8172         active,
8173         owner,
8174         name,
8175         hook,
8176         validator,
8177         reactor,
8178         group_field,
8179         granularity,
8180         template
8181     ) VALUES (
8182         25,
8183         TRUE,
8184         1,
8185         'circ.history.email',
8186         'circ.format.history.email',
8187         'NOOP_True',
8188         'SendEmail',
8189         'usr',
8190         NULL,
8191 $$
8192 [%- USE date -%]
8193 [%- SET user = target.0.usr -%]
8194 To: [%- params.recipient_email || user.email %]
8195 From: [%- params.sender_email || default_sender %]
8196 Subject: Circulation History
8197
8198     [% FOR circ IN target %]
8199             [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
8200             Barcode: [% circ.target_copy.barcode %]
8201             Checked Out: [% date.format(helpers.format_date(circ.xact_start), '%Y-%m-%d') %]
8202             Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
8203             Returned: [% date.format(helpers.format_date(circ.checkin_time), '%Y-%m-%d') %]
8204     [% END %]
8205 $$
8206     )
8207     ,(
8208         26,
8209         TRUE,
8210         1,
8211         'circ.history.print',
8212         'circ.format.history.print',
8213         'NOOP_True',
8214         'ProcessTemplate',
8215         'usr',
8216         'print-on-demand',
8217 $$
8218 [%- USE date -%]
8219 <div>
8220     <style> li { padding: 8px; margin 5px; }</style>
8221     <div>[% date.format %]</div>
8222     <br/>
8223
8224     [% user.family_name %], [% user.first_given_name %]
8225     <ol>
8226     [% FOR circ IN target %]
8227         <li>
8228             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
8229             <div>Barcode: [% circ.target_copy.barcode %]</div>
8230             <div>Checked Out: [% date.format(helpers.format_date(circ.xact_start), '%Y-%m-%d') %]</div>
8231             <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
8232             <div>Returned: [% date.format(helpers.format_date(circ.checkin_time), '%Y-%m-%d') %]</div>
8233         </li>
8234     [% END %]
8235     </ol>
8236 </div>
8237 $$
8238     )
8239     ,(
8240         27,
8241         TRUE,
8242         1,
8243         'ahr.history.email',
8244         'ahr.format.history.email',
8245         'NOOP_True',
8246         'SendEmail',
8247         'usr',
8248         NULL,
8249 $$
8250 [%- USE date -%]
8251 [%- SET user = target.0.usr -%]
8252 To: [%- params.recipient_email || user.email %]
8253 From: [%- params.sender_email || default_sender %]
8254 Subject: Hold Request History
8255
8256     [% FOR hold IN target %]
8257             [% helpers.get_copy_bib_basics(hold.current_copy.id).title %]
8258             Requested: [% date.format(helpers.format_date(hold.request_time), '%Y-%m-%d') %]
8259             [% IF hold.fulfillment_time %]Fulfilled: [% date.format(helpers.format_date(hold.fulfillment_time), '%Y-%m-%d') %][% END %]
8260     [% END %]
8261 $$
8262     )
8263     ,(
8264         28,
8265         TRUE,
8266         1,
8267         'ahr.history.print',
8268         'ahr.format.history.print',
8269         'NOOP_True',
8270         'ProcessTemplate',
8271         'usr',
8272         'print-on-demand',
8273 $$
8274 [%- USE date -%]
8275 <div>
8276     <style> li { padding: 8px; margin 5px; }</style>
8277     <div>[% date.format %]</div>
8278     <br/>
8279
8280     [% user.family_name %], [% user.first_given_name %]
8281     <ol>
8282     [% FOR hold IN target %]
8283         <li>
8284             <div>[% helpers.get_copy_bib_basics(hold.current_copy.id).title %]</div>
8285             <div>Requested: [% date.format(helpers.format_date(hold.request_time), '%Y-%m-%d') %]</div>
8286             [% IF hold.fulfillment_time %]<div>Fulfilled: [% date.format(helpers.format_date(hold.fulfillment_time), '%Y-%m-%d') %]</div>[% END %]
8287         </li>
8288     [% END %]
8289     </ol>
8290 </div>
8291 $$
8292     )
8293
8294 ;
8295
8296 INSERT INTO action_trigger.environment (
8297         event_def,
8298         path
8299     ) VALUES 
8300          ( 25, 'target_copy')
8301         ,( 25, 'usr' )
8302         ,( 26, 'target_copy' )
8303         ,( 26, 'usr' )
8304         ,( 27, 'current_copy' )
8305         ,( 27, 'usr' )
8306         ,( 28, 'current_copy' )
8307         ,( 28, 'usr' )
8308 ;
8309
8310 -- 0289.data.payment_receipt_format.sql
8311 -- 0326.data.payment_receipt_format.sql
8312
8313 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8314         'money.format.payment_receipt.email',
8315         'mp', 
8316         oils_i18n_gettext(
8317             'money.format.payment_receipt.email',
8318             'An email has been requested for a payment receipt.',
8319             'ath',
8320             'description'
8321         ), 
8322         FALSE
8323     )
8324     ,(
8325         'money.format.payment_receipt.print',
8326         'mp', 
8327         oils_i18n_gettext(
8328             'money.format.payment_receipt.print',
8329             'A payment receipt needs to be formatted for printing.',
8330             'ath',
8331             'description'
8332         ), 
8333         FALSE
8334     )
8335 ;
8336
8337 INSERT INTO action_trigger.event_definition (
8338         id,
8339         active,
8340         owner,
8341         name,
8342         hook,
8343         validator,
8344         reactor,
8345         group_field,
8346         granularity,
8347         template
8348     ) VALUES (
8349         29,
8350         TRUE,
8351         1,
8352         'money.payment_receipt.email',
8353         'money.format.payment_receipt.email',
8354         'NOOP_True',
8355         'SendEmail',
8356         'xact.usr',
8357         NULL,
8358 $$
8359 [%- USE date -%]
8360 [%- SET user = target.0.xact.usr -%]
8361 To: [%- params.recipient_email || user.email %]
8362 From: [%- params.sender_email || default_sender %]
8363 Subject: Payment Receipt
8364
8365 [% date.format -%]
8366 [%- SET xact_mp_hash = {} -%]
8367 [%- FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions -%]
8368     [%- SET xact_id = mp.xact.id -%]
8369     [%- IF ! xact_mp_hash.defined( xact_id ) -%][%- xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } -%][%- END -%]
8370     [%- xact_mp_hash.$xact_id.payments.push(mp) -%]
8371 [%- END -%]
8372 [%- FOR xact_id IN xact_mp_hash.keys.sort -%]
8373     [%- SET xact = xact_mp_hash.$xact_id.xact %]
8374 Transaction ID: [% xact_id %]
8375     [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %]
8376     [% ELSE %]Miscellaneous
8377     [% END %]
8378     Line item billings:
8379         [%- SET mb_type_hash = {} -%]
8380         [%- FOR mb IN xact.billings %][%# Group billings by their btype -%]
8381             [%- IF mb.voided == 'f' -%]
8382                 [%- SET mb_type = mb.btype.id -%]
8383                 [%- IF ! mb_type_hash.defined( mb_type ) -%][%- mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } -%][%- END -%]
8384                 [%- IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) -%][%- mb_type_hash.$mb_type.first_ts = mb.billing_ts -%][%- END -%]
8385                 [%- mb_type_hash.$mb_type.last_ts = mb.billing_ts -%]
8386                 [%- mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount -%]
8387                 [%- mb_type_hash.$mb_type.billings.push( mb ) -%]
8388             [%- END -%]
8389         [%- END -%]
8390         [%- FOR mb_type IN mb_type_hash.keys.sort -%]
8391             [%- IF mb_type == 1 %][%-# Consolidated view of overdue billings -%]
8392                 $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] 
8393                     on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %]
8394             [%- ELSE -%][%# all other billings show individually %]
8395                 [% FOR mb IN mb_type_hash.$mb_type.billings %]
8396                     $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %]
8397                 [% END %]
8398             [% END %]
8399         [% END %]
8400     Line item payments:
8401         [% FOR mp IN xact_mp_hash.$xact_id.payments %]
8402             Payment ID: [% mp.id %]
8403                 Paid [% mp.amount %] via [% SWITCH mp.payment_type -%]
8404                     [% CASE "cash_payment" %]cash
8405                     [% CASE "check_payment" %]check
8406                     [% CASE "credit_card_payment" %]credit card (
8407                         [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%]
8408                         [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] 
8409                         [% cc_chunks.last -%]
8410                         exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%]
8411                     )
8412                     [% CASE "credit_payment" %]credit
8413                     [% CASE "forgive_payment" %]forgiveness
8414                     [% CASE "goods_payment" %]goods
8415                     [% CASE "work_payment" %]work
8416                 [%- END %] on [% mp.payment_ts %] [% mp.note %]
8417         [% END %]
8418 [% END %]
8419 $$
8420     )
8421     ,(
8422         30,
8423         TRUE,
8424         1,
8425         'money.payment_receipt.print',
8426         'money.format.payment_receipt.print',
8427         'NOOP_True',
8428         'ProcessTemplate',
8429         'xact.usr',
8430         'print-on-demand',
8431 $$
8432 [%- USE date -%][%- SET user = target.0.xact.usr -%]
8433 <div style="li { padding: 8px; margin 5px; }">
8434     <div>[% date.format %]</div><br/>
8435     <ol>
8436     [% SET xact_mp_hash = {} %]
8437     [% FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions %]
8438         [% SET xact_id = mp.xact.id %]
8439         [% IF ! xact_mp_hash.defined( xact_id ) %][% xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } %][% END %]
8440         [% xact_mp_hash.$xact_id.payments.push(mp) %]
8441     [% END %]
8442     [% FOR xact_id IN xact_mp_hash.keys.sort %]
8443         [% SET xact = xact_mp_hash.$xact_id.xact %]
8444         <li>Transaction ID: [% xact_id %]
8445             [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %]
8446             [% ELSE %]Miscellaneous
8447             [% END %]
8448             Line item billings:<ol>
8449                 [% SET mb_type_hash = {} %]
8450                 [% FOR mb IN xact.billings %][%# Group billings by their btype %]
8451                     [% IF mb.voided == 'f' %]
8452                         [% SET mb_type = mb.btype.id %]
8453                         [% IF ! mb_type_hash.defined( mb_type ) %][% mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } %][% END %]
8454                         [% IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) %][% mb_type_hash.$mb_type.first_ts = mb.billing_ts %][% END %]
8455                         [% mb_type_hash.$mb_type.last_ts = mb.billing_ts %]
8456                         [% mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount %]
8457                         [% mb_type_hash.$mb_type.billings.push( mb ) %]
8458                     [% END %]
8459                 [% END %]
8460                 [% FOR mb_type IN mb_type_hash.keys.sort %]
8461                     <li>[% IF mb_type == 1 %][%# Consolidated view of overdue billings %]
8462                         $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] 
8463                             on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %]
8464                     [% ELSE %][%# all other billings show individually %]
8465                         [% FOR mb IN mb_type_hash.$mb_type.billings %]
8466                             $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %]
8467                         [% END %]
8468                     [% END %]</li>
8469                 [% END %]
8470             </ol>
8471             Line item payments:<ol>
8472                 [% FOR mp IN xact_mp_hash.$xact_id.payments %]
8473                     <li>Payment ID: [% mp.id %]
8474                         Paid [% mp.amount %] via [% SWITCH mp.payment_type -%]
8475                             [% CASE "cash_payment" %]cash
8476                             [% CASE "check_payment" %]check
8477                             [% CASE "credit_card_payment" %]credit card (
8478                                 [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%]
8479                                 [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] 
8480                                 [% cc_chunks.last -%]
8481                                 exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%]
8482                             )
8483                             [% CASE "credit_payment" %]credit
8484                             [% CASE "forgive_payment" %]forgiveness
8485                             [% CASE "goods_payment" %]goods
8486                             [% CASE "work_payment" %]work
8487                         [%- END %] on [% mp.payment_ts %] [% mp.note %]
8488                     </li>
8489                 [% END %]
8490             </ol>
8491         </li>
8492     [% END %]
8493     </ol>
8494 </div>
8495 $$
8496     )
8497 ;
8498
8499 INSERT INTO action_trigger.environment (
8500         event_def,
8501         path
8502     ) VALUES -- for fleshing mp objects
8503          ( 29, 'xact')
8504         ,( 29, 'xact.usr')
8505         ,( 29, 'xact.grocery' )
8506         ,( 29, 'xact.circulation' )
8507         ,( 29, 'xact.summary' )
8508         ,( 29, 'credit_card_payment')
8509         ,( 29, 'xact.billings')
8510         ,( 29, 'xact.billings.btype')
8511         ,( 30, 'xact')
8512         ,( 30, 'xact.usr')
8513         ,( 30, 'xact.grocery' )
8514         ,( 30, 'xact.circulation' )
8515         ,( 30, 'xact.summary' )
8516         ,( 30, 'credit_card_payment')
8517         ,( 30, 'xact.billings')
8518         ,( 30, 'xact.billings.btype')
8519 ;
8520
8521 -- 0294.data.bre_format.sql
8522
8523 INSERT INTO container.biblio_record_entry_bucket_type( code, label ) VALUES (
8524     'temp',
8525     oils_i18n_gettext(
8526         'temp',
8527         'Temporary bucket which gets deleted after use.',
8528         'cbrebt',
8529         'label'
8530     )
8531 );
8532
8533 INSERT INTO action_trigger.cleanup ( module, description ) VALUES (
8534     'DeleteTempBiblioBucket',
8535     oils_i18n_gettext(
8536         'DeleteTempBiblioBucket',
8537         'Deletes a cbreb object used as a target if it has a btype of "temp"',
8538         'atclean',
8539         'description'
8540     )
8541 );
8542
8543 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8544         'biblio.format.record_entry.email',
8545         'cbreb', 
8546         oils_i18n_gettext(
8547             'biblio.format.record_entry.email',
8548             'An email has been requested for one or more biblio record entries.',
8549             'ath',
8550             'description'
8551         ), 
8552         FALSE
8553     )
8554     ,(
8555         'biblio.format.record_entry.print',
8556         'cbreb', 
8557         oils_i18n_gettext(
8558             'biblio.format.record_entry.print',
8559             'One or more biblio record entries need to be formatted for printing.',
8560             'ath',
8561             'description'
8562         ), 
8563         FALSE
8564     )
8565 ;
8566
8567 INSERT INTO action_trigger.event_definition (
8568         id,
8569         active,
8570         owner,
8571         name,
8572         hook,
8573         validator,
8574         reactor,
8575         cleanup_success,
8576         cleanup_failure,
8577         group_field,
8578         granularity,
8579         delay,
8580         template
8581     ) VALUES (
8582         31,
8583         TRUE,
8584         1,
8585         'biblio.record_entry.email',
8586         'biblio.format.record_entry.email',
8587         'NOOP_True',
8588         'SendEmail',
8589         'DeleteTempBiblioBucket',
8590         'DeleteTempBiblioBucket',
8591         'owner',
8592         NULL,
8593         '00:00:00',
8594 $$
8595 [%- SET user = target.0.owner -%]
8596 To: [%- params.recipient_email || user.email %]
8597 From: [%- params.sender_email || default_sender %]
8598 Subject: Bibliographic Records
8599
8600 [% FOR cbreb IN target %]
8601 [% FOR item IN cbreb.items;
8602     bre_id = item.target_biblio_record_entry;
8603
8604     bibxml = helpers.unapi_bre(bre_id, {flesh => '{mra}'});
8605     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
8606         title = title _ part.textContent;
8607     END;
8608
8609     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
8610     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
8611     publisher = bibxml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent;
8612     pubdate = bibxml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent;
8613     isbn = bibxml.findnodes('//*[@tag="020"]/*[@code="a"]').textContent;
8614     issn = bibxml.findnodes('//*[@tag="022"]/*[@code="a"]').textContent;
8615     upc = bibxml.findnodes('//*[@tag="024"]/*[@code="a"]').textContent;
8616 %]
8617
8618 [% loop.count %]/[% loop.size %].  Bib ID# [% bre_id %] 
8619 [% IF isbn %]ISBN: [% isbn _ "\n" %][% END -%]
8620 [% IF issn %]ISSN: [% issn _ "\n" %][% END -%]
8621 [% IF upc  %]UPC:  [% upc _ "\n" %] [% END -%]
8622 Title: [% title %]
8623 Author: [% author %]
8624 Publication Info: [% publisher %] [% pubdate %]
8625 Item Type: [% item_type %]
8626
8627 [% END %]
8628 [% END %]
8629 $$
8630     )
8631     ,(
8632         32,
8633         TRUE,
8634         1,
8635         'biblio.record_entry.print',
8636         'biblio.format.record_entry.print',
8637         'NOOP_True',
8638         'ProcessTemplate',
8639         'DeleteTempBiblioBucket',
8640         'DeleteTempBiblioBucket',
8641         'owner',
8642         'print-on-demand',
8643         '00:00:00',
8644 $$
8645 <div>
8646     <style> li { padding: 8px; margin 5px; }</style>
8647     <ol>
8648     [% FOR cbreb IN target %]
8649     [% FOR item IN cbreb.items;
8650         bre_id = item.target_biblio_record_entry;
8651
8652         bibxml = helpers.unapi_bre(bre_id, {flesh => '{mra}'});
8653         FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
8654             title = title _ part.textContent;
8655         END;
8656
8657         author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
8658         item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
8659         publisher = bibxml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent;
8660         pubdate = bibxml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent;
8661         isbn = bibxml.findnodes('//*[@tag="020"]/*[@code="a"]').textContent;
8662         %]
8663
8664         <li>
8665             Bib ID# [% bre_id %] ISBN: [% isbn %]<br />
8666             Title: [% title %]<br />
8667             Author: [% author %]<br />
8668             Publication Info: [% publisher %] [% pubdate %]<br/>
8669             Item Type: [% item_type %]
8670         </li>
8671     [% END %]
8672     [% END %]
8673     </ol>
8674 </div>
8675 $$
8676     )
8677 ;
8678
8679 INSERT INTO action_trigger.environment (
8680         event_def,
8681         path
8682     ) VALUES -- for fleshing cbreb objects
8683          ( 31, 'owner' )
8684         ,( 31, 'items' )
8685         ,( 32, 'items' )
8686 ;
8687
8688 INSERT INTO acq.invoice_item_type (code,name) VALUES ('TAX',oils_i18n_gettext('TAX', 'Tax', 'aiit', 'name'));
8689 INSERT INTO acq.invoice_item_type (code,name) VALUES ('PRO',oils_i18n_gettext('PRO', 'Processing Fee', 'aiit', 'name'));
8690 INSERT INTO acq.invoice_item_type (code,name) VALUES ('SHP',oils_i18n_gettext('SHP', 'Shipping Charge', 'aiit', 'name'));
8691 INSERT INTO acq.invoice_item_type (code,name) VALUES ('HND',oils_i18n_gettext('HND', 'Handling Charge', 'aiit', 'name'));
8692 INSERT INTO acq.invoice_item_type (code,name) VALUES ('ITM',oils_i18n_gettext('ITM', 'Non-library Item', 'aiit', 'name'));
8693 INSERT INTO acq.invoice_item_type (code,name) VALUES ('SUB',oils_i18n_gettext('SUB', 'Serial Subscription', 'aiit', 'name'));
8694
8695 INSERT INTO acq.invoice_method (code,name) VALUES ('EDI',oils_i18n_gettext('EDI', 'EDI', 'acqim', 'name'));
8696 INSERT INTO acq.invoice_method (code,name) VALUES ('PPR',oils_i18n_gettext('PPR', 'Paper', 'acqit', 'name'));
8697
8698 INSERT INTO acq.cancel_reason ( id, org_unit, label, description ) VALUES (
8699     1, 1, 'invalid_isbn', oils_i18n_gettext( 1, 'ISBN is unrecognizable', 'acqcr', 'label' ));
8700 INSERT INTO acq.cancel_reason ( id, org_unit, label, description ) VALUES (
8701     2, 1, 'postpone', oils_i18n_gettext( 2, 'Title has been postponed', 'acqcr', 'label' ));
8702 INSERT INTO acq.cancel_reason ( id, org_unit, label, description, keep_debits ) VALUES (
8703     3, 1, 'delivered_but_lost',
8704         oils_i18n_gettext( 2, 'Delivered but not received; presumed lost', 'acqcr', 'label' ), TRUE );
8705
8706 INSERT INTO acq.cancel_reason (keep_debits, id, org_unit, label, description) VALUES 
8707 ('f',(  2+1000), 1, 'Deleted',   'The information is to be or has been deleted.'),
8708 ('t',(  3+1000), 1, 'Changed',   'The information is to be or has been changed.'),
8709 ('t',(  4+1000), 1, 'No action',                  'This line item is not affected by the actual message.'),
8710 ('t',(  5+1000), 1, 'Accepted without amendment', 'This line item is entirely accepted by the seller.'),
8711 ('f',( 10+1000), 1, 'Not found',   'This line item is not found in the referenced message.'),
8712 ('t',( 24+1000), 1, 'Accepted with amendment, no confirmation required', 'Accepted with changes which require no confirmation.');
8713
8714 INSERT INTO acq.cancel_reason (org_unit, keep_debits, id, label, description) VALUES 
8715 (1, 't', 1211, 'Split quantity', 'Part of the whole quantity.'),
8716 (1, 't', 1221, 'Ordered quantity', '[6024] The quantity which has been ordered.'),
8717 (1, 't', 1246, 'Pieces delivered', 'Number of pieces actually received at the final destination.'),
8718 (1, 't', 1283, 'Backorder quantity', 'The quantity of goods that is on back-order.');
8719
8720 INSERT INTO config.global_flag (name, label, enabled)
8721     VALUES (
8722         'circ.holds.usr_not_requestor',
8723         oils_i18n_gettext(
8724             'circ.holds.usr_not_requestor',
8725             'Holds: When testing hold matrix matchpoints, use the profile group of the receiving user instead of that of the requestor (affects staff-placed holds)',
8726             'cgf',
8727             'label'
8728         ),
8729         TRUE
8730     );
8731
8732 INSERT INTO config.global_flag (name, label, enabled)
8733     VALUES (
8734         'circ.holds.empty_issuance_ok',
8735         oils_i18n_gettext(
8736             'circ.holds.empty_issuance_ok',
8737             'Holds: Allow holds on empty issuances',
8738             'cgf',
8739             'label'
8740         ),
8741         TRUE
8742     );
8743
8744 INSERT INTO config.global_flag (name, label) -- defaults to enabled=FALSE
8745     VALUES (
8746         'ingest.disable_authority_linking',
8747         oils_i18n_gettext(
8748             'ingest.disable_authority_linking',
8749             'Authority Automation: Disable bib-authority link tracking',
8750             'cgf', 
8751             'label'
8752         )
8753     );
8754
8755 INSERT INTO config.global_flag (name, label) -- defaults to enabled=FALSE
8756     VALUES (
8757         'ingest.disable_authority_auto_update',
8758         oils_i18n_gettext(
8759             'ingest.disable_authority_auto_update',
8760             'Authority Automation: Disable automatic authority updating (requires link tracking)',
8761             'cgf', 
8762             'label'
8763         )
8764     );
8765
8766 INSERT INTO config.global_flag (name, label, enabled)
8767     VALUES (
8768         'cat.bib.use_id_for_tcn',
8769         oils_i18n_gettext(
8770             'cat.bib.use_id_for_tcn',
8771             'Cat: Use Internal ID for TCN Value',
8772             'cgf', 
8773             'label'
8774         ),
8775         TRUE
8776     );
8777
8778 INSERT INTO config.global_flag (name,label,enabled)
8779     VALUES (
8780         'history.circ.retention_age',
8781         oils_i18n_gettext('history.circ.retention_age', 'Historical Circulation Retention Age', 'cgf', 'label'),
8782         TRUE
8783     ),(
8784         'history.circ.retention_count',
8785         oils_i18n_gettext('history.circ.retention_count', 'Historical Circulations per Copy', 'cgf', 'label'),
8786         TRUE
8787     );
8788
8789 INSERT INTO config.global_flag (name, label, enabled)
8790     VALUES (
8791         'cat.maintain_control_numbers',
8792         oils_i18n_gettext(
8793             'cat.maintain_control_numbers',
8794             'Cat: Maintain 001/003/035 according to the MARC21 specification',
8795             'cgf', 
8796             'label'
8797         ),
8798         TRUE
8799     );
8800
8801 INSERT INTO config.global_flag (name, label, enabled)
8802     VALUES (
8803         'circ.opac_renewal.use_original_circ_lib',
8804         oils_i18n_gettext(
8805             'circ.opac_renewal.use_original_circ_lib',
8806             'Circ: Use original circulation library on opac renewal instead of user home library',
8807             'cgf',
8808             'label'
8809         ),
8810         FALSE
8811     );
8812
8813 INSERT INTO config.global_flag (name, label, value, enabled)
8814     VALUES (
8815         'opac.use_autosuggest',
8816         oils_i18n_gettext(
8817             'opac.use_autosuggest',
8818             '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)',
8819             'cgf',
8820             'label'
8821         ),
8822         'opac_visible',
8823         TRUE
8824     );
8825
8826
8827 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
8828     VALUES (
8829         'history.circ.retention_age',
8830         TRUE,
8831         oils_i18n_gettext('history.circ.retention_age','Historical Circulation Retention Age','cust','label'),
8832         oils_i18n_gettext('history.circ.retention_age','Historical Circulation Retention Age','cust','description'),
8833         'interval'
8834     ),(
8835         'history.circ.retention_start',
8836         FALSE,
8837         oils_i18n_gettext('history.circ.retention_start','Historical Circulation Retention Start Date','cust','label'),
8838         oils_i18n_gettext('history.circ.retention_start','Historical Circulation Retention Start Date','cust','description'),
8839         'date'
8840     );
8841
8842 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
8843     VALUES (
8844         'history.hold.retention_age',
8845         TRUE,
8846         oils_i18n_gettext('history.hold.retention_age','Historical Hold Retention Age','cust','label'),
8847         oils_i18n_gettext('history.hold.retention_age','Historical Hold Retention Age','cust','description'),
8848         'interval'
8849     ),(
8850         'history.hold.retention_start',
8851         TRUE,
8852         oils_i18n_gettext('history.hold.retention_start','Historical Hold Retention Start Date','cust','label'),
8853         oils_i18n_gettext('history.hold.retention_start','Historical Hold Retention Start Date','cust','description'),
8854         'interval'
8855     ),(
8856         'history.hold.retention_count',
8857         TRUE,
8858         oils_i18n_gettext('history.hold.retention_count','Historical Hold Retention Count','cust','label'),
8859         oils_i18n_gettext('history.hold.retention_count','Historical Hold Retention Count','cust','description'),
8860         'integer'
8861     );
8862
8863 -- 0311.data.query-seed-datatypes.sql
8864 -- Define the most common datatypes in query.datatype.  Note that none of
8865 -- these stock datatypes specifies a width or precision.
8866
8867 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8868   VALUES (1, 'SMALLINT', true);
8869  
8870 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8871   VALUES (2, 'INTEGER', true);
8872  
8873 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8874   VALUES (3, 'BIGINT', true);
8875  
8876 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8877   VALUES (4, 'DECIMAL', true);
8878  
8879 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8880   VALUES (5, 'NUMERIC', true);
8881  
8882 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8883   VALUES (6, 'REAL', true);
8884  
8885 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8886   VALUES (7, 'DOUBLE PRECISION', true);
8887  
8888 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8889   VALUES (8, 'SERIAL', true);
8890  
8891 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8892   VALUES (9, 'BIGSERIAL', true);
8893  
8894 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8895   VALUES (10, 'MONEY', false);
8896  
8897 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8898   VALUES (11, 'VARCHAR', false);
8899  
8900 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8901   VALUES (12, 'CHAR', false);
8902  
8903 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8904   VALUES (13, 'TEXT', false);
8905  
8906 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8907   VALUES (14, '"char"', false);
8908  
8909 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8910   VALUES (15, 'NAME', false);
8911  
8912 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8913   VALUES (16, 'BYTEA', false);
8914  
8915 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8916   VALUES (17, 'TIMESTAMP WITHOUT TIME ZONE', false);
8917  
8918 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8919   VALUES (18, 'TIMESTAMP WITH TIME ZONE', false);
8920  
8921 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8922   VALUES (19, 'DATE', false);
8923  
8924 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8925   VALUES (20, 'TIME WITHOUT TIME ZONE', false);
8926  
8927 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8928   VALUES (21, 'TIME WITH TIME ZONE', false);
8929  
8930 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8931   VALUES (22, 'INTERVAL', false);
8932  
8933 INSERT INTO query.datatype (id, datatype_name, is_numeric )
8934   VALUES (23, 'BOOLEAN', false);
8935
8936 INSERT INTO config.usr_setting_type (name, opac_visible, label, description, datatype) 
8937     VALUES (
8938         'opac.default_sort',
8939         TRUE,
8940         oils_i18n_gettext(
8941             'opac.default_sort',
8942             'OPAC Default Search Sort',
8943             'cust',
8944             'label'
8945         ),
8946         oils_i18n_gettext(
8947             'opac.default_sort',
8948             'OPAC Default Search Sort',
8949             'cust',
8950             'description'
8951         ),
8952         'string'
8953     );
8954
8955 -- 0355.data.missing_pieces_format.sql
8956
8957 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES 
8958     (   'circ.format.missing_pieces.slip.print',
8959         'circ', 
8960         oils_i18n_gettext(
8961             'circ.format.missing_pieces.slip.print',
8962             'A missing pieces slip needs to be formatted for printing.',
8963             'ath',
8964             'description'
8965         ), 
8966         FALSE
8967     )
8968     ,(  'circ.format.missing_pieces.letter.print',
8969         'circ', 
8970         oils_i18n_gettext(
8971             'circ.format.missing_pieces.letter.print',
8972             'A missing pieces patron letter needs to be formatted for printing.',
8973             'ath',
8974             'description'
8975         ), 
8976         FALSE
8977     )
8978 ;
8979
8980 INSERT INTO action_trigger.event_definition (
8981         id,
8982         active,
8983         owner,
8984         name,
8985         hook,
8986         validator,
8987         reactor,
8988         group_field,
8989         granularity,
8990         template
8991     ) VALUES (
8992         33,
8993         TRUE,
8994         1,
8995         'circ.missing_pieces.slip.print',
8996         'circ.format.missing_pieces.slip.print',
8997         'NOOP_True',
8998         'ProcessTemplate',
8999         'usr',
9000         'print-on-demand',
9001 $$
9002 [%- USE date -%]
9003 [%- SET user = target.0.usr -%]
9004 <div style="li { padding: 8px; margin 5px; }">
9005     <div>[% date.format %]</div><br/>
9006     Missing pieces for:
9007     <ol>
9008     [% FOR circ IN target %]
9009         <li>Barcode: [% circ.target_copy.barcode %] Transaction ID: [% circ.id %] Due: [% circ.due_date.format %]<br />
9010             [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
9011         </li>
9012     [% END %]
9013     </ol>
9014 </div>
9015 $$
9016     )
9017     ,(
9018         34,
9019         TRUE,
9020         1,
9021         'circ.missing_pieces.letter.print',
9022         'circ.format.missing_pieces.letter.print',
9023         'NOOP_True',
9024         'ProcessTemplate',
9025         'usr',
9026         'print-on-demand',
9027 $$
9028 [%- USE date -%]
9029 [%- SET user = target.0.usr -%]
9030 [% date.format %]
9031 Dear [% user.prefix %] [% user.first_given_name %] [% user.family_name %],
9032
9033 We are missing pieces for the following returned items:
9034 [% FOR circ IN target %]
9035 Barcode: [% circ.target_copy.barcode %] Transaction ID: [% circ.id %] Due: [% circ.due_date.format %]
9036 [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
9037 [% END %]
9038
9039 Please return these pieces as soon as possible.
9040
9041 Thanks!
9042
9043 Library Staff
9044 $$
9045     )
9046 ;
9047
9048 INSERT INTO action_trigger.environment (
9049         event_def,
9050         path
9051     ) VALUES -- for fleshing circ objects
9052          ( 33, 'usr')
9053         ,( 33, 'target_copy')
9054         ,( 33, 'target_copy.circ_lib')
9055         ,( 33, 'target_copy.circ_lib.mailing_address')
9056         ,( 33, 'target_copy.circ_lib.billing_address')
9057         ,( 33, 'target_copy.call_number')
9058         ,( 33, 'target_copy.call_number.owning_lib')
9059         ,( 33, 'target_copy.call_number.owning_lib.mailing_address')
9060         ,( 33, 'target_copy.call_number.owning_lib.billing_address')
9061         ,( 33, 'circ_lib')
9062         ,( 33, 'circ_lib.mailing_address')
9063         ,( 33, 'circ_lib.billing_address')
9064         ,( 34, 'usr')
9065         ,( 34, 'target_copy')
9066         ,( 34, 'target_copy.circ_lib')
9067         ,( 34, 'target_copy.circ_lib.mailing_address')
9068         ,( 34, 'target_copy.circ_lib.billing_address')
9069         ,( 34, 'target_copy.call_number')
9070         ,( 34, 'target_copy.call_number.owning_lib')
9071         ,( 34, 'target_copy.call_number.owning_lib.mailing_address')
9072         ,( 34, 'target_copy.call_number.owning_lib.billing_address')
9073         ,( 34, 'circ_lib')
9074         ,( 34, 'circ_lib.mailing_address')
9075         ,( 34, 'circ_lib.billing_address')
9076 ;
9077
9078 -- 0384.data.hold_pull_list_template.sql
9079
9080 INSERT INTO action_trigger.hook (key,core_type,description,passive) 
9081     VALUES (   
9082         'ahr.format.pull_list',
9083         'ahr', 
9084         oils_i18n_gettext(
9085             'ahr.format.pull_list',
9086             'Format holds pull list for printing',
9087             'ath',
9088             'description'
9089         ), 
9090         FALSE
9091     );
9092
9093 INSERT INTO action_trigger.event_definition (
9094         id,
9095         active,
9096         owner,
9097         name,
9098         hook,
9099         validator,
9100         reactor,
9101         group_field,
9102         granularity,
9103         template
9104     ) VALUES (
9105         35,
9106         TRUE,
9107         1,
9108         'Holds Pull List',
9109         'ahr.format.pull_list',
9110         'NOOP_True',
9111         'ProcessTemplate',
9112         'pickup_lib',
9113         'print-on-demand',
9114 $$
9115 [%- USE date -%]
9116 <style>
9117     table { border-collapse: collapse; }
9118     td { padding: 5px; border-bottom: 1px solid #888; }
9119     th { font-weight: bold; }
9120 </style>
9121 [%
9122     # Sort the holds into copy-location buckets
9123     # In the main print loop, sort each bucket by callnumber before printing
9124     SET holds_list = [];
9125     SET loc_data = [];
9126     SET current_location = target.0.current_copy.location.id;
9127     FOR hold IN target;
9128         IF current_location != hold.current_copy.location.id;
9129             SET current_location = hold.current_copy.location.id;
9130             holds_list.push(loc_data);
9131             SET loc_data = [];
9132         END;
9133         SET hold_data = {
9134             'hold' => hold,
9135             'callnumber' => hold.current_copy.call_number.label
9136         };
9137         loc_data.push(hold_data);
9138     END;
9139     holds_list.push(loc_data)
9140 %]
9141 <table>
9142     <thead>
9143         <tr>
9144             <th>Title</th>
9145             <th>Author</th>
9146             <th>Shelving Location</th>
9147             <th>Call Number</th>
9148             <th>Barcode/Part</th>
9149             <th>Patron</th>
9150         </tr>
9151     </thead>
9152     <tbody>
9153     [% FOR loc_data IN holds_list  %]
9154         [% FOR hold_data IN loc_data.sort('callnumber') %]
9155             [%
9156                 SET hold = hold_data.hold;
9157                 SET copy_data = helpers.get_copy_bib_basics(hold.current_copy.id);
9158             %]
9159             <tr>
9160                 <td>[% copy_data.title | truncate %]</td>
9161                 <td>[% copy_data.author | truncate %]</td>
9162                 <td>[% hold.current_copy.location.name %]</td>
9163                 <td>[% hold.current_copy.call_number.label %]</td>
9164                 <td>[% hold.current_copy.barcode %]
9165                     [% FOR part IN hold.current_copy.parts %]
9166                        [% part.part.label %]
9167                     [% END %]
9168                 </td>
9169                 <td>[% hold.usr.card.barcode %]</td>
9170             </tr>
9171         [% END %]
9172     [% END %]
9173     <tbody>
9174 </table>
9175 $$
9176 );
9177
9178 INSERT INTO action_trigger.environment (
9179         event_def,
9180         path
9181     ) VALUES
9182         (35, 'current_copy.location'),
9183         (35, 'current_copy.call_number'),
9184         (35, 'usr.card'),
9185         (35, 'pickup_lib'),
9186         (35, 'current_copy.parts'),
9187         (35, 'current_copy.parts.part')
9188 ;
9189
9190 -- 0412.data.trigger.validator.HoldIsCancelled.sql
9191
9192 INSERT INTO action_trigger.validator (module, description) VALUES (
9193     'HoldIsCancelled',
9194     oils_i18n_gettext(
9195         'HoldIsCancelled',
9196         'Check whether a hold request is cancelled.',
9197         'atval',
9198         'description'
9199     )
9200 );
9201
9202 -- 0448.data.trigger.circ.staff_age_to_lost.sql
9203
9204 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES 
9205     (   'circ.staff_age_to_lost',
9206         'circ', 
9207         oils_i18n_gettext(
9208             'circ.staff_age_to_lost',
9209             'An overdue circulation should be aged to a Lost status.',
9210             'ath',
9211             'description'
9212         ), 
9213         TRUE
9214     )
9215 ;
9216
9217 INSERT INTO action_trigger.event_definition (
9218         id,
9219         active,
9220         owner,
9221         name,
9222         hook,
9223         validator,
9224         reactor,
9225         delay_field
9226     ) VALUES (
9227         36,
9228         FALSE,
9229         1,
9230         'circ.staff_age_to_lost',
9231         'circ.staff_age_to_lost',
9232         'CircIsOverdue',
9233         'MarkItemLost',
9234         'due_date'
9235     )
9236 ;
9237
9238 INSERT INTO action_trigger.hook (key,core_type,description)
9239     VALUES ('circ.recall.target', 'circ', 'A checked-out copy has been recalled for a hold.');
9240
9241 INSERT INTO action_trigger.event_definition (id, owner, name, hook, validator, reactor, group_field, template)
9242     VALUES (37, 1, 'Item Recall Email Notice', 'circ.recall.target', 'NOOP_True', 'SendEmail', 'usr', 
9243 $$
9244 [%- USE date -%]
9245 [%- user = target.0.usr -%]
9246 To: [%- params.recipient_email || user.email %]
9247 From: [%- params.sender_email || default_sender %]
9248 Subject: Item Recall Notification 
9249
9250 Dear [% user.family_name %], [% user.first_given_name %]
9251
9252 The following item which you have checked out has been recalled so that
9253 another patron can have access to the item:
9254
9255 [% FOR circ IN target %]
9256     Title: [% circ.target_copy.call_number.record.simple_record.title %] 
9257     Barcode: [% circ.target_copy.barcode %] 
9258     Now Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
9259     Library: [% circ.circ_lib.name %]
9260
9261     If this item is not returned by the new due date, fines will be assessed at
9262     the rate of [% circ.recurring_fine %] every [% circ.fine_interval %].
9263 [% END %]
9264 $$
9265 );
9266
9267 INSERT INTO action_trigger.environment (event_def, path) VALUES
9268     (37, 'target_copy.call_number.record.simple_record'),
9269     (37, 'usr'),
9270     (37, 'circ_lib.billing_address')
9271 ;
9272
9273 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'general.unknown', oils_i18n_gettext('general.unknown', 'Import or Overlay failed', 'vie', 'description') );
9274 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') );
9275 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') );
9276 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') );
9277 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') );
9278 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') );
9279 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') );
9280 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') );
9281 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.xml.malformed', oils_i18n_gettext('import.xml.malformed', 'Malformed record cause Import failure', 'vie', 'description') );
9282 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'overlay.xml.malformed', oils_i18n_gettext('overlay.xml.malformed', 'Malformed record cause Overlay failure', 'vie', 'description') );
9283 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'overlay.record.quality', oils_i18n_gettext('overlay.record.quality', 'New record had insufficient quality', 'vie', 'description') );
9284
9285 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9286     'import.item.invalid.status', oils_i18n_gettext('import.item.invalid.status', 'Invalid value for "status"', 'vie', 'description') );
9287 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9288     'import.item.invalid.price', oils_i18n_gettext('import.item.invalid.price', 'Invalid value for "price"', 'vie', 'description') );
9289 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9290     'import.item.invalid.deposit_amount', oils_i18n_gettext('import.item.invalid.deposit_amount', 'Invalid value for "deposit_amount"', 'vie', 'description') );
9291 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9292     'import.item.invalid.owning_lib', oils_i18n_gettext('import.item.invalid.owning_lib', 'Invalid value for "owning_lib"', 'vie', 'description') );
9293 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9294     'import.item.invalid.circ_lib', oils_i18n_gettext('import.item.invalid.circ_lib', 'Invalid value for "circ_lib"', 'vie', 'description') );
9295 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9296     'import.item.invalid.copy_number', oils_i18n_gettext('import.item.invalid.copy_number', 'Invalid value for "copy_number"', 'vie', 'description') );
9297 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9298     'import.item.invalid.circ_as_type', oils_i18n_gettext('import.item.invalid.circ_as_type', 'Invalid value for "circ_as_type"', 'vie', 'description') );
9299 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9300     'import.record.perm_failure', oils_i18n_gettext('import.record.perm_failure', 'Perm failure creating a record', 'vie', 'description') );
9301
9302 -- Event def for email notice for hold cancelled due to lack of target -----
9303
9304 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, template)
9305     VALUES (38, FALSE, 1, 
9306         'Hold Cancelled (No Target) Email Notification', 
9307         'hold_request.cancel.expire_no_target', 
9308         'HoldIsCancelled', 'SendEmail', '30 minutes', 'cancel_time', 'usr',
9309 $$
9310 [%- USE date -%]
9311 [%- user = target.0.usr -%]
9312 To: [%- params.recipient_email || user.email %]
9313 From: [%- params.sender_email || default_sender %]
9314 Subject: Hold Request Cancelled
9315
9316 Dear [% user.family_name %], [% user.first_given_name %]
9317 The following holds were cancelled because no items were found to fullfil the hold.
9318
9319 [% FOR hold IN target %]
9320     Title: [% hold.bib_rec.bib_record.simple_record.title %]
9321     Author: [% hold.bib_rec.bib_record.simple_record.author %]
9322     Library: [% hold.pickup_lib.name %]
9323     Request Date: [% date.format(helpers.format_date(hold.rrequest_time), '%Y-%m-%d') %]
9324 [% END %]
9325
9326 $$);
9327
9328 INSERT INTO action_trigger.environment (event_def, path) VALUES
9329     (38, 'usr'),
9330     (38, 'pickup_lib'),
9331     (38, 'bib_rec.bib_record.simple_record');
9332
9333 INSERT INTO action_trigger.event_params (event_def, param, value)
9334     VALUES (38, 'check_email_notify', 1);
9335
9336 ----------------------------------------------------------------
9337 -- Seed data for queued record/item exports
9338 ----------------------------------------------------------------
9339
9340 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
9341         'vandelay.queued_bib_record.print',
9342         'vqbr', 
9343         oils_i18n_gettext(
9344             'vandelay.queued_bib_record.print',
9345             'Print output has been requested for records in an Importer Bib Queue.',
9346             'ath',
9347             'description'
9348         ), 
9349         FALSE
9350     )
9351     ,(
9352         'vandelay.queued_bib_record.csv',
9353         'vqbr', 
9354         oils_i18n_gettext(
9355             'vandelay.queued_bib_record.csv',
9356             'CSV output has been requested for records in an Importer Bib Queue.',
9357             'ath',
9358             'description'
9359         ), 
9360         FALSE
9361     )
9362     ,(
9363         'vandelay.queued_bib_record.email',
9364         'vqbr', 
9365         oils_i18n_gettext(
9366             'vandelay.queued_bib_record.email',
9367             'An email has been requested for records in an Importer Bib Queue.',
9368             'ath',
9369             'description'
9370         ), 
9371         FALSE
9372     )
9373     ,(
9374         'vandelay.queued_auth_record.print',
9375         'vqar', 
9376         oils_i18n_gettext(
9377             'vandelay.queued_auth_record.print',
9378             'Print output has been requested for records in an Importer Authority Queue.',
9379             'ath',
9380             'description'
9381         ), 
9382         FALSE
9383     )
9384     ,(
9385         'vandelay.queued_auth_record.csv',
9386         'vqar', 
9387         oils_i18n_gettext(
9388             'vandelay.queued_auth_record.csv',
9389             'CSV output has been requested for records in an Importer Authority Queue.',
9390             'ath',
9391             'description'
9392         ), 
9393         FALSE
9394     )
9395     ,(
9396         'vandelay.queued_auth_record.email',
9397         'vqar', 
9398         oils_i18n_gettext(
9399             'vandelay.queued_auth_record.email',
9400             'An email has been requested for records in an Importer Authority Queue.',
9401             'ath',
9402             'description'
9403         ), 
9404         FALSE
9405     )
9406     ,(
9407         'vandelay.import_items.print',
9408         'vii', 
9409         oils_i18n_gettext(
9410             'vandelay.import_items.print',
9411             'Print output has been requested for Import Items from records in an Importer Bib Queue.',
9412             'ath',
9413             'description'
9414         ), 
9415         FALSE
9416     )
9417     ,(
9418         'vandelay.import_items.csv',
9419         'vii', 
9420         oils_i18n_gettext(
9421             'vandelay.import_items.csv',
9422             'CSV output has been requested for Import Items from records in an Importer Bib Queue.',
9423             'ath',
9424             'description'
9425         ), 
9426         FALSE
9427     )
9428     ,(
9429         'vandelay.import_items.email',
9430         'vii', 
9431         oils_i18n_gettext(
9432             'vandelay.import_items.email',
9433             'An email has been requested for Import Items from records in an Importer Bib Queue.',
9434             'ath',
9435             'description'
9436         ), 
9437         FALSE
9438     )
9439 ;
9440
9441 INSERT INTO action_trigger.event_definition (
9442         id,
9443         active,
9444         owner,
9445         name,
9446         hook,
9447         validator,
9448         reactor,
9449         group_field,
9450         granularity,
9451         template
9452     ) VALUES (
9453         39,
9454         TRUE,
9455         1,
9456         'Print Output for Queued Bib Records',
9457         'vandelay.queued_bib_record.print',
9458         'NOOP_True',
9459         'ProcessTemplate',
9460         'queue.owner',
9461         'print-on-demand',
9462 $$
9463 [%- USE date -%]
9464 <pre>
9465 Queue ID: [% target.0.queue.id %]
9466 Queue Name: [% target.0.queue.name %]
9467 Queue Type: [% target.0.queue.queue_type %]
9468 Complete? [% target.0.queue.complete %]
9469
9470     [% FOR vqbr IN target %]
9471 =-=-=
9472  Title of work    | [% helpers.get_queued_bib_attr('title',vqbr.attributes) %]
9473  Author of work   | [% helpers.get_queued_bib_attr('author',vqbr.attributes) %]
9474  Language of work | [% helpers.get_queued_bib_attr('language',vqbr.attributes) %]
9475  Pagination       | [% helpers.get_queued_bib_attr('pagination',vqbr.attributes) %]
9476  ISBN             | [% helpers.get_queued_bib_attr('isbn',vqbr.attributes) %]
9477  ISSN             | [% helpers.get_queued_bib_attr('issn',vqbr.attributes) %]
9478  Price            | [% helpers.get_queued_bib_attr('price',vqbr.attributes) %]
9479  Accession Number | [% helpers.get_queued_bib_attr('rec_identifier',vqbr.attributes) %]
9480  TCN Value        | [% helpers.get_queued_bib_attr('eg_tcn',vqbr.attributes) %]
9481  TCN Source       | [% helpers.get_queued_bib_attr('eg_tcn_source',vqbr.attributes) %]
9482  Internal ID      | [% helpers.get_queued_bib_attr('eg_identifier',vqbr.attributes) %]
9483  Publisher        | [% helpers.get_queued_bib_attr('publisher',vqbr.attributes) %]
9484  Publication Date | [% helpers.get_queued_bib_attr('pubdate',vqbr.attributes) %]
9485  Edition          | [% helpers.get_queued_bib_attr('edition',vqbr.attributes) %]
9486  Item Barcode     | [% helpers.get_queued_bib_attr('item_barcode',vqbr.attributes) %]
9487  Import Error     | [% vqbr.import_error %]
9488  Error Detail     | [% vqbr.error_detail %]
9489  Match Count      | [% vqbr.matches.size %]
9490
9491     [% END %]
9492 </pre>
9493 $$
9494     )
9495 ;
9496
9497 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9498     39, 'attributes')
9499     ,( 39, 'queue')
9500     ,( 39, 'matches')
9501 ;
9502
9503 INSERT INTO action_trigger.event_definition (
9504         id,
9505         active,
9506         owner,
9507         name,
9508         hook,
9509         validator,
9510         reactor,
9511         group_field,
9512         granularity,
9513         template
9514     ) VALUES (
9515         40,
9516         TRUE,
9517         1,
9518         'CSV Output for Queued Bib Records',
9519         'vandelay.queued_bib_record.csv',
9520         'NOOP_True',
9521         'ProcessTemplate',
9522         'queue.owner',
9523         'print-on-demand',
9524 $$
9525 [%- USE date -%]
9526 "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"
9527 [% 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 %]"
9528 [% END %]
9529 $$
9530     )
9531 ;
9532
9533 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9534     40, 'attributes')
9535     ,( 40, 'queue')
9536     ,( 40, 'matches')
9537 ;
9538
9539 INSERT INTO action_trigger.event_definition (
9540         id,
9541         active,
9542         owner,
9543         name,
9544         hook,
9545         validator,
9546         reactor,
9547         group_field,
9548         granularity,
9549         template
9550     ) VALUES (
9551         41,
9552         TRUE,
9553         1,
9554         'Email Output for Queued Bib Records',
9555         'vandelay.queued_bib_record.email',
9556         'NOOP_True',
9557         'SendEmail',
9558         'queue.owner',
9559         NULL,
9560 $$
9561 [%- USE date -%]
9562 [%- SET user = target.0.queue.owner -%]
9563 To: [%- params.recipient_email || user.email || 'root@localhost' %]
9564 From: [%- params.sender_email || default_sender %]
9565 Subject: Bibs from Import Queue
9566
9567 Queue ID: [% target.0.queue.id %]
9568 Queue Name: [% target.0.queue.name %]
9569 Queue Type: [% target.0.queue.queue_type %]
9570 Complete? [% target.0.queue.complete %]
9571
9572     [% FOR vqbr IN target %]
9573 =-=-=
9574  Title of work    | [% helpers.get_queued_bib_attr('title',vqbr.attributes) %]
9575  Author of work   | [% helpers.get_queued_bib_attr('author',vqbr.attributes) %]
9576  Language of work | [% helpers.get_queued_bib_attr('language',vqbr.attributes) %]
9577  Pagination       | [% helpers.get_queued_bib_attr('pagination',vqbr.attributes) %]
9578  ISBN             | [% helpers.get_queued_bib_attr('isbn',vqbr.attributes) %]
9579  ISSN             | [% helpers.get_queued_bib_attr('issn',vqbr.attributes) %]
9580  Price            | [% helpers.get_queued_bib_attr('price',vqbr.attributes) %]
9581  Accession Number | [% helpers.get_queued_bib_attr('rec_identifier',vqbr.attributes) %]
9582  TCN Value        | [% helpers.get_queued_bib_attr('eg_tcn',vqbr.attributes) %]
9583  TCN Source       | [% helpers.get_queued_bib_attr('eg_tcn_source',vqbr.attributes) %]
9584  Internal ID      | [% helpers.get_queued_bib_attr('eg_identifier',vqbr.attributes) %]
9585  Publisher        | [% helpers.get_queued_bib_attr('publisher',vqbr.attributes) %]
9586  Publication Date | [% helpers.get_queued_bib_attr('pubdate',vqbr.attributes) %]
9587  Edition          | [% helpers.get_queued_bib_attr('edition',vqbr.attributes) %]
9588  Item Barcode     | [% helpers.get_queued_bib_attr('item_barcode',vqbr.attributes) %]
9589
9590     [% END %]
9591
9592 $$
9593     )
9594 ;
9595
9596 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9597     41, 'attributes')
9598     ,( 41, 'queue')
9599     ,( 41, 'queue.owner')
9600 ;
9601
9602 INSERT INTO action_trigger.event_definition (
9603         id,
9604         active,
9605         owner,
9606         name,
9607         hook,
9608         validator,
9609         reactor,
9610         group_field,
9611         granularity,
9612         template
9613     ) VALUES (
9614         42,
9615         TRUE,
9616         1,
9617         'Print Output for Queued Authority Records',
9618         'vandelay.queued_auth_record.print',
9619         'NOOP_True',
9620         'ProcessTemplate',
9621         'queue.owner',
9622         'print-on-demand',
9623 $$
9624 [%- USE date -%]
9625 <pre>
9626 Queue ID: [% target.0.queue.id %]
9627 Queue Name: [% target.0.queue.name %]
9628 Queue Type: [% target.0.queue.queue_type %]
9629 Complete? [% target.0.queue.complete %]
9630
9631     [% FOR vqar IN target %]
9632 =-=-=
9633  Record Identifier | [% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) %]
9634
9635     [% END %]
9636 </pre>
9637 $$
9638     )
9639 ;
9640
9641 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9642     42, 'attributes')
9643     ,( 42, 'queue')
9644 ;
9645
9646 INSERT INTO action_trigger.event_definition (
9647         id,
9648         active,
9649         owner,
9650         name,
9651         hook,
9652         validator,
9653         reactor,
9654         group_field,
9655         granularity,
9656         template
9657     ) VALUES (
9658         43,
9659         TRUE,
9660         1,
9661         'CSV Output for Queued Authority Records',
9662         'vandelay.queued_auth_record.csv',
9663         'NOOP_True',
9664         'ProcessTemplate',
9665         'queue.owner',
9666         'print-on-demand',
9667 $$
9668 [%- USE date -%]
9669 "Record Identifier"
9670 [% FOR vqar IN target %]"[% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) | replace('"', '""') %]"
9671 [% END %]
9672 $$
9673     )
9674 ;
9675
9676 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9677     43, 'attributes')
9678     ,( 43, 'queue')
9679 ;
9680
9681 INSERT INTO action_trigger.event_definition (
9682         id,
9683         active,
9684         owner,
9685         name,
9686         hook,
9687         validator,
9688         reactor,
9689         group_field,
9690         granularity,
9691         template
9692     ) VALUES (
9693         44,
9694         TRUE,
9695         1,
9696         'Email Output for Queued Authority Records',
9697         'vandelay.queued_auth_record.email',
9698         'NOOP_True',
9699         'SendEmail',
9700         'queue.owner',
9701         NULL,
9702 $$
9703 [%- USE date -%]
9704 [%- SET user = target.0.queue.owner -%]
9705 To: [%- params.recipient_email || user.email || 'root@localhost' %]
9706 From: [%- params.sender_email || default_sender %]
9707 Subject: Authorities from Import Queue
9708
9709 Queue ID: [% target.0.queue.id %]
9710 Queue Name: [% target.0.queue.name %]
9711 Queue Type: [% target.0.queue.queue_type %]
9712 Complete? [% target.0.queue.complete %]
9713
9714     [% FOR vqar IN target %]
9715 =-=-=
9716  Record Identifier | [% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) %]
9717
9718     [% END %]
9719
9720 $$
9721     )
9722 ;
9723
9724 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9725     44, 'attributes')
9726     ,( 44, 'queue')
9727     ,( 44, 'queue.owner')
9728 ;
9729
9730 INSERT INTO action_trigger.event_definition (
9731         id,
9732         active,
9733         owner,
9734         name,
9735         hook,
9736         validator,
9737         reactor,
9738         group_field,
9739         granularity,
9740         template
9741     ) VALUES (
9742         45,
9743         TRUE,
9744         1,
9745         'Print Output for Import Items from Queued Bib Records',
9746         'vandelay.import_items.print',
9747         'NOOP_True',
9748         'ProcessTemplate',
9749         'record.queue.owner',
9750         'print-on-demand',
9751 $$
9752 [%- USE date -%]
9753 <pre>
9754 Queue ID: [% target.0.record.queue.id %]
9755 Queue Name: [% target.0.record.queue.name %]
9756 Queue Type: [% target.0.record.queue.queue_type %]
9757 Complete? [% target.0.record.queue.complete %]
9758
9759     [% FOR vii IN target %]
9760 =-=-=
9761  Import Item ID         | [% vii.id %]
9762  Title of work          | [% helpers.get_queued_bib_attr('title',vii.record.attributes) %]
9763  ISBN                   | [% helpers.get_queued_bib_attr('isbn',vii.record.attributes) %]
9764  Attribute Definition   | [% vii.definition %]
9765  Import Error           | [% vii.import_error %]
9766  Import Error Detail    | [% vii.error_detail %]
9767  Owning Library         | [% vii.owning_lib %]
9768  Circulating Library    | [% vii.circ_lib %]
9769  Call Number            | [% vii.call_number %]
9770  Copy Number            | [% vii.copy_number %]
9771  Status                 | [% vii.status.name %]
9772  Shelving Location      | [% vii.location.name %]
9773  Circulate              | [% vii.circulate %]
9774  Deposit                | [% vii.deposit %]
9775  Deposit Amount         | [% vii.deposit_amount %]
9776  Reference              | [% vii.ref %]
9777  Holdable               | [% vii.holdable %]
9778  Price                  | [% vii.price %]
9779  Barcode                | [% vii.barcode %]
9780  Circulation Modifier   | [% vii.circ_modifier %]
9781  Circulate As MARC Type | [% vii.circ_as_type %]
9782  Alert Message          | [% vii.alert_message %]
9783  Public Note            | [% vii.pub_note %]
9784  Private Note           | [% vii.priv_note %]
9785  OPAC Visible           | [% vii.opac_visible %]
9786
9787     [% END %]
9788 </pre>
9789 $$
9790     )
9791 ;
9792
9793 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9794     45, 'record')
9795     ,( 45, 'record.attributes')
9796     ,( 45, 'record.queue')
9797     ,( 45, 'record.queue.owner')
9798 ;
9799
9800 INSERT INTO action_trigger.event_definition (
9801         id,
9802         active,
9803         owner,
9804         name,
9805         hook,
9806         validator,
9807         reactor,
9808         group_field,
9809         granularity,
9810         template
9811     ) VALUES (
9812         46,
9813         TRUE,
9814         1,
9815         'CSV Output for Import Items from Queued Bib Records',
9816         'vandelay.import_items.csv',
9817         'NOOP_True',
9818         'ProcessTemplate',
9819         'record.queue.owner',
9820         'print-on-demand',
9821 $$
9822 [%- USE date -%]
9823 "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"
9824 [% 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('"', '""') %]"
9825 [% END %]
9826 $$
9827     )
9828 ;
9829
9830 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9831     46, 'record')
9832     ,( 46, 'record.attributes')
9833     ,( 46, 'record.queue')
9834     ,( 46, 'record.queue.owner')
9835 ;
9836
9837 INSERT INTO action_trigger.event_definition (
9838         id,
9839         active,
9840         owner,
9841         name,
9842         hook,
9843         validator,
9844         reactor,
9845         group_field,
9846         granularity,
9847         template
9848     ) VALUES (
9849         47,
9850         TRUE,
9851         1,
9852         'Email Output for Import Items from Queued Bib Records',
9853         'vandelay.import_items.email',
9854         'NOOP_True',
9855         'SendEmail',
9856         'record.queue.owner',
9857         NULL,
9858 $$
9859 [%- USE date -%]
9860 [%- SET user = target.0.record.queue.owner -%]
9861 To: [%- params.recipient_email || user.email || 'root@localhost' %]
9862 From: [%- params.sender_email || default_sender %]
9863 Subject: Import Items from Import Queue
9864
9865 Queue ID: [% target.0.record.queue.id %]
9866 Queue Name: [% target.0.record.queue.name %]
9867 Queue Type: [% target.0.record.queue.queue_type %]
9868 Complete? [% target.0.record.queue.complete %]
9869
9870     [% FOR vii IN target %]
9871 =-=-=
9872  Import Item ID         | [% vii.id %]
9873  Title of work          | [% helpers.get_queued_bib_attr('title',vii.record.attributes) %]
9874  ISBN                   | [% helpers.get_queued_bib_attr('isbn',vii.record.attributes) %]
9875  Attribute Definition   | [% vii.definition %]
9876  Import Error           | [% vii.import_error %]
9877  Import Error Detail    | [% vii.error_detail %]
9878  Owning Library         | [% vii.owning_lib %]
9879  Circulating Library    | [% vii.circ_lib %]
9880  Call Number            | [% vii.call_number %]
9881  Copy Number            | [% vii.copy_number %]
9882  Status                 | [% vii.status.name %]
9883  Shelving Location      | [% vii.location.name %]
9884  Circulate              | [% vii.circulate %]
9885  Deposit                | [% vii.deposit %]
9886  Deposit Amount         | [% vii.deposit_amount %]
9887  Reference              | [% vii.ref %]
9888  Holdable               | [% vii.holdable %]
9889  Price                  | [% vii.price %]
9890  Barcode                | [% vii.barcode %]
9891  Circulation Modifier   | [% vii.circ_modifier %]
9892  Circulate As MARC Type | [% vii.circ_as_type %]
9893  Alert Message          | [% vii.alert_message %]
9894  Public Note            | [% vii.pub_note %]
9895  Private Note           | [% vii.priv_note %]
9896  OPAC Visible           | [% vii.opac_visible %]
9897
9898     [% END %]
9899 $$
9900     )
9901 ;
9902
9903 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
9904     47, 'record')
9905     ,( 47, 'record.attributes')
9906     ,( 47, 'record.queue')
9907     ,( 47, 'record.queue.owner')
9908 ;
9909
9910 INSERT INTO action_trigger.hook (key, core_type, description, passive)
9911 VALUES (
9912     'container.biblio_record_entry_bucket.csv',
9913     'cbreb',
9914     oils_i18n_gettext(
9915         'container.biblio_record_entry_bucket.csv',
9916         'Produce a CSV file representing a bookbag',
9917         'ath',
9918         'description'
9919     ),
9920     FALSE
9921 );
9922
9923 INSERT INTO action_trigger.reactor (module, description)
9924 VALUES (
9925     'ContainerCSV',
9926     oils_i18n_gettext(
9927         'ContainerCSV',
9928         'Facilitates produce a CSV file representing a bookbag by introducing an "items" variable into the TT environment, sorted as dictated according to user params',
9929         'atr',
9930         'description'
9931     )
9932 );
9933
9934 INSERT INTO action_trigger.event_definition (
9935     id, active, owner,
9936     name, hook, reactor,
9937     validator, template
9938 ) VALUES (
9939     48, TRUE, 1,
9940     'Bookbag CSV', 'container.biblio_record_entry_bucket.csv', 'ContainerCSV',
9941     'NOOP_True',
9942 $$
9943 [%-
9944 # target is the bookbag itself. The 'items' variable does not need to be in
9945 # the environment because a special reactor will take care of filling it in.
9946
9947 FOR item IN items;
9948     bibxml = helpers.unapi_bre(item.target_biblio_record_entry, {flesh => '{mra}'});
9949     title = "";
9950     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
9951         title = title _ part.textContent;
9952     END;
9953     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
9954     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
9955
9956     helpers.csv_datum(title) %],[% helpers.csv_datum(author) %],[% helpers.csv_datum(item_type) %],[% FOR note IN item.notes; helpers.csv_datum(note.note); ","; END; "\n";
9957 END -%]
9958 $$
9959 );
9960
9961 SELECT SETVAL('authority.control_set_id_seq'::TEXT, 100);
9962 SELECT SETVAL('authority.control_set_authority_field_id_seq'::TEXT, 1000);
9963 SELECT SETVAL('authority.control_set_bib_field_id_seq'::TEXT, 1000);
9964
9965 INSERT INTO authority.control_set (id, name, description) VALUES (
9966     1,
9967     oils_i18n_gettext('1','LoC','acs','name'),
9968     oils_i18n_gettext('1','Library of Congress standard authority record control semantics','acs','description')
9969 );
9970
9971 -- Entries that need to respect an NFI
9972 INSERT INTO authority.control_set_authority_field (id, control_set, main_entry, tag, sf_list, name, nfi) VALUES
9973     (4, 1, NULL, '130', 'adfgklmnoprstvxyz', oils_i18n_gettext('4','Heading -- Uniform Title','acsaf','name'), '2'),
9974     (24, 1, 4, '530', 'adfgiklmnoprstvwxyz4', oils_i18n_gettext('24','See Also From Tracing -- Uniform Title','acsaf','name'), '2'),
9975     (44, 1, 4, '730', 'adfghklmnoprstvwxyz25', oils_i18n_gettext('44','Established Heading Linking Entry -- Uniform Title','acsaf','name'), '2'),
9976     (64, 1, 4, '430', 'adfgiklmnoprstvwxyz4', oils_i18n_gettext('64','See Also Tracing -- Uniform Title','acsaf','name'), '2');
9977
9978 INSERT INTO authority.control_set_authority_field (id, control_set, main_entry, tag, sf_list, name) VALUES
9979
9980 -- Main entries
9981     (1, 1, NULL, '100', 'abcdefklmnopqrstvxyz', oils_i18n_gettext('1','Heading -- Personal Name','acsaf','name')),
9982     (2, 1, NULL, '110', 'abcdefgklmnoprstvxyz', oils_i18n_gettext('2','Heading -- Corporate Name','acsaf','name')),
9983     (3, 1, NULL, '111', 'acdefgklnpqstvxyz', oils_i18n_gettext('3','Heading -- Meeting Name','acsaf','name')),
9984     (5, 1, NULL, '150', 'abvxyz', oils_i18n_gettext('5','Heading -- Topical Term','acsaf','name')),
9985     (6, 1, NULL, '151', 'avxyz', oils_i18n_gettext('6','Heading -- Geographic Name','acsaf','name')),
9986     (7, 1, NULL, '155', 'avxyz', oils_i18n_gettext('7','Heading -- Genre/Form Term','acsaf','name')),
9987     (8, 1, NULL, '180', 'vxyz', oils_i18n_gettext('8','Heading -- General Subdivision','acsaf','name')),
9988     (9, 1, NULL, '181', 'vxyz', oils_i18n_gettext('9','Heading -- Geographic Subdivision','acsaf','name')),
9989     (10, 1, NULL, '182', 'vxyz', oils_i18n_gettext('10','Heading -- Chronological Subdivision','acsaf','name')),
9990     (11, 1, NULL, '185', 'vxyz', oils_i18n_gettext('11','Heading -- Form Subdivision','acsaf','name')),
9991     (12, 1, NULL, '148', 'avxyz', oils_i18n_gettext('12','Heading -- Chronological Term','acsaf','name')),
9992
9993 -- See Also From tracings
9994     (21, 1, 1, '500', 'abcdefiklmnopqrstvwxyz4', oils_i18n_gettext('21','See Also From Tracing -- Personal Name','acsaf','name')),
9995     (22, 1, 2, '510', 'abcdefgiklmnoprstvwxyz4', oils_i18n_gettext('22','See Also From Tracing -- Corporate Name','acsaf','name')),
9996     (23, 1, 3, '511', 'acdefgiklnpqstvwxyz4', oils_i18n_gettext('23','See Also From Tracing -- Meeting Name','acsaf','name')),
9997     (25, 1, 5, '550', 'abivwxyz4', oils_i18n_gettext('25','See Also From Tracing -- Topical Term','acsaf','name')),
9998     (26, 1, 6, '551', 'aivwxyz4', oils_i18n_gettext('26','See Also From Tracing -- Geographic Name','acsaf','name')),
9999     (27, 1, 7, '555', 'aivwxyz4', oils_i18n_gettext('27','See Also From Tracing -- Genre/Form Term','acsaf','name')),
10000     (28, 1, 8, '580', 'ivwxyz4', oils_i18n_gettext('28','See Also From Tracing -- General Subdivision','acsaf','name')),
10001     (29, 1, 9, '581', 'ivwxyz4', oils_i18n_gettext('29','See Also From Tracing -- Geographic Subdivision','acsaf','name')),
10002     (30, 1, 10, '582', 'ivwxyz4', oils_i18n_gettext('30','See Also From Tracing -- Chronological Subdivision','acsaf','name')),
10003     (31, 1, 11, '585', 'ivwxyz4', oils_i18n_gettext('31','See Also From Tracing -- Form Subdivision','acsaf','name')),
10004     (32, 1, 12, '548', 'aivwxyz4', oils_i18n_gettext('32','See Also From Tracing -- Chronological Term','acsaf','name')),
10005
10006 -- Linking entries
10007     (41, 1, 1, '700', 'abcdefghjklmnopqrstvwxyz25', oils_i18n_gettext('41','Established Heading Linking Entry -- Personal Name','acsaf','name')),
10008     (42, 1, 2, '710', 'abcdefghklmnoprstvwxyz25', oils_i18n_gettext('42','Established Heading Linking Entry -- Corporate Name','acsaf','name')),
10009     (43, 1, 3, '711', 'acdefghklnpqstvwxyz25', oils_i18n_gettext('43','Established Heading Linking Entry -- Meeting Name','acsaf','name')),
10010     (45, 1, 5, '750', 'abvwxyz25', oils_i18n_gettext('45','Established Heading Linking Entry -- Topical Term','acsaf','name')),
10011     (46, 1, 6, '751', 'avwxyz25', oils_i18n_gettext('46','Established Heading Linking Entry -- Geographic Name','acsaf','name')),
10012     (47, 1, 7, '755', 'avwxyz25', oils_i18n_gettext('47','Established Heading Linking Entry -- Genre/Form Term','acsaf','name')),
10013     (48, 1, 8, '780', 'vwxyz25', oils_i18n_gettext('48','Subdivision Linking Entry -- General Subdivision','acsaf','name')),
10014     (49, 1, 9, '781', 'vwxyz25', oils_i18n_gettext('49','Subdivision Linking Entry -- Geographic Subdivision','acsaf','name')),
10015     (50, 1, 10, '782', 'vwxyz25', oils_i18n_gettext('50','Subdivision Linking Entry -- Chronological Subdivision','acsaf','name')),
10016     (51, 1, 11, '785', 'vwxyz25', oils_i18n_gettext('51','Subdivision Linking Entry -- Form Subdivision','acsaf','name')),
10017     (52, 1, 12, '748', 'avwxyz25', oils_i18n_gettext('52','Established Heading Linking Entry -- Chronological Term','acsaf','name')),
10018
10019 -- See From tracings
10020     (61, 1, 1, '400', 'abcdefiklmnopqrstvwxyz4', oils_i18n_gettext('61','See Also Tracing -- Personal Name','acsaf','name')),
10021     (62, 1, 2, '410', 'abcdefgiklmnoprstvwxyz4', oils_i18n_gettext('62','See Also Tracing -- Corporate Name','acsaf','name')),
10022     (63, 1, 3, '411', 'acdefgiklnpqstvwxyz4', oils_i18n_gettext('63','See Also Tracing -- Meeting Name','acsaf','name')),
10023     (65, 1, 5, '450', 'abivwxyz4', oils_i18n_gettext('65','See Also Tracing -- Topical Term','acsaf','name')),
10024     (66, 1, 6, '451', 'aivwxyz4', oils_i18n_gettext('66','See Also Tracing -- Geographic Name','acsaf','name')),
10025     (67, 1, 7, '455', 'aivwxyz4', oils_i18n_gettext('67','See Also Tracing -- Genre/Form Term','acsaf','name')),
10026     (68, 1, 8, '480', 'ivwxyz4', oils_i18n_gettext('68','See Also Tracing -- General Subdivision','acsaf','name')),
10027     (69, 1, 9, '481', 'ivwxyz4', oils_i18n_gettext('69','See Also Tracing -- Geographic Subdivision','acsaf','name')),
10028     (70, 1, 10, '482', 'ivwxyz4', oils_i18n_gettext('70','See Also Tracing -- Chronological Subdivision','acsaf','name')),
10029     (71, 1, 11, '485', 'ivwxyz4', oils_i18n_gettext('71','See Also Tracing -- Form Subdivision','acsaf','name')),
10030     (72, 1, 12, '448', 'aivwxyz4', oils_i18n_gettext('72','See Also Tracing -- Chronological Term','acsaf','name'));
10031
10032 INSERT INTO authority.browse_axis (code,name,description,sorter) VALUES
10033     ('title','Title','Title axis','titlesort'),
10034     ('author','Author','Author axis','titlesort'),
10035     ('subject','Subject','Subject axis','titlesort'),
10036     ('topic','Topic','Topic Subject axis','titlesort');
10037
10038 INSERT INTO authority.browse_axis_authority_field_map (axis,field) VALUES
10039     ('author',  1 ),
10040     ('author',  2 ),
10041     ('author',  3 ),
10042     ('title',   4 ),
10043     ('topic',   5 ),
10044     ('subject', 5 ),
10045     ('subject', 6 ),
10046     ('subject', 7 ),
10047     ('subject', 12);
10048
10049 INSERT INTO authority.control_set_bib_field (tag, authority_field) 
10050     SELECT '100', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10051         UNION
10052     SELECT '600', id FROM authority.control_set_authority_field WHERE tag IN ('100','180','181','182','185')
10053         UNION
10054     SELECT '700', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10055         UNION
10056     SELECT '800', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10057         UNION
10058
10059     SELECT '110', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10060         UNION
10061     SELECT '610', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10062         UNION
10063     SELECT '710', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10064         UNION
10065     SELECT '810', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10066         UNION
10067
10068     SELECT '111', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10069         UNION
10070     SELECT '611', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10071         UNION
10072     SELECT '711', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10073         UNION
10074     SELECT '811', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10075         UNION
10076
10077     SELECT '130', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10078         UNION
10079     SELECT '240', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10080         UNION
10081     SELECT '630', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10082         UNION
10083     SELECT '730', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10084         UNION
10085     SELECT '830', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10086         UNION
10087
10088     SELECT '648', id FROM authority.control_set_authority_field WHERE tag IN ('148')
10089         UNION
10090
10091     SELECT '650', id FROM authority.control_set_authority_field WHERE tag IN ('150','180','181','182','185')
10092         UNION
10093     SELECT '651', id FROM authority.control_set_authority_field WHERE tag IN ('151','180','181','182','185')
10094         UNION
10095     SELECT '655', id FROM authority.control_set_authority_field WHERE tag IN ('155','180','181','182','185')
10096 ;
10097
10098 INSERT INTO authority.thesaurus (code, name, control_set) VALUES
10099     ('a', oils_i18n_gettext('a','Library of Congress Subject Headings','at','name'), 1),
10100     ('b', oils_i18n_gettext('b','LC subject headings for children''s literature','at','name'), 1), 
10101     ('c', oils_i18n_gettext('c','Medical Subject Headings','at','name'), 1),
10102     ('d', oils_i18n_gettext('d','National Agricultural Library subject authority file','at','name'), 1),
10103     ('k', oils_i18n_gettext('k','Canadian Subject Headings','at','name'), 1),
10104     ('n', oils_i18n_gettext('n','Not applicable','at','name'), 1),
10105     ('r', oils_i18n_gettext('r','Art and Architecture Thesaurus','at','name'), 1),
10106     ('s', oils_i18n_gettext('s','Sears List of Subject Headings','at','name'), 1),
10107     ('v', oils_i18n_gettext('v','Repertoire de vedettes-matiere','at','name'), 1),
10108     ('z', oils_i18n_gettext('z','Other','at','name'), 1),
10109     ('|', oils_i18n_gettext('|','No attempt to code','at','name'), NULL);
10110
10111 INSERT INTO action_trigger.hook ( key, core_type, description, passive ) VALUES (
10112     'reservation.available',
10113     'bresv',
10114     'A reservation is available for pickup',
10115     false
10116 );
10117
10118 INSERT INTO action_trigger.validator ( module, description ) VALUES (
10119     'ReservationIsAvailable',
10120     'Checked that a reserved resource is available for checkout'
10121 );
10122
10123 INSERT INTO container.biblio_record_entry_bucket_type (code, label) VALUES (
10124     'vandelay_queue',
10125     oils_i18n_gettext('vandelay_queue', 'Vandelay Queue', 'cbrebt', 'label')
10126 );
10127
10128 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype,fm_class) VALUES (
10129     'opac.default_sms_carrier',
10130     'sms',
10131     TRUE,
10132     oils_i18n_gettext(
10133         'opac.default_sms_carrier',
10134         'Default SMS/Text Carrier',
10135         'cust',
10136         'label'
10137     ),
10138     oils_i18n_gettext(
10139         'opac.default_sms_carrier',
10140         'Default SMS/Text Carrier',
10141         'cust',
10142         'description'
10143     ),
10144     'link',
10145     'csc'
10146 );
10147
10148 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10149     'opac.default_sms_notify',
10150     'sms',
10151     TRUE,
10152     oils_i18n_gettext(
10153         'opac.default_sms_notify',
10154         'Default SMS/Text Number',
10155         'cust',
10156         'label'
10157     ),
10158     oils_i18n_gettext(
10159         'opac.default_sms_notify',
10160         'Default SMS/Text Number',
10161         'cust',
10162         'description'
10163     ),
10164     'string'
10165 );
10166
10167 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10168     'opac.default_phone',
10169     'opac',
10170     TRUE,
10171     oils_i18n_gettext(
10172         'opac.default_phone',
10173         'Default Phone Number',
10174         'cust',
10175         'label'
10176     ),
10177     oils_i18n_gettext(
10178         'opac.default_phone',
10179         'Default Phone Number',
10180         'cust',
10181         'description'
10182     ),
10183     'string'
10184 );
10185
10186 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10187     'ui.grid_columns.circ.hold_pull_list',
10188     'gui',
10189     FALSE,
10190     oils_i18n_gettext(
10191         'ui.grid_columns.circ.hold_pull_list',
10192         'Hold Pull List',
10193         'cust',
10194         'label'
10195     ),
10196     oils_i18n_gettext(
10197         'ui.grid_columns.circ.hold_pull_list',
10198         'Hold Pull List Saved Column Settings',
10199         'cust',
10200         'description'
10201     ),
10202     'string'
10203 ), (
10204     'ui.grid_columns.actor.user.event_log',
10205     'gui',
10206     FALSE,
10207     oils_i18n_gettext(
10208         'ui.grid_columns.actor.user.event_log',
10209         'User Event Log',
10210         'cust',
10211         'label'
10212     ),
10213     oils_i18n_gettext(
10214         'ui.grid_columns.actor.user.event_log',
10215         'User Event Log Saved Column Settings',
10216         'cust',
10217         'description'
10218     ),
10219     'string'
10220 ) ;
10221
10222 SELECT setval( 'config.sms_carrier_id_seq', 1000 );
10223 INSERT INTO config.sms_carrier VALUES
10224
10225     -- Testing
10226     (
10227         1,
10228         oils_i18n_gettext(
10229             1,
10230             'Local',
10231             'csc',
10232             'region'
10233         ),
10234         oils_i18n_gettext(
10235             1,
10236             'Test Carrier',
10237             'csc',
10238             'name'
10239         ),
10240         'opensrf+$number@localhost',
10241         FALSE
10242     ),
10243
10244     -- Canada & USA
10245     (
10246         2,
10247         oils_i18n_gettext(
10248             2,
10249             'Canada & USA',
10250             'csc',
10251             'region'
10252         ),
10253         oils_i18n_gettext(
10254             2,
10255             'Rogers Wireless',
10256             'csc',
10257             'name'
10258         ),
10259         '$number@pcs.rogers.com',
10260         TRUE
10261     ),
10262     (
10263         3,
10264         oils_i18n_gettext(
10265             3,
10266             'Canada & USA',
10267             'csc',
10268             'region'
10269         ),
10270         oils_i18n_gettext(
10271             3,
10272             'Rogers Wireless (Alternate)',
10273             'csc',
10274             'name'
10275         ),
10276         '1$number@mms.rogers.com',
10277         TRUE
10278     ),
10279     (
10280         4,
10281         oils_i18n_gettext(
10282             4,
10283             'Canada & USA',
10284             'csc',
10285             'region'
10286         ),
10287         oils_i18n_gettext(
10288             4,
10289             'Telus Mobility',
10290             'csc',
10291             'name'
10292         ),
10293         '$number@msg.telus.com',
10294         TRUE
10295     ),
10296
10297     -- Canada
10298     (
10299         5,
10300         oils_i18n_gettext(
10301             5,
10302             'Canada',
10303             'csc',
10304             'region'
10305         ),
10306         oils_i18n_gettext(
10307             5,
10308             'Koodo Mobile',
10309             'csc',
10310             'name'
10311         ),
10312         '$number@msg.telus.com',
10313         TRUE
10314     ),
10315     (
10316         6,
10317         oils_i18n_gettext(
10318             6,
10319             'Canada',
10320             'csc',
10321             'region'
10322         ),
10323         oils_i18n_gettext(
10324             6,
10325             'Fido',
10326             'csc',
10327             'name'
10328         ),
10329         '$number@fido.ca',
10330         TRUE
10331     ),
10332     (
10333         7,
10334         oils_i18n_gettext(
10335             7,
10336             'Canada',
10337             'csc',
10338             'region'
10339         ),
10340         oils_i18n_gettext(
10341             7,
10342             'Bell Mobility & Solo Mobile',
10343             'csc',
10344             'name'
10345         ),
10346         '$number@txt.bell.ca',
10347         TRUE
10348     ),
10349     (
10350         8,
10351         oils_i18n_gettext(
10352             8,
10353             'Canada',
10354             'csc',
10355             'region'
10356         ),
10357         oils_i18n_gettext(
10358             8,
10359             'Bell Mobility & Solo Mobile (Alternate)',
10360             'csc',
10361             'name'
10362         ),
10363         '$number@txt.bellmobility.ca',
10364         TRUE
10365     ),
10366     (
10367         9,
10368         oils_i18n_gettext(
10369             9,
10370             'Canada',
10371             'csc',
10372             'region'
10373         ),
10374         oils_i18n_gettext(
10375             9,
10376             'Aliant',
10377             'csc',
10378             'name'
10379         ),
10380         '$number@sms.wirefree.informe.ca',
10381         TRUE
10382     ),
10383     (
10384         10,
10385         oils_i18n_gettext(
10386             10,
10387             'Canada',
10388             'csc',
10389             'region'
10390         ),
10391         oils_i18n_gettext(
10392             10,
10393             'PC Telecom',
10394             'csc',
10395             'name'
10396         ),
10397         '$number@mobiletxt.ca',
10398         TRUE
10399     ),
10400     (
10401         11,
10402         oils_i18n_gettext(
10403             11,
10404             'Canada',
10405             'csc',
10406             'region'
10407         ),
10408         oils_i18n_gettext(
10409             11,
10410             'SaskTel',
10411             'csc',
10412             'name'
10413         ),
10414         '$number@sms.sasktel.com',
10415         TRUE
10416     ),
10417     (
10418         12,
10419         oils_i18n_gettext(
10420             12,
10421             'Canada',
10422             'csc',
10423             'region'
10424         ),
10425         oils_i18n_gettext(
10426             12,
10427             'MTS Mobility',
10428             'csc',
10429             'name'
10430         ),
10431         '$number@text.mtsmobility.com',
10432         TRUE
10433     ),
10434     (
10435         13,
10436         oils_i18n_gettext(
10437             13,
10438             'Canada',
10439             'csc',
10440             'region'
10441         ),
10442         oils_i18n_gettext(
10443             13,
10444             'Virgin Mobile',
10445             'csc',
10446             'name'
10447         ),
10448         '$number@vmobile.ca',
10449         TRUE
10450     ),
10451
10452     -- International
10453     (
10454         14,
10455         oils_i18n_gettext(
10456             14,
10457             'International',
10458             'csc',
10459             'region'
10460         ),
10461         oils_i18n_gettext(
10462             14,
10463             'Iridium',
10464             'csc',
10465             'name'
10466         ),
10467         '$number@msg.iridium.com',
10468         TRUE
10469     ),
10470     (
10471         15,
10472         oils_i18n_gettext(
10473             15,
10474             'International',
10475             'csc',
10476             'region'
10477         ),
10478         oils_i18n_gettext(
10479             15,
10480             'Globalstar',
10481             'csc',
10482             'name'
10483         ),
10484         '$number@msg.globalstarusa.com',
10485         TRUE
10486     ),
10487     (
10488         16,
10489         oils_i18n_gettext(
10490             16,
10491             'International',
10492             'csc',
10493             'region'
10494         ),
10495         oils_i18n_gettext(
10496             16,
10497             'Bulletin.net',
10498             'csc',
10499             'name'
10500         ),
10501         '$number@bulletinmessenger.net', -- International Formatted number
10502         TRUE
10503     ),
10504     (
10505         17,
10506         oils_i18n_gettext(
10507             17,
10508             'International',
10509             'csc',
10510             'region'
10511         ),
10512         oils_i18n_gettext(
10513             17,
10514             'Panacea Mobile',
10515             'csc',
10516             'name'
10517         ),
10518         '$number@api.panaceamobile.com',
10519         TRUE
10520     ),
10521
10522     -- USA
10523     (
10524         18,
10525         oils_i18n_gettext(
10526             18,
10527             'USA',
10528             'csc',
10529             'region'
10530         ),
10531         oils_i18n_gettext(
10532             18,
10533             'C Beyond',
10534             'csc',
10535             'name'
10536         ),
10537         '$number@cbeyond.sprintpcs.com',
10538         TRUE
10539     ),
10540     (
10541         19,
10542         oils_i18n_gettext(
10543             19,
10544             'Alaska, USA',
10545             'csc',
10546             'region'
10547         ),
10548         oils_i18n_gettext(
10549             19,
10550             'General Communications, Inc.',
10551             'csc',
10552             'name'
10553         ),
10554         '$number@mobile.gci.net',
10555         TRUE
10556     ),
10557     (
10558         20,
10559         oils_i18n_gettext(
10560             20,
10561             'California, USA',
10562             'csc',
10563             'region'
10564         ),
10565         oils_i18n_gettext(
10566             20,
10567             'Golden State Cellular',
10568             'csc',
10569             'name'
10570         ),
10571         '$number@gscsms.com',
10572         TRUE
10573     ),
10574     (
10575         21,
10576         oils_i18n_gettext(
10577             21,
10578             'Cincinnati, Ohio, USA',
10579             'csc',
10580             'region'
10581         ),
10582         oils_i18n_gettext(
10583             21,
10584             'Cincinnati Bell',
10585             'csc',
10586             'name'
10587         ),
10588         '$number@gocbw.com',
10589         TRUE
10590     ),
10591     (
10592         22,
10593         oils_i18n_gettext(
10594             22,
10595             'Hawaii, USA',
10596             'csc',
10597             'region'
10598         ),
10599         oils_i18n_gettext(
10600             22,
10601             'Hawaiian Telcom Wireless',
10602             'csc',
10603             'name'
10604         ),
10605         '$number@hawaii.sprintpcs.com',
10606         TRUE
10607     ),
10608     (
10609         23,
10610         oils_i18n_gettext(
10611             23,
10612             'Midwest, USA',
10613             'csc',
10614             'region'
10615         ),
10616         oils_i18n_gettext(
10617             23,
10618             'i wireless (T-Mobile)',
10619             'csc',
10620             'name'
10621         ),
10622         '$number.iws@iwspcs.net',
10623         TRUE
10624     ),
10625     (
10626         24,
10627         oils_i18n_gettext(
10628             24,
10629             'USA',
10630             'csc',
10631             'region'
10632         ),
10633         oils_i18n_gettext(
10634             24,
10635             'i-wireless (Sprint PCS)',
10636             'csc',
10637             'name'
10638         ),
10639         '$number@iwirelesshometext.com',
10640         TRUE
10641     ),
10642     (
10643         25,
10644         oils_i18n_gettext(
10645             25,
10646             'USA',
10647             'csc',
10648             'region'
10649         ),
10650         oils_i18n_gettext(
10651             25,
10652             'MetroPCS',
10653             'csc',
10654             'name'
10655         ),
10656         '$number@mymetropcs.com',
10657         TRUE
10658     ),
10659     (
10660         26,
10661         oils_i18n_gettext(
10662             26,
10663             'USA',
10664             'csc',
10665             'region'
10666         ),
10667         oils_i18n_gettext(
10668             26,
10669             'Kajeet',
10670             'csc',
10671             'name'
10672         ),
10673         '$number@mobile.kajeet.net',
10674         TRUE
10675     ),
10676     (
10677         27,
10678         oils_i18n_gettext(
10679             27,
10680             'USA',
10681             'csc',
10682             'region'
10683         ),
10684         oils_i18n_gettext(
10685             27,
10686             'Element Mobile',
10687             'csc',
10688             'name'
10689         ),
10690         '$number@SMS.elementmobile.net',
10691         TRUE
10692     ),
10693     (
10694         28,
10695         oils_i18n_gettext(
10696             28,
10697             'USA',
10698             'csc',
10699             'region'
10700         ),
10701         oils_i18n_gettext(
10702             28,
10703             'Esendex',
10704             'csc',
10705             'name'
10706         ),
10707         '$number@echoemail.net',
10708         TRUE
10709     ),
10710     (
10711         29,
10712         oils_i18n_gettext(
10713             29,
10714             'USA',
10715             'csc',
10716             'region'
10717         ),
10718         oils_i18n_gettext(
10719             29,
10720             'Boost Mobile',
10721             'csc',
10722             'name'
10723         ),
10724         '$number@myboostmobile.com',
10725         TRUE
10726     ),
10727     (
10728         30,
10729         oils_i18n_gettext(
10730             30,
10731             'USA',
10732             'csc',
10733             'region'
10734         ),
10735         oils_i18n_gettext(
10736             30,
10737             'BellSouth',
10738             'csc',
10739             'name'
10740         ),
10741         '$number@bellsouth.com',
10742         TRUE
10743     ),
10744     (
10745         31,
10746         oils_i18n_gettext(
10747             31,
10748             'USA',
10749             'csc',
10750             'region'
10751         ),
10752         oils_i18n_gettext(
10753             31,
10754             'Bluegrass Cellular',
10755             'csc',
10756             'name'
10757         ),
10758         '$number@sms.bluecell.com',
10759         TRUE
10760     ),
10761     (
10762         32,
10763         oils_i18n_gettext(
10764             32,
10765             'USA',
10766             'csc',
10767             'region'
10768         ),
10769         oils_i18n_gettext(
10770             32,
10771             'AT&T Enterprise Paging',
10772             'csc',
10773             'name'
10774         ),
10775         '$number@page.att.net',
10776         TRUE
10777     ),
10778     (
10779         33,
10780         oils_i18n_gettext(
10781             33,
10782             'USA',
10783             'csc',
10784             'region'
10785         ),
10786         oils_i18n_gettext(
10787             33,
10788             'AT&T Mobility/Wireless',
10789             'csc',
10790             'name'
10791         ),
10792         '$number@txt.att.net',
10793         TRUE
10794     ),
10795     (
10796         34,
10797         oils_i18n_gettext(
10798             34,
10799             'USA',
10800             'csc',
10801             'region'
10802         ),
10803         oils_i18n_gettext(
10804             34,
10805             'AT&T Global Smart Messaging Suite',
10806             'csc',
10807             'name'
10808         ),
10809         '$number@sms.smartmessagingsuite.com',
10810         TRUE
10811     ),
10812     (
10813         35,
10814         oils_i18n_gettext(
10815             35,
10816             'USA',
10817             'csc',
10818             'region'
10819         ),
10820         oils_i18n_gettext(
10821             35,
10822             'Alltel (Allied Wireless)',
10823             'csc',
10824             'name'
10825         ),
10826         '$number@sms.alltelwireless.com',
10827         TRUE
10828     ),
10829     (
10830         36,
10831         oils_i18n_gettext(
10832             36,
10833             'USA',
10834             'csc',
10835             'region'
10836         ),
10837         oils_i18n_gettext(
10838             36,
10839             'Alaska Communications',
10840             'csc',
10841             'name'
10842         ),
10843         '$number@msg.acsalaska.com',
10844         TRUE
10845     ),
10846     (
10847         37,
10848         oils_i18n_gettext(
10849             37,
10850             'USA',
10851             'csc',
10852             'region'
10853         ),
10854         oils_i18n_gettext(
10855             37,
10856             'Ameritech',
10857             'csc',
10858             'name'
10859         ),
10860         '$number@paging.acswireless.com',
10861         TRUE
10862     ),
10863     (
10864         38,
10865         oils_i18n_gettext(
10866             38,
10867             'USA',
10868             'csc',
10869             'region'
10870         ),
10871         oils_i18n_gettext(
10872             38,
10873             'Cingular (GoPhone prepaid)',
10874             'csc',
10875             'name'
10876         ),
10877         '$number@cingulartext.com',
10878         TRUE
10879     ),
10880     (
10881         39,
10882         oils_i18n_gettext(
10883             39,
10884             'USA',
10885             'csc',
10886             'region'
10887         ),
10888         oils_i18n_gettext(
10889             39,
10890             'Cingular (Postpaid)',
10891             'csc',
10892             'name'
10893         ),
10894         '$number@cingular.com',
10895         TRUE
10896     ),
10897     (
10898         40,
10899         oils_i18n_gettext(
10900             40,
10901             'USA',
10902             'csc',
10903             'region'
10904         ),
10905         oils_i18n_gettext(
10906             40,
10907             'Cellular One (Dobson) / O2 / Orange',
10908             'csc',
10909             'name'
10910         ),
10911         '$number@mobile.celloneusa.com',
10912         TRUE
10913     ),
10914     (
10915         41,
10916         oils_i18n_gettext(
10917             41,
10918             'USA',
10919             'csc',
10920             'region'
10921         ),
10922         oils_i18n_gettext(
10923             41,
10924             'Cellular South',
10925             'csc',
10926             'name'
10927         ),
10928         '$number@csouth1.com',
10929         TRUE
10930     ),
10931     (
10932         42,
10933         oils_i18n_gettext(
10934             42,
10935             'USA',
10936             'csc',
10937             'region'
10938         ),
10939         oils_i18n_gettext(
10940             42,
10941             'Cellcom',
10942             'csc',
10943             'name'
10944         ),
10945         '$number@cellcom.quiktxt.com',
10946         TRUE
10947     ),
10948     (
10949         43,
10950         oils_i18n_gettext(
10951             43,
10952             'USA',
10953             'csc',
10954             'region'
10955         ),
10956         oils_i18n_gettext(
10957             43,
10958             'Chariton Valley Wireless',
10959             'csc',
10960             'name'
10961         ),
10962         '$number@sms.cvalley.net',
10963         TRUE
10964     ),
10965     (
10966         44,
10967         oils_i18n_gettext(
10968             44,
10969             'USA',
10970             'csc',
10971             'region'
10972         ),
10973         oils_i18n_gettext(
10974             44,
10975             'Cricket',
10976             'csc',
10977             'name'
10978         ),
10979         '$number@sms.mycricket.com',
10980         TRUE
10981     ),
10982     (
10983         45,
10984         oils_i18n_gettext(
10985             45,
10986             'USA',
10987             'csc',
10988             'region'
10989         ),
10990         oils_i18n_gettext(
10991             45,
10992             'Cleartalk Wireless',
10993             'csc',
10994             'name'
10995         ),
10996         '$number@sms.cleartalk.us',
10997         TRUE
10998     ),
10999     (
11000         46,
11001         oils_i18n_gettext(
11002             46,
11003             'USA',
11004             'csc',
11005             'region'
11006         ),
11007         oils_i18n_gettext(
11008             46,
11009             'Edge Wireless',
11010             'csc',
11011             'name'
11012         ),
11013         '$number@sms.edgewireless.com',
11014         TRUE
11015     ),
11016     (
11017         47,
11018         oils_i18n_gettext(
11019             47,
11020             'USA',
11021             'csc',
11022             'region'
11023         ),
11024         oils_i18n_gettext(
11025             47,
11026             'Syringa Wireless',
11027             'csc',
11028             'name'
11029         ),
11030         '$number@rinasms.com',
11031         TRUE
11032     ),
11033     (
11034         48,
11035         oils_i18n_gettext(
11036             48,
11037             'USA',
11038             'csc',
11039             'region'
11040         ),
11041         oils_i18n_gettext(
11042             48,
11043             'T-Mobile',
11044             'csc',
11045             'name'
11046         ),
11047         '$number@tmomail.net',
11048         TRUE
11049     ),
11050     (
11051         49,
11052         oils_i18n_gettext(
11053             49,
11054             'USA',
11055             'csc',
11056             'region'
11057         ),
11058         oils_i18n_gettext(
11059             49,
11060             'Straight Talk / PagePlus Cellular',
11061             'csc',
11062             'name'
11063         ),
11064         '$number@vtext.com',
11065         TRUE
11066     ),
11067     (
11068         50,
11069         oils_i18n_gettext(
11070             50,
11071             'USA',
11072             'csc',
11073             'region'
11074         ),
11075         oils_i18n_gettext(
11076             50,
11077             'South Central Communications',
11078             'csc',
11079             'name'
11080         ),
11081         '$number@rinasms.com',
11082         TRUE
11083     ),
11084     (
11085         51,
11086         oils_i18n_gettext(
11087             51,
11088             'USA',
11089             'csc',
11090             'region'
11091         ),
11092         oils_i18n_gettext(
11093             51,
11094             'Simple Mobile',
11095             'csc',
11096             'name'
11097         ),
11098         '$number@smtext.com',
11099         TRUE
11100     ),
11101     (
11102         52,
11103         oils_i18n_gettext(
11104             52,
11105             'USA',
11106             'csc',
11107             'region'
11108         ),
11109         oils_i18n_gettext(
11110             52,
11111             'Sprint (PCS)',
11112             'csc',
11113             'name'
11114         ),
11115         '$number@messaging.sprintpcs.com',
11116         TRUE
11117     ),
11118     (
11119         53,
11120         oils_i18n_gettext(
11121             53,
11122             'USA',
11123             'csc',
11124             'region'
11125         ),
11126         oils_i18n_gettext(
11127             53,
11128             'Nextel',
11129             'csc',
11130             'name'
11131         ),
11132         '$number@messaging.nextel.com',
11133         TRUE
11134     ),
11135     (
11136         54,
11137         oils_i18n_gettext(
11138             54,
11139             'USA',
11140             'csc',
11141             'region'
11142         ),
11143         oils_i18n_gettext(
11144             54,
11145             'Pioneer Cellular',
11146             'csc',
11147             'name'
11148         ),
11149         '$number@zsend.com', -- nine digit number
11150         TRUE
11151     ),
11152     (
11153         55,
11154         oils_i18n_gettext(
11155             55,
11156             'USA',
11157             'csc',
11158             'region'
11159         ),
11160         oils_i18n_gettext(
11161             55,
11162             'Qwest Wireless',
11163             'csc',
11164             'name'
11165         ),
11166         '$number@qwestmp.com',
11167         TRUE
11168     ),
11169     (
11170         56,
11171         oils_i18n_gettext(
11172             56,
11173             'USA',
11174             'csc',
11175             'region'
11176         ),
11177         oils_i18n_gettext(
11178             56,
11179             'US Cellular',
11180             'csc',
11181             'name'
11182         ),
11183         '$number@email.uscc.net',
11184         TRUE
11185     ),
11186     (
11187         57,
11188         oils_i18n_gettext(
11189             57,
11190             'USA',
11191             'csc',
11192             'region'
11193         ),
11194         oils_i18n_gettext(
11195             57,
11196             'Unicel',
11197             'csc',
11198             'name'
11199         ),
11200         '$number@utext.com',
11201         TRUE
11202     ),
11203     (
11204         58,
11205         oils_i18n_gettext(
11206             58,
11207             'USA',
11208             'csc',
11209             'region'
11210         ),
11211         oils_i18n_gettext(
11212             58,
11213             'Teleflip',
11214             'csc',
11215             'name'
11216         ),
11217         '$number@teleflip.com',
11218         TRUE
11219     ),
11220     (
11221         59,
11222         oils_i18n_gettext(
11223             59,
11224             'USA',
11225             'csc',
11226             'region'
11227         ),
11228         oils_i18n_gettext(
11229             59,
11230             'Virgin Mobile',
11231             'csc',
11232             'name'
11233         ),
11234         '$number@vmobl.com',
11235         TRUE
11236     ),
11237     (
11238         60,
11239         oils_i18n_gettext(
11240             60,
11241             'USA',
11242             'csc',
11243             'region'
11244         ),
11245         oils_i18n_gettext(
11246             60,
11247             'Verizon Wireless',
11248             'csc',
11249             'name'
11250         ),
11251         '$number@vtext.com',
11252         TRUE
11253     ),
11254     (
11255         61,
11256         oils_i18n_gettext(
11257             61,
11258             'USA',
11259             'csc',
11260             'region'
11261         ),
11262         oils_i18n_gettext(
11263             61,
11264             'USA Mobility',
11265             'csc',
11266             'name'
11267         ),
11268         '$number@usamobility.net',
11269         TRUE
11270     ),
11271     (
11272         62,
11273         oils_i18n_gettext(
11274             62,
11275             'USA',
11276             'csc',
11277             'region'
11278         ),
11279         oils_i18n_gettext(
11280             62,
11281             'Viaero',
11282             'csc',
11283             'name'
11284         ),
11285         '$number@viaerosms.com',
11286         TRUE
11287     ),
11288     (
11289         63,
11290         oils_i18n_gettext(
11291             63,
11292             'USA',
11293             'csc',
11294             'region'
11295         ),
11296         oils_i18n_gettext(
11297             63,
11298             'TracFone',
11299             'csc',
11300             'name'
11301         ),
11302         '$number@mmst5.tracfone.com',
11303         TRUE
11304     ),
11305     (
11306         64,
11307         oils_i18n_gettext(
11308             64,
11309             'USA',
11310             'csc',
11311             'region'
11312         ),
11313         oils_i18n_gettext(
11314             64,
11315             'Centennial Wireless',
11316             'csc',
11317             'name'
11318         ),
11319         '$number@cwemail.com',
11320         TRUE
11321     ),
11322
11323     -- South Korea and USA
11324     (
11325         65,
11326         oils_i18n_gettext(
11327             65,
11328             'South Korea and USA',
11329             'csc',
11330             'region'
11331         ),
11332         oils_i18n_gettext(
11333             65,
11334             'Helio',
11335             'csc',
11336             'name'
11337         ),
11338         '$number@myhelio.com',
11339         TRUE
11340     )
11341 ;
11342
11343 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
11344     SELECT
11345         pgt.id, perm.id, aout.depth, TRUE
11346     FROM
11347         permission.grp_tree pgt,
11348         permission.perm_list perm,
11349         actor.org_unit_type aout
11350     WHERE
11351         pgt.name = 'Global Administrator' AND
11352         aout.name = 'Consortium' AND
11353         perm.code = 'ADMIN_SMS_CARRIER';
11354
11355 INSERT INTO action_trigger.reactor (
11356     module,
11357     description
11358 ) VALUES (
11359     'SendSMS',
11360     'Send an SMS text message based on a user-defined template'
11361 );
11362
11363 INSERT INTO action_trigger.event_definition (
11364     active,
11365     owner,
11366     name,
11367     hook,
11368     validator,
11369     reactor,
11370     cleanup_success,
11371     delay,
11372     delay_field,
11373     group_field,
11374     template
11375 ) VALUES (
11376     true,
11377     1, -- admin
11378     'Hold Ready for Pickup SMS Notification',
11379     'hold.available',
11380     'HoldIsAvailable',
11381     'SendSMS',
11382     'CreateHoldNotification',
11383     '00:30:00',
11384     'shelf_time',
11385     'sms_notify',
11386     '[%- USE date -%]
11387 [%- user = target.0.usr -%]
11388 From: [%- params.sender_email || default_sender %]
11389 To: [%- params.recipient_email || helpers.get_sms_gateway_email(target.0.sms_carrier,target.0.sms_notify) %]
11390 Subject: [% target.size %] hold(s) ready
11391
11392 [% FOR hold IN target %][%-
11393   bibxml = helpers.xml_doc( hold.current_copy.call_number.record.marc );
11394   title = "";
11395   FOR part IN bibxml.findnodes(''//*[@tag="245"]/*[@code="a"]'');
11396     title = title _ part.textContent;
11397   END;
11398   author = bibxml.findnodes(''//*[@tag="100"]/*[@code="a"]'').textContent;
11399 %][% hold.usr.first_given_name %]:[% title %] @ [% hold.pickup_lib.name %]
11400 [% END %]
11401 '
11402 );
11403
11404 INSERT INTO action_trigger.environment (
11405     event_def,
11406     path
11407 ) VALUES (
11408     currval('action_trigger.event_definition_id_seq'),
11409     'current_copy.call_number.record.simple_record'
11410 ), (
11411     currval('action_trigger.event_definition_id_seq'),
11412     'usr'
11413 ), (
11414     currval('action_trigger.event_definition_id_seq'),
11415     'pickup_lib.billing_address'
11416 );
11417
11418 INSERT INTO action_trigger.event_params (event_def, param, value)
11419     VALUES (currval('action_trigger.event_definition_id_seq'), 'check_sms_notify', 1);
11420
11421 INSERT INTO action_trigger.hook(
11422     key,
11423     core_type,
11424     description,
11425     passive
11426 ) VALUES (
11427     'acn.format.sms_text',
11428     'acn',
11429     oils_i18n_gettext(
11430         'acn.format.sms_text',
11431         'A text message has been requested for a call number.',
11432         'ath',
11433         'description'
11434     ),
11435     FALSE
11436 );
11437
11438 INSERT INTO action_trigger.event_definition (
11439     active,
11440     owner,
11441     name,
11442     hook,
11443     validator,
11444     reactor,
11445     template
11446 ) VALUES (
11447     true,
11448     1, -- admin
11449     'SMS Call Number',
11450     'acn.format.sms_text',
11451     'NOOP_True',
11452     'SendSMS',
11453     '[%- USE date -%]
11454 From: [%- params.sender_email || default_sender %]
11455 To: [%- params.recipient_email || helpers.get_sms_gateway_email(user_data.sms_carrier,user_data.sms_notify) %]
11456 Subject: Call Number
11457
11458 [%-
11459   bibxml = helpers.xml_doc( target.record.marc );
11460   title = "";
11461   FOR part IN bibxml.findnodes(''//*[@tag="245"]/*[@code="a" or @code="b"]'');
11462     title = title _ part.textContent;
11463   END;
11464   author = bibxml.findnodes(''//*[@tag="100"]/*[@code="a"]'').textContent;
11465 %]
11466 Call Number: [% target.label %]
11467 Location: [% helpers.get_most_populous_location( target.id ).name %]
11468 Library: [% target.owning_lib.name %]
11469 [%- IF title %]
11470 Title: [% title %]
11471 [%- END %]
11472 [%- IF author %]
11473 Author: [% author %]
11474 [%- END %]
11475 '
11476 );
11477
11478 INSERT INTO action_trigger.environment (
11479     event_def,
11480     path
11481 ) VALUES (
11482     currval('action_trigger.event_definition_id_seq'),
11483     'record.simple_record'
11484 ), (
11485     currval('action_trigger.event_definition_id_seq'),
11486     'owning_lib.billing_address'
11487 );
11488
11489 INSERT INTO vandelay.merge_profile (owner, name, replace_spec) 
11490     VALUES (1, 'Match-Only Merge', '901c');
11491
11492 INSERT INTO vandelay.merge_profile (owner, name, preserve_spec) 
11493     VALUES (1, 'Full Overlay', '901c');
11494
11495 -- user activity seed data --
11496
11497 INSERT INTO config.usr_activity_type (id, ewho, ewhat, ehow, egroup, label) VALUES
11498
11499      -- authen/authz actions
11500      -- note: "opensrf" is the default ingress/ehow
11501      (1,  NULL, 'login',  'opensrf',      'authen', oils_i18n_gettext(1 , 'Login via opensrf', 'cuat', 'label'))
11502     ,(2,  NULL, 'login',  'srfsh',        'authen', oils_i18n_gettext(2 , 'Login via srfsh', 'cuat', 'label'))
11503     ,(3,  NULL, 'login',  'gateway-v1',   'authen', oils_i18n_gettext(3 , 'Login via gateway-v1', 'cuat', 'label'))
11504     ,(4,  NULL, 'login',  'translator-v1','authen', oils_i18n_gettext(4 , 'Login via translator-v1', 'cuat', 'label'))
11505     ,(5,  NULL, 'login',  'xmlrpc',       'authen', oils_i18n_gettext(5 , 'Login via xmlrpc', 'cuat', 'label'))
11506     ,(6,  NULL, 'login',  'remoteauth',   'authen', oils_i18n_gettext(6 , 'Login via remoteauth', 'cuat', 'label'))
11507     ,(7,  NULL, 'login',  'sip2',         'authen', oils_i18n_gettext(7 , 'SIP2 Proxy Login', 'cuat', 'label'))
11508     ,(8,  NULL, 'login',  'apache',       'authen', oils_i18n_gettext(8 , 'Login via Apache module', 'cuat', 'label'))
11509
11510     ,(9,  NULL, 'verify', 'opensrf',      'authz',  oils_i18n_gettext(9 , 'Verification via opensrf', 'cuat', 'label'))
11511     ,(10, NULL, 'verify', 'srfsh',        'authz',  oils_i18n_gettext(10, 'Verification via srfsh', 'cuat', 'label'))
11512     ,(11, NULL, 'verify', 'gateway-v1',   'authz',  oils_i18n_gettext(11, 'Verification via gateway-v1', 'cuat', 'label'))
11513     ,(12, NULL, 'verify', 'translator-v1','authz',  oils_i18n_gettext(12, 'Verification via translator-v1', 'cuat', 'label'))
11514     ,(13, NULL, 'verify', 'xmlrpc',       'authz',  oils_i18n_gettext(13, 'Verification via xmlrpc', 'cuat', 'label'))
11515     ,(14, NULL, 'verify', 'remoteauth',   'authz',  oils_i18n_gettext(14, 'Verification via remoteauth', 'cuat', 'label'))
11516     ,(15, NULL, 'verify', 'sip2',         'authz',  oils_i18n_gettext(15, 'SIP2 User Verification', 'cuat', 'label'))
11517
11518      -- authen/authz actions w/ known uses of "who"
11519     ,(16, 'opac',        'login',  'gateway-v1',   'authen', oils_i18n_gettext(16, 'OPAC Login (jspac)', 'cuat', 'label'))
11520     ,(17, 'opac',        'login',  'apache',       'authen', oils_i18n_gettext(17, 'OPAC Login (tpac)', 'cuat', 'label'))
11521     ,(18, 'staffclient', 'login',  'gateway-v1',   'authen', oils_i18n_gettext(18, 'Staff Client Login', 'cuat', 'label'))
11522     ,(19, 'selfcheck',   'login',  'translator-v1','authen', oils_i18n_gettext(19, 'Self-Check Proxy Login', 'cuat', 'label'))
11523     ,(20, 'ums',         'login',  'xmlrpc',       'authen', oils_i18n_gettext(20, 'Unique Mgt Login', 'cuat', 'label'))
11524     ,(21, 'authproxy',   'login',  'apache',       'authen', oils_i18n_gettext(21, 'Apache Auth Proxy Login', 'cuat', 'label'))
11525     ,(22, 'libraryelf',  'login',  'xmlrpc',       'authz',  oils_i18n_gettext(22, 'LibraryElf Login', 'cuat', 'label'))
11526
11527     ,(23, 'selfcheck',   'verify', 'translator-v1','authz',  oils_i18n_gettext(23, 'Self-Check User Verification', 'cuat', 'label'))
11528     ,(24, 'ezproxy',     'verify', 'remoteauth',   'authz',  oils_i18n_gettext(24, 'EZProxy Verification', 'cuat', 'label'))
11529     -- ...
11530     ;
11531
11532 -- reserve the first 1000 slots
11533 SELECT SETVAL('config.usr_activity_type_id_seq'::TEXT, 1000);
11534
11535 INSERT INTO config.org_unit_setting_type 
11536     (name, label, description, grp, datatype) 
11537     VALUES (
11538         'circ.fines.charge_when_closed',
11539          oils_i18n_gettext(
11540             'circ.fines.charge_when_closed',
11541             'Charge fines on overdue circulations when closed',
11542             'coust', 
11543             'label'
11544         ),
11545         oils_i18n_gettext(
11546             'circ.fines.charge_when_closed',
11547             '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.',
11548             'coust', 
11549             'description'
11550         ),
11551         'circ',
11552         'bool'
11553     );
11554
11555 INSERT INTO config.org_unit_setting_type 
11556     (name, label, description, grp, datatype) 
11557     VALUES (
11558         'circ.patron.usr_activity_retrieve.max',
11559          oils_i18n_gettext(
11560             'circ.patron.usr_activity_retrieve.max',
11561             'Max user activity entries to retrieve (staff client)',
11562             'coust', 
11563             'label'
11564         ),
11565         oils_i18n_gettext(
11566             'circ.patron.usr_activity_retrieve.max',
11567             '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.',
11568             'coust', 
11569             'description'
11570         ),
11571         'gui',
11572         'integer'
11573     );
11574 -- circ export csv export --
11575
11576 INSERT INTO action_trigger.hook (key, core_type, description, passive)
11577 VALUES (
11578     'circ.format.history.csv',
11579     'circ',
11580     oils_i18n_gettext(
11581         'circ.format.history.csv',
11582         'Produce CSV of circulation history',
11583         'ath',
11584         'description'
11585     ),
11586     FALSE
11587 );
11588
11589 INSERT INTO action_trigger.event_definition (
11590     active, owner, name, hook, reactor, validator, group_field, template) 
11591 VALUES (
11592     TRUE, 1, 'Circ History CSV', 'circ.format.history.csv', 'ProcessTemplate', 'NOOP_True', 'usr',
11593 $$
11594 Title,Author,Call Number,Barcode,Format
11595 [%-
11596 FOR circ IN target;
11597     bibxml = helpers.unapi_bre(circ.target_copy.call_number.record, {flesh => '{mra}'});
11598     title = "";
11599     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
11600         title = title _ part.textContent;
11601     END;
11602     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
11603     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value') %]
11604
11605     [%- helpers.csv_datum(title) -%],
11606     [%- helpers.csv_datum(author) -%],
11607     [%- helpers.csv_datum(circ.target_copy.call_number.label) -%],
11608     [%- helpers.csv_datum(circ.target_copy.barcode) -%],
11609     [%- helpers.csv_datum(item_type) %]
11610 [%- END -%]
11611 $$
11612 );
11613
11614 INSERT INTO action_trigger.environment (event_def, path)
11615     VALUES (
11616         currval('action_trigger.event_definition_id_seq'),
11617         'target_copy.call_number'
11618     );
11619
11620 INSERT INTO actor.toolbar(org,label,layout) VALUES
11621     ( 1, 'circ', '["circ_checkout","circ_checkin","toolbarseparator.1","search_opac","copy_status","toolbarseparator.2","patron_search","patron_register","toolbarspacer.3","hotkeys_toggle"]' ),
11622     ( 1, 'cat', '["circ_checkin","toolbarseparator.1","search_opac","copy_status","toolbarseparator.2","create_marc","authority_manage","retrieve_last_record","toolbarspacer.3","hotkeys_toggle"]' );
11623
11624 INSERT INTO config.global_flag (name, enabled, label) 
11625     VALUES (
11626         'opac.org_unit.non_inherited_visibility',
11627         FALSE,
11628         oils_i18n_gettext(
11629             'opac.org_unit.non_inherited_visibility',
11630             'Org Units Do Not Inherit Visibility',
11631             'cgf',
11632             'label'
11633         )
11634     );
11635
11636 INSERT INTO config.org_unit_setting_type ( name, label, description, datatype, grp )
11637     VALUES (
11638         'ui.hide_copy_editor_fields',
11639         oils_i18n_gettext(
11640             'ui.hide_copy_editor_fields',
11641             'GUI: Hide these fields within the Item Attribute Editor',
11642             'coust',
11643             'label'
11644         ),
11645         oils_i18n_gettext(
11646             'ui.hide_copy_editor_fields',
11647             'This setting may be best maintained with the dedicated configuration'
11648             || ' interface within the Item Attribute Editor.  However, here it'
11649             || ' shows up as comma separated list of field identifiers to hide.',
11650             'coust',
11651             'description'
11652         ),
11653         'array',
11654         'gui'
11655     );
11656
11657 INSERT into config.org_unit_setting_type 
11658     (name, grp, label, description, datatype) 
11659     VALUES ( 
11660         'opac.patron.auto_overide_hold_events', 
11661         'opac',
11662         oils_i18n_gettext(
11663             'opac.patron.auto_overide_hold_events',
11664             'Auto-Override Permitted Hold Blocks (Patrons)',
11665             'coust', 
11666             'label'
11667         ),
11668         oils_i18n_gettext(
11669             'opac.patron.auto_overide_hold_events',
11670             'When a patron places a hold that fails and the patron has the correct permission ' || 
11671             'to override the hold, automatically override the hold without presenting a message ' || 
11672             'to the patron and requiring that the patron make a decision to override',
11673             'coust', 
11674             'description'
11675         ),
11676         'bool'
11677     );
11678
11679 INSERT into config.org_unit_setting_type
11680     (name, grp, label, description, datatype)
11681     VALUES (
11682         'opac.patron.temporary_list_warn',
11683         'opac',
11684         oils_i18n_gettext(
11685             'opac.patron.temporary_list_warn',
11686             'Warn patrons when adding to a temporary book list',
11687             'coust',
11688             'label'
11689         ),
11690         oils_i18n_gettext(
11691             'opac.patron.temporary_list_warn',
11692             'Present a warning dialog to the patron when a patron adds a book to a temporary book bag.',
11693             'coust',
11694             'description'
11695         ),
11696         'bool'
11697     );
11698
11699 INSERT INTO config.usr_setting_type
11700     (name,grp,opac_visible,label,description,datatype)
11701 VALUES (
11702     'opac.temporary_list_no_warn',
11703     'opac',
11704     TRUE,
11705     oils_i18n_gettext(
11706         'opac.temporary_list_no_warn',
11707         'Opt out of warning when adding a book to a temporary book list',
11708         'cust',
11709         'label'
11710     ),
11711     oils_i18n_gettext(
11712         'opac.temporary_list_no_warn',
11713         'Opt out of warning when adding a book to a temporary book list',
11714         'cust',
11715         'description'
11716     ),
11717     'bool'
11718 );
11719
11720 INSERT INTO config.usr_setting_type
11721     (name,grp,opac_visible,label,description,datatype)
11722 VALUES (
11723     'opac.default_list',
11724     'opac',
11725     FALSE,
11726     oils_i18n_gettext(
11727         'opac.default_list',
11728         'Default list to use when adding to a bookbag',
11729         'cust',
11730         'label'
11731     ),
11732     oils_i18n_gettext(
11733         'opac.default_list',
11734         'Default list to use when adding to a bookbag',
11735         'cust',
11736         'description'
11737     ),
11738     'integer'
11739 );
11740
11741 INSERT INTO config.org_unit_setting_type (
11742     name, grp, label, description, datatype
11743 ) VALUES (
11744     'circ.staff.max_visible_event_age',
11745     'circ',
11746     'Maximum visible age of User Trigger Events in Staff Interfaces',
11747     '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.',
11748     'interval'
11749 );
11750
11751
11752 -- kid's opac main search filter
11753
11754 INSERT INTO actor.search_filter_group (owner, code, label) 
11755     VALUES (1, 'kpac_main', 'Kid''s OPAC Search Filter');
11756
11757 INSERT INTO actor.search_query (label, query_text) 
11758     VALUES ('Children''s Materials', 'audience(a,b,c)');
11759 INSERT INTO actor.search_query (label, query_text) 
11760     VALUES ('Young Adult Materials', 'audience(j,d)');
11761 INSERT INTO actor.search_query (label, query_text) 
11762     VALUES ('General/Adult Materials',  'audience(e,f,g, )');
11763
11764 INSERT INTO actor.search_filter_group_entry (grp, query, pos)
11765     VALUES (
11766         (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
11767         (SELECT id FROM actor.search_query WHERE label = 'Children''s Materials'),
11768         0
11769     );
11770 INSERT INTO actor.search_filter_group_entry (grp, query, pos) 
11771     VALUES (
11772         (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
11773         (SELECT id FROM actor.search_query WHERE label = 'Young Adult Materials'),
11774         1
11775     );
11776 INSERT INTO actor.search_filter_group_entry (grp, query, pos) 
11777     VALUES (
11778         (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
11779         (SELECT id FROM actor.search_query WHERE label = 'General/Adult Materials'),
11780         2
11781     );