]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/950.data.seed-values.sql
Adding more groups to perm_list
[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 INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
31         VALUES (5,'PATRON_EXCEEDS_LOST_COUNT',oils_i18n_gettext(5, 'Patron exceeds max lost item threshold', 'csp', 'label'),'CIRC|FULFILL|HOLD|CAPTURE|RENEW', TRUE);
32
33 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);
34 INSERT INTO config.standing_penalty (id,name,label) VALUES (21,'SILENT_NOTE',oils_i18n_gettext(21, 'Note, no blocks', 'csp', 'label'));
35 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);
36 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);
37 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);
38 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);
39 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);
40 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);
41 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);
42 INSERT INTO config.standing_penalty (id,name,label) VALUES (29,'INVALID_PATRON_ADDRESS',oils_i18n_gettext(29, 'Patron has an invalid address', 'csp', 'label'));
43 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'));
44 INSERT INTO config.standing_penalty (id, name, label, staff_alert, org_depth) VALUES
45     (
46         31,
47         'INVALID_PATRON_EMAIL_ADDRESS',
48         oils_i18n_gettext(
49             31,
50             'Patron had an invalid email address',
51             'csp',
52             'label'
53         ),
54         TRUE,
55         0
56     ),
57     (
58         32,
59         'INVALID_PATRON_DAY_PHONE',
60         oils_i18n_gettext(
61             32,
62             'Patron had an invalid daytime phone number',
63             'csp',
64             'label'
65         ),
66         TRUE,
67         0
68     ),
69     (
70         33,
71         'INVALID_PATRON_EVENING_PHONE',
72         oils_i18n_gettext(
73             33,
74             'Patron had an invalid evening phone number',
75             'csp',
76             'label'
77         ),
78         TRUE,
79         0
80     ),
81     (
82         34,
83         'INVALID_PATRON_OTHER_PHONE',
84         oils_i18n_gettext(
85             34,
86             'Patron had an invalid other phone number',
87             'csp',
88             'label'
89         ),
90         TRUE,
91         0
92     );
93
94
95 SELECT SETVAL('config.standing_penalty_id_seq', 100);
96
97 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'identifier', oils_i18n_gettext('identifier', 'Identifier', 'cmc', 'label') );
98 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'keyword', oils_i18n_gettext('keyword', 'Keyword', 'cmc', 'label') );
99 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'title', oils_i18n_gettext('title', 'Title', 'cmc', 'label') );
100 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'author', oils_i18n_gettext('author', 'Author', 'cmc', 'label') );
101 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'subject', oils_i18n_gettext('subject', 'Subject', 'cmc', 'label') );
102 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'series', oils_i18n_gettext('series', 'Series', 'cmc', 'label') );
103
104 -- some more from 002.schema.config.sql:
105 INSERT INTO config.xml_transform VALUES ( 'marcxml', 'http://www.loc.gov/MARC21/slim', 'marc', '---' );
106 INSERT INTO config.xml_transform VALUES ( 'mods', 'http://www.loc.gov/mods/', 'mods', '');
107 INSERT INTO config.xml_transform VALUES ( 'mods3', 'http://www.loc.gov/mods/v3', 'mods3', '');
108 INSERT INTO config.xml_transform VALUES ( 'mods32', 'http://www.loc.gov/mods/v3', 'mods32', '');
109 INSERT INTO config.xml_transform VALUES ( 'mods33', 'http://www.loc.gov/mods/v3', 'mods33', '');
110 INSERT INTO config.xml_transform VALUES ( 'marc21expand880', 'http://www.loc.gov/MARC21/slim', 'marc', '' );
111
112 -- Index Definitions
113 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field, authority_xpath, browse_sort_xpath ) VALUES 
114     (1, 'series', 'seriestitle', oils_i18n_gettext(1, 'Series Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:relatedItem[@type="series"]/mods32:titleInfo[@type="nfi"]$$, TRUE, '//@xlink:href', $$*[local-name() != "nonSort"]$$ );
115
116 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, authority_xpath ) VALUES 
117     (2, 'title', 'abbreviated', oils_i18n_gettext(2, 'Abbreviated Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='abbreviated')]$$, '//@xlink:href' );
118 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, authority_xpath, browse_sort_xpath ) VALUES 
119     (3, 'title', 'translated', oils_i18n_gettext(3, 'Translated Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='translated-nfi')]$$, '//@xlink:href', $$*[local-name() != "nonSort"]$$ );
120 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, authority_xpath, browse_sort_xpath ) VALUES 
121     (4, 'title', 'alternative', oils_i18n_gettext(4, 'Alternate Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='alternative-nfi')]$$, '//@xlink:href', $$*[local-name() != "nonSort"]$$ );
122 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, authority_xpath, browse_sort_xpath ) VALUES 
123     (5, 'title', 'uniform', oils_i18n_gettext(5, 'Uniform Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='uniform-nfi')]$$, '//@xlink:href', $$*[local-name() != "nonSort"]$$ );
124 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, authority_xpath, browse_field, browse_sort_xpath ) VALUES 
125     (6, 'title', 'proper', oils_i18n_gettext(6, 'Title Proper', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleNonfiling[mods32:title and not (@type)]$$, '//@xlink:href', TRUE, $$*[local-name() != "nonSort"]$$ );
126
127 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field , authority_xpath, browse_xpath) VALUES 
128     (7, 'author', 'corporate', oils_i18n_gettext(7, 'Corporate Author', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:name[@type='corporate' and (mods32:role/mods32:roleTerm[text()='creator'] or mods32:role/mods32:roleTerm[text()='aut'] or mods32:role/mods32:roleTerm[text()='cre'])]$$, $$//*[local-name()='namePart']$$, TRUE, '//@xlink:href',$$//*[local-name()='namePart']$$ ); -- /* to fool vim */;
129 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field, authority_xpath, browse_xpath ) VALUES 
130     (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, '//@xlink:href',$$//*[local-name()='namePart']$$ ); -- /* to fool vim */;
131 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field, authority_xpath, browse_xpath ) VALUES 
132     (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, '//@xlink:href',$$//*[local-name()='namePart']$$ ); -- /* to fool vim */;
133 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field, authority_xpath, browse_xpath ) VALUES 
134     (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, '//@xlink:href',$$//*[local-name()='namePart']$$ ); -- /* to fool vim */;
135
136 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field, authority_xpath ) VALUES 
137     (11, 'subject', 'geographic', oils_i18n_gettext(11, 'Geographic Subject', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject/mods32:geographic$$, TRUE, '//@xlink:href' );
138 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field, authority_xpath ) VALUES 
139     (12, 'subject', 'name', oils_i18n_gettext(12, 'Name Subject', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject/mods32:name$$, $$//*[local-name()='namePart']$$, TRUE, '//@xlink:href' ); -- /* to fool vim */;
140 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field, authority_xpath ) VALUES 
141     (13, 'subject', 'temporal', oils_i18n_gettext(13, 'Temporal Subject', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject/mods32:temporal$$, TRUE, '//@xlink:href' );
142 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field, authority_xpath ) VALUES 
143     (14, 'subject', 'topic', oils_i18n_gettext(14, 'Topic Subject', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject/mods32:topic$$, TRUE, '//@xlink:href' );
144 --INSERT INTO config.metabib_field ( id, field_class, name, format, xpath ) VALUES 
145 --  ( id, field_class, name, xpath ) VALUES ( 'subject', 'genre', 'mods32', $$//mods32:mods/mods32:genre$$ );
146 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES 
147     (15, 'keyword', 'keyword', oils_i18n_gettext(15, 'General Keywords', 'cmf', 'label'), 'mods32', $$//mods32:mods/*[not(local-name()='originInfo')]$$, FALSE ); -- /* to fool vim */;
148 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
149     (16, 'subject', 'complete', oils_i18n_gettext(16, 'All Subjects', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject$$, FALSE );
150
151 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
152     (17, 'identifier', 'accession', oils_i18n_gettext(17, 'Accession Number', 'cmf', 'label'), 'marcxml', $$//marc:controlfield[@tag='001']$$, FALSE );
153 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
154     (18, 'identifier', 'isbn', oils_i18n_gettext(18, 'ISBN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='020']/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     (19, 'identifier', 'issn', oils_i18n_gettext(19, 'ISSN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='022']/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     (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 );
159 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
160     (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 );
161 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
162     (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 );
163 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
164     (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 );
165 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
166     (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 );
167 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
168     (25, 'identifier', 'bibcn', oils_i18n_gettext(25, 'Local Free-Text Call Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='099']$$, FALSE );
169 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
170     (26, 'identifier', 'tcn', oils_i18n_gettext(26, 'Title Control Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='901']/marc:subfield[@code='a']$$, FALSE );
171 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
172     (27, 'identifier', 'bibid', oils_i18n_gettext(27, 'Internal ID', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='901']/marc:subfield[@code='c']$$, FALSE );
173 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, search_field, facet_field, browse_field) VALUES
174     (28, 'identifier', 'authority_id', oils_i18n_gettext(28, 'Authority Record ID', 'cmf', 'label'), 'marcxml', '//marc:datafield/marc:subfield[@code="0"]', FALSE, TRUE, FALSE);
175 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field) VALUES
176     (29, 'identifier', 'scn', oils_i18n_gettext(29, 'System Control Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='035']/marc:subfield[@code="a"]$$, FALSE);
177 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field) VALUES
178     (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);
179 INSERT INTO config.metabib_field ( id, field_class, name, label, xpath, format, search_field, facet_field, browse_field) VALUES
180     (31, 'title', 'browse', oils_i18n_gettext(31, 'Title Proper (Browse)', 'cmf', 'label'), $$//mods32:mods/mods32:titleInfo[not (@type)]/mods32:title$$, 'mods32', FALSE, FALSE, TRUE);
181
182
183 SELECT SETVAL('config.metabib_field_id_seq'::TEXT, (SELECT MAX(id) FROM config.metabib_field), TRUE);
184
185 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('kw','keyword');
186 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.keyword','keyword');
187 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.publisher','keyword');
188 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('bib.subjecttitle','keyword');
189 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('bib.genre','keyword');
190 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('bib.edition','keyword');
191 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('srw.serverchoice','keyword');
192
193 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('id','identifier');
194 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.identifier','identifier');
195 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.isbn','identifier', 18);
196 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.issn','identifier', 19);
197 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.upc','identifier', 20);
198 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.callnumber','identifier', 25);
199 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.tcn','identifier', 26);
200 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.bibid','identifier', 27);
201
202 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('au','author');
203 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('name','author');
204 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('creator','author');
205 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.author','author');
206 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.name','author');
207 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.creator','author');
208 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.contributor','author');
209 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('bib.name','author');
210 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.namepersonal','author',8);
211 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.namepersonalfamily','author',8);
212 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.namepersonalgiven','author',8);
213 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.namecorporate','author',7);
214 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.nameconference','author',9);
215
216 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('ti','title');
217 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.title','title');
218 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.title','title');
219 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.titleabbreviated','title',2);
220 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.titleuniform','title',5);
221 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.titletranslated','title',3);
222 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.titlealternative','title',4);
223 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.title','title',2);
224
225 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('su','subject');
226 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.subject','subject');
227 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.subject','subject');
228 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.subjectplace','subject',11);
229 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.subjectname','subject',12);
230 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.subjectoccupation','subject',16);
231
232 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('se','series');
233 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('eg.series','series');
234 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('bib.titleseries','series',1);
235
236
237 INSERT INTO config.non_cataloged_type ( id, owning_lib, name ) VALUES ( 1, 1, oils_i18n_gettext(1, 'Paperback Book', 'cnct', 'name') );
238 SELECT SETVAL('config.non_cataloged_type_id_seq'::TEXT, 100);
239
240 INSERT INTO config.identification_type ( id, name ) VALUES 
241     ( 1, oils_i18n_gettext(1, 'Drivers License', 'cit', 'name') );
242 INSERT INTO config.identification_type ( id, name ) VALUES 
243     ( 2, oils_i18n_gettext(2, 'SSN', 'cit', 'name') );
244 INSERT INTO config.identification_type ( id, name ) VALUES 
245     ( 3, oils_i18n_gettext(3, 'Other', 'cit', 'name') );
246 SELECT SETVAL('config.identification_type_id_seq'::TEXT, 100);
247
248 INSERT INTO config.rule_circ_duration VALUES 
249     (1, oils_i18n_gettext(1, '7_days_0_renew', 'crcd', 'name'), '7 days', '7 days', '7 days', 0);
250 INSERT INTO config.rule_circ_duration VALUES 
251     (2, oils_i18n_gettext(2, '28_days_2_renew', 'crcd', 'name'), '28 days', '28 days', '28 days', 2);
252 INSERT INTO config.rule_circ_duration VALUES 
253     (3, oils_i18n_gettext(3, '3_months_0_renew', 'crcd', 'name'), '3 months', '3 months', '3 months', 0);
254 INSERT INTO config.rule_circ_duration VALUES 
255     (4, oils_i18n_gettext(4, '3_days_1_renew', 'crcd', 'name'), '3 days', '3 days', '3 days', 1);
256 INSERT INTO config.rule_circ_duration VALUES 
257     (5, oils_i18n_gettext(5, '2_months_2_renew', 'crcd', 'name'), '2 months', '2 months', '2 months', 2);
258 INSERT INTO config.rule_circ_duration VALUES 
259     (6, oils_i18n_gettext(6, '35_days_1_renew', 'crcd', 'name'), '35 days', '35 days', '35 days', 1);
260 INSERT INTO config.rule_circ_duration VALUES 
261     (7, oils_i18n_gettext(7, '7_days_2_renew', 'crcd', 'name'), '7 days', '7 days', '7 days', 2);
262 INSERT INTO config.rule_circ_duration VALUES 
263     (8, oils_i18n_gettext(8, '1_hour_2_renew', 'crcd', 'name'), '1 hour', '1 hour', '1 hour', 2);
264 INSERT INTO config.rule_circ_duration VALUES 
265     (9, oils_i18n_gettext(9, '28_days_0_renew', 'crcd', 'name'), '28 days', '28 days', '28 days', 0);
266 INSERT INTO config.rule_circ_duration VALUES 
267     (10, oils_i18n_gettext(10, '14_days_2_renew', 'crcd', 'name'), '14 days', '14 days', '14 days', 2);
268 INSERT INTO config.rule_circ_duration VALUES 
269     (11, oils_i18n_gettext(11, 'default', 'crcd', 'name'), '21 days', '14 days', '7 days', 2);
270 SELECT SETVAL('config.rule_circ_duration_id_seq'::TEXT, 100);
271
272 INSERT INTO config.rule_max_fine VALUES 
273     (1, oils_i18n_gettext(1, 'default', 'crmf', 'name'), 5.00);
274 INSERT INTO config.rule_max_fine VALUES 
275     (2, oils_i18n_gettext(2, 'overdue_min', 'crmf', 'name'), 5.00);
276 INSERT INTO config.rule_max_fine VALUES 
277     (3, oils_i18n_gettext(3, 'overdue_mid', 'crmf', 'name'), 10.00);
278 INSERT INTO config.rule_max_fine VALUES 
279     (4, oils_i18n_gettext(4, 'overdue_max', 'crmf', 'name'), 100.00);
280 INSERT INTO config.rule_max_fine VALUES 
281     (5, oils_i18n_gettext(5, 'overdue_equip_min', 'crmf', 'name'), 25.00);
282 INSERT INTO config.rule_max_fine VALUES 
283     (6, oils_i18n_gettext(6, 'overdue_equip_mid', 'crmf', 'name'), 25.00);
284 INSERT INTO config.rule_max_fine VALUES 
285     (7, oils_i18n_gettext(7, 'overdue_equip_max', 'crmf', 'name'), 100.00);
286 SELECT SETVAL('config.rule_max_fine_id_seq'::TEXT, 100);
287
288 INSERT INTO config.rule_recurring_fine VALUES 
289     (1, oils_i18n_gettext(1, 'default', 'crrf', 'name'), 0.50, 0.10, 0.05, '1 day', '1 day');
290 INSERT INTO config.rule_recurring_fine VALUES 
291     (2, oils_i18n_gettext(2, '10_cent_per_day', 'crrf', 'name'), 0.50, 0.10, 0.10, '1 day', '1 day');
292 INSERT INTO config.rule_recurring_fine VALUES 
293     (3, oils_i18n_gettext(3, '50_cent_per_day', 'crrf', 'name'), 0.50, 0.50, 0.50, '1 day', '1 day');
294 SELECT SETVAL('config.rule_recurring_fine_id_seq'::TEXT, 100);
295
296 INSERT INTO config.rule_age_hold_protect VALUES
297         (1, oils_i18n_gettext(1, '3month', 'crahp', 'name'), '3 months', 0);
298 INSERT INTO config.rule_age_hold_protect VALUES
299         (2, oils_i18n_gettext(2, '6month', 'crahp', 'name'), '6 months', 2);
300 SELECT SETVAL('config.rule_age_hold_protect_id_seq'::TEXT, 100);
301
302 INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active) VALUES (0,oils_i18n_gettext(0, 'Available', 'ccs', 'name'),'t','t','t');
303 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');
304 INSERT INTO config.copy_status (id,name) VALUES (2,oils_i18n_gettext(2, 'Bindery', 'ccs', 'name'));
305 INSERT INTO config.copy_status (id,name,restrict_copy_delete) VALUES (3,oils_i18n_gettext(3, 'Lost', 'ccs', 'name'),'t');
306 INSERT INTO config.copy_status (id,name) VALUES (4,oils_i18n_gettext(4, 'Missing', 'ccs', 'name'));
307 INSERT INTO config.copy_status (id,name,holdable,opac_visible) VALUES (5,oils_i18n_gettext(5, 'In process', 'ccs', 'name'),'t','t');
308 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');
309 INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active) VALUES (7,oils_i18n_gettext(7, 'Reshelving', 'ccs', 'name'),'t','t','t');
310 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');
311 INSERT INTO config.copy_status (id,name,holdable,opac_visible) VALUES (9,oils_i18n_gettext(9, 'On order', 'ccs', 'name'),'t','t');
312 INSERT INTO config.copy_status (id,name,copy_active) VALUES (10,oils_i18n_gettext(10, 'ILL', 'ccs', 'name'),'t');
313 INSERT INTO config.copy_status (id,name) VALUES (11,oils_i18n_gettext(11, 'Cataloging', 'ccs', 'name'));
314 INSERT INTO config.copy_status (id,name,opac_visible,copy_active) VALUES (12,oils_i18n_gettext(12, 'Reserves', 'ccs', 'name'),'t','t');
315 INSERT INTO config.copy_status (id,name) VALUES (13,oils_i18n_gettext(13, 'Discard/Weed', 'ccs', 'name'));
316 INSERT INTO config.copy_status (id,name) VALUES (14,oils_i18n_gettext(14, 'Damaged', 'ccs', 'name'));
317 INSERT INTO config.copy_status (id,name,copy_active) VALUES (15,oils_i18n_gettext(15, 'On reservation shelf', 'ccs', 'name'),'t');
318 INSERT INTO config.copy_status
319     (id, name, holdable, opac_visible, copy_active, restrict_copy_delete)
320     VALUES (16, oils_i18n_gettext(16, 'Long Overdue', 'ccs', 'name'), 'f', 'f', 'f', 't');
321
322
323 SELECT SETVAL('config.copy_status_id_seq'::TEXT, 100);
324
325 INSERT INTO config.net_access_level (id, name) VALUES 
326     (1, oils_i18n_gettext(1, 'Filtered', 'cnal', 'name'));
327 INSERT INTO config.net_access_level (id, name) VALUES 
328     (2, oils_i18n_gettext(2, 'Unfiltered', 'cnal', 'name'));
329 INSERT INTO config.net_access_level (id, name) VALUES 
330     (3, oils_i18n_gettext(3, 'No Access', 'cnal', 'name'));
331 SELECT SETVAL('config.net_access_level_id_seq'::TEXT, 100);
332
333 -- available locales
334 INSERT INTO config.i18n_locale (code,marc_code,name,description)
335     VALUES ('en-US', 'eng', oils_i18n_gettext('en-US', 'English (US)', 'i18n_l', 'name'),
336         oils_i18n_gettext('en-US', 'American English', 'i18n_l', 'description'));
337 INSERT INTO config.i18n_locale (code,marc_code,name,description)
338     VALUES ('cs-CZ', 'cze', oils_i18n_gettext('cs-CZ', 'Czech', 'i18n_l', 'name'),
339         oils_i18n_gettext('cs-CZ', 'Czech', 'i18n_l', 'description'));
340 INSERT INTO config.i18n_locale (code,marc_code,name,description)
341     VALUES ('en-CA', 'eng', oils_i18n_gettext('en-CA', 'English (Canada)', 'i18n_l', 'name'),
342         oils_i18n_gettext('en-CA', 'Canadian English', 'i18n_l', 'description'));
343 INSERT INTO config.i18n_locale (code,marc_code,name,description)
344     VALUES ('fi-FI', 'fin', oils_i18n_gettext('fi-FI', 'Finnish', 'i18n_l', 'name'),
345         oils_i18n_gettext('fi-FI', 'Finnish', 'i18n_l', 'description'));
346 INSERT INTO config.i18n_locale (code,marc_code,name,description)
347     VALUES ('fr-CA', 'fre', oils_i18n_gettext('fr-CA', 'French (Canada)', 'i18n_l', 'name'),
348         oils_i18n_gettext('fr-CA', 'Canadian French', 'i18n_l', 'description'));
349 INSERT INTO config.i18n_locale (code,marc_code,name,description)
350     VALUES ('hy-AM', 'arm', oils_i18n_gettext('hy-AM', 'Armenian', 'i18n_l', 'name'),
351         oils_i18n_gettext('hy-AM', 'Armenian', 'i18n_l', 'description'));
352 --INSERT INTO config.i18n_locale (code,marc_code,name,description)
353 --    VALUES ('es-US', 'spa', oils_i18n_gettext('es-US', 'Spanish (US)', 'i18n_l', 'name'),
354 --      oils_i18n_gettext('es-US', 'American Spanish', 'i18n_l', 'description'));
355 --INSERT INTO config.i18n_locale (code,marc_code,name,description)
356 --    VALUES ('es-MX', 'spa', oils_i18n_gettext('es-MX', 'Spanish (Mexico)', 'i18n_l', 'name'),
357 --      oils_i18n_gettext('es-MX', 'Mexican Spanish', 'i18n_l', 'description'));
358 INSERT INTO config.i18n_locale (code,marc_code,name,description)
359     VALUES ('ru-RU', 'rus', oils_i18n_gettext('ru-RU', 'Russian', 'i18n_l', 'name'),
360         oils_i18n_gettext('ru-RU', 'Russian', 'i18n_l', 'description'));
361
362 -- Z39.50 server attributes
363
364 INSERT INTO config.z3950_source (name, label, host, port, db, auth)
365         VALUES ('loc', oils_i18n_gettext('loc', 'Library of Congress', 'czs', 'label'), 'lx2.loc.gov', 210, 'LCDB', FALSE);
366 INSERT INTO config.z3950_source (name, label, host, port, db, auth)
367         VALUES ('oclc', oils_i18n_gettext('oclc', 'OCLC', 'czs', 'label'), 'zcat.oclc.org', 210, 'OLUCWorldCat', TRUE);
368 INSERT INTO config.z3950_source (name, label, host, port, db, auth)
369         VALUES ('biblios', oils_i18n_gettext('biblios','‡biblios.net', 'czs', 'label'), 'z3950.biblios.net', 210, 'bibliographic', FALSE);
370
371 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
372         VALUES (1, 'loc','tcn', oils_i18n_gettext(1, 'Title Control Number', 'cza', 'label'), 12, 1);
373 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
374         VALUES (2, 'loc', 'isbn', oils_i18n_gettext(2, 'ISBN', 'cza', 'label'), 7, 6);
375 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
376         VALUES (3, 'loc', 'lccn', oils_i18n_gettext(3, 'LCCN', 'cza', 'label'), 9, 6);
377 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
378         VALUES (4, 'loc', 'author', oils_i18n_gettext(4, 'Author', 'cza', 'label'), 1003, 6);
379 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
380         VALUES (5, 'loc', 'title', oils_i18n_gettext(5, 'Title', 'cza', 'label'), 4, 6);
381 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
382         VALUES (6, 'loc', 'issn', oils_i18n_gettext(6, 'ISSN', 'cza', 'label'), 8, 1);
383 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
384         VALUES (7, 'loc', 'publisher', oils_i18n_gettext(7, 'Publisher', 'cza', 'label'), 1018, 6);
385 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
386         VALUES (8, 'loc', 'pubdate', oils_i18n_gettext(8, 'Publication Date', 'cza', 'label'), 31, 1);
387 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
388         VALUES (9, 'loc', 'item_type', oils_i18n_gettext(9, 'Item Type', 'cza', 'label'), 1001, 1);
389
390 UPDATE config.z3950_attr SET truncation = 1 WHERE source = 'loc';
391
392 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
393         VALUES (10, 'oclc', 'tcn', oils_i18n_gettext(10, 'Title Control Number', 'cza', 'label'), 12, 1);
394 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
395         VALUES (11, 'oclc', 'isbn', oils_i18n_gettext(11, 'ISBN', 'cza', 'label'), 7, 6);
396 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
397         VALUES (12, 'oclc', 'lccn', oils_i18n_gettext(12, 'LCCN', 'cza', 'label'), 9, 1);
398 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
399         VALUES (13, 'oclc', 'author', oils_i18n_gettext(13, 'Author', 'cza', 'label'), 1003, 6);
400 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
401         VALUES (14, 'oclc', 'title', oils_i18n_gettext(14, 'Title', 'cza', 'label'), 4, 6);
402 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
403         VALUES (15, 'oclc', 'issn', oils_i18n_gettext(15, 'ISSN', 'cza', 'label'), 8, 1);
404 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
405         VALUES (16, 'oclc', 'publisher', oils_i18n_gettext(16, 'Publisher', 'cza', 'label'), 1018, 6);
406 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
407         VALUES (17, 'oclc', 'pubdate', oils_i18n_gettext(17, 'Publication Date', 'cza', 'label'), 31, 1);
408 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
409         VALUES (18, 'oclc', 'item_type', oils_i18n_gettext(18, 'Item Type', 'cza', 'label'), 1001, 1);
410
411 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
412         VALUES (19, 'biblios','tcn', oils_i18n_gettext(19, 'Title Control Number', 'cza', 'label'), 12, 1);
413 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
414         VALUES (20, 'biblios', 'isbn', oils_i18n_gettext(20, 'ISBN', 'cza', 'label'), 7, 6);
415 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
416         VALUES (21, 'biblios', 'lccn', oils_i18n_gettext(21, 'LCCN', 'cza', 'label'), 9, 1);
417 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
418         VALUES (22, 'biblios', 'author', oils_i18n_gettext(22, 'Author', 'cza', 'label'), 1003, 6);
419 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
420         VALUES (23, 'biblios', 'title', oils_i18n_gettext(23, 'Title', 'cza', 'label'), 4, 6);
421 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
422         VALUES (24, 'biblios', 'issn', oils_i18n_gettext(24, 'ISSN', 'cza', 'label'), 8, 1);
423 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
424         VALUES (25, 'biblios', 'publisher', oils_i18n_gettext(25, 'Publisher', 'cza', 'label'), 1018, 6);
425 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
426         VALUES (26, 'biblios', 'pubdate', oils_i18n_gettext(26, 'Publication Date', 'cza', 'label'), 31, 1);
427 INSERT INTO config.z3950_attr (id, source, name, label, code, format)
428         VALUES (27, 'biblios', 'item_type', oils_i18n_gettext(27, 'Item Type', 'cza', 'label'), 1001, 1);
429
430 UPDATE config.z3950_attr SET truncation = 1 WHERE source = 'biblios';
431
432 SELECT SETVAL('config.z3950_attr_id_seq'::TEXT, 100);
433
434 --005.schema.actors.sql:
435
436 -- The PINES levels
437 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent, can_have_users, can_have_vols) VALUES 
438     ( 1, oils_i18n_gettext(1, 'Consortium', 'aout', 'name'),
439         oils_i18n_gettext(1, 'Everywhere', 'aout', 'opac_label'), 0, NULL, FALSE, FALSE );
440 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent, can_have_users, can_have_vols) VALUES 
441     ( 2, oils_i18n_gettext(2, 'System', 'aout', 'name'),
442         oils_i18n_gettext(2, 'Local Library System', 'aout', 'opac_label'), 1, 1, FALSE, FALSE );
443 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent) VALUES 
444     ( 3, oils_i18n_gettext(3, 'Branch', 'aout', 'name'),
445         oils_i18n_gettext(3, 'This Branch', 'aout', 'opac_label'), 2, 2 );
446 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent) VALUES 
447     ( 4, oils_i18n_gettext(4, 'Sub-library', 'aout', 'name'),
448         oils_i18n_gettext(4, 'This Specialized Library', 'aout', 'opac_label'), 3, 3 );
449 INSERT INTO actor.org_unit_type (id, name, opac_label, depth, parent) VALUES 
450     ( 5, oils_i18n_gettext(5, 'Bookmobile', 'aout', 'name'),
451         oils_i18n_gettext(5, 'Your Bookmobile', 'aout', 'opac_label'), 3, 3 );
452 SELECT SETVAL('actor.org_unit_type_id_seq'::TEXT, 100);
453
454 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
455     (1, NULL, 1, 'CONS', oils_i18n_gettext(1, 'Example Consortium', 'aou', 'name'));
456 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
457     (2, 1, 2, 'SYS1', oils_i18n_gettext(2, 'Example System 1', 'aou', 'name'));
458 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
459     (3, 1, 2, 'SYS2', oils_i18n_gettext(3, 'Example System 2', 'aou', 'name'));
460 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
461     (4, 2, 3, 'BR1', oils_i18n_gettext(4, 'Example Branch 1', 'aou', 'name'));
462 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
463     (5, 2, 3, 'BR2', oils_i18n_gettext(5, 'Example Branch 2', 'aou', 'name'));
464 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
465     (6, 3, 3, 'BR3', oils_i18n_gettext(6, 'Example Branch 3', 'aou', 'name'));
466 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
467     (7, 3, 3, 'BR4', oils_i18n_gettext(7, 'Example Branch 4', 'aou', 'name'));
468 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
469     (8, 4, 4, 'SL1', oils_i18n_gettext(8, 'Example Sub-library 1', 'aou', 'name'));
470 INSERT INTO actor.org_unit (id, parent_ou, ou_type, shortname, name) VALUES 
471     (9, 6, 5, 'BM1', oils_i18n_gettext(9, 'Example Bookmobile 1', 'aou', 'name'));
472 SELECT SETVAL('actor.org_unit_id_seq'::TEXT, 100);
473
474 INSERT INTO actor.org_address (org_unit, street1, city, state, country, post_code)
475 SELECT id, '123 Main St.', 'Anywhere', 'GA', 'US', '30303'
476 FROM actor.org_unit;
477
478 UPDATE actor.org_unit SET holds_address = id, ill_address = id, billing_address = id, mailing_address = id;
479
480 INSERT INTO config.billing_type (id, name, owner) VALUES
481         ( 1, oils_i18n_gettext(1, 'Overdue Materials', 'cbt', 'name'), 1);
482 INSERT INTO config.billing_type (id, name, owner) VALUES
483         ( 2, oils_i18n_gettext(2, 'Long Overdue Collection Fee', 'cbt', 'name'), 1);
484 INSERT INTO config.billing_type (id, name, owner) VALUES
485         ( 3, oils_i18n_gettext(3, 'Lost Materials', 'cbt', 'name'), 1);
486 INSERT INTO config.billing_type (id, name, owner) VALUES
487         ( 4, oils_i18n_gettext(4, 'Lost Materials Processing Fee', 'cbt', 'name'), 1);
488 INSERT INTO config.billing_type (id, name, owner) VALUES
489         ( 5, oils_i18n_gettext(5, 'System: Deposit', 'cbt', 'name'), 1);
490 INSERT INTO config.billing_type (id, name, owner) VALUES
491         ( 6, oils_i18n_gettext(6, 'System: Rental', 'cbt', 'name'), 1);
492 INSERT INTO config.billing_type (id, name, owner) VALUES
493         ( 7, oils_i18n_gettext(7, 'Damaged Item', 'cbt', 'name'), 1);
494 INSERT INTO config.billing_type (id, name, owner) VALUES
495         ( 8, oils_i18n_gettext(8, 'Damaged Item Processing Fee', 'cbt', 'name'), 1);
496 INSERT INTO config.billing_type (id, name, owner) VALUES
497         ( 9, oils_i18n_gettext(9, 'Notification Fee', 'cbt', 'name'), 1);
498 INSERT INTO config.billing_type (id, owner, name) VALUES
499     (10, 1, oils_i18n_gettext(10, 'Long-Overdue Materials', 'cbt', 'name'));
500 INSERT INTO config.billing_type (id, owner, name) VALUES
501     (11, 1, oils_i18n_gettext(11, 'Long-Overdue Materials Processing Fee', 'cbt', 'name'));
502
503
504 INSERT INTO config.billing_type (id, name, owner) VALUES ( 101, oils_i18n_gettext(101, 'Misc', 'cbt', 'name'), 1);
505
506 SELECT SETVAL('config.billing_type_id_seq'::TEXT, 101);
507
508 --006.data.permissions.sql:
509 INSERT INTO permission.perm_list ( id, code, description ) VALUES
510  ( -1, 'EVERYTHING', oils_i18n_gettext( -1, 
511     'EVERYTHING', 'ppl', 'description' )),
512  ( 1, 'OPAC_LOGIN', oils_i18n_gettext( 1, 
513     'Allow a user to log in to the OPAC', 'ppl', 'description' )),
514  ( 2, 'STAFF_LOGIN', oils_i18n_gettext( 2, 
515     'Allow a user to log in to the staff client', 'ppl', 'description' )),
516  ( 3, 'MR_HOLDS', oils_i18n_gettext( 3, 
517     'Allow a user to create a metarecord holds', 'ppl', 'description' )),
518  ( 4, 'TITLE_HOLDS', oils_i18n_gettext( 4, 
519     'Allow a user to place a hold at the title level', 'ppl', 'description' )),
520  ( 5, 'VOLUME_HOLDS', oils_i18n_gettext( 5, 
521     'Allow a user to place a volume level hold', 'ppl', 'description' )),
522  ( 6, 'COPY_HOLDS', oils_i18n_gettext( 6, 
523     'Allow a user to place a hold on a specific copy', 'ppl', 'description' )),
524  ( 7, 'REQUEST_HOLDS', oils_i18n_gettext( 7, 
525     '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' )),
526  ( 8, 'REQUEST_HOLDS_OVERRIDE', oils_i18n_gettext( 8, 
527     '* no longer applicable', 'ppl', 'description' )),
528  ( 9, 'VIEW_HOLD', oils_i18n_gettext( 9, 
529     'Allow a user to view another user''s holds', 'ppl', 'description' )),
530  ( 10, 'DELETE_HOLDS', oils_i18n_gettext( 10, 
531     '* no longer applicable', 'ppl', 'description' )),
532  ( 11, 'UPDATE_HOLD', oils_i18n_gettext( 11, 
533     'Allow a user to update another user''s hold', 'ppl', 'description' )),
534  ( 12, 'RENEW_CIRC', oils_i18n_gettext( 12, 
535     'Allow a user to renew items', 'ppl', 'description' )),
536  ( 13, 'VIEW_USER_FINES_SUMMARY', oils_i18n_gettext( 13, 
537     'Allow a user to view bill details', 'ppl', 'description' )),
538  ( 14, 'VIEW_USER_TRANSACTIONS', oils_i18n_gettext( 14, 
539     'Allow a user to see another user''s grocery or circulation transactions in the Bills Interface; duplicate of VIEW_TRANSACTION', 'ppl', 'description' )),
540  ( 15, 'UPDATE_MARC', oils_i18n_gettext( 15, 
541     'Allow a user to edit a MARC record', 'ppl', 'description' )),
542  ( 16, 'CREATE_MARC', oils_i18n_gettext( 16, 
543     'Allow a user to create new MARC records', 'ppl', 'description' )),
544  ( 17, 'IMPORT_MARC', oils_i18n_gettext( 17, 
545     'Allow a user to import a MARC record via the Z39.50 interface', 'ppl', 'description' )),
546  ( 18, 'CREATE_VOLUME', oils_i18n_gettext( 18, 
547     'Allow a user to create a volume', 'ppl', 'description' )),
548  ( 19, 'UPDATE_VOLUME', oils_i18n_gettext( 19, 
549     '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' )),
550  ( 20, 'DELETE_VOLUME', oils_i18n_gettext( 20, 
551     'Allow a user to delete a volume', 'ppl', 'description' )),
552  ( 21, 'CREATE_COPY', oils_i18n_gettext( 21, 
553     'Allow a user to create a new copy object', 'ppl', 'description' )),
554  ( 22, 'UPDATE_COPY', oils_i18n_gettext( 22, 
555     'Allow a user to edit a copy', 'ppl', 'description' )),
556  ( 23, 'DELETE_COPY', oils_i18n_gettext( 23, 
557     'Allow a user to delete a copy', 'ppl', 'description' )),
558  ( 24, 'RENEW_HOLD_OVERRIDE', oils_i18n_gettext( 24, 
559     'Allow a user to continue to renew an item even if it is required for a hold', 'ppl', 'description' )),
560  ( 25, 'CREATE_USER', oils_i18n_gettext( 25, 
561     'Allow a user to create another user', 'ppl', 'description' )),
562  ( 26, 'UPDATE_USER', oils_i18n_gettext( 26, 
563     'Allow a user to edit a user''s record', 'ppl', 'description' )),
564  ( 27, 'DELETE_USER', oils_i18n_gettext( 27, 
565     'Allow a user to mark a user as deleted', 'ppl', 'description' )),
566  ( 28, 'VIEW_USER', oils_i18n_gettext( 28, 
567     'Allow a user to view another user''s Patron Record', 'ppl', 'description' )),
568  ( 29, 'COPY_CHECKIN', oils_i18n_gettext( 29, 
569     'Allow a user to check in a copy', 'ppl', 'description' )),
570  ( 30, 'CREATE_TRANSIT', oils_i18n_gettext( 30, 
571     'Allow a user to place an item in transit', 'ppl', 'description' )),
572  ( 31, 'VIEW_PERMISSION', oils_i18n_gettext( 31, 
573     'Allow a user to view user permissions within the user permissions editor', 'ppl', 'description' )),
574  ( 32, 'CHECKIN_BYPASS_HOLD_FULFILL', oils_i18n_gettext( 32, 
575     '* no longer applicable', 'ppl', 'description' )),
576  ( 33, 'CREATE_PAYMENT', oils_i18n_gettext( 33, 
577     'Allow a user to record payments in the Billing Interface', 'ppl', 'description' )),
578  ( 34, 'SET_CIRC_LOST', oils_i18n_gettext( 34, 
579     'Allow a user to mark an item as ''lost''', 'ppl', 'description' )),
580  ( 35, 'SET_CIRC_MISSING', oils_i18n_gettext( 35, 
581     'Allow a user to mark an item as ''missing''', 'ppl', 'description' )),
582  ( 36, 'SET_CIRC_CLAIMS_RETURNED', oils_i18n_gettext( 36, 
583     'Allow a user to mark an item as ''claims returned''', 'ppl', 'description' )),
584  ( 37, 'CREATE_TRANSACTION', oils_i18n_gettext( 37, 
585     'Allow a user to create a new billable transaction', 'ppl', 'description' )),
586  ( 38, 'VIEW_TRANSACTION', oils_i18n_gettext( 38, 
587     'Allow a user may view another user''s transactions', 'ppl', 'description' )),
588  ( 39, 'CREATE_BILL', oils_i18n_gettext( 39, 
589     'Allow a user to create a new bill on a transaction', 'ppl', 'description' )),
590  ( 40, 'VIEW_CONTAINER', oils_i18n_gettext( 40, 
591     'Allow a user to view another user''s containers (buckets)', 'ppl', 'description' )),
592  ( 41, 'CREATE_CONTAINER', oils_i18n_gettext( 41, 
593     'Allow a user to create a new container for another user', 'ppl', 'description' )),
594  ( 42, 'UPDATE_ORG_UNIT', oils_i18n_gettext( 42, 
595     'Allow a user to change the settings for an organization unit', 'ppl', 'description' )),
596  ( 43, 'VIEW_CIRCULATIONS', oils_i18n_gettext( 43, 
597     'Allow a user to see what another user has checked out', 'ppl', 'description' )),
598  ( 44, 'DELETE_CONTAINER', oils_i18n_gettext( 44, 
599     'Allow a user to delete another user''s container', 'ppl', 'description' )),
600  ( 45, 'CREATE_CONTAINER_ITEM', oils_i18n_gettext( 45, 
601     'Allow a user to create a container item for another user', 'ppl', 'description' )),
602  ( 46, 'CREATE_USER_GROUP_LINK', oils_i18n_gettext( 46, 
603     'Allow a user to add other users to permission groups', 'ppl', 'description' )),
604  ( 47, 'REMOVE_USER_GROUP_LINK', oils_i18n_gettext( 47, 
605     'Allow a user to remove other users from permission groups', 'ppl', 'description' )),
606  ( 48, 'VIEW_PERM_GROUPS', oils_i18n_gettext( 48, 
607     'Allow a user to view other users'' permission groups', 'ppl', 'description' )),
608  ( 49, 'VIEW_PERMIT_CHECKOUT', oils_i18n_gettext( 49, 
609     'Allow a user to determine whether another user can check out an item', 'ppl', 'description' )),
610  ( 50, 'UPDATE_BATCH_COPY', oils_i18n_gettext( 50, 
611     'Allow a user to edit copies in batch', 'ppl', 'description' )),
612  ( 51, 'CREATE_PATRON_STAT_CAT', oils_i18n_gettext( 51, 
613     'User may create a new patron statistical category', 'ppl', 'description' )),
614  ( 52, 'CREATE_COPY_STAT_CAT', oils_i18n_gettext( 52, 
615     'User may create a copy statistical category', 'ppl', 'description' )),
616  ( 53, 'CREATE_PATRON_STAT_CAT_ENTRY', oils_i18n_gettext( 53, 
617     'User may create an entry in a patron statistical category', 'ppl', 'description' )),
618  ( 54, 'CREATE_COPY_STAT_CAT_ENTRY', oils_i18n_gettext( 54, 
619     'User may create an entry in a copy statistical category', 'ppl', 'description' )),
620  ( 55, 'UPDATE_PATRON_STAT_CAT', oils_i18n_gettext( 55, 
621     'User may update a patron statistical category', 'ppl', 'description' )),
622  ( 56, 'UPDATE_COPY_STAT_CAT', oils_i18n_gettext( 56, 
623     'User may update a copy statistical category', 'ppl', 'description' )),
624  ( 57, 'UPDATE_PATRON_STAT_CAT_ENTRY', oils_i18n_gettext( 57, 
625     'User may update an entry in a patron statistical category', 'ppl', 'description' )),
626  ( 58, 'UPDATE_COPY_STAT_CAT_ENTRY', oils_i18n_gettext( 58, 
627     'User may update an entry in a copy statistical category', 'ppl', 'description' )),
628  ( 59, 'CREATE_PATRON_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 59, 
629     'User may link another user to an entry in a statistical category', 'ppl', 'description' )),
630  ( 60, 'CREATE_COPY_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 60, 
631     'User may link a copy to an entry in a statistical category', 'ppl', 'description' )),
632  ( 61, 'DELETE_PATRON_STAT_CAT', oils_i18n_gettext( 61, 
633     'User may delete a patron statistical category', 'ppl', 'description' )),
634  ( 62, 'DELETE_COPY_STAT_CAT', oils_i18n_gettext( 62, 
635     'User may delete a copy statistical category', 'ppl', 'description' )),
636  ( 63, 'DELETE_PATRON_STAT_CAT_ENTRY', oils_i18n_gettext( 63, 
637     'User may delete an entry from a patron statistical category', 'ppl', 'description' )),
638  ( 64, 'DELETE_COPY_STAT_CAT_ENTRY', oils_i18n_gettext( 64, 
639     'User may delete an entry from a copy statistical category', 'ppl', 'description' )),
640  ( 65, 'DELETE_PATRON_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 65, 
641     'User may delete a patron statistical category entry map', 'ppl', 'description' )),
642  ( 66, 'DELETE_COPY_STAT_CAT_ENTRY_MAP', oils_i18n_gettext( 66, 
643     'User may delete a copy statistical category entry map', 'ppl', 'description' )),
644  ( 67, 'CREATE_NON_CAT_TYPE', oils_i18n_gettext( 67, 
645     'Allow a user to create a new non-cataloged item type', 'ppl', 'description' )),
646  ( 68, 'UPDATE_NON_CAT_TYPE', oils_i18n_gettext( 68, 
647     'Allow a user to update a non-cataloged item type', 'ppl', 'description' )),
648  ( 69, 'CREATE_IN_HOUSE_USE', oils_i18n_gettext( 69, 
649     'Allow a user to create a new in-house-use ', 'ppl', 'description' )),
650  ( 70, 'COPY_CHECKOUT', oils_i18n_gettext( 70, 
651     'Allow a user to check out a copy', 'ppl', 'description' )),
652  ( 71, 'CREATE_COPY_LOCATION', oils_i18n_gettext( 71, 
653     'Allow a user to create a new copy location', 'ppl', 'description' )),
654  ( 72, 'UPDATE_COPY_LOCATION', oils_i18n_gettext( 72, 
655     'Allow a user to update a copy location', 'ppl', 'description' )),
656  ( 73, 'DELETE_COPY_LOCATION', oils_i18n_gettext( 73, 
657     'Allow a user to delete a copy location', 'ppl', 'description' )),
658  ( 74, 'CREATE_COPY_TRANSIT', oils_i18n_gettext( 74, 
659     'Allow a user to create a transit_copy object for transiting a copy', 'ppl', 'description' )),
660  ( 75, 'COPY_TRANSIT_RECEIVE', oils_i18n_gettext( 75, 
661     'Allow a user to close out a transit on a copy', 'ppl', 'description' )),
662  ( 76, 'VIEW_HOLD_PERMIT', oils_i18n_gettext( 76, 
663     'Allow a user to see if another user has permission to place a hold on a given copy', 'ppl', 'description' )),
664  ( 77, 'VIEW_COPY_CHECKOUT_HISTORY', oils_i18n_gettext( 77, 
665     'Allow a user to view which users have checked out a given copy', 'ppl', 'description' )),
666  ( 78, 'REMOTE_Z3950_QUERY', oils_i18n_gettext( 78, 
667     'Allow a user to perform Z39.50 queries against remote servers', 'ppl', 'description' )),
668  ( 79, 'REGISTER_WORKSTATION', oils_i18n_gettext( 79, 
669     'Allow a user to register a new workstation', 'ppl', 'description' )),
670  ( 80, 'VIEW_COPY_NOTES', oils_i18n_gettext( 80, 
671     'Allow a user to view all notes attached to a copy', 'ppl', 'description' )),
672  ( 81, 'VIEW_VOLUME_NOTES', oils_i18n_gettext( 81, 
673     'Allow a user to view all notes attached to a volume', 'ppl', 'description' )),
674  ( 82, 'VIEW_TITLE_NOTES', oils_i18n_gettext( 82, 
675     'Allow a user to view all notes attached to a title', 'ppl', 'description' )),
676  ( 83, 'CREATE_COPY_NOTE', oils_i18n_gettext( 83, 
677     'Allow a user to create a new copy note', 'ppl', 'description' )),
678  ( 84, 'CREATE_VOLUME_NOTE', oils_i18n_gettext( 84, 
679     'Allow a user to create a new volume note', 'ppl', 'description' )),
680  ( 85, 'CREATE_TITLE_NOTE', oils_i18n_gettext( 85, 
681     'Allow a user to create a new title note', 'ppl', 'description' )),
682  ( 86, 'DELETE_COPY_NOTE', oils_i18n_gettext( 86, 
683     'Allow a user to delete another user''s copy notes', 'ppl', 'description' )),
684  ( 87, 'DELETE_VOLUME_NOTE', oils_i18n_gettext( 87, 
685     'Allow a user to delete another user''s volume note', 'ppl', 'description' )),
686  ( 88, 'DELETE_TITLE_NOTE', oils_i18n_gettext( 88, 
687     'Allow a user to delete another user''s title note', 'ppl', 'description' )),
688  ( 89, 'UPDATE_CONTAINER', oils_i18n_gettext( 89, 
689     'Allow a user to update another user''s container', 'ppl', 'description' )),
690  ( 90, 'CREATE_MY_CONTAINER', oils_i18n_gettext( 90, 
691     'Allow a user to create a container for themselves', 'ppl', 'description' )),
692  ( 91, 'VIEW_HOLD_NOTIFICATION', oils_i18n_gettext( 91, 
693     'Allow a user to view notifications attached to a hold', 'ppl', 'description' )),
694  ( 92, 'CREATE_HOLD_NOTIFICATION', oils_i18n_gettext( 92, 
695     'Allow a user to create new hold notifications', 'ppl', 'description' )),
696  ( 93, 'UPDATE_ORG_SETTING', oils_i18n_gettext( 93, 
697     'Allow a user to update an organization unit setting', 'ppl', 'description' )),
698  ( 94, 'OFFLINE_UPLOAD', oils_i18n_gettext( 94, 
699     'Allow a user to upload an offline script', 'ppl', 'description' )),
700  ( 95, 'OFFLINE_VIEW', oils_i18n_gettext( 95, 
701     'Allow a user to view uploaded offline script information', 'ppl', 'description' )),
702  ( 96, 'OFFLINE_EXECUTE', oils_i18n_gettext( 96, 
703     'Allow a user to execute an offline script batch', 'ppl', 'description' )),
704  ( 97, 'CIRC_OVERRIDE_DUE_DATE', oils_i18n_gettext( 97, 
705     'Allow a user to change the due date on an item to any date', 'ppl', 'description' )),
706  ( 98, 'CIRC_PERMIT_OVERRIDE', oils_i18n_gettext( 98, 
707     'Allow a user to bypass the circulation permit call for check out', 'ppl', 'description' )),
708  ( 99, 'COPY_IS_REFERENCE.override', oils_i18n_gettext( 99, 
709     'Allow a user to override the copy_is_reference event', 'ppl', 'description' )),
710  ( 100, 'VOID_BILLING', oils_i18n_gettext( 100, 
711     'Allow a user to void a bill', 'ppl', 'description' )),
712  ( 101, 'CIRC_CLAIMS_RETURNED.override', oils_i18n_gettext( 101, 
713     'Allow a user to check in or check out an item that has a status of ''claims returned''', 'ppl', 'description' )),
714  ( 102, 'COPY_BAD_STATUS.override', oils_i18n_gettext( 102, 
715     'Allow a user to check out an item in a non-circulatable status', 'ppl', 'description' )),
716  ( 103, 'COPY_ALERT_MESSAGE.override', oils_i18n_gettext( 103, 
717     'Allow a user to check in/out an item that has an alert message', 'ppl', 'description' )),
718  ( 104, 'COPY_STATUS_LOST.override', oils_i18n_gettext( 104, 
719     'Allow a user to remove the lost status from a copy', 'ppl', 'description' )),
720  ( 105, 'COPY_STATUS_MISSING.override', oils_i18n_gettext( 105, 
721     'Allow a user to change the missing status on a copy', 'ppl', 'description' )),
722  ( 106, 'ABORT_TRANSIT', oils_i18n_gettext( 106, 
723     'Allow a user to abort a copy transit if the user is at the transit destination or source', 'ppl', 'description' )),
724  ( 107, 'ABORT_REMOTE_TRANSIT', oils_i18n_gettext( 107, 
725     'Allow a user to abort a copy transit if the user is not at the transit source or dest', 'ppl', 'description' )),
726  ( 108, 'VIEW_ZIP_DATA', oils_i18n_gettext( 108, 
727     'Allow a user to query the ZIP code data method', 'ppl', 'description' )),
728  ( 109, 'CANCEL_HOLDS', oils_i18n_gettext( 109, 
729     'Allow a user to cancel holds', 'ppl', 'description' )),
730  ( 110, 'CREATE_DUPLICATE_HOLDS', oils_i18n_gettext( 110, 
731     'Allow a user to create duplicate holds (two or more holds on the same title)', 'ppl', 'description' )),
732  ( 111, 'actor.org_unit.closed_date.delete', oils_i18n_gettext( 111, 
733     'Allow a user to remove a closed date interval for a given location', 'ppl', 'description' )),
734  ( 112, 'actor.org_unit.closed_date.update', oils_i18n_gettext( 112, 
735     'Allow a user to update a closed date interval for a given location', 'ppl', 'description' )),
736  ( 113, 'actor.org_unit.closed_date.create', oils_i18n_gettext( 113, 
737     'Allow a user to create a new closed date for a location', 'ppl', 'description' )),
738  ( 114, 'DELETE_NON_CAT_TYPE', oils_i18n_gettext( 114, 
739     'Allow a user to delete a non cataloged type', 'ppl', 'description' )),
740  ( 115, 'money.collections_tracker.create', oils_i18n_gettext( 115, 
741     'Allow a user to put someone into collections', 'ppl', 'description' )),
742  ( 116, 'money.collections_tracker.delete', oils_i18n_gettext( 116, 
743     'Allow a user to remove someone from collections', 'ppl', 'description' )),
744  ( 117, 'BAR_PATRON', oils_i18n_gettext( 117, 
745     'Allow a user to bar a patron', 'ppl', 'description' )),
746  ( 118, 'UNBAR_PATRON', oils_i18n_gettext( 118, 
747     'Allow a user to un-bar a patron', 'ppl', 'description' )),
748  ( 119, 'DELETE_WORKSTATION', oils_i18n_gettext( 119, 
749     'Allow a user to remove an existing workstation so a new one can replace it', 'ppl', 'description' )),
750  ( 120, 'group_application.user', oils_i18n_gettext( 120, 
751     'Allow a user to add/remove users to/from the "User" group', 'ppl', 'description' )),
752  ( 121, 'group_application.user.patron', oils_i18n_gettext( 121, 
753     'Allow a user to add/remove users to/from the "Patron" group', 'ppl', 'description' )),
754  ( 122, 'group_application.user.staff', oils_i18n_gettext( 122, 
755     'Allow a user to add/remove users to/from the "Staff" group', 'ppl', 'description' )),
756  ( 123, 'group_application.user.staff.circ', oils_i18n_gettext( 123, 
757     'Allow a user to add/remove users to/from the "Circulator" group', 'ppl', 'description' )),
758  ( 124, 'group_application.user.staff.cat', oils_i18n_gettext( 124, 
759     'Allow a user to add/remove users to/from the "Cataloger" group', 'ppl', 'description' )),
760  ( 125, 'group_application.user.staff.admin.global_admin', oils_i18n_gettext( 125, 
761     'Allow a user to add/remove users to/from the "GlobalAdmin" group', 'ppl', 'description' )),
762  ( 126, 'group_application.user.staff.admin.local_admin', oils_i18n_gettext( 126, 
763     'Allow a user to add/remove users to/from the "LocalAdmin" group', 'ppl', 'description' )),
764  ( 127, 'group_application.user.staff.admin.lib_manager', oils_i18n_gettext( 127, 
765     'Allow a user to add/remove users to/from the "LibraryManager" group', 'ppl', 'description' )),
766  ( 128, 'group_application.user.staff.cat.cat1', oils_i18n_gettext( 128, 
767     'Allow a user to add/remove users to/from the "Cat1" group', 'ppl', 'description' )),
768  ( 129, 'group_application.user.staff.supercat', oils_i18n_gettext( 129, 
769     'Allow a user to add/remove users to/from the "Supercat" group', 'ppl', 'description' )),
770  ( 130, 'group_application.user.sip_client', oils_i18n_gettext( 130, 
771     'Allow a user to add/remove users to/from the "SIP-Client" group', 'ppl', 'description' )),
772  ( 131, 'group_application.user.vendor', oils_i18n_gettext( 131, 
773     'Allow a user to add/remove users to/from the "Vendor" group', 'ppl', 'description' )),
774  ( 132, 'ITEM_AGE_PROTECTED.override', oils_i18n_gettext( 132, 
775     'Allow a user to place a hold on an age-protected item', 'ppl', 'description' )),
776  ( 133, 'MAX_RENEWALS_REACHED.override', oils_i18n_gettext( 133, 
777     'Allow a user to renew an item past the maximum renewal count', 'ppl', 'description' )),
778  ( 134, 'PATRON_EXCEEDS_CHECKOUT_COUNT.override', oils_i18n_gettext( 134, 
779     'Allow staff to override checkout count failure', 'ppl', 'description' )),
780  ( 135, 'PATRON_EXCEEDS_OVERDUE_COUNT.override', oils_i18n_gettext( 135, 
781     'Allow staff to override overdue count failure', 'ppl', 'description' )),
782  ( 136, 'PATRON_EXCEEDS_FINES.override', oils_i18n_gettext( 136, 
783     'Allow staff to override fine amount checkout failure', 'ppl', 'description' )),
784  ( 137, 'CIRC_EXCEEDS_COPY_RANGE.override', oils_i18n_gettext( 137, 
785     'Allow staff to override circulation copy range failure', 'ppl', 'description' )),
786  ( 138, 'ITEM_ON_HOLDS_SHELF.override', oils_i18n_gettext( 138, 
787     'Allow staff to override item on holds shelf failure', 'ppl', 'description' )),
788  ( 139, 'COPY_NOT_AVAILABLE.override', oils_i18n_gettext( 139, 
789     'Allow staff to force checkout of Missing/Lost type items', 'ppl', 'description' )),
790  ( 140, 'HOLD_EXISTS.override', oils_i18n_gettext( 140, 
791     'Allow a user to place multiple holds on a single title', 'ppl', 'description' )),
792  ( 141, 'RUN_REPORTS', oils_i18n_gettext( 141, 
793     'Allow a user to run reports', 'ppl', 'description' )),
794  ( 142, 'SHARE_REPORT_FOLDER', oils_i18n_gettext( 142, 
795     'Allow a user to share report his own folders', 'ppl', 'description' )),
796  ( 143, 'VIEW_REPORT_OUTPUT', oils_i18n_gettext( 143, 
797     'Allow a user to view report output', 'ppl', 'description' )),
798  ( 144, 'COPY_CIRC_NOT_ALLOWED.override', oils_i18n_gettext( 144, 
799     'Allow a user to checkout an item that is marked as non-circ', 'ppl', 'description' )),
800  ( 145, 'DELETE_CONTAINER_ITEM', oils_i18n_gettext( 145, 
801     'Allow a user to delete an item out of another user''s container', 'ppl', 'description' )),
802  ( 146, 'ASSIGN_WORK_ORG_UNIT', oils_i18n_gettext( 146, 
803     'Allow a staff member to define where another staff member has their permissions', 'ppl', 'description' )),
804  ( 147, 'CREATE_FUNDING_SOURCE', oils_i18n_gettext( 147, 
805     'Allow a user to create a new funding source', 'ppl', 'description' )),
806  ( 148, 'DELETE_FUNDING_SOURCE', oils_i18n_gettext( 148, 
807     'Allow a user to delete a funding source', 'ppl', 'description' )),
808  ( 149, 'VIEW_FUNDING_SOURCE', oils_i18n_gettext( 149, 
809     'Allow a user to view a funding source', 'ppl', 'description' )),
810  ( 150, 'UPDATE_FUNDING_SOURCE', oils_i18n_gettext( 150, 
811     'Allow a user to update a funding source', 'ppl', 'description' )),
812  ( 151, 'CREATE_FUND', oils_i18n_gettext( 151, 
813     'Allow a user to create a new fund', 'ppl', 'description' )),
814  ( 152, 'DELETE_FUND', oils_i18n_gettext( 152, 
815     'Allow a user to delete a fund', 'ppl', 'description' )),
816  ( 153, 'VIEW_FUND', oils_i18n_gettext( 153, 
817     'Allow a user to view a fund', 'ppl', 'description' )),
818  ( 154, 'UPDATE_FUND', oils_i18n_gettext( 154, 
819     'Allow a user to update a fund', 'ppl', 'description' )),
820  ( 155, 'CREATE_FUND_ALLOCATION', oils_i18n_gettext( 155, 
821     'Allow a user to create a new fund allocation', 'ppl', 'description' )),
822  ( 156, 'DELETE_FUND_ALLOCATION', oils_i18n_gettext( 156, 
823     'Allow a user to delete a fund allocation', 'ppl', 'description' )),
824  ( 157, 'VIEW_FUND_ALLOCATION', oils_i18n_gettext( 157, 
825     'Allow a user to view a fund allocation', 'ppl', 'description' )),
826  ( 158, 'UPDATE_FUND_ALLOCATION', oils_i18n_gettext( 158, 
827     'Allow a user to update a fund allocation', 'ppl', 'description' )),
828  ( 159, 'GENERAL_ACQ', oils_i18n_gettext( 159, 
829     'Lowest level permission required to access the ACQ interface', 'ppl', 'description' )),
830  ( 160, 'CREATE_PROVIDER', oils_i18n_gettext( 160, 
831     'Allow a user to create a new provider', 'ppl', 'description' )),
832  ( 161, 'DELETE_PROVIDER', oils_i18n_gettext( 161, 
833     'Allow a user to delete a provider', 'ppl', 'description' )),
834  ( 162, 'VIEW_PROVIDER', oils_i18n_gettext( 162, 
835     'Allow a user to view a provider', 'ppl', 'description' )),
836  ( 163, 'UPDATE_PROVIDER', oils_i18n_gettext( 163, 
837     'Allow a user to update a provider', 'ppl', 'description' )),
838  ( 164, 'ADMIN_FUNDING_SOURCE', oils_i18n_gettext( 164, 
839     'Allow a user to create/view/update/delete a funding source', 'ppl', 'description' )),
840  ( 165, 'ADMIN_FUND', oils_i18n_gettext( 165, 
841     '(Deprecated) Allow a user to create/view/update/delete a fund', 'ppl', 'description' )),
842  ( 166, 'MANAGE_FUNDING_SOURCE', oils_i18n_gettext( 166, 
843     'Allow a user to view/credit/debit a funding source', 'ppl', 'description' )),
844  ( 167, 'MANAGE_FUND', oils_i18n_gettext( 167, 
845     'Allow a user to view/credit/debit a fund', 'ppl', 'description' )),
846  ( 168, 'CREATE_PICKLIST', oils_i18n_gettext( 168, 
847     'Allows a user to create a picklist', 'ppl', 'description' )),
848  ( 169, 'ADMIN_PROVIDER', oils_i18n_gettext( 169, 
849     'Allow a user to create/view/update/delete a provider', 'ppl', 'description' )),
850  ( 170, 'MANAGE_PROVIDER', oils_i18n_gettext( 170, 
851     'Allow a user to view and purchase from a provider', 'ppl', 'description' )),
852  ( 171, 'VIEW_PICKLIST', oils_i18n_gettext( 171, 
853     'Allow a user to view another users picklist', 'ppl', 'description' )),
854  ( 172, 'DELETE_RECORD', oils_i18n_gettext( 172, 
855     'Allow a staff member to directly remove a bibliographic record', 'ppl', 'description' )),
856  ( 173, 'ADMIN_CURRENCY_TYPE', oils_i18n_gettext( 173, 
857     'Allow a user to create/view/update/delete a currency_type', 'ppl', 'description' )),
858  ( 174, 'MARK_BAD_DEBT', oils_i18n_gettext( 174, 
859     'Allow a user to mark a transaction as bad (unrecoverable) debt', 'ppl', 'description' )),
860  ( 175, 'VIEW_BILLING_TYPE', oils_i18n_gettext( 175, 
861     'Allow a user to view billing types', 'ppl', 'description' )),
862  ( 176, 'MARK_ITEM_AVAILABLE', oils_i18n_gettext( 176, 
863     'Allow a user to mark an item status as ''available''', 'ppl', 'description' )),
864  ( 177, 'MARK_ITEM_CHECKED_OUT', oils_i18n_gettext( 177, 
865     'Allow a user to mark an item status as ''checked out''', 'ppl', 'description' )),
866  ( 178, 'MARK_ITEM_BINDERY', oils_i18n_gettext( 178, 
867     'Allow a user to mark an item status as ''bindery''', 'ppl', 'description' )),
868  ( 179, 'MARK_ITEM_LOST', oils_i18n_gettext( 179, 
869     'Allow a user to mark an item status as ''lost''', 'ppl', 'description' )),
870  ( 180, 'MARK_ITEM_MISSING', oils_i18n_gettext( 180, 
871     'Allow a user to mark an item status as ''missing''', 'ppl', 'description' )),
872  ( 181, 'MARK_ITEM_IN_PROCESS', oils_i18n_gettext( 181, 
873     'Allow a user to mark an item status as ''in process''', 'ppl', 'description' )),
874  ( 182, 'MARK_ITEM_IN_TRANSIT', oils_i18n_gettext( 182, 
875     'Allow a user to mark an item status as ''in transit''', 'ppl', 'description' )),
876  ( 183, 'MARK_ITEM_RESHELVING', oils_i18n_gettext( 183, 
877     'Allow a user to mark an item status as ''reshelving''', 'ppl', 'description' )),
878  ( 184, 'MARK_ITEM_ON_HOLDS_SHELF', oils_i18n_gettext( 184, 
879     'Allow a user to mark an item status as ''on holds shelf''', 'ppl', 'description' )),
880  ( 185, 'MARK_ITEM_ON_ORDER', oils_i18n_gettext( 185, 
881     'Allow a user to mark an item status as ''on order''', 'ppl', 'description' )),
882  ( 186, 'MARK_ITEM_ILL', oils_i18n_gettext( 186, 
883     'Allow a user to mark an item status as ''inter-library loan''', 'ppl', 'description' )),
884  ( 187, 'group_application.user.staff.acq', oils_i18n_gettext( 187, 
885     'Allows a user to add/remove/edit users in the "ACQ" group', 'ppl', 'description' )),
886  ( 188, 'CREATE_PURCHASE_ORDER', oils_i18n_gettext( 188, 
887     'Allows a user to create a purchase order', 'ppl', 'description' )),
888  ( 189, 'VIEW_PURCHASE_ORDER', oils_i18n_gettext( 189, 
889     'Allows a user to view a purchase order', 'ppl', 'description' )),
890  ( 190, 'IMPORT_ACQ_LINEITEM_BIB_RECORD', oils_i18n_gettext( 190, 
891     'Allows a user to import a bib record from the acq staging area (on-order record) into the ILS bib data set', 'ppl', 'description' )),
892  ( 191, 'RECEIVE_PURCHASE_ORDER', oils_i18n_gettext( 191, 
893     'Allows a user to mark a purchase order, lineitem, or individual copy as received', 'ppl', 'description' )),
894  ( 192, 'VIEW_ORG_SETTINGS', oils_i18n_gettext( 192, 
895     'Allows a user to view all org settings at the specified level', 'ppl', 'description' )),
896  ( 193, 'CREATE_MFHD_RECORD', oils_i18n_gettext( 193, 
897     'Allows a user to create a new MFHD record', 'ppl', 'description' )),
898  ( 194, 'UPDATE_MFHD_RECORD', oils_i18n_gettext( 194, 
899     'Allows a user to update an MFHD record', 'ppl', 'description' )),
900  ( 195, 'DELETE_MFHD_RECORD', oils_i18n_gettext( 195, 
901     'Allows a user to delete an MFHD record', 'ppl', 'description' )),
902  ( 196, 'ADMIN_ACQ_FUND', oils_i18n_gettext( 196, 
903     'Allow a user to create/view/update/delete a fund', 'ppl', 'description' )),
904  ( 197, 'group_application.user.staff.acq_admin', oils_i18n_gettext( 197, 
905     'Allows a user to add/remove/edit users in the "Acquisitions Administrators" group', 'ppl', 'description' )),
906  ( 198, 'SET_CIRC_CLAIMS_RETURNED.override', oils_i18n_gettext( 198, 
907     'Allows staff to override the max claims returned value for a patron', 'ppl', 'description' )),
908  ( 199, 'UPDATE_PATRON_CLAIM_RETURN_COUNT', oils_i18n_gettext( 199, 
909     'Allows staff to manually change a patron''s claims returned count', 'ppl', 'description' )),
910  ( 200, 'UPDATE_BILL_NOTE', oils_i18n_gettext( 200, 
911     'Allows staff to edit the note for a bill on a transaction', 'ppl', 'description' )),
912  ( 201, 'UPDATE_PAYMENT_NOTE', oils_i18n_gettext( 201, 
913     'Allows staff to edit the note for a payment on a transaction', 'ppl', 'description' )),
914  ( 202, 'UPDATE_PATRON_CLAIM_NEVER_CHECKED_OUT_COUNT', oils_i18n_gettext( 202, 
915     'Allows staff to manually change a patron''s claims never checkout out count', 'ppl', 'description' )),
916  ( 203, 'ADMIN_COPY_LOCATION_ORDER', oils_i18n_gettext( 203, 
917     'Allow a user to create/view/update/delete a copy location order', 'ppl', 'description' )),
918  ( 204, 'ASSIGN_GROUP_PERM', oils_i18n_gettext( 204, 
919     'ASSIGN_GROUP_PERM', 'ppl', 'description' )),
920  ( 205, 'CREATE_AUDIENCE', oils_i18n_gettext( 205, 
921     'CREATE_AUDIENCE', 'ppl', 'description' )),
922  ( 206, 'CREATE_BIB_LEVEL', oils_i18n_gettext( 206, 
923     'CREATE_BIB_LEVEL', 'ppl', 'description' )),
924  ( 207, 'CREATE_CIRC_DURATION', oils_i18n_gettext( 207, 
925     'CREATE_CIRC_DURATION', 'ppl', 'description' )),
926  ( 208, 'CREATE_CIRC_MOD', oils_i18n_gettext( 208, 
927     'CREATE_CIRC_MOD', 'ppl', 'description' )),
928  ( 209, 'CREATE_COPY_STATUS', oils_i18n_gettext( 209, 
929     'CREATE_COPY_STATUS', 'ppl', 'description' )),
930  ( 210, 'CREATE_HOURS_OF_OPERATION', oils_i18n_gettext( 210, 
931     'CREATE_HOURS_OF_OPERATION', 'ppl', 'description' )),
932  ( 211, 'CREATE_ITEM_FORM', oils_i18n_gettext( 211, 
933     'CREATE_ITEM_FORM', 'ppl', 'description' )),
934  ( 212, 'CREATE_ITEM_TYPE', oils_i18n_gettext( 212, 
935     'CREATE_ITEM_TYPE', 'ppl', 'description' )),
936  ( 213, 'CREATE_LANGUAGE', oils_i18n_gettext( 213, 
937     'CREATE_LANGUAGE', 'ppl', 'description' )),
938  ( 214, 'CREATE_LASSO', oils_i18n_gettext( 214, 
939     'CREATE_LASSO', 'ppl', 'description' )),
940  ( 215, 'CREATE_LASSO_MAP', oils_i18n_gettext( 215, 
941     'CREATE_LASSO_MAP', 'ppl', 'description' )),
942  ( 216, 'CREATE_LIT_FORM', oils_i18n_gettext( 216, 
943     'CREATE_LIT_FORM', 'ppl', 'description' )),
944  ( 217, 'CREATE_METABIB_FIELD', oils_i18n_gettext( 217, 
945     'CREATE_METABIB_FIELD', 'ppl', 'description' )),
946  ( 218, 'CREATE_NET_ACCESS_LEVEL', oils_i18n_gettext( 218, 
947     'CREATE_NET_ACCESS_LEVEL', 'ppl', 'description' )),
948  ( 219, 'CREATE_ORG_ADDRESS', oils_i18n_gettext( 219, 
949     'CREATE_ORG_ADDRESS', 'ppl', 'description' )),
950  ( 220, 'CREATE_ORG_TYPE', oils_i18n_gettext( 220, 
951     'CREATE_ORG_TYPE', 'ppl', 'description' )),
952  ( 221, 'CREATE_ORG_UNIT', oils_i18n_gettext( 221, 
953     'CREATE_ORG_UNIT', 'ppl', 'description' )),
954  ( 222, 'CREATE_ORG_UNIT_CLOSING', oils_i18n_gettext( 222, 
955     'CREATE_ORG_UNIT_CLOSING', 'ppl', 'description' )),
956  ( 223, 'CREATE_PERM', oils_i18n_gettext( 223, 
957     'CREATE_PERM', 'ppl', 'description' )),
958  ( 224, 'CREATE_RELEVANCE_ADJUSTMENT', oils_i18n_gettext( 224, 
959     'CREATE_RELEVANCE_ADJUSTMENT', 'ppl', 'description' )),
960  ( 225, 'CREATE_SURVEY', oils_i18n_gettext( 225, 
961     'CREATE_SURVEY', 'ppl', 'description' )),
962  ( 226, 'CREATE_VR_FORMAT', oils_i18n_gettext( 226, 
963     'CREATE_VR_FORMAT', 'ppl', 'description' )),
964  ( 227, 'CREATE_XML_TRANSFORM', oils_i18n_gettext( 227, 
965     'CREATE_XML_TRANSFORM', 'ppl', 'description' )),
966  ( 228, 'DELETE_AUDIENCE', oils_i18n_gettext( 228, 
967     'DELETE_AUDIENCE', 'ppl', 'description' )),
968  ( 229, 'DELETE_BIB_LEVEL', oils_i18n_gettext( 229, 
969     'DELETE_BIB_LEVEL', 'ppl', 'description' )),
970  ( 230, 'DELETE_CIRC_DURATION', oils_i18n_gettext( 230, 
971     'DELETE_CIRC_DURATION', 'ppl', 'description' )),
972  ( 231, 'DELETE_CIRC_MOD', oils_i18n_gettext( 231, 
973     'DELETE_CIRC_MOD', 'ppl', 'description' )),
974  ( 232, 'DELETE_COPY_STATUS', oils_i18n_gettext( 232, 
975     'DELETE_COPY_STATUS', 'ppl', 'description' )),
976  ( 233, 'DELETE_HOURS_OF_OPERATION', oils_i18n_gettext( 233, 
977     'DELETE_HOURS_OF_OPERATION', 'ppl', 'description' )),
978  ( 234, 'DELETE_ITEM_FORM', oils_i18n_gettext( 234, 
979     'DELETE_ITEM_FORM', 'ppl', 'description' )),
980  ( 235, 'DELETE_ITEM_TYPE', oils_i18n_gettext( 235, 
981     'DELETE_ITEM_TYPE', 'ppl', 'description' )),
982  ( 236, 'DELETE_LANGUAGE', oils_i18n_gettext( 236, 
983     'DELETE_LANGUAGE', 'ppl', 'description' )),
984  ( 237, 'DELETE_LASSO', oils_i18n_gettext( 237, 
985     'DELETE_LASSO', 'ppl', 'description' )),
986  ( 238, 'DELETE_LASSO_MAP', oils_i18n_gettext( 238, 
987     'DELETE_LASSO_MAP', 'ppl', 'description' )),
988  ( 239, 'DELETE_LIT_FORM', oils_i18n_gettext( 239, 
989     'DELETE_LIT_FORM', 'ppl', 'description' )),
990  ( 240, 'DELETE_METABIB_FIELD', oils_i18n_gettext( 240, 
991     'DELETE_METABIB_FIELD', 'ppl', 'description' )),
992  ( 241, 'DELETE_NET_ACCESS_LEVEL', oils_i18n_gettext( 241, 
993     'DELETE_NET_ACCESS_LEVEL', 'ppl', 'description' )),
994  ( 242, 'DELETE_ORG_ADDRESS', oils_i18n_gettext( 242, 
995     'DELETE_ORG_ADDRESS', 'ppl', 'description' )),
996  ( 243, 'DELETE_ORG_TYPE', oils_i18n_gettext( 243, 
997     'DELETE_ORG_TYPE', 'ppl', 'description' )),
998  ( 244, 'DELETE_ORG_UNIT', oils_i18n_gettext( 244, 
999     'DELETE_ORG_UNIT', 'ppl', 'description' )),
1000  ( 245, 'DELETE_ORG_UNIT_CLOSING', oils_i18n_gettext( 245, 
1001     'DELETE_ORG_UNIT_CLOSING', 'ppl', 'description' )),
1002  ( 246, 'DELETE_PERM', oils_i18n_gettext( 246, 
1003     'DELETE_PERM', 'ppl', 'description' )),
1004  ( 247, 'DELETE_RELEVANCE_ADJUSTMENT', oils_i18n_gettext( 247, 
1005     'DELETE_RELEVANCE_ADJUSTMENT', 'ppl', 'description' )),
1006  ( 248, 'DELETE_SURVEY', oils_i18n_gettext( 248, 
1007     'DELETE_SURVEY', 'ppl', 'description' )),
1008  ( 249, 'DELETE_TRANSIT', oils_i18n_gettext( 249, 
1009     'DELETE_TRANSIT', 'ppl', 'description' )),
1010  ( 250, 'DELETE_VR_FORMAT', oils_i18n_gettext( 250, 
1011     'DELETE_VR_FORMAT', 'ppl', 'description' )),
1012  ( 251, 'DELETE_XML_TRANSFORM', oils_i18n_gettext( 251, 
1013     'DELETE_XML_TRANSFORM', 'ppl', 'description' )),
1014  ( 252, 'REMOVE_GROUP_PERM', oils_i18n_gettext( 252, 
1015     'REMOVE_GROUP_PERM', 'ppl', 'description' )),
1016  ( 253, 'TRANSIT_COPY', oils_i18n_gettext( 253, 
1017     'TRANSIT_COPY', 'ppl', 'description' )),
1018  ( 254, 'UPDATE_AUDIENCE', oils_i18n_gettext( 254, 
1019     'UPDATE_AUDIENCE', 'ppl', 'description' )),
1020  ( 255, 'UPDATE_BIB_LEVEL', oils_i18n_gettext( 255, 
1021     'UPDATE_BIB_LEVEL', 'ppl', 'description' )),
1022  ( 256, 'UPDATE_CIRC_DURATION', oils_i18n_gettext( 256, 
1023     'UPDATE_CIRC_DURATION', 'ppl', 'description' )),
1024  ( 257, 'UPDATE_CIRC_MOD', oils_i18n_gettext( 257, 
1025     'UPDATE_CIRC_MOD', 'ppl', 'description' )),
1026  ( 258, 'UPDATE_COPY_NOTE', oils_i18n_gettext( 258, 
1027     'UPDATE_COPY_NOTE', 'ppl', 'description' )),
1028  ( 259, 'UPDATE_COPY_STATUS', oils_i18n_gettext( 259, 
1029     'UPDATE_COPY_STATUS', 'ppl', 'description' )),
1030  ( 260, 'UPDATE_GROUP_PERM', oils_i18n_gettext( 260, 
1031     'UPDATE_GROUP_PERM', 'ppl', 'description' )),
1032  ( 261, 'UPDATE_HOURS_OF_OPERATION', oils_i18n_gettext( 261, 
1033     'UPDATE_HOURS_OF_OPERATION', 'ppl', 'description' )),
1034  ( 262, 'UPDATE_ITEM_FORM', oils_i18n_gettext( 262, 
1035     'UPDATE_ITEM_FORM', 'ppl', 'description' )),
1036  ( 263, 'UPDATE_ITEM_TYPE', oils_i18n_gettext( 263, 
1037     'UPDATE_ITEM_TYPE', 'ppl', 'description' )),
1038  ( 264, 'UPDATE_LANGUAGE', oils_i18n_gettext( 264, 
1039     'UPDATE_LANGUAGE', 'ppl', 'description' )),
1040  ( 265, 'UPDATE_LASSO', oils_i18n_gettext( 265, 
1041     'UPDATE_LASSO', 'ppl', 'description' )),
1042  ( 266, 'UPDATE_LASSO_MAP', oils_i18n_gettext( 266, 
1043     'UPDATE_LASSO_MAP', 'ppl', 'description' )),
1044  ( 267, 'UPDATE_LIT_FORM', oils_i18n_gettext( 267, 
1045     'UPDATE_LIT_FORM', 'ppl', 'description' )),
1046  ( 268, 'UPDATE_METABIB_FIELD', oils_i18n_gettext( 268, 
1047     'UPDATE_METABIB_FIELD', 'ppl', 'description' )),
1048  ( 269, 'UPDATE_NET_ACCESS_LEVEL', oils_i18n_gettext( 269, 
1049     'UPDATE_NET_ACCESS_LEVEL', 'ppl', 'description' )),
1050  ( 270, 'UPDATE_ORG_ADDRESS', oils_i18n_gettext( 270, 
1051     'UPDATE_ORG_ADDRESS', 'ppl', 'description' )),
1052  ( 271, 'UPDATE_ORG_TYPE', oils_i18n_gettext( 271, 
1053     'UPDATE_ORG_TYPE', 'ppl', 'description' )),
1054  ( 272, 'UPDATE_ORG_UNIT_CLOSING', oils_i18n_gettext( 272, 
1055     'UPDATE_ORG_UNIT_CLOSING', 'ppl', 'description' )),
1056  ( 273, 'UPDATE_PERM', oils_i18n_gettext( 273, 
1057     'UPDATE_PERM', 'ppl', 'description' )),
1058  ( 274, 'UPDATE_RELEVANCE_ADJUSTMENT', oils_i18n_gettext( 274, 
1059     'UPDATE_RELEVANCE_ADJUSTMENT', 'ppl', 'description' )),
1060  ( 275, 'UPDATE_SURVEY', oils_i18n_gettext( 275, 
1061     'UPDATE_SURVEY', 'ppl', 'description' )),
1062  ( 276, 'UPDATE_TRANSIT', oils_i18n_gettext( 276, 
1063     'UPDATE_TRANSIT', 'ppl', 'description' )),
1064  ( 277, 'UPDATE_VOLUME_NOTE', oils_i18n_gettext( 277, 
1065     'UPDATE_VOLUME_NOTE', 'ppl', 'description' )),
1066  ( 278, 'UPDATE_VR_FORMAT', oils_i18n_gettext( 278, 
1067     'UPDATE_VR_FORMAT', 'ppl', 'description' )),
1068  ( 279, 'UPDATE_XML_TRANSFORM', oils_i18n_gettext( 279, 
1069     'UPDATE_XML_TRANSFORM', 'ppl', 'description' )),
1070  ( 280, 'MERGE_BIB_RECORDS', oils_i18n_gettext( 280, 
1071     'MERGE_BIB_RECORDS', 'ppl', 'description' )),
1072  ( 281, 'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF', oils_i18n_gettext( 281, 
1073     'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF', 'ppl', 'description' )),
1074  ( 282, 'CREATE_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 282, 
1075     'CREATE_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1076  ( 283, 'CREATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 283, 
1077     'CREATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1078  ( 284, 'CREATE_AUTHORITY_IMPORT_QUEUE', oils_i18n_gettext( 284, 
1079     'CREATE_AUTHORITY_IMPORT_QUEUE', 'ppl', 'description' )),
1080  ( 285, 'CREATE_AUTHORITY_RECORD_NOTE', oils_i18n_gettext( 285, 
1081     'CREATE_AUTHORITY_RECORD_NOTE', 'ppl', 'description' )),
1082  ( 286, 'CREATE_BIB_IMPORT_FIELD_DEF', oils_i18n_gettext( 286, 
1083     'CREATE_BIB_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1084  ( 287, 'CREATE_BIB_IMPORT_QUEUE', oils_i18n_gettext( 287, 
1085     'CREATE_BIB_IMPORT_QUEUE', 'ppl', 'description' )),
1086  ( 288, 'CREATE_LOCALE', oils_i18n_gettext( 288, 
1087     'CREATE_LOCALE', 'ppl', 'description' )),
1088  ( 289, 'CREATE_MARC_CODE', oils_i18n_gettext( 289, 
1089     'CREATE_MARC_CODE', 'ppl', 'description' )),
1090  ( 290, 'CREATE_TRANSLATION', oils_i18n_gettext( 290, 
1091     'CREATE_TRANSLATION', 'ppl', 'description' )),
1092  ( 291, 'DELETE_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 291, 
1093     'DELETE_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1094  ( 292, 'DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 292, 
1095     'DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1096  ( 293, 'DELETE_AUTHORITY_IMPORT_QUEUE', oils_i18n_gettext( 293, 
1097     'DELETE_AUTHORITY_IMPORT_QUEUE', 'ppl', 'description' )),
1098  ( 294, 'DELETE_AUTHORITY_RECORD_NOTE', oils_i18n_gettext( 294, 
1099     'DELETE_AUTHORITY_RECORD_NOTE', 'ppl', 'description' )),
1100  ( 295, 'DELETE_BIB_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 295, 
1101     'DELETE_BIB_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1102  ( 296, 'DELETE_BIB_IMPORT_QUEUE', oils_i18n_gettext( 296, 
1103     'DELETE_BIB_IMPORT_QUEUE', 'ppl', 'description' )),
1104  ( 297, 'DELETE_LOCALE', oils_i18n_gettext( 297, 
1105     'DELETE_LOCALE', 'ppl', 'description' )),
1106  ( 298, 'DELETE_MARC_CODE', oils_i18n_gettext( 298, 
1107     'DELETE_MARC_CODE', 'ppl', 'description' )),
1108  ( 299, 'DELETE_TRANSLATION', oils_i18n_gettext( 299, 
1109     'DELETE_TRANSLATION', 'ppl', 'description' )),
1110  ( 300, 'UPDATE_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 300, 
1111     'UPDATE_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1112  ( 301, 'UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 301, 
1113     'UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1114  ( 302, 'UPDATE_AUTHORITY_IMPORT_QUEUE', oils_i18n_gettext( 302, 
1115     'UPDATE_AUTHORITY_IMPORT_QUEUE', 'ppl', 'description' )),
1116  ( 303, 'UPDATE_AUTHORITY_RECORD_NOTE', oils_i18n_gettext( 303, 
1117     'UPDATE_AUTHORITY_RECORD_NOTE', 'ppl', 'description' )),
1118  ( 304, 'UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF', oils_i18n_gettext( 304, 
1119     'UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF', 'ppl', 'description' )),
1120  ( 305, 'UPDATE_BIB_IMPORT_QUEUE', oils_i18n_gettext( 305, 
1121     'UPDATE_BIB_IMPORT_QUEUE', 'ppl', 'description' )),
1122  ( 306, 'UPDATE_LOCALE', oils_i18n_gettext( 306, 
1123     'UPDATE_LOCALE', 'ppl', 'description' )),
1124  ( 307, 'UPDATE_MARC_CODE', oils_i18n_gettext( 307, 
1125     'UPDATE_MARC_CODE', 'ppl', 'description' )),
1126  ( 308, 'UPDATE_TRANSLATION', oils_i18n_gettext( 308, 
1127     'UPDATE_TRANSLATION', 'ppl', 'description' )),
1128  ( 309, 'VIEW_ACQ_FUNDING_SOURCE', oils_i18n_gettext( 309, 
1129     'VIEW_ACQ_FUNDING_SOURCE', 'ppl', 'description' )),
1130  ( 310, 'VIEW_AUTHORITY_RECORD_NOTES', oils_i18n_gettext( 310, 
1131     'VIEW_AUTHORITY_RECORD_NOTES', 'ppl', 'description' )),
1132  ( 311, 'CREATE_IMPORT_ITEM', oils_i18n_gettext( 311, 
1133     'CREATE_IMPORT_ITEM', 'ppl', 'description' )),
1134  ( 312, 'CREATE_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 312, 
1135     'CREATE_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1136  ( 313, 'CREATE_IMPORT_TRASH_FIELD', oils_i18n_gettext( 313, 
1137     'CREATE_IMPORT_TRASH_FIELD', 'ppl', 'description' )),
1138  ( 314, 'DELETE_IMPORT_ITEM', oils_i18n_gettext( 314, 
1139     'DELETE_IMPORT_ITEM', 'ppl', 'description' )),
1140  ( 315, 'DELETE_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 315, 
1141     'DELETE_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1142  ( 316, 'DELETE_IMPORT_TRASH_FIELD', oils_i18n_gettext( 316, 
1143     'DELETE_IMPORT_TRASH_FIELD', 'ppl', 'description' )),
1144  ( 317, 'UPDATE_IMPORT_ITEM', oils_i18n_gettext( 317, 
1145     'UPDATE_IMPORT_ITEM', 'ppl', 'description' )),
1146  ( 318, 'UPDATE_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 318, 
1147     'UPDATE_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1148  ( 319, 'UPDATE_IMPORT_TRASH_FIELD', oils_i18n_gettext( 319, 
1149     'UPDATE_IMPORT_TRASH_FIELD', 'ppl', 'description' )),
1150  ( 320, 'UPDATE_ORG_UNIT_SETTING_ALL', oils_i18n_gettext( 320, 
1151     'UPDATE_ORG_UNIT_SETTING_ALL', 'ppl', 'description' )),
1152  ( 321, 'UPDATE_ORG_UNIT_SETTING.circ.lost_materials_processing_fee', oils_i18n_gettext( 321, 
1153     'UPDATE_ORG_UNIT_SETTING.circ.lost_materials_processing_fee', 'ppl', 'description' )),
1154  ( 322, 'UPDATE_ORG_UNIT_SETTING.cat.default_item_price', oils_i18n_gettext( 322, 
1155     'UPDATE_ORG_UNIT_SETTING.cat.default_item_price', 'ppl', 'description' )),
1156  ( 323, 'UPDATE_ORG_UNIT_SETTING.auth.opac_timeout', oils_i18n_gettext( 323, 
1157     'UPDATE_ORG_UNIT_SETTING.auth.opac_timeout', 'ppl', 'description' )),
1158  ( 324, 'UPDATE_ORG_UNIT_SETTING.auth.staff_timeout', oils_i18n_gettext( 324, 
1159     'UPDATE_ORG_UNIT_SETTING.auth.staff_timeout', 'ppl', 'description' )),
1160  ( 325, 'UPDATE_ORG_UNIT_SETTING.org.bounced_emails', oils_i18n_gettext( 325, 
1161     'UPDATE_ORG_UNIT_SETTING.org.bounced_emails', 'ppl', 'description' )),
1162  ( 326, 'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_alert_interval', oils_i18n_gettext( 326, 
1163     'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_alert_interval', 'ppl', 'description' )),
1164  ( 327, 'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_interval', oils_i18n_gettext( 327, 
1165     'UPDATE_ORG_UNIT_SETTING.circ.hold_expire_interval', 'ppl', 'description' )),
1166  ( 328, 'UPDATE_ORG_UNIT_SETTING.credit.payments.allow', oils_i18n_gettext( 328, 
1167     'UPDATE_ORG_UNIT_SETTING.credit.payments.allow', 'ppl', 'description' )),
1168  ( 329, 'UPDATE_ORG_UNIT_SETTING.circ.void_overdue_on_lost', oils_i18n_gettext( 329, 
1169     'UPDATE_ORG_UNIT_SETTING.circ.void_overdue_on_lost', 'ppl', 'description' )),
1170  ( 330, 'UPDATE_ORG_UNIT_SETTING.circ.hold_stalling.soft', oils_i18n_gettext( 330, 
1171     'UPDATE_ORG_UNIT_SETTING.circ.hold_stalling.soft', 'ppl', 'description' )),
1172  ( 331, 'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.hard', oils_i18n_gettext( 331, 
1173     'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.hard', 'ppl', 'description' )),
1174  ( 332, 'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.soft', oils_i18n_gettext( 332, 
1175     'UPDATE_ORG_UNIT_SETTING.circ.hold_boundary.soft', 'ppl', 'description' )),
1176  ( 333, 'UPDATE_ORG_UNIT_SETTING.opac.barcode_regex', oils_i18n_gettext( 333, 
1177     'UPDATE_ORG_UNIT_SETTING.opac.barcode_regex', 'ppl', 'description' )),
1178  ( 334, 'UPDATE_ORG_UNIT_SETTING.global.password_regex', oils_i18n_gettext( 334, 
1179     'UPDATE_ORG_UNIT_SETTING.global.password_regex', 'ppl', 'description' )),
1180  ( 335, 'UPDATE_ORG_UNIT_SETTING.circ.item_checkout_history.max', oils_i18n_gettext( 335, 
1181     'UPDATE_ORG_UNIT_SETTING.circ.item_checkout_history.max', 'ppl', 'description' )),
1182  ( 336, 'UPDATE_ORG_UNIT_SETTING.circ.reshelving_complete.interval', oils_i18n_gettext( 336, 
1183     'UPDATE_ORG_UNIT_SETTING.circ.reshelving_complete.interval', 'ppl', 'description' )),
1184  ( 337, 'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.patron_login_timeout', oils_i18n_gettext( 337, 
1185     'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.patron_login_timeout', 'ppl', 'description' )),
1186  ( 338, 'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.alert_on_checkout_event', oils_i18n_gettext( 338, 
1187     'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.alert_on_checkout_event', 'ppl', 'description' )),
1188  ( 339, 'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.require_patron_password', oils_i18n_gettext( 339, 
1189     'UPDATE_ORG_UNIT_SETTING.circ.selfcheck.require_patron_password', 'ppl', 'description' )),
1190  ( 340, 'UPDATE_ORG_UNIT_SETTING.global.juvenile_age_threshold', oils_i18n_gettext( 340, 
1191     'UPDATE_ORG_UNIT_SETTING.global.juvenile_age_threshold', 'ppl', 'description' )),
1192  ( 341, 'UPDATE_ORG_UNIT_SETTING.cat.bib.keep_on_empty', oils_i18n_gettext( 341, 
1193     'UPDATE_ORG_UNIT_SETTING.cat.bib.keep_on_empty', 'ppl', 'description' )),
1194  ( 342, 'UPDATE_ORG_UNIT_SETTING.cat.bib.alert_on_empty', oils_i18n_gettext( 342, 
1195     'UPDATE_ORG_UNIT_SETTING.cat.bib.alert_on_empty', 'ppl', 'description' )),
1196  ( 343, 'UPDATE_ORG_UNIT_SETTING.patron.password.use_phone', oils_i18n_gettext( 343, 
1197     'UPDATE_ORG_UNIT_SETTING.patron.password.use_phone', 'ppl', 'description' )),
1198  ( 344, 'HOLD_ITEM_CHECKED_OUT.override', oils_i18n_gettext( 344, 
1199     'Allows a user to place a hold on an item that they already have checked out', 'ppl', 'description' )),
1200  ( 345, 'ADMIN_ACQ_CANCEL_CAUSE', oils_i18n_gettext( 345, 
1201     'Allow a user to create/update/delete reasons for order cancellations', 'ppl', 'description' )),
1202  ( 346, 'ACQ_XFER_MANUAL_DFUND_AMOUNT', oils_i18n_gettext( 346, 
1203     'Allow a user to transfer different amounts of money out of one fund and into another', 'ppl', 'description' )),
1204  ( 347, 'OVERRIDE_HOLD_HAS_LOCAL_COPY', oils_i18n_gettext( 347, 
1205     'Allow a user to override the circ.holds.hold_has_copy_at.block setting', 'ppl', 'description' )),
1206  ( 348, 'UPDATE_PICKUP_LIB_FROM_TRANSIT', oils_i18n_gettext( 348, 
1207     'Allow a user to change the pickup and transit destination for a captured hold item already in transit', 'ppl', 'description' )),
1208  ( 349, 'COPY_NEEDED_FOR_HOLD.override', oils_i18n_gettext( 349, 
1209     'Allow a user to force renewal of an item that could fulfill a hold request', 'ppl', 'description' )),
1210  ( 350, 'MERGE_AUTH_RECORDS', oils_i18n_gettext( 350, 
1211     'Allow a user to merge authority records together', 'ppl', 'description' )),
1212  ( 351, 'ALLOW_ALT_TCN', oils_i18n_gettext( 351, 
1213     'Allows staff to import a record using an alternate TCN to avoid conflicts', 'ppl', 'description' )),
1214  ( 352, 'ADMIN_TRIGGER_EVENT_DEF', oils_i18n_gettext( 352, 
1215     'Allow a user to administer trigger event definitions', 'ppl', 'description' )),
1216  ( 353, 'ADMIN_TRIGGER_CLEANUP', oils_i18n_gettext( 353, 
1217     'Allow a user to create, delete, and update trigger cleanup entries', 'ppl', 'description' )),
1218  ( 354, 'CREATE_TRIGGER_CLEANUP', oils_i18n_gettext( 354, 
1219     'Allow a user to create trigger cleanup entries', 'ppl', 'description' )),
1220  ( 355, 'DELETE_TRIGGER_CLEANUP', oils_i18n_gettext( 355, 
1221     'Allow a user to delete trigger cleanup entries', 'ppl', 'description' )),
1222  ( 356, 'UPDATE_TRIGGER_CLEANUP', oils_i18n_gettext( 356, 
1223     'Allow a user to update trigger cleanup entries', 'ppl', 'description' )),
1224  ( 357, 'CREATE_TRIGGER_EVENT_DEF', oils_i18n_gettext( 357, 
1225     'Allow a user to create trigger event definitions', 'ppl', 'description' )),
1226  ( 358, 'DELETE_TRIGGER_EVENT_DEF', oils_i18n_gettext( 358, 
1227     'Allow a user to delete trigger event definitions', 'ppl', 'description' )),
1228  ( 359, 'UPDATE_TRIGGER_EVENT_DEF', oils_i18n_gettext( 359, 
1229     'Allow a user to update trigger event definitions', 'ppl', 'description' )),
1230  ( 360, 'VIEW_TRIGGER_EVENT_DEF', oils_i18n_gettext( 360, 
1231     'Allow a user to view trigger event definitions', 'ppl', 'description' )),
1232  ( 361, 'ADMIN_TRIGGER_HOOK', oils_i18n_gettext( 361, 
1233     'Allow a user to create, update, and delete trigger hooks', 'ppl', 'description' )),
1234  ( 362, 'CREATE_TRIGGER_HOOK', oils_i18n_gettext( 362, 
1235     'Allow a user to create trigger hooks', 'ppl', 'description' )),
1236  ( 363, 'DELETE_TRIGGER_HOOK', oils_i18n_gettext( 363, 
1237     'Allow a user to delete trigger hooks', 'ppl', 'description' )),
1238  ( 364, 'UPDATE_TRIGGER_HOOK', oils_i18n_gettext( 364, 
1239     'Allow a user to update trigger hooks', 'ppl', 'description' )),
1240  ( 365, 'ADMIN_TRIGGER_REACTOR', oils_i18n_gettext( 365, 
1241     'Allow a user to create, update, and delete trigger reactors', 'ppl', 'description' )),
1242  ( 366, 'CREATE_TRIGGER_REACTOR', oils_i18n_gettext( 366, 
1243     'Allow a user to create trigger reactors', 'ppl', 'description' )),
1244  ( 367, 'DELETE_TRIGGER_REACTOR', oils_i18n_gettext( 367, 
1245     'Allow a user to delete trigger reactors', 'ppl', 'description' )),
1246  ( 368, 'UPDATE_TRIGGER_REACTOR', oils_i18n_gettext( 368, 
1247     'Allow a user to update trigger reactors', 'ppl', 'description' )),
1248  ( 369, 'ADMIN_TRIGGER_TEMPLATE_OUTPUT', oils_i18n_gettext( 369, 
1249     'Allow a user to delete trigger template output', 'ppl', 'description' )),
1250  ( 370, 'DELETE_TRIGGER_TEMPLATE_OUTPUT', oils_i18n_gettext( 370, 
1251     'Allow a user to delete trigger template output', 'ppl', 'description' )),
1252  ( 371, 'ADMIN_TRIGGER_VALIDATOR', oils_i18n_gettext( 371, 
1253     'Allow a user to create, update, and delete trigger validators', 'ppl', 'description' )),
1254  ( 372, 'CREATE_TRIGGER_VALIDATOR', oils_i18n_gettext( 372, 
1255     'Allow a user to create trigger validators', 'ppl', 'description' )),
1256  ( 373, 'DELETE_TRIGGER_VALIDATOR', oils_i18n_gettext( 373, 
1257     'Allow a user to delete trigger validators', 'ppl', 'description' )),
1258  ( 374, 'UPDATE_TRIGGER_VALIDATOR', oils_i18n_gettext( 374, 
1259     'Allow a user to update trigger validators', 'ppl', 'description' )),
1260  ( 376, 'ADMIN_BOOKING_RESOURCE', oils_i18n_gettext( 376, 
1261     'Enables the user to create/update/delete booking resources', 'ppl', 'description' )),
1262  ( 377, 'ADMIN_BOOKING_RESOURCE_TYPE', oils_i18n_gettext( 377, 
1263     'Enables the user to create/update/delete booking resource types', 'ppl', 'description' )),
1264  ( 378, 'ADMIN_BOOKING_RESOURCE_ATTR', oils_i18n_gettext( 378, 
1265     'Enables the user to create/update/delete booking resource attributes', 'ppl', 'description' )),
1266  ( 379, 'ADMIN_BOOKING_RESOURCE_ATTR_MAP', oils_i18n_gettext( 379, 
1267     'Enables the user to create/update/delete booking resource attribute maps', 'ppl', 'description' )),
1268  ( 380, 'ADMIN_BOOKING_RESOURCE_ATTR_VALUE', oils_i18n_gettext( 380, 
1269     'Enables the user to create/update/delete booking resource attribute values', 'ppl', 'description' )),
1270  ( 381, 'ADMIN_BOOKING_RESERVATION', oils_i18n_gettext( 381, 
1271     'Enables the user to create/update/delete booking reservations', 'ppl', 'description' )),
1272  ( 382, 'ADMIN_BOOKING_RESERVATION_ATTR_VALUE_MAP', oils_i18n_gettext( 382, 
1273     'Enables the user to create/update/delete booking reservation attribute value maps', 'ppl', 'description' )),
1274  ( 383, 'RETRIEVE_RESERVATION_PULL_LIST', oils_i18n_gettext( 383, 
1275     'Allows a user to retrieve a booking reservation pull list', 'ppl', 'description' )),
1276  ( 384, 'CAPTURE_RESERVATION', oils_i18n_gettext( 384, 
1277     'Allows a user to capture booking reservations', 'ppl', 'description' )),
1278  ( 385, 'UPDATE_RECORD', oils_i18n_gettext( 385, 
1279     'UPDATE_RECORD', 'ppl', 'description' )),
1280  ( 386, 'UPDATE_ORG_UNIT_SETTING.circ.block_renews_for_holds', oils_i18n_gettext( 386, 
1281     'UPDATE_ORG_UNIT_SETTING.circ.block_renews_for_holds', 'ppl', 'description' )),
1282  ( 387, 'MERGE_USERS', oils_i18n_gettext( 387, 
1283     'Allows user records to be merged', 'ppl', 'description' )),
1284  ( 388, 'ISSUANCE_HOLDS', oils_i18n_gettext( 388, 
1285     'Allow a user to place holds on serials issuances', 'ppl', 'description' )),
1286  ( 389, 'VIEW_CREDIT_CARD_PROCESSING', oils_i18n_gettext( 389, 
1287     'View org unit settings related to credit card processing', 'ppl', 'description' )),
1288  ( 390, 'ADMIN_CREDIT_CARD_PROCESSING', oils_i18n_gettext( 390, 
1289     'Update org unit settings related to credit card processing', 'ppl', 'description' )),
1290  ( 391, 'ADMIN_ACQ_CLAIM', oils_i18n_gettext( 391, 
1291     'ADMIN_ACQ_CLAIM', 'ppl', 'description' )),
1292  ( 392, 'ADMIN_ACQ_CLAIM_EVENT_TYPE', oils_i18n_gettext( 392, 
1293     'ADMIN_ACQ_CLAIM_EVENT_TYPE', 'ppl', 'description' )),
1294  ( 393, 'ADMIN_ACQ_CLAIM_TYPE', oils_i18n_gettext( 393, 
1295     'ADMIN_ACQ_CLAIM_TYPE', 'ppl', 'description' )),
1296  ( 394, 'ADMIN_ACQ_DISTRIB_FORMULA', oils_i18n_gettext( 394, 
1297     'ADMIN_ACQ_DISTRIB_FORMULA', 'ppl', 'description' )),
1298  ( 395, 'ADMIN_ACQ_FISCAL_YEAR', oils_i18n_gettext( 395, 
1299     'ADMIN_ACQ_FISCAL_YEAR', 'ppl', 'description' )),
1300  ( 396, 'ADMIN_ACQ_FUND_ALLOCATION_PERCENT', oils_i18n_gettext( 396, 
1301     'ADMIN_ACQ_FUND_ALLOCATION_PERCENT', 'ppl', 'description' )),
1302  ( 397, 'ADMIN_ACQ_FUND_TAG', oils_i18n_gettext( 397, 
1303     'ADMIN_ACQ_FUND_TAG', 'ppl', 'description' )),
1304  ( 398, 'ADMIN_ACQ_LINEITEM_ALERT_TEXT', oils_i18n_gettext( 398, 
1305     'ADMIN_ACQ_LINEITEM_ALERT_TEXT', 'ppl', 'description' )),
1306  ( 399, 'ADMIN_AGE_PROTECT_RULE', oils_i18n_gettext( 399, 
1307     'ADMIN_AGE_PROTECT_RULE', 'ppl', 'description' )),
1308  ( 400, 'ADMIN_ASSET_COPY_TEMPLATE', oils_i18n_gettext( 400, 
1309     'ADMIN_ASSET_COPY_TEMPLATE', 'ppl', 'description' )),
1310  ( 401, 'ADMIN_BOOKING_RESERVATION_ATTR_MAP', oils_i18n_gettext( 401, 
1311     'ADMIN_BOOKING_RESERVATION_ATTR_MAP', 'ppl', 'description' )),
1312  ( 402, 'ADMIN_CIRC_MATRIX_MATCHPOINT', oils_i18n_gettext( 402, 
1313     'ADMIN_CIRC_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1314  ( 403, 'ADMIN_CIRC_MOD', oils_i18n_gettext( 403, 
1315     'ADMIN_CIRC_MOD', 'ppl', 'description' )),
1316  ( 404, 'ADMIN_CLAIM_POLICY', oils_i18n_gettext( 404, 
1317     'ADMIN_CLAIM_POLICY', 'ppl', 'description' )),
1318  ( 405, 'ADMIN_CONFIG_REMOTE_ACCOUNT', oils_i18n_gettext( 405, 
1319     'ADMIN_CONFIG_REMOTE_ACCOUNT', 'ppl', 'description' )),
1320  ( 406, 'ADMIN_FIELD_DOC', oils_i18n_gettext( 406, 
1321     'ADMIN_FIELD_DOC', 'ppl', 'description' )),
1322  ( 407, 'ADMIN_GLOBAL_FLAG', oils_i18n_gettext( 407, 
1323     'ADMIN_GLOBAL_FLAG', 'ppl', 'description' )),
1324  ( 408, 'ADMIN_GROUP_PENALTY_THRESHOLD', oils_i18n_gettext( 408, 
1325     'ADMIN_GROUP_PENALTY_THRESHOLD', 'ppl', 'description' )),
1326  ( 409, 'ADMIN_HOLD_CANCEL_CAUSE', oils_i18n_gettext( 409, 
1327     'ADMIN_HOLD_CANCEL_CAUSE', 'ppl', 'description' )),
1328  ( 410, 'ADMIN_HOLD_MATRIX_MATCHPOINT', oils_i18n_gettext( 410, 
1329     'ADMIN_HOLD_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1330  ( 411, 'ADMIN_IDENT_TYPE', oils_i18n_gettext( 411, 
1331     'ADMIN_IDENT_TYPE', 'ppl', 'description' )),
1332  ( 412, 'ADMIN_IMPORT_ITEM_ATTR_DEF', oils_i18n_gettext( 412, 
1333     'ADMIN_IMPORT_ITEM_ATTR_DEF', 'ppl', 'description' )),
1334  ( 413, 'ADMIN_INDEX_NORMALIZER', oils_i18n_gettext( 413, 
1335     'ADMIN_INDEX_NORMALIZER', 'ppl', 'description' )),
1336  ( 414, 'ADMIN_INVOICE', oils_i18n_gettext( 414, 
1337     'ADMIN_INVOICE', 'ppl', 'description' )),
1338  ( 415, 'ADMIN_INVOICE_METHOD', oils_i18n_gettext( 415, 
1339     'ADMIN_INVOICE_METHOD', 'ppl', 'description' )),
1340  ( 416, 'ADMIN_INVOICE_PAYMENT_METHOD', oils_i18n_gettext( 416, 
1341     'ADMIN_INVOICE_PAYMENT_METHOD', 'ppl', 'description' )),
1342  ( 417, 'ADMIN_LINEITEM_MARC_ATTR_DEF', oils_i18n_gettext( 417, 
1343     'ADMIN_LINEITEM_MARC_ATTR_DEF', 'ppl', 'description' )),
1344  ( 418, 'ADMIN_MARC_CODE', oils_i18n_gettext( 418, 
1345     'ADMIN_MARC_CODE', 'ppl', 'description' )),
1346  ( 419, 'ADMIN_MAX_FINE_RULE', oils_i18n_gettext( 419, 
1347     'ADMIN_MAX_FINE_RULE', 'ppl', 'description' )),
1348  ( 420, 'ADMIN_MERGE_PROFILE', oils_i18n_gettext( 420, 
1349     'ADMIN_MERGE_PROFILE', 'ppl', 'description' )),
1350  ( 421, 'ADMIN_ORG_UNIT_SETTING_TYPE', oils_i18n_gettext( 421, 
1351     'ADMIN_ORG_UNIT_SETTING_TYPE', 'ppl', 'description' )),
1352  ( 422, 'ADMIN_RECURRING_FINE_RULE', oils_i18n_gettext( 422, 
1353     'ADMIN_RECURRING_FINE_RULE', 'ppl', 'description' )),
1354  ( 423, 'ADMIN_SERIAL_SUBSCRIPTION', oils_i18n_gettext( 423, 
1355     'ADMIN_SERIAL_SUBSCRIPTION', 'ppl', 'description' )),
1356  ( 424, 'ADMIN_STANDING_PENALTY', oils_i18n_gettext( 424, 
1357     'ADMIN_STANDING_PENALTY', 'ppl', 'description' )),
1358  ( 425, 'ADMIN_SURVEY', oils_i18n_gettext( 425, 
1359     'ADMIN_SURVEY', 'ppl', 'description' )),
1360  ( 426, 'ADMIN_USER_REQUEST_TYPE', oils_i18n_gettext( 426, 
1361     'ADMIN_USER_REQUEST_TYPE', 'ppl', 'description' )),
1362  ( 427, 'ADMIN_USER_SETTING_GROUP', oils_i18n_gettext( 427, 
1363     'ADMIN_USER_SETTING_GROUP', 'ppl', 'description' )),
1364  ( 428, 'ADMIN_USER_SETTING_TYPE', oils_i18n_gettext( 428, 
1365     'ADMIN_USER_SETTING_TYPE', 'ppl', 'description' )),
1366  ( 429, 'ADMIN_Z3950_SOURCE', oils_i18n_gettext( 429, 
1367     'ADMIN_Z3950_SOURCE', 'ppl', 'description' )),
1368  ( 430, 'CREATE_BIB_BTYPE', oils_i18n_gettext( 430, 
1369     'CREATE_BIB_BTYPE', 'ppl', 'description' )),
1370  ( 431, 'CREATE_BIBLIO_FINGERPRINT', oils_i18n_gettext( 431, 
1371     'CREATE_BIBLIO_FINGERPRINT', 'ppl', 'description' )),
1372  ( 432, 'CREATE_BIB_SOURCE', oils_i18n_gettext( 432, 
1373     'CREATE_BIB_SOURCE', 'ppl', 'description' )),
1374  ( 433, 'CREATE_BILLING_TYPE', oils_i18n_gettext( 433, 
1375     'CREATE_BILLING_TYPE', 'ppl', 'description' )),
1376  ( 434, 'CREATE_CN_BTYPE', oils_i18n_gettext( 434, 
1377     'CREATE_CN_BTYPE', 'ppl', 'description' )),
1378  ( 435, 'CREATE_COPY_BTYPE', oils_i18n_gettext( 435, 
1379     'CREATE_COPY_BTYPE', 'ppl', 'description' )),
1380  ( 436, 'CREATE_INVOICE', oils_i18n_gettext( 436, 
1381     'CREATE_INVOICE', 'ppl', 'description' )),
1382  ( 437, 'CREATE_INVOICE_ITEM_TYPE', oils_i18n_gettext( 437, 
1383     'CREATE_INVOICE_ITEM_TYPE', 'ppl', 'description' )),
1384  ( 438, 'CREATE_INVOICE_METHOD', oils_i18n_gettext( 438, 
1385     'CREATE_INVOICE_METHOD', 'ppl', 'description' )),
1386  ( 439, 'CREATE_MERGE_PROFILE', oils_i18n_gettext( 439, 
1387     'CREATE_MERGE_PROFILE', 'ppl', 'description' )),
1388  ( 440, 'CREATE_METABIB_CLASS', oils_i18n_gettext( 440, 
1389     'CREATE_METABIB_CLASS', 'ppl', 'description' )),
1390  ( 441, 'CREATE_METABIB_SEARCH_ALIAS', oils_i18n_gettext( 441, 
1391     'CREATE_METABIB_SEARCH_ALIAS', 'ppl', 'description' )),
1392  ( 442, 'CREATE_USER_BTYPE', oils_i18n_gettext( 442, 
1393     'CREATE_USER_BTYPE', 'ppl', 'description' )),
1394  ( 443, 'DELETE_BIB_BTYPE', oils_i18n_gettext( 443, 
1395     'DELETE_BIB_BTYPE', 'ppl', 'description' )),
1396  ( 444, 'DELETE_BIBLIO_FINGERPRINT', oils_i18n_gettext( 444, 
1397     'DELETE_BIBLIO_FINGERPRINT', 'ppl', 'description' )),
1398  ( 445, 'DELETE_BIB_SOURCE', oils_i18n_gettext( 445, 
1399     'DELETE_BIB_SOURCE', 'ppl', 'description' )),
1400  ( 446, 'DELETE_BILLING_TYPE', oils_i18n_gettext( 446, 
1401     'DELETE_BILLING_TYPE', 'ppl', 'description' )),
1402  ( 447, 'DELETE_CN_BTYPE', oils_i18n_gettext( 447, 
1403     'DELETE_CN_BTYPE', 'ppl', 'description' )),
1404  ( 448, 'DELETE_COPY_BTYPE', oils_i18n_gettext( 448, 
1405     'DELETE_COPY_BTYPE', 'ppl', 'description' )),
1406  ( 449, 'DELETE_INVOICE_ITEM_TYPE', oils_i18n_gettext( 449, 
1407     'DELETE_INVOICE_ITEM_TYPE', 'ppl', 'description' )),
1408  ( 450, 'DELETE_INVOICE_METHOD', oils_i18n_gettext( 450, 
1409     'DELETE_INVOICE_METHOD', 'ppl', 'description' )),
1410  ( 451, 'DELETE_MERGE_PROFILE', oils_i18n_gettext( 451, 
1411     'DELETE_MERGE_PROFILE', 'ppl', 'description' )),
1412  ( 452, 'DELETE_METABIB_CLASS', oils_i18n_gettext( 452, 
1413     'DELETE_METABIB_CLASS', 'ppl', 'description' )),
1414  ( 453, 'DELETE_METABIB_SEARCH_ALIAS', oils_i18n_gettext( 453, 
1415     'DELETE_METABIB_SEARCH_ALIAS', 'ppl', 'description' )),
1416  ( 454, 'DELETE_USER_BTYPE', oils_i18n_gettext( 454, 
1417     'DELETE_USER_BTYPE', 'ppl', 'description' )),
1418  ( 455, 'MANAGE_CLAIM', oils_i18n_gettext( 455, 
1419     'MANAGE_CLAIM', 'ppl', 'description' )),
1420  ( 456, 'UPDATE_BIB_BTYPE', oils_i18n_gettext( 456, 
1421     'UPDATE_BIB_BTYPE', 'ppl', 'description' )),
1422  ( 457, 'UPDATE_BIBLIO_FINGERPRINT', oils_i18n_gettext( 457, 
1423     'UPDATE_BIBLIO_FINGERPRINT', 'ppl', 'description' )),
1424  ( 458, 'UPDATE_BIB_SOURCE', oils_i18n_gettext( 458, 
1425     'UPDATE_BIB_SOURCE', 'ppl', 'description' )),
1426  ( 459, 'UPDATE_BILLING_TYPE', oils_i18n_gettext( 459, 
1427     'UPDATE_BILLING_TYPE', 'ppl', 'description' )),
1428  ( 460, 'UPDATE_CN_BTYPE', oils_i18n_gettext( 460, 
1429     'UPDATE_CN_BTYPE', 'ppl', 'description' )),
1430  ( 461, 'UPDATE_COPY_BTYPE', oils_i18n_gettext( 461, 
1431     'UPDATE_COPY_BTYPE', 'ppl', 'description' )),
1432  ( 462, 'UPDATE_INVOICE_ITEM_TYPE', oils_i18n_gettext( 462, 
1433     'UPDATE_INVOICE_ITEM_TYPE', 'ppl', 'description' )),
1434  ( 463, 'UPDATE_INVOICE_METHOD', oils_i18n_gettext( 463, 
1435     'UPDATE_INVOICE_METHOD', 'ppl', 'description' )),
1436  ( 464, 'UPDATE_MERGE_PROFILE', oils_i18n_gettext( 464, 
1437     'UPDATE_MERGE_PROFILE', 'ppl', 'description' )),
1438  ( 465, 'UPDATE_METABIB_CLASS', oils_i18n_gettext( 465, 
1439     'UPDATE_METABIB_CLASS', 'ppl', 'description' )),
1440  ( 466, 'UPDATE_METABIB_SEARCH_ALIAS', oils_i18n_gettext( 466, 
1441     'UPDATE_METABIB_SEARCH_ALIAS', 'ppl', 'description' )),
1442  ( 467, 'UPDATE_USER_BTYPE', oils_i18n_gettext( 467, 
1443     'UPDATE_USER_BTYPE', 'ppl', 'description' )),
1444  ( 468, 'user_request.create', oils_i18n_gettext( 468, 
1445     'user_request.create', 'ppl', 'description' )),
1446  ( 469, 'user_request.delete', oils_i18n_gettext( 469, 
1447     'user_request.delete', 'ppl', 'description' )),
1448  ( 470, 'user_request.update', oils_i18n_gettext( 470, 
1449     'user_request.update', 'ppl', 'description' )),
1450  ( 471, 'user_request.view', oils_i18n_gettext( 471, 
1451     'user_request.view', 'ppl', 'description' )),
1452  ( 472, 'VIEW_ACQ_FUND_ALLOCATION_PERCENT', oils_i18n_gettext( 472, 
1453     'VIEW_ACQ_FUND_ALLOCATION_PERCENT', 'ppl', 'description' )),
1454  ( 473, 'VIEW_CIRC_MATRIX_MATCHPOINT', oils_i18n_gettext( 473, 
1455     'VIEW_CIRC_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1456  ( 474, 'VIEW_CLAIM', oils_i18n_gettext( 474, 
1457     'VIEW_CLAIM', 'ppl', 'description' )),
1458  ( 475, 'VIEW_GROUP_PENALTY_THRESHOLD', oils_i18n_gettext( 475, 
1459     'VIEW_GROUP_PENALTY_THRESHOLD', 'ppl', 'description' )),
1460  ( 476, 'VIEW_HOLD_MATRIX_MATCHPOINT', oils_i18n_gettext( 476, 
1461     'VIEW_HOLD_MATRIX_MATCHPOINT', 'ppl', 'description' )),
1462  ( 477, 'VIEW_INVOICE', oils_i18n_gettext( 477, 
1463     'VIEW_INVOICE', 'ppl', 'description' )),
1464  ( 478, 'VIEW_MERGE_PROFILE', oils_i18n_gettext( 478, 
1465     'VIEW_MERGE_PROFILE', 'ppl', 'description' )),
1466  ( 479, 'VIEW_SERIAL_SUBSCRIPTION', oils_i18n_gettext( 479, 
1467     'VIEW_SERIAL_SUBSCRIPTION', 'ppl', 'description' )),
1468  ( 480, 'VIEW_STANDING_PENALTY', oils_i18n_gettext( 480, 
1469     'VIEW_STANDING_PENALTY', 'ppl', 'description' )),
1470  ( 481, 'ADMIN_SERIAL_CAPTION_PATTERN', oils_i18n_gettext( 481, 
1471     'ADMIN_SERIAL_CAPTION_PATTERN', 'ppl', 'description' )),
1472  ( 482, 'ADMIN_SERIAL_DISTRIBUTION', oils_i18n_gettext( 482, 
1473     'ADMIN_SERIAL_DISTRIBUTION', 'ppl', 'description' )),
1474  ( 483, 'ADMIN_SERIAL_STREAM', oils_i18n_gettext( 483, 
1475     'ADMIN_SERIAL_STREAM', 'ppl', 'description' )),
1476  ( 484, 'RECEIVE_SERIAL', oils_i18n_gettext(484,
1477         'Receive serial items', 'ppl', 'description')),
1478  ( 485, 'CREATE_VOLUME_SUFFIX', oils_i18n_gettext(485,
1479     'Create suffix label definition.', 'ppl', 'description')),
1480  ( 486, 'UPDATE_VOLUME_SUFFIX', oils_i18n_gettext(486,
1481     'Update suffix label definition.', 'ppl', 'description')),
1482  ( 487, 'DELETE_VOLUME_SUFFIX', oils_i18n_gettext(487,
1483     'Delete suffix label definition.', 'ppl', 'description')),
1484  ( 488, 'CREATE_VOLUME_PREFIX', oils_i18n_gettext(488,
1485     'Create prefix label definition.', 'ppl', 'description')),
1486  ( 489, 'UPDATE_VOLUME_PREFIX', oils_i18n_gettext(489,
1487     'Update prefix label definition.', 'ppl', 'description')),
1488  ( 490, 'DELETE_VOLUME_PREFIX', oils_i18n_gettext(490,
1489     'Delete prefix label definition.', 'ppl', 'description')),
1490  ( 491, 'CREATE_MONOGRAPH_PART', oils_i18n_gettext(491,
1491     'Create monograph part definition.', 'ppl', 'description')),
1492  ( 492, 'UPDATE_MONOGRAPH_PART', oils_i18n_gettext(492,
1493     'Update monograph part definition.', 'ppl', 'description')),
1494  ( 493, 'DELETE_MONOGRAPH_PART', oils_i18n_gettext(493,
1495     'Delete monograph part definition.', 'ppl', 'description')),
1496  ( 494, 'ADMIN_CODED_VALUE', oils_i18n_gettext(494,
1497     'Create/Update/Delete SVF Record Attribute Coded Value Map', 'ppl', 'description')),
1498  ( 495, 'ADMIN_SERIAL_ITEM', oils_i18n_gettext(495,
1499     'Create/Retrieve/Update/Delete Serial Item', 'ppl', 'description')),
1500  ( 496, 'ADMIN_SVF', oils_i18n_gettext(496,
1501     'Create/Update/Delete SVF Record Attribute Defintion', 'ppl', 'description')),
1502  ( 497, 'CREATE_BIB_PTYPE', oils_i18n_gettext(497,
1503     'Create Bibliographic Record Peer Type', 'ppl', 'description')),
1504  ( 498, 'CREATE_PURCHASE_REQUEST', oils_i18n_gettext(498,
1505     'Create User Purchase Request', 'ppl', 'description')),
1506  ( 499, 'DELETE_BIB_PTYPE', oils_i18n_gettext(499,
1507     'Delete Bibliographic Record Peer Type', 'ppl', 'description')),
1508  ( 500, 'MAP_MONOGRAPH_PART', oils_i18n_gettext(500,
1509     'Create/Update/Delete Copy Monograph Part Map', 'ppl', 'description')),
1510  ( 501, 'MARK_ITEM_MISSING_PIECES', oils_i18n_gettext(501,
1511     'Allows the Mark Item Missing Pieces action.', 'ppl', 'description')),
1512  ( 502, 'UPDATE_BIB_PTYPE', oils_i18n_gettext(502,
1513     'Update Bibliographic Record Peer Type', 'ppl', 'description')),
1514  ( 503, 'UPDATE_HOLD_REQUEST_TIME', oils_i18n_gettext(503,
1515     'Allows editing of a hold''s request time, and/or its Cut-in-line/Top-of-queue flag.', 'ppl', 'description')),
1516  ( 504, 'UPDATE_PICKLIST', oils_i18n_gettext(504,
1517     'Allows update/re-use of an acquisitions pick/selection list.', 'ppl', 'description')),
1518  ( 505, 'UPDATE_WORKSTATION', oils_i18n_gettext(505,
1519     'Allows update of a workstation during workstation registration override.', 'ppl', 'description')),
1520  ( 506, 'VIEW_USER_SETTING_TYPE', oils_i18n_gettext(506,
1521     'Allows viewing of configurable user setting types.', 'ppl', 'description')),
1522  ( 507, 'ABORT_TRANSIT_ON_LOST', oils_i18n_gettext(507,
1523     'Allows a user to abort a transit on a copy with status of LOST', 'ppl', 'description')),
1524  ( 508, 'ABORT_TRANSIT_ON_MISSING', oils_i18n_gettext(508,
1525     'Allows a user to abort a transit on a copy with status of MISSING', 'ppl', 'description')),
1526  ( 509, 'TRANSIT_CHECKIN_INTERVAL_BLOCK.override', oils_i18n_gettext(509,
1527     'Allows a user to override the TRANSIT_CHECKIN_INTERVAL_BLOCK event', 'ppl', 'description')),
1528  ( 510, 'UPDATE_PATRON_COLLECTIONS_EXEMPT', oils_i18n_gettext(510,
1529     'Allows a user to indicate that a patron is exempt from collections processing', 'ppl', 'description')),
1530  ( 511, 'PERSISTENT_LOGIN', oils_i18n_gettext( 511,
1531     'Allows a user to authenticate and get a long-lived session (length configured in opensrf.xml)', 'ppl', 'description' )),
1532  ( 512, 'ACQ_INVOICE_REOPEN', oils_i18n_gettext( 512,
1533     'Allows a user to reopen an Acquisitions invoice', 'ppl', 'description' )),
1534  ( 513, 'DEBUG_CLIENT', oils_i18n_gettext( 513,
1535     'Allows a user to use debug functions in the staff client', 'ppl', 'description' )),
1536  ( 514, 'UPDATE_PATRON_ACTIVE_CARD', oils_i18n_gettext( 514,
1537     'Allows a user to manually adjust a patron''s active cards', 'ppl', 'description')),
1538  ( 515, 'UPDATE_PATRON_PRIMARY_CARD', oils_i18n_gettext( 515,
1539     'Allows a user to manually adjust a patron''s primary card', 'ppl', 'description')),
1540  ( 516, 'CREATE_REPORT_TEMPLATE', oils_i18n_gettext( 516,
1541     'Allows a user to create report templates', 'ppl', 'description' )),
1542  ( 517, 'COPY_HOLDS_FORCE', oils_i18n_gettext( 517, 
1543     'Allow a user to place a force hold on a specific copy', 'ppl', 'description' )),
1544  ( 518, 'COPY_HOLDS_RECALL', oils_i18n_gettext( 518, 
1545     'Allow a user to place a cataloging recall on a specific copy', 'ppl', 'description' )),
1546  ( 519, 'ADMIN_SMS_CARRIER', oils_i18n_gettext( 519,
1547     'Allows a user to add/create/delete SMS Carrier entries.', 'ppl', 'description' )),
1548  ( 520, 'COPY_DELETE_WARNING.override', oils_i18n_gettext( 520,
1549     'Allow a user to override warnings about deleting copies in problematic situations.', 'ppl', 'description' )),
1550  ( 521, 'IMPORT_ACQ_LINEITEM_BIB_RECORD_UPLOAD', oils_i18n_gettext( 521,
1551     'Allows a user to create new bibs directly from an ACQ MARC file upload', 'ppl', 'description' )),
1552  ( 522, 'IMPORT_AUTHORITY_MARC', oils_i18n_gettext( 522,
1553     'Allows a user to create new authority records', 'ppl', 'description' )),
1554  ( 523, 'ADMIN_TOOLBAR', oils_i18n_gettext( 523,
1555     'Allows a user to create, edit, and delete custom toolbars', 'ppl', 'description' )),
1556  ( 524, 'PLACE_UNFILLABLE_HOLD', oils_i18n_gettext( 524,
1557     'Allows a user to place a hold that cannot currently be filled.', 'ppl', 'description' )),
1558  ( 525, 'CREATE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 525, 
1559     'User may set a default entry in a patron statistical category', 'ppl', 'description' )),
1560  ( 526, 'UPDATE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 526, 
1561     'User may reset a default entry in a patron statistical category', 'ppl', 'description' )),
1562  ( 527, 'DELETE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 527, 
1563     'User may unset a default entry in a patron statistical category', 'ppl', 'description' )),
1564  ( 528, 'ADMIN_ORG_UNIT_CUSTOM_TREE', oils_i18n_gettext( 528, 
1565     'User may update custom org unit trees', 'ppl', 'description' )),
1566  ( 529, 'ADMIN_IMPORT_MATCH_SET', oils_i18n_gettext( 529,
1567     'Allows a user to create/retrieve/update/delete vandelay match sets', 'ppl', 'description' )),
1568  ( 530, 'VIEW_IMPORT_MATCH_SET', oils_i18n_gettext( 530,
1569     'Allows a user to view vandelay match sets', 'ppl', 'description' )),
1570  ( 531, 'ADMIN_ADDRESS_ALERT', oils_i18n_gettext( 531,
1571     'Allows a user to create/retrieve/update/delete address alerts', 'ppl', 'description' )), 
1572  ( 532, 'VIEW_ADDRESS_ALERT', oils_i18n_gettext( 532,
1573     'Allows a user to view address alerts', 'ppl', 'description' )), 
1574  ( 533, 'ADMIN_COPY_LOCATION_GROUP', oils_i18n_gettext( 533,
1575     'Allows a user to create/retrieve/update/delete copy location groups', 'ppl', 'description' )), 
1576  ( 534, 'ADMIN_USER_ACTIVITY_TYPE', oils_i18n_gettext( 534,
1577     'Allows a user to create/retrieve/update/delete user activity types', 'ppl', 'description' )),
1578 ( 535, 'VIEW_TRIGGER_EVENT', oils_i18n_gettext( 535,
1579     'Allows a user to view circ- and hold-related action/trigger events', 'ppl', 'description')),
1580 ( 536, 'IMPORT_OVERLAY_COPY', oils_i18n_gettext( 536,
1581     'Allows a user to overlay copy data in MARC import', 'ppl', 'description')),
1582  ( 537, 'ADMIN_SEARCH_FILTER_GROUP', oils_i18n_gettext( 537,
1583     'Allows staff to manage search filter groups and entries', 'ppl', 'description' )),
1584  ( 538, 'VIEW_SEARCH_FILTER_GROUP', oils_i18n_gettext( 538,
1585     'Allows staff to view search filter groups and entries', 'ppl', 'description' )),
1586  ( 539, 'UPDATE_ORG_UNIT_SETTING.ui.hide_copy_editor_fields', oils_i18n_gettext( 539,
1587     'Allows staff to edit displayed copy editor fields', 'ppl', 'description' )),
1588  ( 540, 'ADMIN_TOOLBAR_FOR_ORG', oils_i18n_gettext( 540,
1589         'Allows a user to create, edit, and delete custom toolbars for org units', 'ppl', 'description')),
1590  ( 541, 'ADMIN_TOOLBAR_FOR_WORKSTATION', oils_i18n_gettext( 541,
1591         'Allows a user to create, edit, and delete custom toolbars for workstations', 'ppl', 'description')),
1592  ( 542, 'ADMIN_TOOLBAR_FOR_USER', oils_i18n_gettext( 542,
1593         'Allows a user to create, edit, and delete custom toolbars for users', 'ppl', 'description')),
1594  ( 543, 'URL_VERIFY', oils_i18n_gettext( 543, 
1595     'Allows a user to process and verify ULSs', 'ppl', 'description')),
1596  ( 544, 'URL_VERIFY_UPDATE_SETTINGS', oils_i18n_gettext( 544, 
1597     'Allows a user to configure URL verification org unit settings', 'ppl', 'description')),
1598  ( 545, 'SAVED_FILTER_DIALOG_FILTERS', oils_i18n_gettext( 545,
1599     'Allows users to save and load sets of filters for filter dialogs, available in certain staff interfaces', 'ppl', 'description')),
1600  ( 546, 'ADMIN_HOLD_CAPTURE_SORT', oils_i18n_gettext( 546,
1601         'Allows a user to make changes to best-hold selection sort order', 'ppl', 'description')),
1602  ( 547, 'ACQ_ADD_LINEITEM_IDENTIFIER', oils_i18n_gettext(547,
1603         'When granted, newly added lineitem identifiers will propagate to linked bib records', 'ppl', 'description')),
1604  ( 548, 'ACQ_SET_LINEITEM_IDENTIFIER', oils_i18n_gettext(548,
1605         'Allows staff to change the lineitem identifier', 'ppl', 'description')),
1606  ( 549, 'COPY_STATUS_LONGOVERDUE.override', oils_i18n_gettext(549,
1607         'Allows the user to check-in long-overdue items, prompting ' ||
1608             'long-overdue check-in processing', 'ppl', 'code')), 
1609  ( 550, 'SET_CIRC_LONG_OVERDUE', oils_i18n_gettext(550,
1610         'Allows the user to mark a circulation as long-overdue', 'ppl', 'code')),
1611  ( 551, 'ADMIN_SERVER_ADDON_FOR_WORKSTATION', oils_i18n_gettext( 551,
1612         'Allows a user to specify which Server Add-ons get invoked at the current workstation', 'ppl', 'description')),
1613  ( 552, 'group_application.user.staff.admin.system_admin', oils_i18n_gettext( 552, 
1614     'Allow a user to add/remove users to/from the "System Administrator" group', 'ppl', 'description' )),
1615  ( 553, 'group_application.user.staff.cat_admin', oils_i18n_gettext( 553, 
1616     'Allow a user to add/remove users to/from the "Cataloging Administrator" group', 'ppl', 'description' )),
1617  ( 554, 'group_application.user.staff.circ_admin', oils_i18n_gettext( 554, 
1618     'Allow a user to add/remove users to/from the "Circulation Administrator" group', 'ppl', 'description' )),
1619  ( 555, 'group_application.user.staff.data_review', oils_i18n_gettext( 555, 
1620     'Allow a user to add/remove users to/from the "Data Review" group', 'ppl', 'description' )),
1621  ( 556, 'group_application.user.staff.volunteers', oils_i18n_gettext( 556, 
1622     'Allow a user to add/remove users to/from the "Volunteers" group', 'ppl', 'description' ))
1623 ;
1624
1625
1626 SELECT SETVAL('permission.perm_list_id_seq'::TEXT, 1000);
1627
1628 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1629         (1, oils_i18n_gettext(1, 'Users', 'pgt', 'name'), NULL, NULL, '3 years', FALSE, 'group_application.user');
1630 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1631         (2, oils_i18n_gettext(2, 'Patrons', 'pgt', 'name'), 1, NULL, '3 years', TRUE, 'group_application.user.patron');
1632 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1633         (3, oils_i18n_gettext(3, 'Staff', 'pgt', 'name'), 1, NULL, '3 years', FALSE, 'group_application.user.staff');
1634 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1635         (4, oils_i18n_gettext(4, 'Catalogers', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.cat');
1636 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1637         (5, oils_i18n_gettext(5, 'Circulators', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.circ');
1638 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1639         (6, oils_i18n_gettext(6, 'Acquisitions', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.acq');
1640 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1641         (7, oils_i18n_gettext(7, 'Acquisitions Administrator', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.acq_admin');
1642 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1643         (8, oils_i18n_gettext(8, 'Cataloging Administrator', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.cat_admin');
1644 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1645         (9, oils_i18n_gettext(9, 'Circulation Administrator', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.circ_admin');
1646 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1647         (10, oils_i18n_gettext(10, 'Local Administrator', 'pgt', 'name'), 3, 
1648         oils_i18n_gettext(10, 'Can do anything at the Branch level', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.admin.local_admin');
1649 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1650         (11, oils_i18n_gettext(11, 'Serials', 'pgt', 'name'), 3, 
1651         oils_i18n_gettext(11, 'Serials (includes admin features)', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.serials');
1652 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1653         (12, oils_i18n_gettext(12, 'System Administrator', 'pgt', 'name'), 3, 
1654         oils_i18n_gettext(12, 'Can do anything at the System level', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.admin.system_admin');
1655 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1656         (13, oils_i18n_gettext(13, 'Global Administrator', 'pgt', 'name'), 3, 
1657         oils_i18n_gettext(13, 'Can do anything at the Consortium level', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.admin.global_admin');
1658 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1659         (14, oils_i18n_gettext(14, 'Data Review', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.data_review');
1660 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm) VALUES
1661         (15, oils_i18n_gettext(15, 'Volunteers', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.volunteers');
1662
1663 SELECT SETVAL('permission.grp_tree_id_seq'::TEXT, (SELECT MAX(id) FROM permission.grp_tree));
1664
1665 INSERT INTO permission.grp_penalty_threshold (grp,org_unit,penalty,threshold)
1666     VALUES (1,1,1,10.0);
1667 INSERT INTO permission.grp_penalty_threshold (grp,org_unit,penalty,threshold)
1668     VALUES (1,1,2,10.0);
1669 INSERT INTO permission.grp_penalty_threshold (grp,org_unit,penalty,threshold)
1670     VALUES (1,1,3,10.0);
1671 INSERT INTO permission.grp_penalty_threshold (grp,org_unit,penalty,threshold)
1672     VALUES (1,1,5,10.0);
1673
1674 SELECT SETVAL('permission.grp_penalty_threshold_id_seq'::TEXT, (SELECT MAX(id) FROM permission.grp_penalty_threshold));
1675
1676
1677 -- Add basic user permissions to the Users group
1678
1679 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1680         SELECT
1681                 pgt.id, perm.id, aout.depth, FALSE
1682         FROM
1683                 permission.grp_tree pgt,
1684                 permission.perm_list perm,
1685                 actor.org_unit_type aout
1686         WHERE
1687                 pgt.name = 'Users' AND
1688                 aout.name = 'Consortium' AND
1689                 perm.code IN (
1690                         'COPY_CHECKIN',
1691                         'CREATE_MY_CONTAINER',
1692                         'CREATE_PURCHASE_REQUEST',
1693                         'MR_HOLDS',
1694                         'OPAC_LOGIN',
1695                         'PERSISTENT_LOGIN',
1696                         'RENEW_CIRC',
1697                         'TITLE_HOLDS',
1698                         'user_request.create'
1699                 );
1700
1701
1702 -- Add basic user permissions to the Data Review group
1703
1704 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1705         SELECT
1706                 pgt.id, perm.id, aout.depth, FALSE
1707         FROM
1708                 permission.grp_tree pgt,
1709                 permission.perm_list perm,
1710                 actor.org_unit_type aout
1711         WHERE
1712                 pgt.name = 'Data Review' AND
1713                 aout.name = 'Consortium' AND
1714                 perm.code IN (
1715                         'CREATE_COPY_TRANSIT',
1716                         'VIEW_BILLING_TYPE',
1717                         'VIEW_CIRCULATIONS',
1718                         'VIEW_COPY_NOTES',
1719                         'VIEW_HOLD',
1720                         'VIEW_ORG_SETTINGS',
1721                         'VIEW_TITLE_NOTES',
1722                         'VIEW_TRANSACTION',
1723                         'VIEW_USER',
1724                         'VIEW_USER_FINES_SUMMARY',
1725                         'VIEW_USER_TRANSACTIONS',
1726                         'VIEW_VOLUME_NOTES',
1727                         'VIEW_ZIP_DATA');
1728
1729 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1730         SELECT
1731                 pgt.id, perm.id, aout.depth, FALSE
1732         FROM
1733                 permission.grp_tree pgt,
1734                 permission.perm_list perm,
1735                 actor.org_unit_type aout
1736         WHERE
1737                 pgt.name = 'Data Review' AND
1738                 aout.name = 'System' AND
1739                 perm.code IN (
1740                         'COPY_CHECKOUT',
1741                         'COPY_HOLDS',
1742                         'CREATE_IN_HOUSE_USE',
1743                         'CREATE_TRANSACTION',
1744                         'OFFLINE_EXECUTE',
1745                         'OFFLINE_VIEW',
1746                         'STAFF_LOGIN',
1747                         'VOLUME_HOLDS');
1748
1749
1750 -- Add basic staff permissions to the Staff group
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 = 'Consortium' AND
1762                 perm.code IN (
1763                         'CREATE_CONTAINER',
1764                         'CREATE_CONTAINER_ITEM',
1765                         'CREATE_COPY_TRANSIT',
1766                         'CREATE_HOLD_NOTIFICATION',
1767                         'CREATE_TRANSACTION',
1768                         'CREATE_TRANSIT',
1769                         'DELETE_CONTAINER',
1770                         'DELETE_CONTAINER_ITEM',
1771                         'group_application.user',
1772                         'group_application.user.patron',
1773                         'REGISTER_WORKSTATION',
1774                         'REMOTE_Z3950_QUERY',
1775                         'REQUEST_HOLDS',
1776                         'STAFF_LOGIN',
1777                         'TRANSIT_COPY',
1778                         'UPDATE_CONTAINER',
1779                         'VIEW_CONTAINER',
1780                         'VIEW_COPY_CHECKOUT_HISTORY',
1781                         'VIEW_COPY_NOTES',
1782                         'VIEW_HOLD',
1783                         'VIEW_HOLD_NOTIFICATION',
1784                         'VIEW_HOLD_PERMIT',
1785                         'VIEW_PERM_GROUPS',
1786                         'VIEW_PERMISSION',
1787                         'VIEW_TITLE_NOTES',
1788                         'VIEW_TRANSACTION',
1789                         'VIEW_USER_SETTING_TYPE',
1790                         'VIEW_VOLUME_NOTES'
1791                 );
1792
1793 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1794         SELECT
1795                 pgt.id, perm.id, aout.depth, FALSE
1796         FROM
1797                 permission.grp_tree pgt,
1798                 permission.perm_list perm,
1799                 actor.org_unit_type aout
1800         WHERE
1801                 pgt.name = 'Staff' AND
1802                 aout.name = 'System' AND
1803                 perm.code IN (
1804                         'CREATE_USER',
1805                         'UPDATE_USER',
1806                         'VIEW_BILLING_TYPE',
1807                         'VIEW_CIRCULATIONS',
1808                         'VIEW_ORG_SETTINGS',
1809                         'VIEW_PERMIT_CHECKOUT',
1810                         'VIEW_USER',
1811                         'VIEW_USER_FINES_SUMMARY',
1812                         'VIEW_USER_TRANSACTIONS');
1813
1814 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1815         SELECT
1816                 pgt.id, perm.id, aout.depth, FALSE
1817         FROM
1818                 permission.grp_tree pgt,
1819                 permission.perm_list perm,
1820                 actor.org_unit_type aout
1821         WHERE
1822                 pgt.name = 'Staff' AND
1823                 aout.name = 'Branch' AND
1824                 perm.code IN (
1825                         'CANCEL_HOLDS',
1826                         'COPY_CHECKOUT',
1827                         'COPY_HOLDS',
1828                         'COPY_TRANSIT_RECEIVE',
1829                         'CREATE_BILL',
1830                         'CREATE_IN_HOUSE_USE',
1831                         'CREATE_PAYMENT',
1832                         'RENEW_HOLD_OVERRIDE',
1833                         'UPDATE_COPY',
1834                         'UPDATE_VOLUME',
1835                         'ADMIN_TOOLBAR',
1836                         'VOLUME_HOLDS');
1837
1838
1839 -- Add basic cataloguing permissions to the Catalogers group
1840
1841 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1842         SELECT
1843                 pgt.id, perm.id, aout.depth, FALSE
1844         FROM
1845                 permission.grp_tree pgt,
1846                 permission.perm_list perm,
1847                 actor.org_unit_type aout
1848         WHERE
1849                 pgt.name = 'Catalogers' AND
1850                 aout.name = 'Consortium' AND
1851                 perm.code IN (
1852                         'ALLOW_ALT_TCN',
1853                         'CREATE_BIB_IMPORT_QUEUE',
1854                         'CREATE_IMPORT_ITEM',
1855                         'CREATE_MARC',
1856                         'CREATE_TITLE_NOTE',
1857                         'DELETE_BIB_IMPORT_QUEUE',
1858                         'DELETE_IMPORT_ITEM',
1859                         'DELETE_RECORD',
1860                         'DELETE_TITLE_NOTE',
1861                         'IMPORT_ACQ_LINEITEM_BIB_RECORD',
1862                         'IMPORT_MARC',
1863             'IMPORT_AUTHORITY_MARC',
1864                         'MERGE_AUTH_RECORDS',
1865                         'MERGE_BIB_RECORDS',
1866                         'UPDATE_AUTHORITY_IMPORT_QUEUE',
1867                         'UPDATE_AUTHORITY_RECORD_NOTE',
1868                         'UPDATE_BIB_IMPORT_QUEUE',
1869                         'UPDATE_MARC',
1870                         'UPDATE_RECORD',
1871                         'user_request.view',
1872                         'VIEW_AUTHORITY_RECORD_NOTES');
1873
1874 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1875         SELECT
1876                 pgt.id, perm.id, aout.depth, FALSE
1877         FROM
1878                 permission.grp_tree pgt,
1879                 permission.perm_list perm,
1880                 actor.org_unit_type aout
1881         WHERE
1882                 pgt.name = 'Catalogers' AND
1883                 aout.name = 'System' AND
1884                 perm.code IN (
1885                         'CREATE_COPY',
1886                         'CREATE_COPY_NOTE',
1887                         'CREATE_MFHD_RECORD',
1888                         'CREATE_VOLUME',
1889                         'CREATE_VOLUME_NOTE',
1890                         'DELETE_COPY',
1891                         'DELETE_COPY_NOTE',
1892                         'DELETE_MFHD_RECORD',
1893                         'DELETE_VOLUME',
1894                         'DELETE_VOLUME_NOTE',
1895                         'MAP_MONOGRAPH_PART',
1896                         'MARK_ITEM_AVAILABLE',
1897                         'MARK_ITEM_BINDERY',
1898                         'MARK_ITEM_CHECKED_OUT',
1899                         'MARK_ITEM_ILL',
1900                         'MARK_ITEM_IN_PROCESS',
1901                         'MARK_ITEM_IN_TRANSIT',
1902                         'MARK_ITEM_LOST',
1903                         'MARK_ITEM_MISSING',
1904                         'MARK_ITEM_ON_HOLDS_SHELF',
1905                         'MARK_ITEM_ON_ORDER',
1906                         'MARK_ITEM_RESHELVING',
1907                         'UPDATE_COPY',
1908                         'UPDATE_COPY_NOTE',
1909                         'UPDATE_IMPORT_ITEM',
1910                         'UPDATE_MFHD_RECORD',
1911                         'UPDATE_VOLUME',
1912                         'UPDATE_VOLUME_NOTE',
1913                         'VIEW_SERIAL_SUBSCRIPTION');
1914
1915
1916 -- Add advanced cataloguing permissions to the Cataloging Admin group
1917
1918 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1919         SELECT
1920                 pgt.id, perm.id, aout.depth, TRUE
1921         FROM
1922                 permission.grp_tree pgt,
1923                 permission.perm_list perm,
1924                 actor.org_unit_type aout
1925         WHERE
1926                 pgt.name = 'Cataloging Administrator' AND
1927                 aout.name = 'Consortium' AND
1928                 perm.code IN (
1929                         'ADMIN_IMPORT_ITEM_ATTR_DEF',
1930                         'ADMIN_MERGE_PROFILE',
1931                         'CREATE_AUTHORITY_IMPORT_IMPORT_DEF',
1932                         'CREATE_BIB_IMPORT_FIELD_DEF',
1933                         'CREATE_BIB_PTYPE',
1934                         'CREATE_BIB_SOURCE',
1935                         'CREATE_IMPORT_ITEM_ATTR_DEF',
1936                         'CREATE_IMPORT_TRASH_FIELD',
1937                         'CREATE_MERGE_PROFILE',
1938                         'CREATE_MONOGRAPH_PART',
1939                         'CREATE_VOLUME_PREFIX',
1940                         'CREATE_VOLUME_SUFFIX',
1941                         'DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF',
1942                         'DELETE_BIB_PTYPE',
1943                         'DELETE_BIB_SOURCE',
1944                         'DELETE_IMPORT_ITEM_ATTR_DEF',
1945                         'DELETE_IMPORT_TRASH_FIELD',
1946                         'DELETE_MERGE_PROFILE',
1947                         'DELETE_MONOGRAPH_PART',
1948                         'DELETE_VOLUME_PREFIX',
1949                         'DELETE_VOLUME_SUFFIX',
1950                         'MAP_MONOGRAPH_PART',
1951                         'UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF',
1952                         'UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF',
1953                         'UPDATE_BIB_PTYPE',
1954                         'UPDATE_IMPORT_ITEM_ATTR_DEF',
1955                         'UPDATE_IMPORT_TRASH_FIELD',
1956                         'UPDATE_MERGE_PROFILE',
1957                         'UPDATE_MONOGRAPH_PART',
1958                         'UPDATE_VOLUME_PREFIX',
1959                         'UPDATE_VOLUME_SUFFIX'
1960                 );
1961
1962 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1963         SELECT
1964                 pgt.id, perm.id, aout.depth, TRUE
1965         FROM
1966                 permission.grp_tree pgt,
1967                 permission.perm_list perm,
1968                 actor.org_unit_type aout
1969         WHERE
1970                 pgt.name = 'Cataloging Administrator' AND
1971                 aout.name = 'System' AND
1972                 perm.code IN (
1973                         'CREATE_COPY_STAT_CAT',
1974                         'CREATE_COPY_STAT_CAT_ENTRY',
1975                         'CREATE_COPY_STAT_CAT_ENTRY_MAP',
1976                         'RUN_REPORTS',
1977                         'CREATE_REPORT_TEMPLATE',
1978                         'SHARE_REPORT_FOLDER',
1979                         'UPDATE_COPY_LOCATION',
1980                         'UPDATE_COPY_STAT_CAT',
1981                         'UPDATE_COPY_STAT_CAT_ENTRY',
1982                         'VIEW_REPORT_OUTPUT');
1983
1984
1985 -- Add basic circulation permissions to the Circulators group
1986
1987 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
1988         SELECT
1989                 pgt.id, perm.id, aout.depth, FALSE
1990         FROM
1991                 permission.grp_tree pgt,
1992                 permission.perm_list perm,
1993                 actor.org_unit_type aout
1994         WHERE
1995                 pgt.name = 'Circulators' AND
1996                 aout.name = 'Branch' AND
1997                 perm.code IN (
1998                         'ADMIN_BOOKING_RESERVATION',
1999                         'ADMIN_BOOKING_RESOURCE',
2000                         'ADMIN_BOOKING_RESOURCE_ATTR',
2001                         'ADMIN_BOOKING_RESOURCE_ATTR_MAP',
2002                         'ADMIN_BOOKING_RESOURCE_ATTR_VALUE',
2003                         'ADMIN_BOOKING_RESOURCE_TYPE',
2004                         'ASSIGN_GROUP_PERM',
2005                         'MARK_ITEM_AVAILABLE',
2006                         'MARK_ITEM_BINDERY',
2007                         'MARK_ITEM_CHECKED_OUT',
2008                         'MARK_ITEM_ILL',
2009                         'MARK_ITEM_IN_PROCESS',
2010                         'MARK_ITEM_IN_TRANSIT',
2011                         'MARK_ITEM_LOST',
2012                         'MARK_ITEM_MISSING',
2013                         'MARK_ITEM_MISSING_PIECES',
2014                         'MARK_ITEM_ON_HOLDS_SHELF',
2015                         'MARK_ITEM_ON_ORDER',
2016                         'MARK_ITEM_RESHELVING',
2017                         'OFFLINE_UPLOAD',
2018                         'OFFLINE_VIEW',
2019                         'REMOVE_USER_GROUP_LINK',
2020                         'SET_CIRC_CLAIMS_RETURNED',
2021                         'SET_CIRC_CLAIMS_RETURNED.override',
2022                         'SET_CIRC_LOST',
2023                         'SET_CIRC_MISSING',
2024                         'UPDATE_BILL_NOTE',
2025                         'UPDATE_PATRON_CLAIM_NEVER_CHECKED_OUT_COUNT',
2026                         'UPDATE_PATRON_CLAIM_RETURN_COUNT',
2027                         'UPDATE_PAYMENT_NOTE',
2028                         'UPDATE_PICKUP_LIB FROM_TRANSIT',
2029                         'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF',
2030                         'VIEW_GROUP_PENALTY_THRESHOLD',
2031                         'VIEW_STANDING_PENALTY',
2032                         'VOID_BILLING',
2033                         'VOLUME_HOLDS');
2034
2035 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2036         SELECT
2037                 pgt.id, perm.id, aout.depth, FALSE
2038         FROM
2039                 permission.grp_tree pgt,
2040                 permission.perm_list perm,
2041                 actor.org_unit_type aout
2042         WHERE
2043                 pgt.name = 'Circulators' AND
2044                 aout.name = 'System' AND
2045                 perm.code IN (
2046                         'ABORT_REMOTE_TRANSIT',
2047                         'ABORT_TRANSIT',
2048                         'CAPTURE_RESERVATION',
2049                         'CIRC_CLAIMS_RETURNED.override',
2050                         'CIRC_EXCEEDS_COPY_RANGE.override',
2051                         'CIRC_OVERRIDE_DUE_DATE',
2052                         'CIRC_PERMIT_OVERRIDE',
2053                         'COPY_ALERT_MESSAGE.override',
2054                         'COPY_BAD_STATUS.override',
2055                         'COPY_CIRC_NOT_ALLOWED.override',
2056                         'COPY_IS_REFERENCE.override',
2057                         'COPY_NEEDED_FOR_HOLD.override',
2058                         'COPY_NOT_AVAILABLE.override',
2059                         'COPY_STATUS_LOST.override',
2060                         'COPY_STATUS_MISSING.override',
2061                         'CREATE_DUPLICATE_HOLDS',
2062                         'CREATE_USER_GROUP_LINK',
2063                         'DELETE_TRANSIT',
2064                         'HOLD_EXISTS.override',
2065                         'HOLD_ITEM_CHECKED_OUT.override',
2066                         'ISSUANCE_HOLDS',
2067                         'ITEM_AGE_PROTECTED.override',
2068                         'ITEM_ON_HOLDS_SHELF.override',
2069                         'MAX_RENEWALS_REACHED.override',
2070                         'OVERRIDE_HOLD_HAS_LOCAL_COPY',
2071                         'PATRON_EXCEEDS_CHECKOUT_COUNT.override',
2072                         'PATRON_EXCEEDS_FINES.override',
2073                         'PATRON_EXCEEDS_OVERDUE_COUNT.override',
2074                         'RETRIEVE_RESERVATION_PULL_LIST',
2075                         'UPDATE_HOLD');
2076
2077
2078 -- Add advanced circulation permissions to the Circulation Admin group
2079
2080 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2081         SELECT
2082                 pgt.id, perm.id, aout.depth, TRUE
2083         FROM
2084                 permission.grp_tree pgt,
2085                 permission.perm_list perm,
2086                 actor.org_unit_type aout
2087         WHERE
2088                 pgt.name = 'Circulation Administrator' AND
2089                 aout.name = 'Branch' AND
2090                 perm.code IN (
2091                         'DELETE_USER');
2092
2093 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2094         SELECT
2095                 pgt.id, perm.id, aout.depth, TRUE
2096         FROM
2097                 permission.grp_tree pgt,
2098                 permission.perm_list perm,
2099                 actor.org_unit_type aout
2100         WHERE
2101                 pgt.name = 'Circulation Administrator' AND
2102                 aout.name = 'Consortium' AND
2103                 perm.code IN (
2104                         'ADMIN_MAX_FINE_RULE',
2105                         'CREATE_CIRC_DURATION',
2106                         'DELETE_CIRC_DURATION',
2107                         'MARK_ITEM_MISSING_PIECES',
2108                         'UPDATE_CIRC_DURATION',
2109                         'UPDATE_HOLD_REQUEST_TIME',
2110                         'UPDATE_NET_ACCESS_LEVEL',
2111                         'VIEW_CIRC_MATRIX_MATCHPOINT',
2112             'ABORT_TRANSIT_ON_LOST', 
2113             'ABORT_TRANSIT_ON_MISSING',
2114             'UPDATE_PATRON_COLLECTIONS_EXEMPT',
2115                         'VIEW_HOLD_MATRIX_MATCHPOINT');
2116
2117 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2118         SELECT
2119                 pgt.id, perm.id, aout.depth, TRUE
2120         FROM
2121                 permission.grp_tree pgt,
2122                 permission.perm_list perm,
2123                 actor.org_unit_type aout
2124         WHERE
2125                 pgt.name = 'Circulation Administrator' AND
2126                 aout.name = 'System' AND
2127                 perm.code IN (
2128                         'ADMIN_BOOKING_RESERVATION',
2129                         'ADMIN_BOOKING_RESERVATION_ATTR_MAP',
2130                         'ADMIN_BOOKING_RESERVATION_ATTR_VALUE_MAP',
2131                         'ADMIN_BOOKING_RESOURCE',
2132                         'ADMIN_BOOKING_RESOURCE_ATTR',
2133                         'ADMIN_BOOKING_RESOURCE_ATTR_MAP',
2134                         'ADMIN_BOOKING_RESOURCE_ATTR_VALUE',
2135                         'ADMIN_BOOKING_RESOURCE_TYPE',
2136                         'ADMIN_COPY_LOCATION_ORDER',
2137                         'ADMIN_HOLD_CANCEL_CAUSE',
2138                         'ASSIGN_GROUP_PERM',
2139                         'BAR_PATRON',
2140                         'COPY_HOLDS',
2141                         'COPY_TRANSIT_RECEIVE',
2142                         'CREATE_BILL',
2143                         'CREATE_BILLING_TYPE',
2144                         'CREATE_NON_CAT_TYPE',
2145                         'CREATE_PATRON_STAT_CAT',
2146                         'CREATE_PATRON_STAT_CAT_ENTRY',
2147                         'CREATE_PATRON_STAT_CAT_ENTRY_DEFAULT',
2148                         'CREATE_PATRON_STAT_CAT_ENTRY_MAP',
2149                         'CREATE_USER_GROUP_LINK',
2150                         'DELETE_BILLING_TYPE',
2151                         'DELETE_NON_CAT_TYPE',
2152                         'DELETE_PATRON_STAT_CAT',
2153                         'DELETE_PATRON_STAT_CAT_ENTRY',
2154                         'DELETE_PATRON_STAT_CAT_ENTRY_DEFAULT',
2155                         'DELETE_PATRON_STAT_CAT_ENTRY_MAP',
2156                         'DELETE_TRANSIT',
2157                         'group_application.user.staff',
2158                         'MANAGE_BAD_DEBT',
2159                         'MARK_ITEM_AVAILABLE',
2160                         'MARK_ITEM_BINDERY',
2161                         'MARK_ITEM_CHECKED_OUT',
2162                         'MARK_ITEM_ILL',
2163                         'MARK_ITEM_IN_PROCESS',
2164                         'MARK_ITEM_IN_TRANSIT',
2165                         'MARK_ITEM_LOST',
2166                         'MARK_ITEM_MISSING',
2167                         'MARK_ITEM_ON_HOLDS_SHELF',
2168                         'MARK_ITEM_ON_ORDER',
2169                         'MARK_ITEM_RESHELVING',
2170                         'MERGE_USERS',
2171                         'money.collections_tracker.create',
2172                         'money.collections_tracker.delete',
2173                         'OFFLINE_EXECUTE',
2174                         'OFFLINE_UPLOAD',
2175                         'OFFLINE_VIEW',
2176                         'REMOVE_USER_GROUP_LINK',
2177                         'SET_CIRC_CLAIMS_RETURNED',
2178                         'SET_CIRC_CLAIMS_RETURNED.override',
2179                         'SET_CIRC_LOST',
2180                         'SET_CIRC_MISSING',
2181                         'UNBAR_PATRON',
2182                         'UPDATE_BILL_NOTE',
2183                         'UPDATE_NON_CAT_TYPE',
2184                         'UPDATE_PATRON_CLAIM_NEVER_CHECKED_OUT_COUNT',
2185                         'UPDATE_PATRON_CLAIM_RETURN_COUNT',
2186                         'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF',
2187                         'UPDATE_PICKUP_LIB_FROM_TRANSIT',
2188                         'UPDATE_USER',
2189                         'VIEW_REPORT_OUTPUT',
2190                         'VIEW_STANDING_PENALTY',
2191                         'VOID_BILLING',
2192             'TRANSIT_CHECKIN_INTERVAL_BLOCK.override',
2193                         'VOLUME_HOLDS');
2194
2195
2196 -- Add basic sys admin permissions to the Local Administrator group
2197
2198 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2199         SELECT
2200                 pgt.id, perm.id, aout.depth, TRUE
2201         FROM
2202                 permission.grp_tree pgt,
2203                 permission.perm_list perm,
2204                 actor.org_unit_type aout
2205         WHERE
2206                 pgt.name = 'Local Administrator' AND
2207                 aout.name = 'Branch' AND
2208                 perm.code IN (
2209                         'EVERYTHING');
2210
2211
2212 -- Add administration permissions to the System Administrator group
2213
2214 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2215         SELECT
2216                 pgt.id, perm.id, aout.depth, TRUE
2217         FROM
2218                 permission.grp_tree pgt,
2219                 permission.perm_list perm,
2220                 actor.org_unit_type aout
2221         WHERE
2222                 pgt.name = 'System Administrator' AND
2223                 aout.name = 'System' AND
2224                 perm.code IN (
2225                         'EVERYTHING');
2226
2227 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2228         SELECT
2229                 pgt.id, perm.id, aout.depth, FALSE
2230         FROM
2231                 permission.grp_tree pgt,
2232                 permission.perm_list perm,
2233                 actor.org_unit_type aout
2234         WHERE
2235                 pgt.name = 'System Administrator' AND
2236                 aout.name = 'Consortium' AND
2237                 perm.code ~ '^VIEW_TRIGGER';
2238
2239
2240 -- Add administration permissions to the Global Administrator group
2241
2242 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2243         SELECT
2244                 pgt.id, perm.id, aout.depth, TRUE
2245         FROM
2246                 permission.grp_tree pgt,
2247                 permission.perm_list perm,
2248                 actor.org_unit_type aout
2249         WHERE
2250                 pgt.name = 'Global Administrator' AND
2251                 aout.name = 'Consortium' AND
2252                 perm.code IN (
2253                         'EVERYTHING');
2254
2255
2256 -- Add basic acquisitions permissions to the Acquisitions group
2257
2258 SELECT SETVAL('permission.grp_perm_map_id_seq'::TEXT, (SELECT MAX(id) FROM permission.grp_perm_map));
2259
2260 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2261         SELECT
2262                 pgt.id, perm.id, aout.depth, FALSE
2263         FROM
2264                 permission.grp_tree pgt,
2265                 permission.perm_list perm,
2266                 actor.org_unit_type aout
2267         WHERE
2268                 pgt.name = 'Acquisitions' AND
2269                 aout.name = 'Consortium' AND
2270                 perm.code IN (
2271                         'ALLOW_ALT_TCN',
2272                         'CREATE_BIB_IMPORT_QUEUE',
2273                         'CREATE_IMPORT_ITEM',
2274                         'CREATE_INVOICE',
2275                         'CREATE_MARC',
2276                         'CREATE_PICKLIST',
2277                         'CREATE_PURCHASE_ORDER',
2278                         'DELETE_BIB_IMPORT_QUEUE',
2279                         'DELETE_IMPORT_ITEM',
2280                         'DELETE_RECORD',
2281                         'DELETE_VOLUME',
2282                         'DELETE_VOLUME_NOTE',
2283                         'GENERAL_ACQ',
2284                         'IMPORT_ACQ_LINEITEM_BIB_RECORD',
2285                         'IMPORT_MARC',
2286                         'MANAGE_CLAIM',
2287                         'MANAGE_FUND',
2288                         'MANAGE_FUNDING_SOURCE',
2289                         'MANAGE_PROVIDER',
2290                         'MARK_ITEM_AVAILABLE',
2291                         'MARK_ITEM_BINDERY',
2292                         'MARK_ITEM_CHECKED_OUT',
2293                         'MARK_ITEM_ILL',
2294                         'MARK_ITEM_IN_PROCESS',
2295                         'MARK_ITEM_IN_TRANSIT',
2296                         'MARK_ITEM_LOST',
2297                         'MARK_ITEM_MISSING',
2298                         'MARK_ITEM_ON_HOLDS_SHELF',
2299                         'MARK_ITEM_ON_ORDER',
2300                         'MARK_ITEM_RESHELVING',
2301                         'RECEIVE_PURCHASE_ORDER',
2302                         'UPDATE_BATCH_COPY',
2303                         'UPDATE_BIB_IMPORT_QUEUE',
2304                         'UPDATE_COPY',
2305                         'UPDATE_FUND',
2306                         'UPDATE_FUND_ALLOCATION',
2307                         'UPDATE_FUNDING_SOURCE',
2308                         'UPDATE_IMPORT_ITEM',
2309                         'UPDATE_MARC',
2310                         'UPDATE_PICKLIST',
2311                         'UPDATE_RECORD',
2312                         'UPDATE_VOLUME',
2313                         'user_request.delete',
2314                         'user_request.update',
2315                         'user_request.view',
2316                         'VIEW_ACQ_FUND_ALLOCATION_PERCENT',
2317                         'VIEW_ACQ_FUNDING_SOURCE',
2318                         'VIEW_FUND',
2319                         'VIEW_FUND_ALLOCATION',
2320                         'VIEW_FUNDING_SOURCE',
2321                         'VIEW_HOLDS',
2322                         'VIEW_INVOICE',
2323                         'VIEW_ORG_SETTINGS',
2324                         'VIEW_PICKLIST',
2325                         'VIEW_PROVIDER',
2326                         'VIEW_PURCHASE_ORDER',
2327                         'VIEW_REPORT_OUTPUT');
2328
2329
2330 -- Add acquisitions administration permissions to the Acquisitions Admin group
2331
2332 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2333         SELECT
2334                 pgt.id, perm.id, aout.depth, TRUE
2335         FROM
2336                 permission.grp_tree pgt,
2337                 permission.perm_list perm,
2338                 actor.org_unit_type aout
2339         WHERE
2340                 pgt.name = 'Acquisitions Administrator' AND
2341                 aout.name = 'Consortium' AND
2342                 perm.code IN (
2343                         'ACQ_INVOICE_REOPEN',
2344                         'ACQ_XFER_MANUAL_DFUND_AMOUNT',
2345                         'ADMIN_ACQ_CANCEL_CAUSE',
2346                         'ADMIN_ACQ_CLAIM',
2347                         'ADMIN_ACQ_CLAIM_EVENT_TYPE',
2348                         'ADMIN_ACQ_CLAIM_TYPE',
2349                         'ADMIN_ACQ_DISTRIB_FORMULA',
2350                         'ADMIN_ACQ_FISCAL_YEAR',
2351                         'ADMIN_ACQ_FUND',
2352                         'ADMIN_ACQ_FUND_ALLOCATION_PERCENT',
2353                         'ADMIN_ACQ_FUND_TAG',
2354                         'ADMIN_ACQ_LINE_ITEM_ALERT_TEXT',
2355                         'ADMIN_CLAIM_POLICY',
2356                         'ADMIN_CURRENCY_TYPE',
2357                         'ADMIN_FUND',
2358                         'ADMIN_FUNDING_SOURCE',
2359                         'ADMIN_INVOICE',
2360                         'ADMIN_INVOICE_METHOD',
2361                         'ADMIN_INVOICE_PAYMENT_METHOD',
2362                         'ADMIN_LINEITEM_MARC_ATTR_DEF',
2363                         'ADMIN_PROVIDER',
2364                         'ADMIN_USER_REQUEST_TYPE',
2365                         'CREATE_ACQ_FUNDING_SOURCE',
2366                         'CREATE_FUND',
2367                         'CREATE_FUND_ALLOCATION',
2368                         'CREATE_FUNDING_SOURCE',
2369                         'CREATE_INVOICE_ITEM_TYPE',
2370                         'CREATE_INVOICE_METHOD',
2371                         'CREATE_PROVIDER',
2372                         'DELETE_ACQ_FUNDING_SOURCE',
2373                         'DELETE_FUND',
2374                         'DELETE_FUND_ALLOCATION',
2375                         'DELETE_FUNDING_SOURCE',
2376                         'DELETE_INVOICE_ITEM_TYPE',
2377                         'DELETE_INVOICE_METHOD',
2378                         'DELETE_PROVIDER',
2379                         'RUN_REPORTS',
2380                         'CREATE_REPORT_TEMPLATE',
2381                         'SHARE_REPORT_FOLDER',
2382                         'UPDATE_ACQ_FUNDING_SOURCE',
2383                         'UPDATE_INVOICE_ITEM_TYPE',
2384                         'UPDATE_INVOICE_METHOD',
2385                         'UPDATE_PICKLIST'
2386                 );
2387
2388 -- Add serials permissions to the Serials group
2389
2390 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2391         SELECT
2392                 pgt.id, perm.id, aout.depth, FALSE
2393         FROM
2394                 permission.grp_tree pgt,
2395                 permission.perm_list perm,
2396                 actor.org_unit_type aout
2397         WHERE
2398                 pgt.name = 'Serials' AND
2399                 aout.name = 'System' AND
2400                 perm.code IN (
2401                         'ADMIN_ASSET_COPY_TEMPLATE',
2402                         'ADMIN_SERIAL_CAPTION_PATTERN',
2403                         'ADMIN_SERIAL_DISTRIBUTION',
2404                         'ADMIN_SERIAL_ITEM',
2405                         'ADMIN_SERIAL_STREAM',
2406                         'ADMIN_SERIAL_SUBSCRIPTION',
2407                         'ISSUANCE_HOLDS',
2408                         'RECEIVE_SERIAL');
2409
2410
2411 -- Add basic staff permissions to the Volunteers group
2412
2413 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2414         SELECT
2415                 pgt.id, perm.id, aout.depth, FALSE
2416         FROM
2417                 permission.grp_tree pgt,
2418                 permission.perm_list perm,
2419                 actor.org_unit_type aout
2420         WHERE
2421                 pgt.name = 'Volunteers' AND
2422                 aout.name = 'Branch' AND
2423                 perm.code IN (
2424                         'COPY_CHECKOUT',
2425                         'CREATE_BILL',
2426                         'CREATE_IN_HOUSE_USE',
2427                         'CREATE_PAYMENT',
2428                         'VIEW_BILLING_TYPE',
2429                         'VIEW_CIRCS',
2430                         'VIEW_COPY_CHECKOUT',
2431                         'VIEW_HOLD',
2432                         'VIEW_TITLE_HOLDS',
2433                         'VIEW_TRANSACTION',
2434                         'VIEW_USER',
2435                         'VIEW_USER_FINES_SUMMARY',
2436                         'VIEW_USER_TRANSACTIONS');
2437
2438 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
2439         SELECT
2440                 pgt.id, perm.id, aout.depth, FALSE
2441         FROM
2442                 permission.grp_tree pgt,
2443                 permission.perm_list perm,
2444                 actor.org_unit_type aout
2445         WHERE
2446                 pgt.name = 'Volunteers' AND
2447                 aout.name = 'Consortium' AND
2448                 perm.code IN (
2449                         'CREATE_COPY_TRANSIT',
2450                         'CREATE_TRANSACTION',
2451                         'CREATE_TRANSIT',
2452                         'STAFF_LOGIN',
2453                         'TRANSIT_COPY',
2454                         'VIEW_ORG_SETTINGS');
2455
2456
2457 -- Admin user account
2458 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 );
2459
2460 -- Admin user barcode
2461 INSERT INTO actor.card (usr, barcode) VALUES (1,md5(random()::text));
2462 UPDATE actor.usr SET card = (SELECT currval('actor.card_id_seq')) WHERE id = 1;
2463
2464 -- Admin user permissions
2465 INSERT INTO permission.usr_perm_map (usr,perm,depth) VALUES (1,-1,0);
2466
2467 -- Set a work_ou for the Administrator user
2468 INSERT INTO permission.usr_work_ou_map (usr, work_ou) VALUES (1, 1);
2469
2470 --010.schema.biblio.sql:
2471 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');
2472
2473 --040.schema.asset.sql:
2474 INSERT INTO asset.copy_location (id, name,owning_lib) VALUES (1, oils_i18n_gettext(1, 'Stacks', 'acpl', 'name'),1);
2475 SELECT SETVAL('asset.copy_location_id_seq'::TEXT, 100);
2476
2477 INSERT INTO asset.call_number_suffix (id, owning_lib, label) VALUES (-1, 1, '');
2478 INSERT INTO asset.call_number_prefix (id, owning_lib, label) VALUES (-1, 1, '');
2479 INSERT INTO asset.call_number VALUES (-1,1,NOW(),1,NOW(),-1,1,'UNCATALOGED');
2480
2481 --090.schema.action.sql
2482 INSERT INTO action.hold_request_cancel_cause (id,label) VALUES (1, oils_i18n_gettext(1, 'Untargeted expiration', 'ahrcc', 'label'));
2483 INSERT INTO action.hold_request_cancel_cause (id,label) VALUES (2, oils_i18n_gettext(2, 'Hold Shelf expiration', 'ahrcc', 'label'));
2484 INSERT INTO action.hold_request_cancel_cause (id,label) VALUES (3, oils_i18n_gettext(3, 'Patron via phone', 'ahrcc', 'label'));
2485 INSERT INTO action.hold_request_cancel_cause (id,label) VALUES (4, oils_i18n_gettext(4, 'Patron in person', 'ahrcc', 'label'));
2486 INSERT INTO action.hold_request_cancel_cause (id,label) VALUES (5, oils_i18n_gettext(5, 'Staff forced', 'ahrcc', 'label'));
2487 INSERT INTO action.hold_request_cancel_cause (id,label) VALUES (6, oils_i18n_gettext(6, 'Patron via OPAC', 'ahrcc', 'label'));
2488 INSERT INTO action.hold_request_cancel_cause (id,label) VALUES (7, oils_i18n_gettext(7, 'Patron via SIP', 'ahrcc', 'label'));
2489 SELECT SETVAL('action.hold_request_cancel_cause_id_seq', 100);
2490
2491
2492 -- circ matrix
2493 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);
2494
2495 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 
2496     ('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),
2497     ('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),
2498     ('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),
2499     ('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);
2500
2501 -- hold matrix - 110.hold_matrix.sql:
2502 INSERT INTO config.hold_matrix_matchpoint (requestor_grp) VALUES (1);
2503
2504 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
2505     ('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),
2506     ('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),
2507     ('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),
2508     ('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);
2509
2510 -- dynamic weight associations
2511 INSERT INTO config.weight_assoc(active, org_unit, circ_weights, hold_weights) VALUES
2512     (true, 1, 1, 1);
2513
2514 -- User setting types
2515 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2516     VALUES ('opac.default_font', TRUE,
2517     oils_i18n_gettext('opac.default_font', 'OPAC Font Size', 'cust', 'label'),
2518     oils_i18n_gettext('opac.default_font', 'OPAC Font Size', 'cust', 'description'),
2519     'string');
2520
2521 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2522     VALUES ('opac.default_search_depth', TRUE,
2523     oils_i18n_gettext('opac.default_search_depth', 'OPAC Search Depth', 'cust', 'label'),
2524     oils_i18n_gettext('opac.default_search_depth', 'OPAC Search Depth', 'cust', 'description'),
2525     'integer');
2526
2527 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2528     VALUES ('opac.default_search_location', TRUE,
2529     oils_i18n_gettext('opac.default_search_location', 'OPAC Search Location', 'cust', 'label'),
2530     oils_i18n_gettext('opac.default_search_location', 'OPAC Search Location', 'cust', 'description'),
2531     'integer');
2532
2533 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2534     VALUES ('opac.hits_per_page', TRUE,
2535     oils_i18n_gettext('opac.hits_per_page', 'Hits per Page', 'cust', 'label'),
2536     oils_i18n_gettext('opac.hits_per_page', 'Hits per Page', 'cust', 'description'),
2537     'string');
2538
2539 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2540     VALUES ('opac.hold_notify', TRUE,
2541     oils_i18n_gettext('opac.hold_notify', 'Hold Notification Format', 'cust', 'label'),
2542     oils_i18n_gettext('opac.hold_notify', 'Hold Notification Format', 'cust', 'description'),
2543     'string');
2544
2545 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2546     VALUES ('staff_client.catalog.record_view.default', TRUE,
2547     oils_i18n_gettext('staff_client.catalog.record_view.default', 'Default Record View', 'cust', 'label'),
2548     oils_i18n_gettext('staff_client.catalog.record_view.default', 'Default Record View', 'cust', 'description'),
2549     'string');
2550
2551 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2552     VALUES ('staff_client.copy_editor.templates', TRUE,
2553     oils_i18n_gettext('staff_client.copy_editor.templates', 'Copy Editor Template', 'cust', 'label'),
2554     oils_i18n_gettext('staff_client.copy_editor.templates', 'Copy Editor Template', 'cust', 'description'),
2555     'object');
2556
2557 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2558     VALUES ('circ.holds_behind_desk', FALSE,
2559     oils_i18n_gettext('circ.holds_behind_desk', 'Hold is behind Circ Desk', 'cust', 'label'),
2560     oils_i18n_gettext('circ.holds_behind_desk', 'Hold is behind Circ Desk', 'cust', 'description'),
2561     'bool');
2562
2563 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2564     VALUES ('opac.default_pickup_location', TRUE,
2565     oils_i18n_gettext('opac.default_pickup_location', 'Default Hold Pickup Location', 'cust', 'label'),
2566     oils_i18n_gettext('opac.default_pickup_location', 'Default location for holds pickup', 'cust', 'description'),
2567     'integer');
2568
2569 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2570     VALUES (
2571         'opac.lists_per_page',
2572         TRUE,
2573         oils_i18n_gettext(
2574             'opac.lists_per_page',
2575             'Lists per Page',
2576             'cust',
2577             'label'
2578         ),
2579         oils_i18n_gettext(
2580             'opac.lists_per_page',
2581             'A number designating the amount of lists displayed per page.',
2582             'cust',
2583             'description'
2584         ),
2585         'string'
2586     );
2587
2588 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
2589     VALUES (
2590         'opac.list_items_per_page',
2591         TRUE,
2592         oils_i18n_gettext(
2593             'opac.list_items_per_page',
2594             'List Items per Page',
2595             'cust',
2596             'label'
2597         ),
2598         oils_i18n_gettext(
2599             'opac.list_items_per_page',
2600             'A number designating the amount of list items displayed per page of a selected list.',
2601             'cust',
2602             'description'
2603         ),
2604         'string'
2605     );
2606
2607 -- Add groups for org_unit settings
2608 INSERT INTO config.settings_group (name, label) VALUES
2609 ('acq', oils_i18n_gettext('config.settings_group.system', 'Acquisitions', 'coust', 'label')),
2610 ('sys', oils_i18n_gettext('config.settings_group.system', 'System', 'coust', 'label')),
2611 ('gui', oils_i18n_gettext('config.settings_group.gui', 'GUI', 'coust', 'label')),
2612 ('lib', oils_i18n_gettext('config.settings_group.lib', 'Library', 'coust', 'label')),
2613 ('sec', oils_i18n_gettext('config.settings_group.sec', 'Security', 'coust', 'label')),
2614 ('cat', oils_i18n_gettext('config.settings_group.cat', 'Cataloging', 'coust', 'label')),
2615 ('holds', oils_i18n_gettext('config.settings_group.holds', 'Holds', 'coust', 'label')),
2616 ('circ', oils_i18n_gettext('config.settings_group.circulation', 'Circulation', 'coust', 'label')),
2617 ('self', oils_i18n_gettext('config.settings_group.self', 'Self Check', 'coust', 'label')),
2618 ('opac', oils_i18n_gettext('config.settings_group.opac', 'OPAC', 'coust', 'label')),
2619 ('prog', oils_i18n_gettext('config.settings_group.program', 'Program', 'coust', 'label')),
2620 ('glob', oils_i18n_gettext('config.settings_group.global', 'Global', 'coust', 'label')),
2621 ('finance', oils_i18n_gettext('config.settings_group.finances', 'Finances', 'coust', 'label')),
2622 ('credit', oils_i18n_gettext('config.settings_group.ccp', 'Credit Card Processing', 'coust', 'label')),
2623 ('serial', oils_i18n_gettext('config.settings_group.serial', 'Serials', 'coust', 'label')),
2624 ('recall', oils_i18n_gettext('config.settings_group.recall', 'Recalls', 'coust', 'label')),
2625 ('booking', oils_i18n_gettext('config.settings_group.booking', 'Booking', 'coust', 'label')),
2626 ('offline', oils_i18n_gettext('config.settings_group.offline', 'Offline', 'coust', 'label')),
2627 ('receipt_template', oils_i18n_gettext('config.settings_group.receipt_template', 'Receipt Template', 'coust', 'label')),
2628 ('sms', oils_i18n_gettext('sms','SMS Text Messages','csg','label')),
2629 ('vandelay', oils_i18n_gettext('vandelay','Vandelay','coust','label'))
2630 ;
2631
2632
2633 INSERT INTO acq.user_request_type (id,label) VALUES (1, oils_i18n_gettext('1', 'Books', 'aurt', 'label'));
2634 INSERT INTO acq.user_request_type (id,label) VALUES (2, oils_i18n_gettext('2', 'Journal/Magazine & Newspaper Articles', 'aurt', 'label'));
2635 INSERT INTO acq.user_request_type (id,label) VALUES (3, oils_i18n_gettext('3', 'Audiobooks', 'aurt', 'label'));
2636 INSERT INTO acq.user_request_type (id,label) VALUES (4, oils_i18n_gettext('4', 'Music', 'aurt', 'label'));
2637 INSERT INTO acq.user_request_type (id,label) VALUES (5, oils_i18n_gettext('5', 'DVDs', 'aurt', 'label'));
2638
2639 SELECT SETVAL('acq.user_request_type_id_seq'::TEXT, 6);
2640
2641
2642 -- org_unit setting types
2643 INSERT into config.org_unit_setting_type
2644 ( name, grp, label, description, datatype, fm_class ) VALUES
2645
2646 ( 'acq.copy_creator_uses_receiver', 'acq',
2647     oils_i18n_gettext('acq.copy_creator_uses_receiver',
2648         'Set copy creator as receiver',
2649         'coust', 'label'),
2650     oils_i18n_gettext('acq.copy_creator_uses_receiver',
2651         'When receiving a copy in acquisitions, set the copy "creator" to be the staff that received the copy',
2652         'coust', 'description'),
2653     'bool', null)
2654
2655 ,( 'acq.default_circ_modifier', 'acq',
2656     oils_i18n_gettext('acq.default_circ_modifier',
2657         'Default circulation modifier',
2658         'coust', 'label'),
2659     oils_i18n_gettext('acq.default_circ_modifier',
2660         'Default circulation modifier',
2661         'coust', 'description'),
2662     'string', null)
2663
2664 ,( 'acq.default_copy_location', 'acq',
2665     oils_i18n_gettext('acq.default_copy_location',
2666         'Default copy location',
2667         'coust', 'label'),
2668     oils_i18n_gettext('acq.default_copy_location',
2669         'Default copy location',
2670         'coust', 'description'),
2671     'link', 'acpl')
2672
2673 ,( 'acq.fund.balance_limit.block', 'acq',
2674     oils_i18n_gettext('acq.fund.balance_limit.block',
2675         'Fund Spending Limit for Block',
2676         'coust', 'label'),
2677     oils_i18n_gettext('acq.fund.balance_limit.block',
2678         '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.',
2679         'coust', 'description'),
2680     'integer', null)
2681
2682 ,( 'acq.fund.balance_limit.warn', 'acq',
2683     oils_i18n_gettext('acq.fund.balance_limit.warn',
2684         'Fund Spending Limit for Warning',
2685         'coust', 'label'),
2686     oils_i18n_gettext('acq.fund.balance_limit.warn',
2687         '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.',
2688         'coust', 'description'),
2689     'integer', null)
2690
2691 ,( 'acq.holds.allow_holds_from_purchase_request', 'acq',
2692     oils_i18n_gettext('acq.holds.allow_holds_from_purchase_request',
2693         'Allows patrons to create automatic holds from purchase requests.',
2694         'coust', 'label'),
2695     oils_i18n_gettext('acq.holds.allow_holds_from_purchase_request',
2696         'Allows patrons to create automatic holds from purchase requests.',
2697         'coust', 'description'),
2698     'bool', null)
2699
2700 ,( 'acq.tmp_barcode_prefix', 'acq',
2701     oils_i18n_gettext('acq.tmp_barcode_prefix',
2702         'Temporary barcode prefix',
2703         'coust', 'label'),
2704     oils_i18n_gettext('acq.tmp_barcode_prefix',
2705         'Temporary barcode prefix',
2706         'coust', 'description'),
2707     'string', null)
2708
2709 ,( 'acq.tmp_callnumber_prefix', 'acq',
2710     oils_i18n_gettext('acq.tmp_callnumber_prefix',
2711         'Temporary call number prefix',
2712         'coust', 'label'),
2713     oils_i18n_gettext('acq.tmp_callnumber_prefix',
2714         'Temporary call number prefix',
2715         'coust', 'description'),
2716     'string', null)
2717
2718 ,( 'auth.opac_timeout', 'sec',
2719     oils_i18n_gettext('auth.opac_timeout',
2720         'OPAC Inactivity Timeout (in seconds)',
2721         'coust', 'label'),
2722     oils_i18n_gettext('auth.opac_timeout',
2723         'OPAC Inactivity Timeout (in seconds)',
2724         'coust', 'description'),
2725     'integer', null)
2726
2727 ,( 'auth.persistent_login_interval', 'sec',
2728     oils_i18n_gettext('auth.persistent_login_interval',
2729         'Persistent Login Duration',
2730         'coust', 'label'),
2731     oils_i18n_gettext('auth.persistent_login_interval',
2732         'How long a persistent login lasts.  E.g. ''2 weeks''',
2733         'coust', 'description'),
2734     'interval', null)
2735
2736 ,( 'auth.staff_timeout', 'sec',
2737     oils_i18n_gettext('auth.staff_timeout',
2738         'Staff Login Inactivity Timeout (in seconds)',
2739         'coust', 'label'),
2740     oils_i18n_gettext('auth.staff_timeout',
2741         'Staff Login Inactivity Timeout (in seconds)',
2742         'coust', 'description'),
2743     'integer', null)
2744
2745 ,( 'booking.allow_email_notify', 'booking',
2746     oils_i18n_gettext('booking.allow_email_notify',
2747         'Allow Email Notify',
2748         'coust', 'label'),
2749     oils_i18n_gettext('booking.allow_email_notify',
2750         'Permit email notification when a reservation is ready for pickup.',
2751         'coust', 'description'),
2752     'bool', null)
2753
2754 ,( 'cat.bib.alert_on_empty', 'gui',
2755     oils_i18n_gettext('cat.bib.alert_on_empty',
2756         'Alert on empty bib records',
2757         'coust', 'label'),
2758     oils_i18n_gettext('cat.bib.alert_on_empty',
2759         'Alert staff when the last copy for a record is being deleted',
2760         'coust', 'description'),
2761     'bool', null)
2762
2763 ,( 'cat.bib.delete_on_no_copy_via_acq_lineitem_cancel', 'cat',
2764     oils_i18n_gettext('cat.bib.delete_on_no_copy_via_acq_lineitem_cancel',
2765         'Delete bib if all copies are deleted via Acquisitions lineitem cancellation.',
2766         'coust', 'label'),
2767     oils_i18n_gettext('cat.bib.delete_on_no_copy_via_acq_lineitem_cancel',
2768         'Delete bib if all copies are deleted via Acquisitions lineitem cancellation.',
2769         'coust', 'description'),
2770     'bool', null)
2771
2772 ,( 'cat.bib.keep_on_empty', 'prog',
2773     oils_i18n_gettext('cat.bib.keep_on_empty',
2774         'Retain empty bib records',
2775         'coust', 'label'),
2776     oils_i18n_gettext('cat.bib.keep_on_empty',
2777         'Retain a bib record even when all attached copies are deleted',
2778         'coust', 'description'),
2779     'bool', null)
2780
2781 ,( 'cat.default_classification_scheme', 'cat',
2782     oils_i18n_gettext('cat.default_classification_scheme',
2783         'Default Classification Scheme',
2784         'coust', 'label'),
2785     oils_i18n_gettext('cat.default_classification_scheme',
2786         'Defines the default classification scheme for new call numbers: 1 = Generic; 2 = Dewey; 3 = LC',
2787         'coust', 'description'),
2788     'link', 'acnc')
2789
2790 ,( 'cat.default_copy_status_fast', 'cat',
2791     oils_i18n_gettext('cat.default_copy_status_fast',
2792         'Default copy status (fast add)',
2793         'coust', 'label'),
2794     oils_i18n_gettext('cat.default_copy_status_fast',
2795         'Default status when a copy is created using the "Fast Add" interface.',
2796         'coust', 'description'),
2797     'link', 'ccs')
2798
2799 ,( 'cat.default_copy_status_normal', 'cat',
2800     oils_i18n_gettext('cat.default_copy_status_normal',
2801         'Default copy status (normal)',
2802         'coust', 'label'),
2803     oils_i18n_gettext('cat.default_copy_status_normal',
2804         'Default status when a copy is created using the normal volume/copy creator interface.',
2805         'coust', 'description'),
2806     'link', 'ccs')
2807
2808 ,( 'cat.default_item_price', 'finance',
2809     oils_i18n_gettext('cat.default_item_price',
2810         'Default Item Price',
2811         'coust', 'label'),
2812     oils_i18n_gettext('cat.default_item_price',
2813         'Default Item Price',
2814         'coust', 'description'),
2815     'currency', null)
2816
2817 ,( 'cat.label.font.family', 'cat',
2818     oils_i18n_gettext('cat.label.font.family',
2819         'Spine and pocket label font family',
2820         'coust', 'label'),
2821     oils_i18n_gettext('cat.label.font.family',
2822         '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".',
2823         'coust', 'description'),
2824     'string', null)
2825
2826 ,( 'cat.label.font.size', 'cat',
2827     oils_i18n_gettext('cat.label.font.size',
2828         'Spine and pocket label font size',
2829         'coust', 'label'),
2830     oils_i18n_gettext('cat.label.font.size',
2831         'Set the default font size for spine and pocket labels',
2832         'coust', 'description'),
2833     'integer', null)
2834
2835 ,( 'cat.label.font.weight', 'cat',
2836     oils_i18n_gettext('cat.label.font.weight',
2837         'Spine and pocket label font weight',
2838         'coust', 'label'),
2839     oils_i18n_gettext('cat.label.font.weight',
2840         'Set the preferred font weight for spine and pocket labels. You can specify "normal", "bold", "bolder", or "lighter".',
2841         'coust', 'description'),
2842     'string', null)
2843
2844 ,( 'cat.marc_control_number_identifier', 'cat',
2845     oils_i18n_gettext('cat.marc_control_number_identifier',
2846         'Defines the control number identifier used in 003 and 035 fields.',
2847         'coust', 'label'),
2848     oils_i18n_gettext('cat.marc_control_number_identifier',
2849         'Cat: Defines the control number identifier used in 003 and 035 fields.',
2850         'coust', 'description'),
2851     'string', null)
2852
2853 ,( 'cat.spine.line.height', 'cat',
2854     oils_i18n_gettext('cat.spine.line.height',
2855         'Spine label maximum lines',
2856         'coust', 'label'),
2857     oils_i18n_gettext('cat.spine.line.height',
2858         'Set the default maximum number of lines for spine labels.',
2859         'coust', 'description'),
2860     'integer', null)
2861
2862 ,( 'cat.spine.line.margin', 'cat',
2863     oils_i18n_gettext('cat.spine.line.margin',
2864         'Spine label left margin',
2865         'coust', 'label'),
2866     oils_i18n_gettext('cat.spine.line.margin',
2867         'Set the left margin for spine labels in number of characters.',
2868         'coust', 'description'),
2869     'integer', null)
2870
2871 ,( 'cat.spine.line.width', 'cat',
2872     oils_i18n_gettext('cat.spine.line.width',
2873         'Spine label line width',
2874         'coust', 'label'),
2875     oils_i18n_gettext('cat.spine.line.width',
2876         'Set the default line width for spine labels in number of characters. This specifies the boundary at which lines must be wrapped.',
2877         'coust', 'description'),
2878     'integer', null)
2879
2880 ,( 'cat.volume.delete_on_empty', 'cat',
2881     oils_i18n_gettext('cat.volume.delete_on_empty',
2882         'Delete volume with last copy',
2883         'coust', 'label'),
2884     oils_i18n_gettext('cat.volume.delete_on_empty',
2885         'Automatically delete a volume when the last linked copy is deleted',
2886         'coust', 'description'),
2887     'bool', null)
2888
2889 ,( 'circ.auto_hide_patron_summary', 'gui',
2890     oils_i18n_gettext('circ.auto_hide_patron_summary',
2891         'Toggle off the patron summary sidebar after first view.',
2892         'coust', 'label'),
2893     oils_i18n_gettext('circ.auto_hide_patron_summary',
2894         'When true, the patron summary sidebar will collapse after a new patron sub-interface is selected.',
2895         'coust', 'description'),
2896     'bool', null)
2897
2898 ,( 'circ.block_renews_for_holds', 'holds',
2899     oils_i18n_gettext('circ.block_renews_for_holds',
2900         'Block Renewal of Items Needed for Holds',
2901         'coust', 'label'),
2902     oils_i18n_gettext('circ.block_renews_for_holds',
2903         'When an item could fulfill a hold, do not allow the current patron to renew',
2904         'coust', 'description'),
2905     'bool', null)
2906
2907 ,( 'circ.booking_reservation.default_elbow_room', 'booking',
2908     oils_i18n_gettext('circ.booking_reservation.default_elbow_room',
2909         'Booking elbow room',
2910         'coust', 'label'),
2911     oils_i18n_gettext('circ.booking_reservation.default_elbow_room',
2912         '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.',
2913         'coust', 'description'),
2914     'interval', null)
2915
2916 ,( 'circ.charge_lost_on_zero', 'finance',
2917     oils_i18n_gettext('circ.charge_lost_on_zero',
2918         'Charge lost on zero',
2919         'coust', 'label'),
2920     oils_i18n_gettext('circ.charge_lost_on_zero',
2921         'Charge lost on zero',
2922         'coust', 'description'),
2923     'bool', null)
2924
2925 ,( 'circ.charge_on_damaged', 'finance',
2926     oils_i18n_gettext('circ.charge_on_damaged',
2927         'Charge item price when marked damaged',
2928         'coust', 'label'),
2929     oils_i18n_gettext('circ.charge_on_damaged',
2930         'Charge item price when marked damaged',
2931         'coust', 'description'),
2932     'bool', null)
2933
2934 ,( 'circ.checkout_auto_renew_age', 'circ',
2935     oils_i18n_gettext('circ.checkout_auto_renew_age',
2936         'Checkout auto renew age',
2937         'coust', 'label'),
2938     oils_i18n_gettext('circ.checkout_auto_renew_age',
2939         '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',
2940         'coust', 'description'),
2941     'interval', null)
2942
2943 ,( 'circ.checkout_fills_related_hold', 'circ',
2944     oils_i18n_gettext('circ.checkout_fills_related_hold',
2945         'Checkout Fills Related Hold',
2946         'coust', 'label'),
2947     oils_i18n_gettext('circ.checkout_fills_related_hold',
2948         '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',
2949         'coust', 'description'),
2950     'bool', null)
2951
2952 ,( 'circ.checkout_fills_related_hold_exact_match_only', 'circ',
2953     oils_i18n_gettext('circ.checkout_fills_related_hold_exact_match_only',
2954         'Checkout Fills Related Hold On Valid Copy Only',
2955         'coust', 'label'),
2956     oils_i18n_gettext('circ.checkout_fills_related_hold_exact_match_only',
2957         '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.',
2958         'coust', 'description'),
2959     'bool', null)
2960
2961 ,( 'circ.claim_never_checked_out.mark_missing', 'lib',
2962     oils_i18n_gettext('circ.claim_never_checked_out.mark_missing',
2963         'Claim Never Checked Out: Mark copy as missing',
2964         'coust', 'label'),
2965     oils_i18n_gettext('circ.claim_never_checked_out.mark_missing',
2966         'When a circ is marked as claims-never-checked-out, mark the copy as missing',
2967         'coust', 'description'),
2968     'bool', null)
2969
2970 ,( 'circ.claim_return.copy_status', 'lib',
2971     oils_i18n_gettext('circ.claim_return.copy_status',
2972         'Claim Return Copy Status',
2973         'coust', 'label'),
2974     oils_i18n_gettext('circ.claim_return.copy_status',
2975         'Claims returned copies are put into this status.  Default is to leave the copy in the Checked Out status',
2976         'coust', 'description'),
2977     'link', 'ccs')
2978
2979 ,( 'circ.damaged.void_ovedue', 'lib',
2980     oils_i18n_gettext('circ.damaged.void_ovedue',
2981         'Mark item damaged voids overdues',
2982         'coust', 'label'),
2983     oils_i18n_gettext('circ.damaged.void_ovedue',
2984         'When an item is marked damaged, overdue fines on the most recent circulation are voided.',
2985         'coust', 'description'),
2986     'bool', null)
2987
2988 ,( 'circ.damaged_item_processing_fee', 'finance',
2989     oils_i18n_gettext('circ.damaged_item_processing_fee',
2990         'Charge processing fee for damaged items',
2991         'coust', 'label'),
2992     oils_i18n_gettext('circ.damaged_item_processing_fee',
2993         'Charge processing fee for damaged items',
2994         'coust', 'description'),
2995     'currency', null)
2996
2997 ,( 'circ.do_not_tally_claims_returned', 'circ',
2998     oils_i18n_gettext('circ.do_not_tally_claims_returned',
2999         'Do not include outstanding Claims Returned circulations in lump sum tallies in Patron Display.',
3000         'coust', 'label'),
3001     oils_i18n_gettext('circ.do_not_tally_claims_returned',
3002         '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.',
3003         'coust', 'description'),
3004     'bool', null)
3005
3006 ,('circ.tally_lost', 'circ',
3007     oils_i18n_gettext(
3008         'circ.tally_lost',
3009         'Include Lost circulations in lump sum tallies in Patron Display.',
3010         'coust',
3011         'label'),
3012     oils_i18n_gettext(
3013         'circ.tally_lost',
3014         '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 include Lost circulations as counting toward these tallies.',
3015         'coust',
3016         'description'),
3017     'bool', null)
3018
3019 ,( 'circ.grace.extend', 'circ',
3020     oils_i18n_gettext('circ.grace.extend',
3021         'Auto-Extend Grace Periods',
3022         'coust', 'label'),
3023     oils_i18n_gettext('circ.grace.extend',
3024         '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.',
3025         'coust', 'description'),
3026     'bool', null)
3027
3028 ,( 'circ.grace.extend.all', 'circ',
3029     oils_i18n_gettext('circ.grace.extend.all',
3030         'Auto-Extending Grace Periods extend for all closed dates',
3031         'coust', 'label'),
3032     oils_i18n_gettext('circ.grace.extend.all',
3033         '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".',
3034         'coust', 'description'),
3035     'bool', null)
3036
3037 ,( 'circ.grace.extend.into_closed', 'circ',
3038     oils_i18n_gettext('circ.grace.extend.into_closed',
3039         'Auto-Extending Grace Periods include trailing closed dates',
3040         'coust', 'label'),
3041     oils_i18n_gettext('circ.grace.extend.into_closed',
3042          '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.',
3043         'coust', 'description'),
3044     'bool', null)
3045
3046 ,( 'circ.hold_boundary.hard', 'holds',
3047     oils_i18n_gettext('circ.hold_boundary.hard',
3048         'Hard boundary',
3049         'coust', 'label'),
3050     oils_i18n_gettext('circ.hold_boundary.hard',
3051         'Holds: Hard boundary',
3052         'coust', 'description'),
3053     'integer', null)
3054
3055 ,( 'circ.hold_boundary.soft', 'holds',
3056     oils_i18n_gettext('circ.hold_boundary.soft',
3057         'Soft boundary',
3058         'coust', 'label'),
3059     oils_i18n_gettext('circ.hold_boundary.soft',
3060         'Holds: Soft boundary',
3061         'coust', 'description'),
3062     'integer', null)
3063
3064 ,( 'circ.hold_expire_alert_interval', 'holds',
3065     oils_i18n_gettext('circ.hold_expire_alert_interval',
3066         'Expire Alert Interval',
3067         'coust', 'label'),
3068     oils_i18n_gettext('circ.hold_expire_alert_interval',
3069         'Amount of time before a hold expires at which point the patron should be alerted. Examples: "5 days", "1 hour"',
3070         'coust', 'description'),
3071     'interval', null)
3072
3073 ,( 'circ.hold_expire_interval', 'holds',
3074     oils_i18n_gettext('circ.hold_expire_interval',
3075         'Expire Interval',
3076         'coust', 'label'),
3077     oils_i18n_gettext('circ.hold_expire_interval',
3078         'Amount of time after a hold is placed before the hold expires.  Example "100 days"',
3079         'coust', 'description'),
3080     'interval', null)
3081
3082 ,( 'circ.hold_shelf_status_delay', 'circ',
3083     oils_i18n_gettext('circ.hold_shelf_status_delay',
3084         'Hold Shelf Status Delay',
3085         'coust', 'label'),
3086     oils_i18n_gettext('circ.hold_shelf_status_delay',
3087         '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"',
3088         'coust', 'description'),
3089     'interval', null)
3090
3091 ,( 'circ.hold_stalling.soft', 'holds',
3092     oils_i18n_gettext('circ.hold_stalling.soft',
3093         'Soft stalling interval',
3094         'coust', 'label'),
3095     oils_i18n_gettext('circ.hold_stalling.soft',
3096         'How long to wait before allowing remote items to be opportunistically captured for a hold.  Example "5 days"',
3097         'coust', 'description'),
3098     'interval', null)
3099
3100 ,( 'circ.hold_stalling_hard', 'holds',
3101     oils_i18n_gettext('circ.hold_stalling_hard',
3102         'Hard stalling interval',
3103         'coust', 'label'),
3104     oils_i18n_gettext('circ.hold_stalling_hard',
3105         'Holds: Hard stalling interval',
3106         'coust', 'description'),
3107     'interval', null)
3108
3109 ,( 'circ.holds.age_protect.active_date', 'holds',
3110     oils_i18n_gettext('circ.holds.age_protect.active_date',
3111         'Use Active Date for Age Protection',
3112         'coust', 'label'),
3113     oils_i18n_gettext('circ.holds.age_protect.active_date',
3114         'When calculating age protection rules use the active date instead of the creation date.',
3115         'coust', 'description'),
3116     'bool', null)
3117
3118 ,( 'circ.holds.behind_desk_pickup_supported', 'holds',
3119     oils_i18n_gettext('circ.holds.behind_desk_pickup_supported',
3120         'Behind Desk Pickup Supported',
3121         'coust', 'label'),
3122     oils_i18n_gettext('circ.holds.behind_desk_pickup_supported',
3123         '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',
3124         'coust', 'description'),
3125     'bool', null)
3126
3127 ,( 'circ.holds.canceled.display_age', 'holds',
3128     oils_i18n_gettext('circ.holds.canceled.display_age',
3129         'Canceled holds display age',
3130         'coust', 'label'),
3131     oils_i18n_gettext('circ.holds.canceled.display_age',
3132         'Show all canceled holds that were canceled within this amount of time',
3133         'coust', 'description'),
3134     'interval', null)
3135
3136 ,( 'circ.holds.canceled.display_count', 'holds',
3137     oils_i18n_gettext('circ.holds.canceled.display_count',
3138         'Canceled holds display count',
3139         'coust', 'label'),
3140     oils_i18n_gettext('circ.holds.canceled.display_count',
3141         'How many canceled holds to show in patron holds interfaces',
3142         'coust', 'description'),
3143     'integer', null)
3144
3145 ,( 'circ.holds.clear_shelf.copy_status', 'holds',
3146     oils_i18n_gettext('circ.holds.clear_shelf.copy_status',
3147         'Clear shelf copy status',
3148         'coust', 'label'),
3149     oils_i18n_gettext('circ.holds.clear_shelf.copy_status',
3150         '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',
3151         'coust', 'description'),
3152     'link', 'ccs')
3153
3154 ,( 'circ.holds.default_estimated_wait_interval', 'holds',
3155     oils_i18n_gettext('circ.holds.default_estimated_wait_interval',
3156         'Default Estimated Wait',
3157         'coust', 'label'),
3158     oils_i18n_gettext('circ.holds.default_estimated_wait_interval',
3159         '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"',
3160         'coust', 'description'),
3161     'interval', null)
3162
3163 ,( 'circ.holds.default_shelf_expire_interval', 'holds',
3164     oils_i18n_gettext('circ.holds.default_shelf_expire_interval',
3165         'Default hold shelf expire interval',
3166         'coust', 'label'),
3167     oils_i18n_gettext('circ.holds.default_shelf_expire_interval',
3168         'The amount of time an item will be held on the shelf before the hold expires. For example: "2 weeks" or "5 days"',
3169         'coust', 'description'),
3170     'interval', null)
3171
3172 ,( 'circ.holds.expired_patron_block', 'circ',
3173     oils_i18n_gettext('circ.holds.expired_patron_block',
3174         'Block hold request if hold recipient privileges have expired',
3175         'coust', 'label'),
3176     oils_i18n_gettext('circ.holds.expired_patron_block',
3177         'Block hold request if hold recipient privileges have expired',
3178         'coust', 'description'),
3179     'bool', null)
3180
3181 ,( 'circ.holds.hold_has_copy_at.alert', 'holds',
3182     oils_i18n_gettext('circ.holds.hold_has_copy_at.alert',
3183         'Has Local Copy Alert',
3184         'coust', 'label'),
3185     oils_i18n_gettext('circ.holds.hold_has_copy_at.alert',
3186         'If there is an available copy at the requesting library that could fulfill a hold during hold placement time, alert the patron',
3187         'coust', 'description'),
3188     'bool', null)
3189
3190 ,( 'circ.holds.hold_has_copy_at.block', 'holds',
3191     oils_i18n_gettext('circ.holds.hold_has_copy_at.block',
3192         'Has Local Copy Block',
3193         'coust', 'label'),
3194     oils_i18n_gettext('circ.holds.hold_has_copy_at.block',
3195         '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',
3196         'coust', 'description'),
3197     'bool', null)
3198
3199 ,( 'circ.holds.max_org_unit_target_loops', 'holds',
3200     oils_i18n_gettext('circ.holds.max_org_unit_target_loops',
3201         'Maximum library target attempts',
3202         'coust', 'label'),
3203     oils_i18n_gettext('circ.holds.max_org_unit_target_loops',
3204         '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',
3205         'coust', 'description'),
3206     'integer', null)
3207
3208 ,( 'circ.holds.min_estimated_wait_interval', 'holds',
3209     oils_i18n_gettext('circ.holds.min_estimated_wait_interval',
3210         'Minimum Estimated Wait',
3211         'coust', 'label'),
3212     oils_i18n_gettext('circ.holds.min_estimated_wait_interval',
3213         '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"',
3214         'coust', 'description'),
3215     'interval', null)
3216
3217 ,( 'circ.holds.org_unit_target_weight', 'holds',
3218     oils_i18n_gettext('circ.holds.org_unit_target_weight',
3219         'Org Unit Target Weight',
3220         'coust', 'label'),
3221     oils_i18n_gettext('circ.holds.org_unit_target_weight',
3222         '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.',
3223         'coust', 'description'),
3224     'integer', null)
3225
3226 ,( 'circ.holds.recall_fine_rules', 'recall',
3227     oils_i18n_gettext('circ.holds.recall_fine_rules',
3228         'An array of fine amount, fine interval, and maximum fine.',
3229         'coust', 'label'),
3230     oils_i18n_gettext('circ.holds.recall_fine_rules',
3231         '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]',
3232         'coust', 'description'),
3233     'array', null)
3234
3235 ,( 'circ.holds.recall_return_interval', 'recall',
3236     oils_i18n_gettext('circ.holds.recall_return_interval',
3237         'Truncated loan period.',
3238         'coust', 'label'),
3239     oils_i18n_gettext('circ.holds.recall_return_interval',
3240         'Recalls: When a recall is triggered, this defines the adjusted loan period for the item. For example, "4 days" or "1 week".',
3241         'coust', 'description'),
3242     'interval', null)
3243
3244 ,( 'circ.holds.recall_threshold', 'recall',
3245     oils_i18n_gettext('circ.holds.recall_threshold',
3246         'Circulation duration that triggers a recall.',
3247         'coust', 'label'),
3248     oils_i18n_gettext('circ.holds.recall_threshold',
3249         '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".',
3250         'coust', 'description'),
3251     'interval', null)
3252
3253 ,( 'circ.holds.target_holds_by_org_unit_weight', 'holds',
3254     oils_i18n_gettext('circ.holds.target_holds_by_org_unit_weight',
3255         'Use weight-based hold targeting',
3256         'coust', 'label'),
3257     oils_i18n_gettext('circ.holds.target_holds_by_org_unit_weight',
3258         'Use library weight based hold targeting',
3259         'coust', 'description'),
3260     'bool', null)
3261
3262 ,( 'circ.holds.target_skip_me', 'holds',
3263     oils_i18n_gettext('circ.holds.target_skip_me',
3264         'Skip For Hold Targeting',
3265         'coust', 'label'),
3266     oils_i18n_gettext('circ.holds.target_skip_me',
3267         'When true, don''t target any copies at this org unit for holds',
3268         'coust', 'description'),
3269     'bool', null)
3270
3271 ,( 'circ.holds.uncancel.reset_request_time', 'holds',
3272     oils_i18n_gettext('circ.holds.uncancel.reset_request_time',
3273         'Reset request time on un-cancel',
3274         'coust', 'label'),
3275     oils_i18n_gettext('circ.holds.uncancel.reset_request_time',
3276         'When a hold is uncanceled, reset the request time to push it to the end of the queue',
3277         'coust', 'description'),
3278     'bool', null)
3279
3280 ,( 'circ.holds_fifo', 'holds',
3281     oils_i18n_gettext('circ.holds_fifo',
3282         'FIFO',
3283         'coust', 'label'),
3284     oils_i18n_gettext('circ.holds_fifo',
3285         'Force holds to a more strict First-In, First-Out capture',
3286         'coust', 'description'),
3287     'bool', null)
3288
3289 ,( 'circ.item_checkout_history.max', 'gui',
3290     oils_i18n_gettext('circ.item_checkout_history.max',
3291         'Maximum previous checkouts displayed',
3292         'coust', 'label'),
3293     oils_i18n_gettext('circ.item_checkout_history.max',
3294         'This is the maximum number of previous circulations the staff client will display when investigating item details',
3295         'coust', 'description'),
3296     'integer', null)
3297
3298 ,( 'circ.lost.generate_overdue_on_checkin', 'circ',
3299     oils_i18n_gettext('circ.lost.generate_overdue_on_checkin',
3300         'Lost Checkin Generates New Overdues',
3301         'coust', 'label'),
3302     oils_i18n_gettext('circ.lost.generate_overdue_on_checkin',
3303         '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',
3304         'coust', 'description'),
3305     'bool', null)
3306
3307 ,( 'circ.lost_immediately_available', 'circ',
3308     oils_i18n_gettext('circ.lost_immediately_available',
3309         'Lost items usable on checkin',
3310         'coust', 'label'),
3311     oils_i18n_gettext('circ.lost_immediately_available',
3312         'Lost items are usable on checkin instead of going ''home'' first',
3313         'coust', 'description'),
3314     'bool', null)
3315
3316 ,( 'circ.lost_materials_processing_fee', 'finance',
3317     oils_i18n_gettext('circ.lost_materials_processing_fee',
3318         'Lost Materials Processing Fee',
3319         'coust', 'label'),
3320     oils_i18n_gettext('circ.lost_materials_processing_fee',
3321         'Lost Materials Processing Fee',
3322         'coust', 'description'),
3323     'currency', null)
3324
3325 ,( 'circ.max_accept_return_of_lost', 'circ',
3326     oils_i18n_gettext('circ.max_accept_return_of_lost',
3327         'Void lost max interval',
3328         'coust', 'label'),
3329     oils_i18n_gettext('circ.max_accept_return_of_lost',
3330         'Items that have been lost this long will not result in voided billings when returned.  E.g. ''6 months''',
3331         'coust', 'description'),
3332     'interval', null)
3333
3334 ,( 'circ.max_fine.cap_at_price', 'circ',
3335     oils_i18n_gettext('circ.max_fine.cap_at_price',
3336         'Cap Max Fine at Item Price',
3337         'coust', 'label'),
3338     oils_i18n_gettext('circ.max_fine.cap_at_price',
3339         'This prevents the system from charging more than the item price in overdue fines',
3340         'coust', 'description'),
3341     'bool', null)
3342
3343 ,( 'circ.max_patron_claim_return_count', 'circ',
3344     oils_i18n_gettext('circ.max_patron_claim_return_count',
3345         'Max Patron Claims Returned Count',
3346         'coust', 'label'),
3347     oils_i18n_gettext('circ.max_patron_claim_return_count',
3348         'When this count is exceeded, a staff override is required to mark the item as claims returned',
3349         'coust', 'description'),
3350     'integer', null)
3351
3352 ,( 'circ.missing_pieces.copy_status', 'circ',
3353     oils_i18n_gettext('circ.missing_pieces.copy_status',
3354         'Item Status for Missing Pieces',
3355         'coust', 'label'),
3356     oils_i18n_gettext('circ.missing_pieces.copy_status',
3357         '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.',
3358         'coust', 'description'),
3359     'link', 'ccs')
3360
3361 ,( 'circ.obscure_dob', 'sec',
3362     oils_i18n_gettext('circ.obscure_dob',
3363         'Obscure the Date of Birth field',
3364         'coust', 'label'),
3365     oils_i18n_gettext('circ.obscure_dob',
3366         '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.',
3367         'coust', 'description'),
3368     'bool', null)
3369
3370 ,( 'circ.offline.skip_checkin_if_newer_status_changed_time', 'offline',
3371     oils_i18n_gettext('circ.offline.skip_checkin_if_newer_status_changed_time',
3372         'Skip offline checkin if newer item Status Changed Time.',
3373         'coust', 'label'),
3374     oils_i18n_gettext('circ.offline.skip_checkin_if_newer_status_changed_time',
3375         '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.',
3376         'coust', 'description'),
3377     'bool', null)
3378
3379 ,( 'circ.offline.skip_checkout_if_newer_status_changed_time', 'offline',
3380     oils_i18n_gettext('circ.offline.skip_checkout_if_newer_status_changed_time',
3381         'Skip offline checkout if newer item Status Changed Time.',
3382         'coust', 'label'),
3383     oils_i18n_gettext('circ.offline.skip_checkout_if_newer_status_changed_time',
3384         '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.',
3385         'coust', 'description'),
3386     'bool', null)
3387
3388 ,( 'circ.offline.skip_renew_if_newer_status_changed_time', 'offline',
3389     oils_i18n_gettext('circ.offline.skip_renew_if_newer_status_changed_time',
3390         'Skip offline renewal if newer item Status Changed Time.',
3391         'coust', 'label'),
3392     oils_i18n_gettext('circ.offline.skip_renew_if_newer_status_changed_time',
3393         '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.',
3394         'coust', 'description'),
3395     'bool', null)
3396
3397 ,( 'circ.offline.username_allowed', 'sec',
3398     oils_i18n_gettext('circ.offline.username_allowed',
3399         'Offline: Patron Usernames Allowed',
3400         'coust', 'label'),
3401     oils_i18n_gettext('circ.offline.username_allowed',
3402         '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',
3403         'coust', 'description'),
3404     'bool', null)
3405
3406 ,( 'circ.password_reset_request_per_user_limit', 'sec',
3407     oils_i18n_gettext('circ.password_reset_request_per_user_limit',
3408         'Maximum concurrently active self-serve password reset requests per user',
3409         'coust', 'label'),
3410     oils_i18n_gettext('circ.password_reset_request_per_user_limit',
3411         '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.',
3412         'coust', 'description'),
3413     'string', null)
3414
3415 ,( 'circ.password_reset_request_requires_matching_email', 'circ',
3416     oils_i18n_gettext('circ.password_reset_request_requires_matching_email',
3417         'Require matching email address for password reset requests',
3418         'coust', 'label'),
3419     oils_i18n_gettext('circ.password_reset_request_requires_matching_email',
3420         'Require matching email address for password reset requests',
3421         'coust', 'description'),
3422     'bool', null)
3423
3424 ,( 'circ.password_reset_request_throttle', 'sec',
3425     oils_i18n_gettext('circ.password_reset_request_throttle',
3426         'Maximum concurrently active self-serve password reset requests',
3427         'coust', 'label'),
3428     oils_i18n_gettext('circ.password_reset_request_throttle',
3429         'Prevent the creation of new self-serve password reset requests until the number of active requests drops back below this number.',
3430         'coust', 'description'),
3431     'string', null)
3432
3433 ,( 'circ.password_reset_request_time_to_live', 'sec',
3434     oils_i18n_gettext('circ.password_reset_request_time_to_live',
3435         'Self-serve password reset request time-to-live',
3436         'coust', 'label'),
3437     oils_i18n_gettext('circ.password_reset_request_time_to_live',
3438         'Length of time (in seconds) a self-serve password reset request should remain active.',
3439         'coust', 'description'),
3440     'string', null)
3441
3442 ,( 'circ.patron_edit.clone.copy_address', 'circ',
3443     oils_i18n_gettext('circ.patron_edit.clone.copy_address',
3444         'Patron Registration: Cloned patrons get address copy',
3445         'coust', 'label'),
3446     oils_i18n_gettext('circ.patron_edit.clone.copy_address',
3447         'In the Patron editor, copy addresses from the cloned user instead of linking directly to the address',
3448         'coust', 'description'),
3449     'bool', null)
3450
3451 ,( 'circ.patron_invalid_address_apply_penalty', 'circ',
3452     oils_i18n_gettext('circ.patron_invalid_address_apply_penalty',
3453         'Invalid patron address penalty',
3454         'coust', 'label'),
3455     oils_i18n_gettext('circ.patron_invalid_address_apply_penalty',
3456         'When set, if a patron address is set to invalid, a penalty is applied.',
3457         'coust', 'description'),
3458     'bool', null)
3459
3460 ,( 'circ.pre_cat_copy_circ_lib', 'lib',
3461     oils_i18n_gettext('circ.pre_cat_copy_circ_lib',
3462         'Pre-cat Item Circ Lib',
3463         'coust', 'label'),
3464     oils_i18n_gettext('circ.pre_cat_copy_circ_lib',
3465         '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',
3466         'coust', 'description'),
3467     'string', null)
3468
3469 ,( 'circ.reshelving_complete.interval', 'lib',
3470     oils_i18n_gettext('circ.reshelving_complete.interval',
3471         'Change reshelving status interval',
3472         'coust', 'label'),
3473     oils_i18n_gettext('circ.reshelving_complete.interval',
3474         'Amount of time to wait before changing an item from "reshelving" status to "available".  Examples: "1 day", "6 hours"',
3475         'coust', 'description'),
3476     'interval', null)
3477
3478 ,( 'circ.restore_overdue_on_lost_return', 'circ',
3479     oils_i18n_gettext('circ.restore_overdue_on_lost_return',
3480         'Restore overdues on lost item return',
3481         'coust', 'label'),
3482     oils_i18n_gettext('circ.restore_overdue_on_lost_return',
3483         'Restore overdue fines on lost item return',
3484         'coust', 'description'),
3485     'bool', null)
3486
3487 ,( 'circ.selfcheck.alert.popup', 'self',
3488     oils_i18n_gettext('circ.selfcheck.alert.popup',
3489         'Pop-up alert for errors',
3490         'coust', 'label'),
3491     oils_i18n_gettext('circ.selfcheck.alert.popup',
3492         'If true, checkout/renewal errors will cause a pop-up window in addition to the on-screen message',
3493         'coust', 'description'),
3494     'bool', null)
3495
3496 ,( 'circ.selfcheck.alert.sound', 'self',
3497     oils_i18n_gettext('circ.selfcheck.alert.sound',
3498         'Audio Alerts',
3499         'coust', 'label'),
3500     oils_i18n_gettext('circ.selfcheck.alert.sound',
3501         'Use audio alerts for selfcheck events',
3502         'coust', 'description'),
3503     'bool', null)
3504
3505 ,( 'circ.selfcheck.auto_override_checkout_events', 'self',
3506     oils_i18n_gettext('circ.selfcheck.auto_override_checkout_events',
3507         'Selfcheck override events list',
3508         'coust', 'label'),
3509     oils_i18n_gettext('circ.selfcheck.auto_override_checkout_events',
3510         'List of checkout/renewal events that the selfcheck interface should automatically override instead instead of alerting and stopping the transaction',
3511         'coust', 'description'),
3512     'array', null)
3513
3514 ,( 'circ.selfcheck.block_checkout_on_copy_status', 'self',
3515     oils_i18n_gettext('circ.selfcheck.block_checkout_on_copy_status',
3516         'Block copy checkout status',
3517         'coust', 'label'),
3518     oils_i18n_gettext('circ.selfcheck.block_checkout_on_copy_status',
3519         'List of copy status IDs that will block checkout even if the generic COPY_NOT_AVAILABLE event is overridden',
3520         'coust', 'description'),
3521     'array', null)
3522
3523 ,( 'circ.selfcheck.patron_login_timeout', 'self',
3524     oils_i18n_gettext('circ.selfcheck.patron_login_timeout',
3525         'Patron Login Timeout (in seconds)',
3526         'coust', 'label'),
3527     oils_i18n_gettext('circ.selfcheck.patron_login_timeout',
3528         'Number of seconds of inactivity before the patron is logged out of the selfcheck interface',
3529         'coust', 'description'),
3530     'integer', null)
3531
3532 ,( 'circ.selfcheck.patron_password_required', 'self',
3533     oils_i18n_gettext('circ.selfcheck.patron_password_required',
3534         'Require Patron Password',
3535         'coust', 'label'),
3536     oils_i18n_gettext('circ.selfcheck.patron_password_required',
3537         'Patron must log in with barcode and password at selfcheck station',
3538         'coust', 'description'),
3539     'bool', null)
3540
3541 ,( 'circ.selfcheck.require_patron_password', 'self',
3542     oils_i18n_gettext('circ.selfcheck.require_patron_password',
3543         'Require patron password',
3544         'coust', 'label'),
3545     oils_i18n_gettext('circ.selfcheck.require_patron_password',
3546         'If true, patrons will be required to enter their password in addition to their username/barcode to log into the selfcheck interface',
3547         'coust', 'description'),
3548     'bool', null)
3549
3550 ,( 'circ.selfcheck.workstation_required', 'self',
3551     oils_i18n_gettext('circ.selfcheck.workstation_required',
3552         'Workstation Required',
3553         'coust', 'label'),
3554     oils_i18n_gettext('circ.selfcheck.workstation_required',
3555         'All selfcheck stations must use a workstation',
3556         'coust', 'description'),
3557     'bool', null)
3558
3559 ,( 'circ.staff_client.actor_on_checkout', 'circ',
3560     oils_i18n_gettext('circ.staff_client.actor_on_checkout',
3561         'Load patron from Checkout',
3562         'coust', 'label'),
3563     oils_i18n_gettext('circ.staff_client.actor_on_checkout',
3564         'When scanning barcodes into Checkout auto-detect if a new patron barcode is scanned and auto-load the new patron.',
3565         'coust', 'description'),
3566     'bool', null)
3567
3568 ,( 'circ.staff_client.do_not_auto_attempt_print', 'prog',
3569     oils_i18n_gettext('circ.staff_client.do_not_auto_attempt_print',
3570         'Disable Automatic Print Attempt Type List',
3571         'coust', 'label'),
3572     oils_i18n_gettext('circ.staff_client.do_not_auto_attempt_print',
3573         '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).',
3574         'coust', 'description'),
3575     'array', null)
3576
3577 ,( 'circ.staff_client.receipt.alert_text', 'receipt_template',
3578     oils_i18n_gettext('circ.staff_client.receipt.alert_text',
3579         'Content of alert_text include',
3580         'coust', 'label'),
3581     oils_i18n_gettext('circ.staff_client.receipt.alert_text',
3582         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(alert_text)%',
3583         'coust', 'description'),
3584     'string', null)
3585
3586 ,( 'circ.staff_client.receipt.event_text', 'receipt_template',
3587     oils_i18n_gettext('circ.staff_client.receipt.event_text',
3588         'Content of event_text include',
3589         'coust', 'label'),
3590     oils_i18n_gettext('circ.staff_client.receipt.event_text',
3591         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(event_text)%',
3592         'coust', 'description'),
3593     'string', null)
3594
3595 ,( 'circ.staff_client.receipt.footer_text', 'receipt_template',
3596     oils_i18n_gettext('circ.staff_client.receipt.footer_text',
3597         'Content of footer_text include',
3598         'coust', 'label'),
3599     oils_i18n_gettext('circ.staff_client.receipt.footer_text',
3600         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(footer_text)%',
3601         'coust', 'description'),
3602     'string', null)
3603
3604 ,( 'circ.staff_client.receipt.header_text', 'receipt_template',
3605     oils_i18n_gettext('circ.staff_client.receipt.header_text',
3606         'Content of header_text include',
3607         'coust', 'label'),
3608     oils_i18n_gettext('circ.staff_client.receipt.header_text',
3609         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(header_text)%',
3610         'coust', 'description'),
3611     'string', null)
3612
3613 ,( 'circ.staff_client.receipt.notice_text', 'receipt_template',
3614     oils_i18n_gettext('circ.staff_client.receipt.notice_text',
3615         'Content of notice_text include',
3616         'coust', 'label'),
3617     oils_i18n_gettext('circ.staff_client.receipt.notice_text',
3618         'Text/HTML/Macros to be inserted into receipt templates in place of %INCLUDE(notice_text)%',
3619         'coust', 'description'),
3620     'string', null)
3621
3622 ,( 'circ.transit.min_checkin_interval', 'circ',
3623     oils_i18n_gettext('circ.transit.min_checkin_interval',
3624         'Minimum Transit Checkin Interval',
3625         'coust', 'label'),
3626     oils_i18n_gettext('circ.transit.min_checkin_interval',
3627         'In-Transit items checked in this close to the transit start time will be prevented from checking in',
3628         'coust', 'description'),
3629     'interval', null)
3630
3631 ,( 'circ.transit.suppress_hold', 'circ',
3632     oils_i18n_gettext('circ.transit.suppress_hold',
3633         'Suppress Hold Transits Group',
3634         'coust', 'label'),
3635     oils_i18n_gettext('circ.transit.suppress_hold',
3636         '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.',
3637         'coust', 'description'),
3638     'string', null)
3639
3640 ,( 'circ.transit.suppress_non_hold', 'circ',
3641     oils_i18n_gettext('circ.transit.suppress_non_hold',
3642         'Suppress Non-Hold Transits Group',
3643         'coust', 'label'),
3644     oils_i18n_gettext('circ.transit.suppress_non_hold',
3645         '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.',
3646         'coust', 'description'),
3647     'string', null)
3648
3649 ,( 'circ.user_merge.deactivate_cards', 'circ',
3650     oils_i18n_gettext('circ.user_merge.deactivate_cards',
3651         'Patron Merge Deactivate Card',
3652         'coust', 'label'),
3653     oils_i18n_gettext('circ.user_merge.deactivate_cards',
3654         'Mark barcode(s) of subordinate user(s) in a patron merge as inactive',
3655         'coust', 'description'),
3656     'bool', null)
3657
3658 ,( 'circ.user_merge.delete_addresses', 'circ',
3659     oils_i18n_gettext('circ.user_merge.delete_addresses',
3660         'Patron Merge Address Delete',
3661         'coust', 'label'),
3662     oils_i18n_gettext('circ.user_merge.delete_addresses',
3663         'Delete address(es) of subordinate user(s) in a patron merge',
3664         'coust', 'description'),
3665     'bool', null)
3666
3667 ,( 'circ.user_merge.delete_cards', 'circ',
3668     oils_i18n_gettext('circ.user_merge.delete_cards',
3669         'Patron Merge Barcode Delete',
3670         'coust', 'label'),
3671     oils_i18n_gettext('circ.user_merge.delete_cards',
3672         'Delete barcode(s) of subordinate user(s) in a patron merge',
3673         'coust', 'description'),
3674     'bool', null)
3675
3676 ,( 'circ.void_lost_on_checkin', 'circ',
3677     oils_i18n_gettext('circ.void_lost_on_checkin',
3678         'Void lost item billing when returned',
3679         'coust', 'label'),
3680     oils_i18n_gettext('circ.void_lost_on_checkin',
3681         'Void lost item billing when returned',
3682         'coust', 'description'),
3683     'bool', null)
3684
3685 ,( 'circ.void_lost_proc_fee_on_checkin', 'circ',
3686     oils_i18n_gettext('circ.void_lost_proc_fee_on_checkin',
3687         'Void processing fee on lost item return',
3688         'coust', 'label'),
3689     oils_i18n_gettext('circ.void_lost_proc_fee_on_checkin',
3690         'Void processing fee when lost item returned',
3691         'coust', 'description'),
3692     'bool', null)
3693
3694 ,( 'circ.void_overdue_on_lost', 'finance',
3695     oils_i18n_gettext('circ.void_overdue_on_lost',
3696         'Void overdue fines when items are marked lost',
3697         'coust', 'label'),
3698     oils_i18n_gettext('circ.void_overdue_on_lost',
3699         'Void overdue fines when items are marked lost',
3700         'coust', 'description'),
3701     'bool', null)
3702
3703 ,( 'credit.payments.allow', 'finance',
3704     oils_i18n_gettext('credit.payments.allow',
3705         'Allow Credit Card Payments',
3706         'coust', 'label'),
3707     oils_i18n_gettext('credit.payments.allow',
3708         'If enabled, patrons will be able to pay fines accrued at this location via credit card',
3709         'coust', 'description'),
3710     'bool', null)
3711
3712 ,( 'credit.processor.authorizenet.enabled', 'credit',
3713     oils_i18n_gettext('credit.processor.authorizenet.enabled',
3714         'Enable AuthorizeNet payments',
3715         'coust', 'label'),
3716     oils_i18n_gettext('credit.processor.authorizenet.enabled',
3717         'Enable AuthorizeNet payments',
3718         'coust', 'description'),
3719     'bool', null)
3720
3721 ,( 'credit.processor.authorizenet.login', 'credit',
3722     oils_i18n_gettext('credit.processor.authorizenet.login',
3723         'AuthorizeNet login',
3724         'coust', 'label'),
3725     oils_i18n_gettext('credit.processor.authorizenet.login',
3726         'AuthorizeNet login',
3727         'coust', 'description'),
3728     'string', null)
3729
3730 ,( 'credit.processor.authorizenet.password', 'credit',
3731     oils_i18n_gettext('credit.processor.authorizenet.password',
3732         'AuthorizeNet password',
3733         'coust', 'label'),
3734     oils_i18n_gettext('credit.processor.authorizenet.password',
3735         'AuthorizeNet password',
3736         'coust', 'description'),
3737     'string', null)
3738
3739 ,( 'credit.processor.authorizenet.server', 'credit',
3740     oils_i18n_gettext('credit.processor.authorizenet.server',
3741         'AuthorizeNet server',
3742         'coust', 'label'),
3743     oils_i18n_gettext('credit.processor.authorizenet.server',
3744         'Required if using a developer/test account with AuthorizeNet',
3745         'coust', 'description'),
3746     'string', null)
3747
3748 ,( 'credit.processor.authorizenet.testmode', 'credit',
3749     oils_i18n_gettext('credit.processor.authorizenet.testmode',
3750         'AuthorizeNet test mode',
3751         'coust', 'label'),
3752     oils_i18n_gettext('credit.processor.authorizenet.testmode',
3753         'AuthorizeNet test mode',
3754         'coust', 'description'),
3755     'bool', null)
3756
3757 ,( 'credit.processor.default', 'credit',
3758     oils_i18n_gettext('credit.processor.default',
3759         'Name default credit processor',
3760         'coust', 'label'),
3761     oils_i18n_gettext('credit.processor.default',
3762         'This might be "AuthorizeNet", "PayPal", etc.',
3763         'coust', 'description'),
3764     'string', null)
3765
3766 ,( 'credit.processor.payflowpro.enabled', 'credit',
3767     oils_i18n_gettext('credit.processor.payflowpro.enabled',
3768         'Enable PayflowPro payments',
3769         'coust', 'label'),
3770     oils_i18n_gettext('credit.processor.payflowpro.enabled',
3771         'This is NOT the same thing as the settings labeled with just "PayPal."',
3772         'coust', 'description'),
3773     'bool', null)
3774
3775 ,( 'credit.processor.payflowpro.login', 'credit',
3776     oils_i18n_gettext('credit.processor.payflowpro.login',
3777         'PayflowPro login/merchant ID',
3778         'coust', 'label'),
3779     oils_i18n_gettext('credit.processor.payflowpro.login',
3780         'Often the same thing as the PayPal manager login',
3781         'coust', 'description'),
3782     'string', null)
3783
3784 ,( 'credit.processor.payflowpro.partner', 'credit',
3785     oils_i18n_gettext('credit.processor.payflowpro.partner',
3786         'PayflowPro partner',
3787         'coust', 'label'),
3788     oils_i18n_gettext('credit.processor.payflowpro.partner',
3789         'Often "PayPal" or "VeriSign", sometimes others',
3790         'coust', 'description'),
3791     'string', null)
3792
3793 ,( 'credit.processor.payflowpro.password', 'credit',
3794     oils_i18n_gettext('credit.processor.payflowpro.password',
3795         'PayflowPro password',
3796         'coust', 'label'),
3797     oils_i18n_gettext('credit.processor.payflowpro.password',
3798         'PayflowPro password',
3799         'coust', 'description'),
3800     'string', null)
3801
3802 ,( 'credit.processor.payflowpro.testmode', 'credit',
3803     oils_i18n_gettext('credit.processor.payflowpro.testmode',
3804         'PayflowPro test mode',
3805         'coust', 'label'),
3806     oils_i18n_gettext('credit.processor.payflowpro.testmode',
3807         'Do not really process transactions, but stay in test mode - uses pilot-payflowpro.paypal.com instead of the usual host',
3808         'coust', 'description'),
3809     'bool', null)
3810
3811 ,( 'credit.processor.payflowpro.vendor', 'credit',
3812     oils_i18n_gettext('credit.processor.payflowpro.vendor',
3813         'PayflowPro vendor',
3814         'coust', 'label'),
3815     oils_i18n_gettext('credit.processor.payflowpro.vendor',
3816         'Often the same thing as the login',
3817         'coust', 'description'),
3818     'string', null)
3819
3820 ,( 'credit.processor.paypal.enabled', 'credit',
3821     oils_i18n_gettext('credit.processor.paypal.enabled',
3822         'Enable PayPal payments',
3823         'coust', 'label'),
3824     oils_i18n_gettext('credit.processor.paypal.enabled',
3825         'Enable PayPal payments',
3826         'coust', 'description'),
3827     'bool', null)
3828
3829 ,( 'credit.processor.paypal.login', 'credit',
3830     oils_i18n_gettext('credit.processor.paypal.login',
3831         'PayPal login',
3832         'coust', 'label'),
3833     oils_i18n_gettext('credit.processor.paypal.login',
3834         'PayPal login',
3835         'coust', 'description'),
3836     'string', null)
3837
3838 ,( 'credit.processor.paypal.password', 'credit',
3839     oils_i18n_gettext('credit.processor.paypal.password',
3840         'PayPal password',
3841         'coust', 'label'),
3842     oils_i18n_gettext('credit.processor.paypal.password',
3843         'PayPal password',
3844         'coust', 'description'),
3845     'string', null)
3846
3847 ,( 'credit.processor.paypal.signature', 'credit',
3848     oils_i18n_gettext('credit.processor.paypal.signature',
3849         'PayPal signature',
3850         'coust', 'label'),
3851     oils_i18n_gettext('credit.processor.paypal.signature',
3852         'PayPal signature',
3853         'coust', 'description'),
3854     'string', null)
3855
3856 ,( 'credit.processor.paypal.testmode', 'credit',
3857     oils_i18n_gettext('credit.processor.paypal.testmode',
3858         'PayPal test mode',
3859         'coust', 'label'),
3860     oils_i18n_gettext('credit.processor.paypal.testmode',
3861         'PayPal test mode',
3862         'coust', 'description'),
3863     'bool', null)
3864
3865 ,( 'format.date', 'gui',
3866     oils_i18n_gettext('format.date',
3867         'Format Dates with this pattern.',
3868         'coust', 'label'),
3869     oils_i18n_gettext('format.date',
3870         'Format Dates with this pattern (examples: "yyyy-MM-dd" for "2010-04-26", "MMM d, yyyy" for "Apr 26, 2010")',
3871         'coust', 'description'),
3872     'string', null)
3873
3874 ,( 'format.time', 'gui',
3875     oils_i18n_gettext('format.time',
3876         'Format Times with this pattern.',
3877         'coust', 'label'),
3878     oils_i18n_gettext('format.time',
3879         '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")',
3880         'coust', 'description'),
3881     'string', null)
3882
3883 ,( 'global.default_locale', 'glob',
3884     oils_i18n_gettext('global.default_locale',
3885         'Global Default Locale',
3886         'coust', 'label'),
3887     oils_i18n_gettext('global.default_locale',
3888         'Global Default Locale',
3889         'coust', 'description'),
3890     'string', null)
3891
3892 ,( 'global.juvenile_age_threshold', 'lib',
3893     oils_i18n_gettext('global.juvenile_age_threshold',
3894         'Juvenile Age Threshold',
3895         'coust', 'label'),
3896     oils_i18n_gettext('global.juvenile_age_threshold',
3897         'The age at which a user is no long considered a juvenile.  For example, "18 years".',
3898         'coust', 'description'),
3899     'interval', null)
3900
3901 ,( 'global.password_regex', 'glob',
3902     oils_i18n_gettext('global.password_regex',
3903         'Password format',
3904         'coust', 'label'),
3905     oils_i18n_gettext('global.password_regex',
3906         'Regular expression defining the password format',
3907         'coust', 'description'),
3908     'string', null)
3909
3910 ,( 'gui.disable_local_save_columns', 'gui',
3911     oils_i18n_gettext('gui.disable_local_save_columns',
3912         'Disable the ability to save list column configurations locally.',
3913         'coust', 'label'),
3914     oils_i18n_gettext('gui.disable_local_save_columns',
3915         '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.',
3916         'coust', 'description'),
3917     'bool', null)
3918
3919 ,( 'lib.courier_code', 'lib',
3920     oils_i18n_gettext('lib.courier_code',
3921         'Courier Code',
3922         'coust', 'label'),
3923     oils_i18n_gettext('lib.courier_code',
3924         'Courier Code for the library.  Available in transit slip templates as the %courier_code% macro.',
3925         'coust', 'description'),
3926     'string', null)
3927
3928 ,( 'lib.info_url', 'lib',
3929     oils_i18n_gettext('lib.info_url',
3930         'Library information URL (such as "http://example.com/about.html")',
3931         'coust', 'label'),
3932     oils_i18n_gettext('lib.info_url',
3933         'URL for information on this library, such as contact information, hours of operation, and directions. If set, the library name in the copy details section links to that URL. Use a complete URL, such as "http://example.com/hours.html".',
3934         'coust', 'description'),
3935     'string', null)
3936
3937 ,( 'notice.telephony.callfile_lines', 'lib',
3938     oils_i18n_gettext('notice.telephony.callfile_lines',
3939         'Telephony: Arbitrary line(s) to include in each notice callfile',
3940         'coust', 'label'),
3941     oils_i18n_gettext('notice.telephony.callfile_lines',
3942         '
3943         This overrides lines from opensrf.xml.
3944         Line(s) must be valid for your target server and platform
3945         (e.g. Asterisk 1.4).
3946         ',
3947         'coust', 'description'),
3948     'string', null)
3949
3950 ,( 'opac.allow_pending_address', 'opac',
3951     oils_i18n_gettext('opac.allow_pending_address',
3952         'Allow pending addresses',
3953         'coust', 'label'),
3954     oils_i18n_gettext('opac.allow_pending_address',
3955         'If enabled, patrons can create and edit existing addresses.  Addresses are kept in a pending state until staff approves the changes',
3956         'coust', 'description'),
3957     'bool', null)
3958
3959 ,( 'opac.barcode_regex', 'glob',
3960     oils_i18n_gettext('opac.barcode_regex',
3961         'Patron barcode format',
3962         'coust', 'label'),
3963     oils_i18n_gettext('opac.barcode_regex',
3964         'Regular expression defining the patron barcode format',
3965         'coust', 'description'),
3966     'string', null)
3967
3968 ,( 'opac.fully_compressed_serial_holdings', 'opac',
3969     oils_i18n_gettext('opac.fully_compressed_serial_holdings',
3970         'Use fully compressed serial holdings',
3971         'coust', 'label'),
3972     oils_i18n_gettext('opac.fully_compressed_serial_holdings',
3973         'Show fully compressed serial holdings for all libraries at and below the current context unit',
3974         'coust', 'description'),
3975     'bool', null)
3976
3977 ,( 'opac.lock_usernames', 'glob',
3978     oils_i18n_gettext('opac.lock_usernames',
3979         'Lock Usernames',
3980         'coust', 'label'),
3981     oils_i18n_gettext('opac.lock_usernames',
3982         'If enabled username changing via the OPAC will be disabled',
3983         'coust', 'description'),
3984     'bool', null)
3985
3986 ,( 'opac.org_unit_hiding.depth', 'opac',
3987     oils_i18n_gettext('opac.org_unit_hiding.depth',
3988         'Org Unit Hiding Depth',
3989         'coust', 'label'),
3990     oils_i18n_gettext('opac.org_unit_hiding.depth',
3991         '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.',
3992         'coust', 'description'),
3993     'integer', null)
3994
3995 ,( 'opac.payment_history_age_limit', 'opac',
3996     oils_i18n_gettext('opac.payment_history_age_limit',
3997         'Payment History Age Limit',
3998         'coust', 'label'),
3999     oils_i18n_gettext('opac.payment_history_age_limit',
4000         'The OPAC should not display payments by patrons that are older than any interval defined here.',
4001         'coust', 'description'),
4002     'interval', null)
4003
4004 ,( 'opac.unlimit_usernames', 'glob',
4005     oils_i18n_gettext('opac.unlimit_usernames',
4006         'Allow multiple username changes',
4007         'coust', 'label'),
4008     oils_i18n_gettext('opac.unlimit_usernames',
4009         '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.',
4010         'coust', 'description'),
4011     'bool', null)
4012
4013 ,( 'opac.username_regex', 'glob',
4014     oils_i18n_gettext('opac.username_regex',
4015         'Patron username format',
4016         'coust', 'label'),
4017     oils_i18n_gettext('opac.username_regex',
4018         'Regular expression defining the patron username format, used for patron registration and self-service username changing only',
4019         'coust', 'description'),
4020     'string', null)
4021
4022 ,( 'org.bounced_emails', 'prog',
4023     oils_i18n_gettext('org.bounced_emails',
4024         'Sending email address for patron notices',
4025         'coust', 'label'),
4026     oils_i18n_gettext('org.bounced_emails',
4027         'Sending email address for patron notices',
4028         'coust', 'description'),
4029     'string', null)
4030
4031 ,( 'org.patron_opt_boundary', 'sec',
4032     oils_i18n_gettext('org.patron_opt_boundary',
4033         'Patron Opt-In Boundary',
4034         'coust', 'label'),
4035     oils_i18n_gettext('org.patron_opt_boundary',
4036         'This determines at which depth above which patrons must be opted in, and below which patrons will be assumed to be opted in.',
4037         'coust', 'description'),
4038     'integer', null)
4039
4040 ,( 'org.patron_opt_default', 'sec',
4041     oils_i18n_gettext('org.patron_opt_default',
4042         'Patron Opt-In Default',
4043         'coust', 'label'),
4044     oils_i18n_gettext('org.patron_opt_default',
4045         'This is the default depth at which a patron is opted in; it is calculated as an org unit relative to the current workstation.',
4046         'coust', 'description'),
4047     'integer', null)
4048
4049 ,( 'patron.password.use_phone', 'sec',
4050     oils_i18n_gettext('patron.password.use_phone',
4051         'Patron: password from phone #',
4052         'coust', 'label'),
4053     oils_i18n_gettext('patron.password.use_phone',
4054         '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.',
4055         'coust', 'description'),
4056     'bool', null)
4057
4058 ,( 'print.custom_js_file', 'circ',
4059     oils_i18n_gettext('print.custom_js_file',
4060         'Printing: Custom Javascript File',
4061         'coust', 'label'),
4062     oils_i18n_gettext('print.custom_js_file',
4063         'Full URL path to a Javascript File to be loaded when printing. Should'
4064         || ' implement a print_custom function for DOM manipulation. Can change'
4065         || ' the value of the do_print variable to false to cancel printing.',
4066         'coust', 'description'),
4067     'string', null)
4068
4069 ,( 'serial.prev_issuance_copy_location', 'serial',
4070     oils_i18n_gettext('serial.prev_issuance_copy_location',
4071         'Previous Issuance Copy Location',
4072         'coust', 'label'),
4073     oils_i18n_gettext('serial.prev_issuance_copy_location',
4074         'When a serial issuance is received, copies (units) of the previous issuance will be automatically moved into the configured shelving location',
4075         'coust', 'description'),
4076     'link', 'acpl')
4077
4078 ,( 'ui.admin.patron_log.max_entries', 'gui',
4079     oils_i18n_gettext('ui.admin.patron_log.max_entries',
4080         'Work Log: Maximum Patrons Logged',
4081         'coust', 'label'),
4082     oils_i18n_gettext('ui.admin.patron_log.max_entries',
4083         'Maximum entries for "Most Recently Affected Patrons..." section of the Work Log interface.',
4084         'coust', 'description'),
4085     'interval', null)
4086
4087 ,( 'ui.admin.work_log.max_entries', 'gui',
4088     oils_i18n_gettext('ui.admin.work_log.max_entries',
4089         'Work Log: Maximum Actions Logged',
4090         'coust', 'label'),
4091     oils_i18n_gettext('ui.admin.work_log.max_entries',
4092         'Maximum entries for "Most Recent Staff Actions" section of the Work Log interface.',
4093         'coust', 'description'),
4094     'interval', null)
4095
4096 ,( 'ui.cat.volume_copy_editor.horizontal', 'gui',
4097     oils_i18n_gettext('ui.cat.volume_copy_editor.horizontal',
4098         'Horizontal layout for Volume/Copy Creator/Editor.',
4099         'coust', 'label'),
4100     oils_i18n_gettext('ui.cat.volume_copy_editor.horizontal',
4101         '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.',
4102         'coust', 'description'),
4103     'bool', null)
4104
4105 ,( 'ui.circ.billing.uncheck_bills_and_unfocus_payment_box', 'gui',
4106     oils_i18n_gettext('ui.circ.billing.uncheck_bills_and_unfocus_payment_box',
4107         'Uncheck bills by default in the patron billing interface',
4108         'coust', 'label'),
4109     oils_i18n_gettext('ui.circ.billing.uncheck_bills_and_unfocus_payment_box',
4110         'Uncheck bills by default in the patron billing interface, and focus on the Uncheck All button instead of the Payment Received field.',
4111         'coust', 'description'),
4112     'bool', null)
4113
4114 ,( 'ui.circ.in_house_use.entry_cap', 'gui',
4115     oils_i18n_gettext('ui.circ.in_house_use.entry_cap',
4116         'Record In-House Use: Maximum # of uses allowed per entry.',
4117         'coust', 'label'),
4118     oils_i18n_gettext('ui.circ.in_house_use.entry_cap',
4119         'The # of uses entry in the Record In-House Use interface may not exceed the value of this setting.',
4120         'coust', 'description'),
4121     'integer', null)
4122
4123 ,( 'ui.circ.in_house_use.entry_warn', 'gui',
4124     oils_i18n_gettext('ui.circ.in_house_use.entry_warn',
4125         'Record In-House Use: # of uses threshold for Are You Sure? dialog.',
4126         'coust', 'label'),
4127     oils_i18n_gettext('ui.circ.in_house_use.entry_warn',
4128         'In the Record In-House Use interface, a submission attempt will warn if the # of uses field exceeds the value of this setting.',
4129         'coust', 'description'),
4130     'integer', null)
4131
4132 ,( 'ui.circ.patron_summary.horizontal', 'gui',
4133     oils_i18n_gettext('ui.circ.patron_summary.horizontal',
4134         'Patron circulation summary is horizontal',
4135         'coust', 'label'),
4136     oils_i18n_gettext('ui.circ.patron_summary.horizontal',
4137         'Patron circulation summary is horizontal',
4138         'coust', 'description'),
4139     'bool', null)
4140
4141 ,( 'ui.circ.show_billing_tab_on_bills', 'gui',
4142     oils_i18n_gettext('ui.circ.show_billing_tab_on_bills',
4143         'Show billing tab first when bills are present',
4144         'coust', 'label'),
4145     oils_i18n_gettext('ui.circ.show_billing_tab_on_bills',
4146         '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',
4147         'coust', 'description'),
4148     'bool', null)
4149
4150 ,( 'ui.circ.suppress_checkin_popups', 'circ',
4151     oils_i18n_gettext('ui.circ.suppress_checkin_popups',
4152         'Suppress popup-dialogs during check-in.',
4153         'coust', 'label'),
4154     oils_i18n_gettext('ui.circ.suppress_checkin_popups',
4155         'Suppress popup-dialogs during check-in.',
4156         'coust', 'description'),
4157     'bool', null)
4158
4159 ,( 'ui.general.button_bar', 'gui',
4160     oils_i18n_gettext('ui.general.button_bar',
4161         'Button bar',
4162         'coust', 'label'),
4163     oils_i18n_gettext('ui.general.button_bar',
4164         'Set to "circ" or "cat" for stock circulator or cataloger toolbar, respectively.',
4165         'coust', 'description'),
4166     'string', null)
4167
4168 ,( 'ui.general.hotkeyset', 'gui',
4169     oils_i18n_gettext('ui.general.hotkeyset',
4170         'Default Hotkeyset',
4171         'coust', 'label'),
4172     oils_i18n_gettext('ui.general.hotkeyset',
4173         'Default Hotkeyset for clients (filename without the .keyset).  Examples: Default, Minimal, and None',
4174         'coust', 'description'),
4175     'string', null)
4176
4177 ,( 'ui.general.idle_timeout', 'gui',
4178     oils_i18n_gettext('ui.general.idle_timeout',
4179         'Idle timeout',
4180         'coust', 'label'),
4181     oils_i18n_gettext('ui.general.idle_timeout',
4182         '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).',
4183         'coust', 'description'),
4184     'integer', null)
4185
4186 ,( 'ui.patron.default_country', 'gui',
4187     oils_i18n_gettext('ui.patron.default_country',
4188         'Default Country for New Addresses in Patron Editor',
4189         'coust', 'label'),
4190     oils_i18n_gettext('ui.patron.default_country',
4191         'This is the default Country for new addresses in the patron editor.',
4192         'coust', 'description'),
4193     'string', null)
4194
4195 ,( 'ui.patron.default_ident_type', 'gui',
4196     oils_i18n_gettext('ui.patron.default_ident_type',
4197         'Default Ident Type for Patron Registration',
4198         'coust', 'label'),
4199     oils_i18n_gettext('ui.patron.default_ident_type',
4200         'This is the default Ident Type for new users in the patron editor.',
4201         'coust', 'description'),
4202     'link', 'cit')
4203
4204 ,( 'ui.patron.default_inet_access_level', 'sec',
4205     oils_i18n_gettext('ui.patron.default_inet_access_level',
4206         'Default level of patrons'' internet access',
4207         'coust', 'label'),
4208     oils_i18n_gettext('ui.patron.default_inet_access_level',
4209         'Default level of patrons'' internet access',
4210         'coust', 'description'),
4211     'integer', null)
4212
4213 ,( 'ui.patron.edit.au.active.show', 'gui',
4214     oils_i18n_gettext('ui.patron.edit.au.active.show',
4215         'Show active field on patron registration',
4216         'coust', 'label'),
4217     oils_i18n_gettext('ui.patron.edit.au.active.show',
4218         '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.',
4219         'coust', 'description'),
4220     'bool', null)
4221
4222 ,( 'ui.patron.edit.au.active.suggest', 'gui',
4223     oils_i18n_gettext('ui.patron.edit.au.active.suggest',
4224         'Suggest active field on patron registration',
4225         'coust', 'label'),
4226     oils_i18n_gettext('ui.patron.edit.au.active.suggest',
4227         '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.',
4228         'coust', 'description'),
4229     'bool', null)
4230
4231 ,( 'ui.patron.edit.au.alert_message.show', 'gui',
4232     oils_i18n_gettext('ui.patron.edit.au.alert_message.show',
4233         'Show alert_message field on patron registration',
4234         'coust', 'label'),
4235     oils_i18n_gettext('ui.patron.edit.au.alert_message.show',
4236         '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.',
4237         'coust', 'description'),
4238     'bool', null)
4239
4240 ,( 'ui.patron.edit.au.alert_message.suggest', 'gui',
4241     oils_i18n_gettext('ui.patron.edit.au.alert_message.suggest',
4242         'Suggest alert_message field on patron registration',
4243         'coust', 'label'),
4244     oils_i18n_gettext('ui.patron.edit.au.alert_message.suggest',
4245         '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.',
4246         'coust', 'description'),
4247     'bool', null)
4248
4249 ,( 'ui.patron.edit.au.alias.show', 'gui',
4250     oils_i18n_gettext('ui.patron.edit.au.alias.show',
4251         'Show alias field on patron registration',
4252         'coust', 'label'),
4253     oils_i18n_gettext('ui.patron.edit.au.alias.show',
4254         '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.',
4255         'coust', 'description'),
4256     'bool', null)
4257
4258 ,( 'ui.patron.edit.au.alias.suggest', 'gui',
4259     oils_i18n_gettext('ui.patron.edit.au.alias.suggest',
4260         'Suggest alias field on patron registration',
4261         'coust', 'label'),
4262     oils_i18n_gettext('ui.patron.edit.au.alias.suggest',
4263         '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.',
4264         'coust', 'description'),
4265     'bool', null)
4266
4267 ,( 'ui.patron.edit.au.barred.show', 'gui',
4268     oils_i18n_gettext('ui.patron.edit.au.barred.show',
4269         'Show barred field on patron registration',
4270         'coust', 'label'),
4271     oils_i18n_gettext('ui.patron.edit.au.barred.show',
4272         '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.',
4273         'coust', 'description'),
4274     'bool', null)
4275
4276 ,( 'ui.patron.edit.au.barred.suggest', 'gui',
4277     oils_i18n_gettext('ui.patron.edit.au.barred.suggest',
4278         'Suggest barred field on patron registration',
4279         'coust', 'label'),
4280     oils_i18n_gettext('ui.patron.edit.au.barred.suggest',
4281         '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.',
4282         'coust', 'description'),
4283     'bool', null)
4284
4285 ,( 'ui.patron.edit.au.claims_never_checked_out_count.show', 'gui',
4286     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.show',
4287         'Show claims_never_checked_out_count field on patron registration',
4288         'coust', 'label'),
4289     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.show',
4290         '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.',
4291         'coust', 'description'),
4292     'bool', null)
4293
4294 ,( 'ui.patron.edit.au.claims_never_checked_out_count.suggest', 'gui',
4295     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.suggest',
4296         'Suggest claims_never_checked_out_count field on patron registration',
4297         'coust', 'label'),
4298     oils_i18n_gettext('ui.patron.edit.au.claims_never_checked_out_count.suggest',
4299         '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.',
4300         'coust', 'description'),
4301     'bool', null)
4302
4303 ,( 'ui.patron.edit.au.claims_returned_count.show', 'gui',
4304     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.show',
4305         'Show claims_returned_count field on patron registration',
4306         'coust', 'label'),
4307     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.show',
4308         '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.',
4309         'coust', 'description'),
4310     'bool', null)
4311
4312 ,( 'ui.patron.edit.au.claims_returned_count.suggest', 'gui',
4313     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.suggest',
4314         'Suggest claims_returned_count field on patron registration',
4315         'coust', 'label'),
4316     oils_i18n_gettext('ui.patron.edit.au.claims_returned_count.suggest',
4317         '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.',
4318         'coust', 'description'),
4319     'bool', null)
4320
4321 ,( 'ui.patron.edit.ac.barcode.regex', 'gui',
4322     oils_i18n_gettext('ui.patron.edit.ac.barcode.regex',
4323         'Regex for barcodes on patron registration',
4324         'coust', 'label'),
4325     oils_i18n_gettext('ui.patron.edit.ac.barcode.regex',
4326         'The Regular Expression for validation on barcodes in patron registration.',
4327         'coust', 'description'),
4328     'string', null)
4329
4330 ,( 'ui.patron.edit.au.day_phone.example', 'gui',
4331     oils_i18n_gettext('ui.patron.edit.au.day_phone.example',
4332         'Example for day_phone field on patron registration',
4333         'coust', 'label'),
4334     oils_i18n_gettext('ui.patron.edit.au.day_phone.example',
4335         'The Example for validation on the day_phone field in patron registration.',
4336         'coust', 'description'),
4337     'string', null)
4338
4339 ,( 'ui.patron.edit.au.day_phone.regex', 'gui',
4340     oils_i18n_gettext('ui.patron.edit.au.day_phone.regex',
4341         'Regex for day_phone field on patron registration',
4342         'coust', 'label'),
4343     oils_i18n_gettext('ui.patron.edit.au.day_phone.regex',
4344         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.',
4345         'coust', 'description'),
4346     'string', null)
4347
4348 ,( 'ui.patron.edit.au.day_phone.require', 'gui',
4349     oils_i18n_gettext('ui.patron.edit.au.day_phone.require',
4350         'Require day_phone field on patron registration',
4351         'coust', 'label'),
4352     oils_i18n_gettext('ui.patron.edit.au.day_phone.require',
4353         'The day_phone field will be required on the patron registration screen.',
4354         'coust', 'description'),
4355     'bool', null)
4356
4357 ,( 'ui.patron.edit.au.day_phone.show', 'gui',
4358     oils_i18n_gettext('ui.patron.edit.au.day_phone.show',
4359         'Show day_phone field on patron registration',
4360         'coust', 'label'),
4361     oils_i18n_gettext('ui.patron.edit.au.day_phone.show',
4362         '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.',
4363         'coust', 'description'),
4364     'bool', null)
4365
4366 ,( 'ui.patron.edit.au.day_phone.suggest', 'gui',
4367     oils_i18n_gettext('ui.patron.edit.au.day_phone.suggest',
4368         'Suggest day_phone field on patron registration',
4369         'coust', 'label'),
4370     oils_i18n_gettext('ui.patron.edit.au.day_phone.suggest',
4371         '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.',
4372         'coust', 'description'),
4373     'bool', null)
4374
4375 ,( 'ui.patron.edit.au.dob.calendar', 'gui',
4376     oils_i18n_gettext('ui.patron.edit.au.dob.calendar',
4377         'Show calendar widget for dob field on patron registration',
4378         'coust', 'label'),
4379     oils_i18n_gettext('ui.patron.edit.au.dob.calendar',
4380         'If set the calendar widget will appear when editing the dob field on the patron registration form.',
4381         'coust', 'description'),
4382     'bool', null)
4383
4384 ,( 'ui.patron.edit.au.dob.require', 'gui',
4385     oils_i18n_gettext('ui.patron.edit.au.dob.require',
4386         'Require dob field on patron registration',
4387         'coust', 'label'),
4388     oils_i18n_gettext('ui.patron.edit.au.dob.require',
4389         'The dob field will be required on the patron registration screen.',
4390         'coust', 'description'),
4391     'bool', null)
4392
4393 ,( 'ui.patron.edit.au.dob.show', 'gui',
4394     oils_i18n_gettext('ui.patron.edit.au.dob.show',
4395         'Show dob field on patron registration',
4396         'coust', 'label'),
4397     oils_i18n_gettext('ui.patron.edit.au.dob.show',
4398         '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.',
4399         'coust', 'description'),
4400     'bool', null)
4401
4402 ,( 'ui.patron.edit.au.dob.suggest', 'gui',
4403     oils_i18n_gettext('ui.patron.edit.au.dob.suggest',
4404         'Suggest dob field on patron registration',
4405         'coust', 'label'),
4406     oils_i18n_gettext('ui.patron.edit.au.dob.suggest',
4407         '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.',
4408         'coust', 'description'),
4409     'bool', null)
4410
4411 ,( 'ui.patron.edit.au.email.example', 'gui',
4412     oils_i18n_gettext('ui.patron.edit.au.email.example',
4413         'Example for email field on patron registration',
4414         'coust', 'label'),
4415     oils_i18n_gettext('ui.patron.edit.au.email.example',
4416         'The Example for validation on the email field in patron registration.',
4417         'coust', 'description'),
4418     'string', null)
4419
4420 ,( 'ui.patron.edit.au.email.regex', 'gui',
4421     oils_i18n_gettext('ui.patron.edit.au.email.regex',
4422         'Regex for email field on patron registration',
4423         'coust', 'label'),
4424     oils_i18n_gettext('ui.patron.edit.au.email.regex',
4425         'The Regular Expression for validation on the email field in patron registration.',
4426         'coust', 'description'),
4427     'string', null)
4428
4429 ,( 'ui.patron.edit.au.email.require', 'gui',
4430     oils_i18n_gettext('ui.patron.edit.au.email.require',
4431         'Require email field on patron registration',
4432         'coust', 'label'),
4433     oils_i18n_gettext('ui.patron.edit.au.email.require',
4434         'The email field will be required on the patron registration screen.',
4435         'coust', 'description'),
4436     'bool', null)
4437
4438 ,( 'ui.patron.edit.au.email.show', 'gui',
4439     oils_i18n_gettext('ui.patron.edit.au.email.show',
4440         'Show email field on patron registration',
4441         'coust', 'label'),
4442     oils_i18n_gettext('ui.patron.edit.au.email.show',
4443         '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.',
4444         'coust', 'description'),
4445     'bool', null)
4446
4447 ,( 'ui.patron.edit.au.email.suggest', 'gui',
4448     oils_i18n_gettext('ui.patron.edit.au.email.suggest',
4449         'Suggest email field on patron registration',
4450         'coust', 'label'),
4451     oils_i18n_gettext('ui.patron.edit.au.email.suggest',
4452         '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.',
4453         'coust', 'description'),
4454     'bool', null)
4455
4456 ,( 'ui.patron.edit.au.evening_phone.example', 'gui',
4457     oils_i18n_gettext('ui.patron.edit.au.evening_phone.example',
4458         'Example for evening_phone field on patron registration',
4459         'coust', 'label'),
4460     oils_i18n_gettext('ui.patron.edit.au.evening_phone.example',
4461         'The Example for validation on the evening_phone field in patron registration.',
4462         'coust', 'description'),
4463     'string', null)
4464
4465 ,( 'ui.patron.edit.au.evening_phone.regex', 'gui',
4466     oils_i18n_gettext('ui.patron.edit.au.evening_phone.regex',
4467         'Regex for evening_phone field on patron registration',
4468         'coust', 'label'),
4469     oils_i18n_gettext('ui.patron.edit.au.evening_phone.regex',
4470         'The Regular Expression for validation on the evening_phone field in patron registration.',
4471         'coust', 'description'),
4472     'string', null)
4473
4474 ,( 'ui.patron.edit.au.evening_phone.require', 'gui',
4475     oils_i18n_gettext('ui.patron.edit.au.evening_phone.require',
4476         'Require evening_phone field on patron registration',
4477         'coust', 'label'),
4478     oils_i18n_gettext('ui.patron.edit.au.evening_phone.require',
4479         'The evening_phone field will be required on the patron registration screen.',
4480         'coust', 'description'),
4481     'bool', null)
4482
4483 ,( 'ui.patron.edit.au.evening_phone.show', 'gui',
4484     oils_i18n_gettext('ui.patron.edit.au.evening_phone.show',
4485         'Show evening_phone field on patron registration',
4486         'coust', 'label'),
4487     oils_i18n_gettext('ui.patron.edit.au.evening_phone.show',
4488         '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.',
4489         'coust', 'description'),
4490     'bool', null)
4491
4492 ,( 'ui.patron.edit.au.evening_phone.suggest', 'gui',
4493     oils_i18n_gettext('ui.patron.edit.au.evening_phone.suggest',
4494         'Suggest evening_phone field on patron registration',
4495         'coust', 'label'),
4496     oils_i18n_gettext('ui.patron.edit.au.evening_phone.suggest',
4497         '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.',
4498         'coust', 'description'),
4499     'bool', null)
4500
4501 ,( 'ui.patron.edit.au.ident_value.show', 'gui',
4502     oils_i18n_gettext('ui.patron.edit.au.ident_value.show',
4503         'Show ident_value field on patron registration',
4504         'coust', 'label'),
4505     oils_i18n_gettext('ui.patron.edit.au.ident_value.show',
4506         '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.',
4507         'coust', 'description'),
4508     'bool', null)
4509
4510 ,( 'ui.patron.edit.au.ident_value.suggest', 'gui',
4511     oils_i18n_gettext('ui.patron.edit.au.ident_value.suggest',
4512         'Suggest ident_value field on patron registration',
4513         'coust', 'label'),
4514     oils_i18n_gettext('ui.patron.edit.au.ident_value.suggest',
4515         '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.',
4516         'coust', 'description'),
4517     'bool', null)
4518
4519 ,( 'ui.patron.edit.au.ident_value2.show', 'gui',
4520     oils_i18n_gettext('ui.patron.edit.au.ident_value2.show',
4521         'Show ident_value2 field on patron registration',
4522         'coust', 'label'),
4523     oils_i18n_gettext('ui.patron.edit.au.ident_value2.show',
4524         '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.',
4525         'coust', 'description'),
4526     'bool', null)
4527
4528 ,( 'ui.patron.edit.au.ident_value2.suggest', 'gui',
4529     oils_i18n_gettext('ui.patron.edit.au.ident_value2.suggest',
4530         'Suggest ident_value2 field on patron registration',
4531         'coust', 'label'),
4532     oils_i18n_gettext('ui.patron.edit.au.ident_value2.suggest',
4533         '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.',
4534         'coust', 'description'),
4535     'bool', null)
4536
4537 ,( 'ui.patron.edit.au.juvenile.show', 'gui',
4538     oils_i18n_gettext('ui.patron.edit.au.juvenile.show',
4539         'Show juvenile field on patron registration',
4540         'coust', 'label'),
4541     oils_i18n_gettext('ui.patron.edit.au.juvenile.show',
4542         '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.',
4543         'coust', 'description'),
4544     'bool', null)
4545
4546 ,( 'ui.patron.edit.au.juvenile.suggest', 'gui',
4547     oils_i18n_gettext('ui.patron.edit.au.juvenile.suggest',
4548         'Suggest juvenile field on patron registration',
4549         'coust', 'label'),
4550     oils_i18n_gettext('ui.patron.edit.au.juvenile.suggest',
4551         '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.',
4552         'coust', 'description'),
4553     'bool', null)
4554
4555 ,( 'ui.patron.edit.au.master_account.show', 'gui',
4556     oils_i18n_gettext('ui.patron.edit.au.master_account.show',
4557         'Show master_account field on patron registration',
4558         'coust', 'label'),
4559     oils_i18n_gettext('ui.patron.edit.au.master_account.show',
4560         '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.',
4561         'coust', 'description'),
4562     'bool', null)
4563
4564 ,( 'ui.patron.edit.au.master_account.suggest', 'gui',
4565     oils_i18n_gettext('ui.patron.edit.au.master_account.suggest',
4566         'Suggest master_account field on patron registration',
4567         'coust', 'label'),
4568     oils_i18n_gettext('ui.patron.edit.au.master_account.suggest',
4569         '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.',
4570         'coust', 'description'),
4571     'bool', null)
4572
4573 ,( 'ui.patron.edit.au.other_phone.example', 'gui',
4574     oils_i18n_gettext('ui.patron.edit.au.other_phone.example',
4575         'Example for other_phone field on patron registration',
4576         'coust', 'label'),
4577     oils_i18n_gettext('ui.patron.edit.au.other_phone.example',
4578         'The Example for validation on the other_phone field in patron registration.',
4579         'coust', 'description'),
4580     'string', null)
4581
4582 ,( 'ui.patron.edit.au.other_phone.regex', 'gui',
4583     oils_i18n_gettext('ui.patron.edit.au.other_phone.regex',
4584         'Regex for other_phone field on patron registration',
4585         'coust', 'label'),
4586     oils_i18n_gettext('ui.patron.edit.au.other_phone.regex',
4587         'The Regular Expression for validation on the other_phone field in patron registration.',
4588         'coust', 'description'),
4589     'string', null)
4590
4591 ,( 'ui.patron.edit.au.other_phone.require', 'gui',
4592     oils_i18n_gettext('ui.patron.edit.au.other_phone.require',
4593         'Require other_phone field on patron registration',
4594         'coust', 'label'),
4595     oils_i18n_gettext('ui.patron.edit.au.other_phone.require',
4596         'The other_phone field will be required on the patron registration screen.',
4597         'coust', 'description'),
4598     'bool', null)
4599
4600 ,( 'ui.patron.edit.au.other_phone.show', 'gui',
4601     oils_i18n_gettext('ui.patron.edit.au.other_phone.show',
4602         'Show other_phone field on patron registration',
4603         'coust', 'label'),
4604     oils_i18n_gettext('ui.patron.edit.au.other_phone.show',
4605         '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.',
4606         'coust', 'description'),
4607     'bool', null)
4608
4609 ,( 'ui.patron.edit.au.other_phone.suggest', 'gui',
4610     oils_i18n_gettext('ui.patron.edit.au.other_phone.suggest',
4611         'Suggest other_phone field on patron registration',
4612         'coust', 'label'),
4613     oils_i18n_gettext('ui.patron.edit.au.other_phone.suggest',
4614         '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.',
4615         'coust', 'description'),
4616     'bool', null)
4617
4618 ,( 'ui.patron.edit.au.prefix.require', 'gui',
4619     oils_i18n_gettext('ui.patron.edit.au.prefix.require',
4620         'Require prefix field on patron registration',
4621         'coust', 'label'),
4622     oils_i18n_gettext('ui.patron.edit.au.prefix.require',
4623         'The prefix field will be required on the patron registration screen.',
4624         'coust', 'description'),
4625     'bool', null)
4626         
4627 ,( 'ui.patron.edit.au.prefix.show', 'gui',
4628     oils_i18n_gettext('ui.patron.edit.au.prefix.show',
4629         'Show prefix field on patron registration',
4630         'coust', 'label'),
4631     oils_i18n_gettext('ui.patron.edit.au.prefix.show',
4632         '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.',
4633         'coust', 'description'),
4634     'bool', null)
4635
4636 ,( 'ui.patron.edit.au.prefix.suggest', 'gui',
4637     oils_i18n_gettext('ui.patron.edit.au.prefix.suggest',
4638         'Suggest prefix field on patron registration',
4639         'coust', 'label'),
4640     oils_i18n_gettext('ui.patron.edit.au.prefix.suggest',
4641         '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.',
4642         'coust', 'description'),
4643     'bool', null)
4644
4645 ,( 'ui.patron.edit.au.second_given_name.show', 'gui',
4646     oils_i18n_gettext('ui.patron.edit.au.second_given_name.show',
4647         'Show second_given_name field on patron registration',
4648         'coust', 'label'),
4649     oils_i18n_gettext('ui.patron.edit.au.second_given_name.show',
4650         '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.',
4651         'coust', 'description'),
4652     'bool', null)
4653
4654 ,( 'ui.patron.edit.au.second_given_name.suggest', 'gui',
4655     oils_i18n_gettext('ui.patron.edit.au.second_given_name.suggest',
4656         'Suggest second_given_name field on patron registration',
4657         'coust', 'label'),
4658     oils_i18n_gettext('ui.patron.edit.au.second_given_name.suggest',
4659         '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.',
4660         'coust', 'description'),
4661     'bool', null)
4662
4663 ,( 'ui.patron.edit.au.suffix.show', 'gui',
4664     oils_i18n_gettext('ui.patron.edit.au.suffix.show',
4665         'Show suffix field on patron registration',
4666         'coust', 'label'),
4667     oils_i18n_gettext('ui.patron.edit.au.suffix.show',
4668         '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.',
4669         'coust', 'description'),
4670     'bool', null)
4671
4672 ,( 'ui.patron.edit.au.suffix.suggest', 'gui',
4673     oils_i18n_gettext('ui.patron.edit.au.suffix.suggest',
4674         'Suggest suffix field on patron registration',
4675         'coust', 'label'),
4676     oils_i18n_gettext('ui.patron.edit.au.suffix.suggest',
4677         '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.',
4678         'coust', 'description'),
4679     'bool', null)
4680
4681 ,( 'ui.patron.edit.aua.county.require', 'gui',
4682     oils_i18n_gettext('ui.patron.edit.aua.county.require',
4683         'Require county field on patron registration',
4684         'coust', 'label'),
4685     oils_i18n_gettext('ui.patron.edit.aua.county.require',
4686         'The county field will be required on the patron registration screen.',
4687         'coust', 'description'),
4688     'bool', null)
4689
4690 ,( 'ui.patron.edit.aua.state.require', 'gui',
4691     oils_i18n_gettext('ui.patron.edit.aua.state.require',
4692         'Require State field on patron registration',
4693         'coust', 'label'),
4694     oils_i18n_gettext('ui.patron.edit.aua.state.require',
4695         'The State field will be required on the patron registration screen.',
4696         'coust', 'description'),
4697     'bool', null)
4698
4699 ,( 'ui.patron.edit.aua.state.show', 'gui',
4700     oils_i18n_gettext('ui.patron.edit.aua.state.show',
4701         'Show State field on patron registration',
4702         'coust', 'label'),
4703     oils_i18n_gettext('ui.patron.edit.aua.state.show',
4704         'The State 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.',
4705         'coust', 'description'),
4706     'bool', null)
4707
4708 ,( 'ui.patron.edit.aua.state.suggest', 'gui',
4709     oils_i18n_gettext('ui.patron.edit.aua.state.suggest',
4710         'Suggest State field on patron registration',
4711         'coust', 'label'),
4712     oils_i18n_gettext('ui.patron.edit.aua.state.suggest',
4713         'The State 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.',
4714         'coust', 'description'),
4715     'bool', null)
4716
4717 ,( 'ui.patron.edit.aua.post_code.example', 'gui',
4718     oils_i18n_gettext('ui.patron.edit.aua.post_code.example',
4719         'Example for post_code field on patron registration',
4720         'coust', 'label'),
4721     oils_i18n_gettext('ui.patron.edit.aua.post_code.example',
4722         'The Example for validation on the post_code field in patron registration.',
4723         'coust', 'description'),
4724     'string', null)
4725
4726 ,( 'ui.patron.edit.aua.post_code.regex', 'gui',
4727     oils_i18n_gettext('ui.patron.edit.aua.post_code.regex',
4728         'Regex for post_code field on patron registration',
4729         'coust', 'label'),
4730     oils_i18n_gettext('ui.patron.edit.aua.post_code.regex',
4731         'The Regular Expression for validation on the post_code field in patron registration.',
4732         'coust', 'description'),
4733     'string', null)
4734
4735 ,( 'ui.patron.edit.default_suggested', 'gui',
4736     oils_i18n_gettext('ui.patron.edit.default_suggested',
4737         'Default showing suggested patron registration fields',
4738         'coust', 'label'),
4739     oils_i18n_gettext('ui.patron.edit.default_suggested',
4740         'Instead of All fields, show just suggested fields in patron registration by default.',
4741         'coust', 'description'),
4742     'bool', null)
4743
4744 ,( 'ui.patron.edit.phone.example', 'gui',
4745     oils_i18n_gettext('ui.patron.edit.phone.example',
4746         'Example for phone fields on patron registration',
4747         'coust', 'label'),
4748     oils_i18n_gettext('ui.patron.edit.phone.example',
4749         'The Example for validation on phone fields in patron registration. Applies to all phone fields without their own setting.',
4750         'coust', 'description'),
4751     'string', null)
4752
4753 ,( 'ui.patron.edit.phone.regex', 'gui',
4754     oils_i18n_gettext('ui.patron.edit.phone.regex',
4755         'Regex for phone fields on patron registration',
4756         'coust', 'label'),
4757     oils_i18n_gettext('ui.patron.edit.phone.regex',
4758         '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.',
4759         'coust', 'description'),
4760     'string', null)
4761
4762 ,( 'ui.patron.registration.require_address', 'gui',
4763     oils_i18n_gettext('ui.patron.registration.require_address',
4764         'Require at least one address for Patron Registration',
4765         'coust', 'label'),
4766     oils_i18n_gettext('ui.patron.registration.require_address',
4767         'Enforces a requirement for having at least one address for a patron during registration.',
4768         'coust', 'description'),
4769     'bool', null)
4770
4771 ,( 'ui.patron_search.result_cap', 'gui',
4772     oils_i18n_gettext('ui.patron_search.result_cap',
4773         'Cap results in Patron Search at this number.',
4774         'coust', 'label'),
4775     oils_i18n_gettext('ui.patron_search.result_cap',
4776         '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.',
4777         'coust', 'description'),
4778     'integer', null)
4779
4780 ,( 'ui.staff.require_initials', 'gui',
4781     oils_i18n_gettext('ui.staff.require_initials',
4782         'Require staff initials for entry/edit of item/patron/penalty notes/messages.',
4783         'coust', 'label'),
4784     oils_i18n_gettext('ui.staff.require_initials',
4785         'Appends staff initials and edit date into note content.',
4786         'coust', 'description'),
4787     'bool', null)
4788
4789 ,( 'ui.unified_volume_copy_editor', 'gui',
4790     oils_i18n_gettext('ui.unified_volume_copy_editor',
4791         'Unified Volume/Item Creator/Editor',
4792         'coust', 'label'),
4793     oils_i18n_gettext('ui.unified_volume_copy_editor',
4794         'If true combines the Volume/Copy Creator and Item Attribute Editor in some instances.',
4795         'coust', 'description'),
4796     'bool', null)
4797
4798 ,( 'url.remote_column_settings', 'gui',
4799     oils_i18n_gettext('url.remote_column_settings',
4800         'URL for remote directory containing list column settings.',
4801         'coust', 'label'),
4802     oils_i18n_gettext('url.remote_column_settings',
4803         '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.',
4804         'coust', 'description'),
4805     'string', null)
4806 ,( 'opac.staff_saved_search.size', 'opac',
4807     oils_i18n_gettext('opac.staff_saved_search.size',
4808         'OPAC: Number of staff client saved searches to display on left side of results and record details pages',
4809         'coust', 'label'),
4810     oils_i18n_gettext('opac.staff_saved_search.size',
4811         '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.',
4812         'coust', 'description'),
4813     'integer', null)
4814 ,( 'circ.holds.target_when_closed', 'circ',
4815     oils_i18n_gettext('circ.holds.target_when_closed',
4816         'Target copies for a hold even if copy''s circ lib is closed',
4817         'coust', 'label'),
4818     oils_i18n_gettext('circ.holds.target_when_closed',
4819         '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).',
4820         'coust', 'description'),
4821     'bool', null)
4822 ,( 'circ.holds.target_when_closed_if_at_pickup_lib', 'circ',
4823     oils_i18n_gettext('circ.holds.target_when_closed_if_at_pickup_lib',
4824         'Target copies for a hold even if copy''s circ lib is closed IF the circ lib is the hold''s pickup lib',
4825         'coust', 'label'),
4826     oils_i18n_gettext('circ.holds.target_when_closed_if_at_pickup_lib',
4827         '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.',
4828         'coust', 'description'),
4829     'bool', null)
4830
4831
4832 ,( 'opac.staff.jump_to_details_on_single_hit', 'opac',
4833     oils_i18n_gettext('opac.staff.jump_to_details_on_single_hit',
4834         'Jump to details on 1 hit (staff client)',
4835         'coust', 'label'),
4836     oils_i18n_gettext('opac.staff.jump_to_details_on_single_hit',
4837         'When a search yields only 1 result, jump directly to the record details page.  This setting only affects the OPAC within the staff client',
4838         'coust', 'description'),
4839     'bool', null)
4840 ,( 'opac.patron.jump_to_details_on_single_hit', 'opac',
4841     oils_i18n_gettext('opac.patron.jump_to_details_on_single_hit',
4842         'Jump to details on 1 hit (public)',
4843         'coust', 'label'),
4844     oils_i18n_gettext('opac.patron.jump_to_details_on_single_hit',
4845         'When a search yields only 1 result, jump directly to the record details page.  This setting only affects the public OPAC',
4846         'coust', 'description'),
4847     'bool', null)
4848
4849 ,( 'opac.search.tag_circulated_items', 'opac',
4850     oils_i18n_gettext(
4851         'opac.search.tag_circulated_items',
4852         'Tag Circulated Items in Results',
4853         'coust', 'label'
4854     ),
4855     oils_i18n_gettext(
4856         'opac.search.tag_circulated_items',
4857         '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',
4858         'coust', 'description'
4859     ),
4860     'bool', null)
4861
4862 ,( 'sms.enable', 'sms',
4863     oils_i18n_gettext(
4864         'sms.enable',
4865         'Enable features that send SMS text messages.',
4866         'coust',
4867         'label'
4868     ),
4869     oils_i18n_gettext(
4870         'sms.enable',
4871         '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.',
4872         'coust',
4873         'description'
4874     ),
4875     'bool', null)
4876 ,( 'sms.disable_authentication_requirement.callnumbers', 'sms',
4877     oils_i18n_gettext(
4878         'sms.disable_authentication_requirement.callnumbers',
4879         'Disable auth requirement for texting call numbers.',
4880         'coust',
4881         'label'
4882     ),
4883     oils_i18n_gettext(
4884         'sms.disable_authentication_requirement.callnumbers',
4885         'Disable authentication requirement for sending call number information via SMS from the OPAC.',
4886         'coust',
4887         'description'
4888     ),
4889     'bool', null)
4890 ,( 'serial.default_display_grouping', 'serial',
4891     oils_i18n_gettext(
4892         'serial.default_display_grouping',
4893         'Default display grouping for serials distributions presented in the OPAC.',
4894         'coust',
4895         'label'
4896     ),
4897     oils_i18n_gettext(
4898         'serial.default_display_grouping',
4899         'Default display grouping for serials distributions presented in the OPAC. This can be "enum" or "chron".',
4900         'coust',
4901         'description'
4902     ),
4903     'string', null)
4904 ,( 'vandelay.default_match_set', 'vandelay',
4905     oils_i18n_gettext(
4906         'vandelay.default_match_set',
4907         'Default Record Match Set',
4908         'coust',
4909         'label'
4910     ),
4911     oils_i18n_gettext(
4912         'vandelay.default_match_set',
4913         'Default Record Match Set',
4914         'coust',
4915         'description'
4916     ),
4917     'string', null)
4918 ,( 'opac.browse.pager_shortcuts', 'opac',
4919     oils_i18n_gettext(
4920         'opac.browse.pager_shortcuts',
4921         'Paging shortcut links for OPAC Browse',
4922         'coust',
4923         'label'
4924     ),
4925     oils_i18n_gettext(
4926         '',
4927         'The characters in this string, in order, will be used as shortcut links for quick paging in the OPAC browse interface. Any sequence surrounded by asterisks will be taken as a whole label, not split into individual labels at the character level, but only the first character will serve as the basis of the search.',
4928         'coust',
4929         'description'
4930     ),
4931     'string', null)
4932
4933 ,( 'circ.patron_edit.duplicate_patron_check_depth', 'circ',
4934     oils_i18n_gettext(
4935         'circ.patron_edit.duplicate_patron_check_depth',
4936         'Specify search depth for the duplicate patron check in the patron editor',
4937         'coust',
4938         'label'),
4939     oils_i18n_gettext(
4940         'circ.patron_edit.duplicate_patron_check_depth',
4941         'When using the patron registration page, the duplicate patron check will use the configured depth to scope the search for duplicate patrons.',
4942         'coust',
4943         'description'),
4944     'integer', null)
4945 ;
4946
4947 UPDATE config.org_unit_setting_type
4948     SET view_perm = (SELECT id FROM permission.perm_list
4949         WHERE code = 'VIEW_CREDIT_CARD_PROCESSING' LIMIT 1)
4950     WHERE name LIKE 'credit.processor%' AND view_perm IS NULL;
4951
4952 UPDATE config.org_unit_setting_type
4953     SET update_perm = (SELECT id FROM permission.perm_list
4954         WHERE code = 'ADMIN_CREDIT_CARD_PROCESSING' LIMIT 1)
4955     WHERE name LIKE 'credit.processor%' AND update_perm IS NULL;
4956
4957 -- *** Has to go below coust definition to satisfy referential integrity ***
4958 -- In booking, elbow room defines:
4959 --  a) how far in the future you must make a reservation on a given item if
4960 --      that item will have to transit somewhere to fulfill the reservation.
4961 --  b) how soon a reservation must be starting for the reserved item to
4962 --      be op-captured by the checkin interface.
4963 INSERT INTO actor.org_unit_setting (org_unit, name, value) VALUES (
4964     (SELECT id FROM actor.org_unit WHERE parent_ou IS NULL),
4965     'circ.booking_reservation.default_elbow_room',
4966     '"1 day"')
4967     ,(1, 'cat.spine.line.margin', 0)
4968     ,(1, 'cat.spine.line.height', 9)
4969     ,(1, 'cat.spine.line.width', 8)
4970     ,(1, 'cat.label.font.family', '"monospace"')
4971     ,(1, 'cat.label.font.size', 10)
4972     ,(1, 'cat.label.font.weight', '"normal"')
4973     ,(1, 'circ.grace.extend', 'true')
4974 ;
4975
4976
4977 -- Staged Search (for default matchpoints)
4978 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(1, 'first_word', 1.5);
4979 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(1, 'full_match', 20);
4980
4981 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(2, 'first_word', 1.5);
4982 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(2, 'word_order', 10);
4983 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(2, 'full_match', 20);
4984
4985 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(3, 'first_word', 1.5);
4986 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(3, 'word_order', 10);
4987 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(3, 'full_match', 20);
4988
4989 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(4, 'first_word', 1.5);
4990 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(4, 'word_order', 10);
4991 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(4, 'full_match', 20);
4992
4993 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(5, 'first_word', 1.5);
4994 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(5, 'word_order', 10);
4995 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(5, 'full_match', 20);
4996
4997 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(6, 'first_word', 1.5);
4998 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(6, 'word_order', 10);
4999 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(6, 'full_match', 20);
5000
5001 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(7, 'first_word', 1.5);
5002
5003 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(8, 'first_word', 1.5);
5004
5005 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(9, 'first_word', 1.5);
5006
5007 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(10, 'first_word', 1.5);
5008
5009 INSERT INTO search.relevance_adjustment (field, bump_type, multiplier) VALUES(15, 'word_order', 10);
5010
5011 -- Vandelay (for importing and exporting records) 012.schema.vandelay.sql 
5012 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)]');
5013 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)]');
5014 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]');
5015 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]');
5016 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$);
5017 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$);
5018 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]');
5019 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath) VALUES (8, 'rec_identifier',oils_i18n_gettext(8, 'Accession Number', 'vqbrad', 'description'),'//*[@tag="001"]');
5020 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"]');
5021 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"]');
5022 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"]');
5023 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]');
5024 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$);
5025 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]');
5026 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]');
5027 INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (16, 'zsource', oils_i18n_gettext(16, 'Z39.50 Source', 'vqbrad', 'description'), '//*[@tag="901"]/*[@code="z"]');
5028 SELECT SETVAL('vandelay.bib_attr_definition_id_seq'::TEXT, 100);
5029
5030 INSERT INTO vandelay.import_item_attr_definition (
5031     owner, name, tag, owning_lib, circ_lib, location,
5032     call_number, circ_modifier, barcode, price, copy_number,
5033     circulate, ref, holdable, opac_visible, status
5034 ) VALUES (
5035     1,
5036     'Evergreen 852 export format',
5037     '852',
5038     '[@code = "b"][1]',
5039     '[@code = "b"][2]',
5040     'c',
5041     'j',
5042     'g',
5043     'p',
5044     'y',
5045     't',
5046     '[@code = "x" and text() = "circulating"]',
5047     '[@code = "x" and text() = "reference"]',
5048     '[@code = "x" and text() = "holdable"]',
5049     '[@code = "x" and text() = "visible"]',
5050     'z'
5051 );
5052
5053 INSERT INTO vandelay.import_item_attr_definition (
5054     owner,
5055     name,
5056     tag,
5057     owning_lib,
5058     location,
5059     call_number,
5060     circ_modifier,
5061     barcode,
5062     price,
5063     status
5064 ) VALUES (
5065     1,
5066     'Unicorn Import format -- 999',
5067     '999',
5068     'm',
5069     'l',
5070     'a',
5071     't',
5072     'i',
5073     'p',
5074     'k'
5075 );
5076
5077 INSERT INTO vandelay.authority_attr_definition (id, code, description, xpath) VALUES (1, 'rec_identifier',oils_i18n_gettext(1, 'Identifier', 'vqarad', 'description'),'//*[@tag="001"]');
5078 SELECT SETVAL('vandelay.authority_attr_definition_id_seq'::TEXT, 100);
5079
5080
5081 INSERT INTO container.copy_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'ccpbt', 'label'));
5082 INSERT INTO container.copy_bucket_type (code,label) VALUES ('staff_client', oils_i18n_gettext('staff_client', 'General Staff Client container', 'ccpbt', 'label'));
5083 INSERT INTO container.copy_bucket_type (code,label) VALUES ( 'circ_history', 'Circulation History' );
5084 INSERT INTO container.call_number_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'ccnbt', 'label'));
5085 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'cbrebt', 'label'));
5086 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('staff_client', oils_i18n_gettext('staff_client', 'General Staff Client container', 'cbrebt', 'label'));
5087 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('bookbag', oils_i18n_gettext('bookbag', 'Book Bag', 'cbrebt', 'label'));
5088 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('reading_list', oils_i18n_gettext('reading_list', 'Reading List', 'cbrebt', 'label'));
5089 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('template_merge',oils_i18n_gettext('template_merge','Template Merge Container', 'cbrebt', 'label'));
5090 INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('url_verify', oils_i18n_gettext('url_verify', 'URL Verification Queue', 'cbrebt', 'label'));
5091
5092 INSERT INTO container.user_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'cubt', 'label'));
5093 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks', oils_i18n_gettext('folks', 'Friends', 'cubt', 'label'));
5094 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'));
5095 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'));
5096 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:circ.view', oils_i18n_gettext('folks:circ.view', 'View Circulations', 'cubt', 'label'));
5097 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:circ.renew', oils_i18n_gettext('folks:circ.renew', 'Renew Circulations', 'cubt', 'label'));
5098 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:circ.checkout', oils_i18n_gettext('folks:circ.checkout', 'Checkout Items', 'cubt', 'label'));
5099 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:hold.view', oils_i18n_gettext('folks:hold.view', 'View Holds', 'cubt', 'label'));
5100 INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:hold.cancel', oils_i18n_gettext('folks:hold.cancel', 'Cancel Holds', 'cubt', 'label'));
5101
5102
5103 ----------------------------------
5104 -- MARC21 record structure data --
5105 ----------------------------------
5106
5107 -- Record type map
5108 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('BKS','at','acdm');
5109 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('SER','a','bsi');
5110 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('VIS','gkro','abcdmsi');
5111 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('MIX','p','cdi');
5112 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('MAP','ef','abcdmsi');
5113 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('SCO','cd','abcdmsi');
5114 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('REC','ij','abcdmsi');
5115 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('COM','m','abcdmsi');
5116 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('AUT','z',' ');
5117 INSERT INTO config.marc21_rec_type_map (code, type_val, blvl_val) VALUES ('MFHD','uvxy',' ');
5118
5119
5120 ------ Physical Characteristics
5121
5122 -- Map
5123 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('a','Map');
5124 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','b','1','1','SMD');
5125 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Atlas');
5126 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Diagram');
5127 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Map');
5128 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Profile');
5129 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Model');
5130 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');
5131 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Section');
5132 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5133 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('y',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'View');
5134 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5135 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','d','3','1','Color');
5136 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');
5137 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5138 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','e','4','1','Physical medium');
5139 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5140 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
5141 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
5142 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
5143 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5144 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
5145 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
5146 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
5147 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');
5148 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');
5149 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');
5150 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');
5151 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5152 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');
5153 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5154 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','f','5','1','Type of reproduction');
5155 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Facsimile');
5156 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');
5157 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5158 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5159 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','g','6','1','Production/reproduction details');
5160 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');
5161 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Photocopy');
5162 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');
5163 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Film');
5164 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5165 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5166 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('a','h','7','1','Positive/negative');
5167 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Positive');
5168 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Negative');
5169 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5170 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');
5171
5172 -- Electronic Resource
5173 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('c','Electronic Resource');
5174 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','b','1','1','SMD');
5175 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');
5176 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');
5177 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');
5178 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');
5179 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');
5180 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');
5181 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');
5182 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');
5183 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Remote');
5184 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5185 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5186 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','d','3','1','Color');
5187 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');
5188 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');
5189 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5190 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');
5191 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5192 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');
5193 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5194 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5195 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','e','4','1','Dimensions');
5196 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.');
5197 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.');
5198 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.');
5199 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.');
5200 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.');
5201 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');
5202 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.');
5203 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5204 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.');
5205 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5206 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','f','5','1','Sound');
5207 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)');
5208 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Sound');
5209 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5210 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','g','6','3','Image bit depth');
5211 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('---',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5212 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('mmm',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multiple');
5213 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');
5214 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','h','9','1','File formats');
5215 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');
5216 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');
5217 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5218 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','i','10','1','Quality assurance target(s)');
5219 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Absent');
5220 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');
5221 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Present');
5222 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5223 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','j','11','1','Antecedent/Source');
5224 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');
5225 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');
5226 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');
5227 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)');
5228 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5229 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');
5230 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5231 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','k','12','1','Level of compression');
5232 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Uncompressed');
5233 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Lossless');
5234 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Lossy');
5235 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5236 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5237 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('c','l','13','1','Reformatting quality');
5238 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Access');
5239 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');
5240 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Preservation');
5241 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Replacement');
5242 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5243
5244 -- Globe
5245 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('d','Globe');
5246 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','b','1','1','SMD');
5247 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');
5248 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');
5249 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');
5250 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');
5251 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5252 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5253 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','d','3','1','Color');
5254 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');
5255 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5256 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','e','4','1','Physical medium');
5257 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5258 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
5259 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
5260 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
5261 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5262 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
5263 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
5264 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
5265 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5266 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5267 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('d','f','5','1','Type of reproduction');
5268 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Facsimile');
5269 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');
5270 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5271 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5272
5273 -- Tactile Material
5274 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('f','Tactile Material');
5275 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','b','1','1','SMD');
5276 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Moon');
5277 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Braille');
5278 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Combination');
5279 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');
5280 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5281 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5282 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','d','3','2','Class of braille writing');
5283 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');
5284 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');
5285 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');
5286 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');
5287 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');
5288 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');
5289 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');
5290 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5291 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5292 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','e','4','1','Level of contraction');
5293 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Uncontracted');
5294 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Contracted');
5295 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Combination');
5296 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');
5297 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5298 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5299 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','f','6','3','Braille music format');
5300 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');
5301 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');
5302 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');
5303 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paragraph');
5304 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');
5305 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');
5306 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');
5307 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');
5308 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');
5309 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');
5310 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Outline');
5311 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');
5312 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');
5313 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5314 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5315 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('f','g','9','1','Special physical characteristics');
5316 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');
5317 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');
5318 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');
5319 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5320 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5321
5322 -- Projected Graphic
5323 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('g','Projected Graphic');
5324 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','b','1','1','SMD');
5325 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');
5326 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Filmstrip');
5327 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Film filmstrip type');
5328 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');
5329 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Slide');
5330 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Transparency');
5331 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5332 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','d','3','1','Color');
5333 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');
5334 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5335 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');
5336 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5337 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');
5338 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5339 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5340 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','e','4','1','Base of emulsion');
5341 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5342 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5343 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');
5344 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');
5345 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');
5346 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5347 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5348 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5349 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');
5350 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');
5351 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');
5352 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5353 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','g','6','1','Medium for sound');
5354 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');
5355 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');
5356 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');
5357 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');
5358 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');
5359 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');
5360 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');
5361 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videotape');
5362 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
5363 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5364 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5365 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','h','7','1','Dimensions');
5366 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.');
5367 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.');
5368 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.');
5369 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.');
5370 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.');
5371 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.');
5372 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.');
5373 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.)');
5374 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.)');
5375 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.)');
5376 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.)');
5377 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5378 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.)');
5379 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.)');
5380 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.)');
5381 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.)');
5382 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5383 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('g','i','8','1','Secondary support material');
5384 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Cardboard');
5385 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5386 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5387 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'metal');
5388 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');
5389 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');
5390 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');
5391 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5392 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5393
5394 -- Microform
5395 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('h','Microform');
5396 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','b','1','1','SMD');
5397 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');
5398 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');
5399 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');
5400 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');
5401 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Microfiche');
5402 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');
5403 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Microopaque');
5404 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5405 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5406 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','d','3','1','Positive/negative');
5407 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Positive');
5408 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Negative');
5409 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
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_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','e','4','1','Dimensions');
5412 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.');
5413 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.');
5414 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.');
5415 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'70mm.');
5416 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.');
5417 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.)');
5418 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.)');
5419 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.)');
5420 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.)');
5421 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5422 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5423 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');
5424 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)');
5425 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)');
5426 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)');
5427 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)');
5428 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-)');
5429 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5430 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');
5431 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','g','9','1','Color');
5432 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');
5433 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5434 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5435 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5436 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5437 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','h','10','1','Emulsion on film');
5438 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');
5439 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Diazo');
5440 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Vesicular');
5441 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5442 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');
5443 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5444 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5445 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','i','11','1','Quality assurance target(s)');
5446 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');
5447 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');
5448 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');
5449 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');
5450 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5451 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('h','j','12','1','Base of film');
5452 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');
5453 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');
5454 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');
5455 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');
5456 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');
5457 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');
5458 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');
5459 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');
5460 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');
5461 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5462 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5463
5464 -- Non-projected Graphic
5465 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('k','Non-projected Graphic');
5466 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','b','1','1','SMD');
5467 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Collage');
5468 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Drawing');
5469 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Painting');
5470 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');
5471 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Photonegative');
5472 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Photoprint');
5473 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Picture');
5474 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('j',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Print');
5475 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');
5476 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('n',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Chart');
5477 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');
5478 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5479 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5480 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','d','3','1','Color');
5481 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');
5482 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');
5483 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5484 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');
5485 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5486 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5487 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5488 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','e','4','1','Primary support material');
5489 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Canvas');
5490 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');
5491 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');
5492 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5493 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5494 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
5495 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
5496 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
5497 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');
5498 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5499 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
5500 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Hardboard');
5501 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Porcelain');
5502 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
5503 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
5504 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5505 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5506 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('k','f','5','1','Secondary support material');
5507 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Canvas');
5508 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');
5509 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');
5510 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Glass');
5511 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Synthetics');
5512 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Skins');
5513 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Textile');
5514 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Metal');
5515 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');
5516 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Paper');
5517 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Plaster');
5518 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Hardboard');
5519 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Porcelain');
5520 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stone');
5521 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('t',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Wood');
5522 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5523 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5524
5525 -- Motion Picture
5526 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('m','Motion Picture');
5527 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','b','1','1','SMD');
5528 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');
5529 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');
5530 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');
5531 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5532 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5533 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','d','3','1','Color');
5534 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');
5535 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5536 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');
5537 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5538 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5539 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5540 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','e','4','1','Motion picture presentation format');
5541 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');
5542 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)');
5543 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'3D');
5544 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)');
5545 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');
5546 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');
5547 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5548 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5549 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');
5550 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');
5551 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');
5552 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5553 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','g','6','1','Medium for sound');
5554 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');
5555 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');
5556 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');
5557 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');
5558 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');
5559 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');
5560 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');
5561 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videotape');
5562 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
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 ('m','h','7','1','Dimensions');
5566 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.');
5567 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.');
5568 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.');
5569 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.');
5570 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.');
5571 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.');
5572 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.');
5573 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5574 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5575 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','i','8','1','Configuration of playback channels');
5576 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5577 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Monaural');
5578 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');
5579 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');
5580 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stereophonic');
5581 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5582 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5583 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('m','j','9','1','Production elements');
5584 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');
5585 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Trims');
5586 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Outtakes');
5587 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Rushes');
5588 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');
5589 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');
5590 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');
5591 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');
5592 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5593
5594 -- Remote-sensing Image
5595 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('r','Remote-sensing Image');
5596 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','b','1','1','SMD');
5597 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5598 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','d','3','1','Altitude of sensor');
5599 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Surface');
5600 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Airborne');
5601 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Spaceborne');
5602 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');
5603 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5604 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5605 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','e','4','1','Attitude of sensor');
5606 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');
5607 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');
5608 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Vertical');
5609 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');
5610 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5611 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','f','5','1','Cloud cover');
5612 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%');
5613 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%');
5614 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%');
5615 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%');
5616 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%');
5617 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%');
5618 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%');
5619 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%');
5620 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%');
5621 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%');
5622 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');
5623 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5624 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','g','6','1','Platform construction type');
5625 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Balloon');
5626 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');
5627 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');
5628 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');
5629 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');
5630 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');
5631 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');
5632 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');
5633 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');
5634 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');
5635 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5636 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5637 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','h','7','1','Platform use category');
5638 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Meteorological');
5639 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');
5640 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');
5641 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');
5642 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');
5643 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5644 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5645 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','i','8','1','Sensor type');
5646 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Active');
5647 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Passive');
5648 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5649 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5650 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('r','j','9','2','Data type');
5651 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');
5652 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');
5653 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');
5654 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');
5655 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');
5656 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)');
5657 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');
5658 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('dv',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Combinations');
5659 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');
5660 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)');
5661 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)');
5662 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)');
5663 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');
5664 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');
5665 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');
5666 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');
5667 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');
5668 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');
5669 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');
5670 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');
5671 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');
5672 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');
5673 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');
5674 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');
5675 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');
5676 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');
5677 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');
5678 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');
5679 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');
5680 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');
5681 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');
5682 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');
5683 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');
5684 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)');
5685 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');
5686 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('rc',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Bouger');
5687 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('rd',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Isostatic');
5688 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');
5689 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');
5690 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('uu',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5691 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('zz',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5692
5693 -- Sound Recording
5694 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('s','Sound Recording');
5695 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','b','1','1','SMD');
5696 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');
5697 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('e',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Cylinder');
5698 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');
5699 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');
5700 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Roll');
5701 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');
5702 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');
5703 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5704 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');
5705 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5706 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','d','3','1','Speed');
5707 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');
5708 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');
5709 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');
5710 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');
5711 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');
5712 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');
5713 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');
5714 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');
5715 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');
5716 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');
5717 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');
5718 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');
5719 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');
5720 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');
5721 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5722 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5723 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','e','4','1','Configuration of playback channels');
5724 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Monaural');
5725 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Quadraphonic');
5726 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stereophonic');
5727 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5728 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5729 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','f','5','1','Groove width or pitch');
5730 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');
5731 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');
5732 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');
5733 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5734 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5735 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','g','6','1','Dimensions');
5736 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.');
5737 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.');
5738 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.');
5739 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.');
5740 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.');
5741 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.');
5742 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.)');
5743 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.');
5744 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');
5745 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.');
5746 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.');
5747 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5748 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5749 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','h','7','1','Tape width');
5750 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.');
5751 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.');
5752 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');
5753 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.');
5754 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.');
5755 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5756 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5757 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','i','8','1','Tape configuration ');
5758 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');
5759 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');
5760 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');
5761 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');
5762 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');
5763 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');
5764 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');
5765 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5766 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5767 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','m','12','1','Special playback');
5768 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');
5769 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');
5770 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');
5771 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');
5772 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');
5773 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');
5774 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');
5775 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');
5776 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');
5777 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5778 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5779 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('s','n','13','1','Capture and storage');
5780 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');
5781 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');
5782 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');
5783 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');
5784 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5785 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5786
5787 -- Videorecording
5788 INSERT INTO config.marc21_physical_characteristic_type_map (ptype_key, label) VALUES ('v','Videorecording');
5789 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','b','1','1','SMD');
5790 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videocartridge');
5791 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
5792 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videocassette');
5793 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('r',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videoreel');
5794 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unspecified');
5795 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5796 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','d','3','1','Color');
5797 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');
5798 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('c',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Multicolored');
5799 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5800 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');
5801 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5802 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5803 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','e','4','1','Videorecording format');
5804 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('a',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Beta');
5805 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('b',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'VHS');
5806 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');
5807 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('d',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'EIAJ');
5808 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');
5809 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('f',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Quadruplex');
5810 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('g',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Laserdisc');
5811 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'CED');
5812 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Betacam');
5813 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');
5814 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');
5815 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');
5816 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');
5817 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.');
5818 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.');
5819 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');
5820 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5821 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('v',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'DVD');
5822 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5823 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');
5824 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');
5825 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');
5826 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5827 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','g','6','1','Medium for sound');
5828 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');
5829 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');
5830 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');
5831 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');
5832 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');
5833 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');
5834 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');
5835 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('h',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videotape');
5836 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('i',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Videodisc');
5837 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5838 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5839 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','h','7','1','Dimensions');
5840 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.');
5841 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.');
5842 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.');
5843 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.');
5844 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.');
5845 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.');
5846 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5847 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5848 INSERT INTO config.marc21_physical_characteristic_subfield_map (ptype_key,subfield,start_pos,length,label) VALUES ('v','i','8','1','Configuration of playback channel');
5849 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('k',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Mixed');
5850 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('m',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Monaural');
5851 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');
5852 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');
5853 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Stereophonic');
5854 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
5855 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
5856
5857 -- Fixed Field position data -- 0-based!
5858 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Alph', '006', 'SER', 16, 1, ' ');
5859 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Alph', '008', 'SER', 33, 1, ' ');
5860 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'BKS', 5, 1, ' ');
5861 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'COM', 5, 1, ' ');
5862 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'REC', 5, 1, ' ');
5863 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'SCO', 5, 1, ' ');
5864 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'SER', 5, 1, ' ');
5865 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '006', 'VIS', 5, 1, ' ');
5866 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'BKS', 22, 1, ' ');
5867 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'COM', 22, 1, ' ');
5868 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'REC', 22, 1, ' ');
5869 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'SCO', 22, 1, ' ');
5870 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'SER', 22, 1, ' ');
5871 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Audn', '008', 'VIS', 22, 1, ' ');
5872 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'BKS', 7, 1, 'm');
5873 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'COM', 7, 1, 'm');
5874 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'MAP', 7, 1, 'm');
5875 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'MIX', 7, 1, 'c');
5876 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'REC', 7, 1, 'm');
5877 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'SCO', 7, 1, 'm');
5878 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'SER', 7, 1, 's');
5879 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('BLvl', 'ldr', 'VIS', 7, 1, 'm');
5880 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Biog', '006', 'BKS', 17, 1, ' ');
5881 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Biog', '008', 'BKS', 34, 1, ' ');
5882 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '006', 'BKS', 11, 1, ' ');
5883 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '006', 'SER', 11, 1, ' ');
5884 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '008', 'BKS', 29, 1, ' ');
5885 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Conf', '008', 'SER', 29, 1, ' ');
5886 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '006', 'BKS', 7, 4, ' ');
5887 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '006', 'SER', 8, 3, ' ');
5888 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '008', 'BKS', 24, 4, ' ');
5889 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont', '008', 'SER', 25, 3, ' ');
5890 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'BKS', 8, 1, ' ');
5891 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'COM', 8, 1, ' ');
5892 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'MAP', 8, 1, ' ');
5893 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'MIX', 8, 1, ' ');
5894 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'REC', 8, 1, ' ');
5895 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'SCO', 8, 1, ' ');
5896 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'SER', 8, 1, ' ');
5897 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctrl', 'ldr', 'VIS', 8, 1, ' ');
5898 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'BKS', 15, 3, ' ');
5899 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'COM', 15, 3, ' ');
5900 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'MAP', 15, 3, ' ');
5901 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'MIX', 15, 3, ' ');
5902 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'REC', 15, 3, ' ');
5903 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'SCO', 15, 3, ' ');
5904 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'SER', 15, 3, ' ');
5905 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ctry', '008', 'VIS', 15, 3, ' ');
5906 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'BKS', 7, 4, ' ');
5907 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'COM', 7, 4, ' ');
5908 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'MAP', 7, 4, ' ');
5909 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'MIX', 7, 4, ' ');
5910 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'REC', 7, 4, ' ');
5911 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'SCO', 7, 4, ' ');
5912 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'SER', 7, 4, ' ');
5913 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date1', '008', 'VIS', 7, 4, ' ');
5914 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'BKS', 11, 4, ' ');
5915 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'COM', 11, 4, ' ');
5916 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'MAP', 11, 4, ' ');
5917 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'MIX', 11, 4, ' ');
5918 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'REC', 11, 4, ' ');
5919 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'SCO', 11, 4, ' ');
5920 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'SER', 11, 4, '9');
5921 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Date2', '008', 'VIS', 11, 4, ' ');
5922 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'BKS', 18, 1, ' ');
5923 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'COM', 18, 1, ' ');
5924 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'MAP', 18, 1, ' ');
5925 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'MIX', 18, 1, ' ');
5926 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'REC', 18, 1, ' ');
5927 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'SCO', 18, 1, ' ');
5928 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'SER', 18, 1, ' ');
5929 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Desc', 'ldr', 'VIS', 18, 1, ' ');
5930 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'BKS', 6, 1, ' ');
5931 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'COM', 6, 1, ' ');
5932 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'MAP', 6, 1, ' ');
5933 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'MIX', 6, 1, ' ');
5934 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'REC', 6, 1, ' ');
5935 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'SCO', 6, 1, ' ');
5936 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'SER', 6, 1, 'c');
5937 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('DtSt', '008', 'VIS', 6, 1, ' ');
5938 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'BKS', 17, 1, ' ');
5939 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'COM', 17, 1, ' ');
5940 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'MAP', 17, 1, ' ');
5941 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'MIX', 17, 1, ' ');
5942 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'REC', 17, 1, ' ');
5943 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'SCO', 17, 1, ' ');
5944 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'SER', 17, 1, ' ');
5945 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'VIS', 17, 1, ' ');
5946 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ELvl', 'ldr', 'AUT', 17, 1, ' ');
5947 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Fest', '006', 'BKS', 13, 1, '0');
5948 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Fest', '008', 'BKS', 30, 1, '0');
5949 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'BKS', 6, 1, ' ');
5950 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'MAP', 12, 1, ' ');
5951 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'MIX', 6, 1, ' ');
5952 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'REC', 6, 1, ' ');
5953 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'SCO', 6, 1, ' ');
5954 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'SER', 6, 1, ' ');
5955 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'VIS', 12, 1, ' ');
5956 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'BKS', 23, 1, ' ');
5957 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'MAP', 29, 1, ' ');
5958 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'MIX', 23, 1, ' ');
5959 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'REC', 23, 1, ' ');
5960 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'SCO', 23, 1, ' ');
5961 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'SER', 23, 1, ' ');
5962 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'VIS', 29, 1, ' ');
5963 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'BKS', 11, 1, ' ');
5964 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'COM', 11, 1, ' ');
5965 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'MAP', 11, 1, ' ');
5966 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'SER', 11, 1, ' ');
5967 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '006', 'VIS', 11, 1, ' ');
5968 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'BKS', 28, 1, ' ');
5969 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'COM', 28, 1, ' ');
5970 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'MAP', 28, 1, ' ');
5971 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'SER', 28, 1, ' ');
5972 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GPub', '008', 'VIS', 28, 1, ' ');
5973 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills', '006', 'BKS', 1, 4, ' ');
5974 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills', '008', 'BKS', 18, 4, ' ');
5975 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '006', 'BKS', 14, 1, '0');
5976 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '006', 'MAP', 14, 1, '0');
5977 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '008', 'BKS', 31, 1, '0');
5978 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Indx', '008', 'MAP', 31, 1, '0');
5979 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'BKS', 35, 3, ' ');
5980 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'COM', 35, 3, ' ');
5981 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'MAP', 35, 3, ' ');
5982 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'MIX', 35, 3, ' ');
5983 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'REC', 35, 3, ' ');
5984 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'SCO', 35, 3, ' ');
5985 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'SER', 35, 3, ' ');
5986 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Lang', '008', 'VIS', 35, 3, ' ');
5987 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LitF', '006', 'BKS', 16, 1, '0');
5988 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LitF', '008', 'BKS', 33, 1, '0');
5989 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'BKS', 38, 1, ' ');
5990 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'COM', 38, 1, ' ');
5991 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'MAP', 38, 1, ' ');
5992 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'MIX', 38, 1, ' ');
5993 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'REC', 38, 1, ' ');
5994 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'SCO', 38, 1, ' ');
5995 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'SER', 38, 1, ' ');
5996 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('MRec', '008', 'VIS', 38, 1, ' ');
5997 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');
5998 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');
5999 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TMat', '006', 'VIS', 16, 1, ' ');
6000 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TMat', '008', 'VIS', 33, 1, ' ');
6001 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'BKS', 6, 1, 'a');
6002 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'COM', 6, 1, 'm');
6003 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'MAP', 6, 1, 'e');
6004 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'MIX', 6, 1, 'p');
6005 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'REC', 6, 1, 'i');
6006 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'SCO', 6, 1, 'c');
6007 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'SER', 6, 1, 'a');
6008 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'VIS', 6, 1, 'g');
6009 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Subj', '008', 'AUT', 11, 1, '|');
6010 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('RecStat', 'ldr', 'AUT', 5, 1, 'n');
6011
6012 -- record attributes
6013 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('alph','Alph','Alph');
6014 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('audience','Audn','Audn');
6015 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('bib_level','BLvl','BLvl');
6016 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('biog','Biog','Biog');
6017 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('conf','Conf','Conf');
6018 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('control_type','Ctrl','Ctrl');
6019 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('ctry','Ctry','Ctry');
6020 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('date1','Date1','Date1');
6021 INSERT INTO config.record_attr_definition (name,label,fixed_field,sorter,filter) values ('pubdate','Pub Date','Date1',TRUE,FALSE);
6022 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('date2','Date2','Date2');
6023 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('cat_form','Desc','Desc');
6024 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('pub_status','DtSt','DtSt');
6025 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('enc_level','ELvl','ELvl');
6026 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('fest','Fest','Fest');
6027 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('item_form','Form','Form');
6028 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('gpub','GPub','GPub');
6029 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('ills','Ills','Ills');
6030 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('indx','Indx','Indx');
6031 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('item_lang','Lang','Lang');
6032 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('language','Language (2.0 compat version)','Lang');
6033 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('lit_form','LitF','LitF');
6034 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('mrec','MRec','MRec');
6035 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('ff_sl','S/L','S/L');
6036 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('type_mat','TMat','TMat');
6037 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('item_type','Type','Type');
6038 INSERT INTO config.record_attr_definition (name,label,phys_char_sf) values ('vr_format','Videorecording format',72);
6039 INSERT INTO config.record_attr_definition (name,label,sorter,filter,tag) values ('titlesort','Title',TRUE,FALSE,'tnf');
6040 INSERT INTO config.record_attr_definition (name,label,sorter,filter,tag,sf_list) values ('authorsort','Author',TRUE,FALSE,'1%','abcdefgklmnopqrstvxyz');
6041
6042 -- TO-DO: Auto-generate these values from CLDR
6043 -- XXX These are the values used in MARC records ... does that match CLDR, including deprecated languages?
6044 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
6045     (1, 'item_lang', 'aar', oils_i18n_gettext('aar', 'Afar', 'ccvm', 'value')),
6046     (2, 'item_lang', 'abk', oils_i18n_gettext('abk', 'Abkhaz', 'ccvm', 'value')),
6047     (3, 'item_lang', 'ace', oils_i18n_gettext('ace', 'Achinese', 'ccvm', 'value')),
6048     (4, 'item_lang', 'ach', oils_i18n_gettext('ach', 'Acoli', 'ccvm', 'value')),
6049     (5, 'item_lang', 'ada', oils_i18n_gettext('ada', 'Adangme', 'ccvm', 'value')),
6050     (6, 'item_lang', 'ady', oils_i18n_gettext('ady', 'Adygei', 'ccvm', 'value')),
6051     (7, 'item_lang', 'afa', oils_i18n_gettext('afa', 'Afroasiatic (Other)', 'ccvm', 'value')),
6052     (8, 'item_lang', 'afh', oils_i18n_gettext('afh', 'Afrihili (Artificial language)', 'ccvm', 'value')),
6053     (9, 'item_lang', 'afr', oils_i18n_gettext('afr', 'Afrikaans', 'ccvm', 'value')),
6054     (10, 'item_lang', '-ajm', oils_i18n_gettext('-ajm', 'Aljamía', 'ccvm', 'value')),
6055     (11, 'item_lang', 'aka', oils_i18n_gettext('aka', 'Akan', 'ccvm', 'value')),
6056     (12, 'item_lang', 'akk', oils_i18n_gettext('akk', 'Akkadian', 'ccvm', 'value')),
6057     (13, 'item_lang', 'alb', oils_i18n_gettext('alb', 'Albanian', 'ccvm', 'value')),
6058     (14, 'item_lang', 'ale', oils_i18n_gettext('ale', 'Aleut', 'ccvm', 'value')),
6059     (15, 'item_lang', 'alg', oils_i18n_gettext('alg', 'Algonquian (Other)', 'ccvm', 'value')),
6060     (16, 'item_lang', 'amh', oils_i18n_gettext('amh', 'Amharic', 'ccvm', 'value')),
6061     (17, 'item_lang', 'ang', oils_i18n_gettext('ang', 'English, Old (ca. 450-1100)', 'ccvm', 'value')),
6062     (18, 'item_lang', 'apa', oils_i18n_gettext('apa', 'Apache languages', 'ccvm', 'value')),
6063     (19, 'item_lang', 'ara', oils_i18n_gettext('ara', 'Arabic', 'ccvm', 'value')),
6064     (20, 'item_lang', 'arc', oils_i18n_gettext('arc', 'Aramaic', 'ccvm', 'value')),
6065     (21, 'item_lang', 'arg', oils_i18n_gettext('arg', 'Aragonese Spanish', 'ccvm', 'value')),
6066     (22, 'item_lang', 'arm', oils_i18n_gettext('arm', 'Armenian', 'ccvm', 'value')),
6067     (23, 'item_lang', 'arn', oils_i18n_gettext('arn', 'Mapuche', 'ccvm', 'value')),
6068     (24, 'item_lang', 'arp', oils_i18n_gettext('arp', 'Arapaho', 'ccvm', 'value')),
6069     (25, 'item_lang', 'art', oils_i18n_gettext('art', 'Artificial (Other)', 'ccvm', 'value')),
6070     (26, 'item_lang', 'arw', oils_i18n_gettext('arw', 'Arawak', 'ccvm', 'value')),
6071     (27, 'item_lang', 'asm', oils_i18n_gettext('asm', 'Assamese', 'ccvm', 'value')),
6072     (28, 'item_lang', 'ast', oils_i18n_gettext('ast', 'Bable', 'ccvm', 'value')),
6073     (29, 'item_lang', 'ath', oils_i18n_gettext('ath', 'Athapascan (Other)', 'ccvm', 'value')),
6074     (30, 'item_lang', 'aus', oils_i18n_gettext('aus', 'Australian languages', 'ccvm', 'value')),
6075     (31, 'item_lang', 'ava', oils_i18n_gettext('ava', 'Avaric', 'ccvm', 'value')),
6076     (32, 'item_lang', 'ave', oils_i18n_gettext('ave', 'Avestan', 'ccvm', 'value')),
6077     (33, 'item_lang', 'awa', oils_i18n_gettext('awa', 'Awadhi', 'ccvm', 'value')),
6078     (34, 'item_lang', 'aym', oils_i18n_gettext('aym', 'Aymara', 'ccvm', 'value')),
6079     (35, 'item_lang', 'aze', oils_i18n_gettext('aze', 'Azerbaijani', 'ccvm', 'value')),
6080     (36, 'item_lang', 'bad', oils_i18n_gettext('bad', 'Banda', 'ccvm', 'value')),
6081     (37, 'item_lang', 'bai', oils_i18n_gettext('bai', 'Bamileke languages', 'ccvm', 'value')),
6082     (38, 'item_lang', 'bak', oils_i18n_gettext('bak', 'Bashkir', 'ccvm', 'value')),
6083     (39, 'item_lang', 'bal', oils_i18n_gettext('bal', 'Baluchi', 'ccvm', 'value')),
6084     (40, 'item_lang', 'bam', oils_i18n_gettext('40', 'Bambara', 'ccvm', 'value')),
6085     (41, 'item_lang', 'ban', oils_i18n_gettext('41', 'Balinese', 'ccvm', 'value')),
6086     (42, 'item_lang', 'baq', oils_i18n_gettext('42', 'Basque', 'ccvm', 'value')),
6087     (43, 'item_lang', 'bas', oils_i18n_gettext('43', 'Basa', 'ccvm', 'value')),
6088     (44, 'item_lang', 'bat', oils_i18n_gettext('44', 'Baltic (Other)', 'ccvm', 'value')),
6089     (45, 'item_lang', 'bej', oils_i18n_gettext('45', 'Beja', 'ccvm', 'value')),
6090     (46, 'item_lang', 'bel', oils_i18n_gettext('46', 'Belarusian', 'ccvm', 'value')),
6091     (47, 'item_lang', 'bem', oils_i18n_gettext('47', 'Bemba', 'ccvm', 'value')),
6092     (48, 'item_lang', 'ben', oils_i18n_gettext('48', 'Bengali', 'ccvm', 'value')),
6093     (49, 'item_lang', 'ber', oils_i18n_gettext('49', 'Berber (Other)', 'ccvm', 'value')),
6094     (50, 'item_lang', 'bho', oils_i18n_gettext('50', 'Bhojpuri', 'ccvm', 'value')),
6095     (51, 'item_lang', 'bih', oils_i18n_gettext('51', 'Bihari', 'ccvm', 'value')),
6096     (52, 'item_lang', 'bik', oils_i18n_gettext('52', 'Bikol', 'ccvm', 'value')),
6097     (53, 'item_lang', 'bin', oils_i18n_gettext('53', 'Edo', 'ccvm', 'value')),
6098     (54, 'item_lang', 'bis', oils_i18n_gettext('54', 'Bislama', 'ccvm', 'value')),
6099     (55, 'item_lang', 'bla', oils_i18n_gettext('55', 'Siksika', 'ccvm', 'value')),
6100     (56, 'item_lang', 'bnt', oils_i18n_gettext('56', 'Bantu (Other)', 'ccvm', 'value')),
6101     (57, 'item_lang', 'bos', oils_i18n_gettext('57', 'Bosnian', 'ccvm', 'value')),
6102     (58, 'item_lang', 'bra', oils_i18n_gettext('58', 'Braj', 'ccvm', 'value')),
6103     (59, 'item_lang', 'bre', oils_i18n_gettext('59', 'Breton', 'ccvm', 'value')),
6104     (60, 'item_lang', 'btk', oils_i18n_gettext('60', 'Batak', 'ccvm', 'value')),
6105     (61, 'item_lang', 'bua', oils_i18n_gettext('61', 'Buriat', 'ccvm', 'value')),
6106     (62, 'item_lang', 'bug', oils_i18n_gettext('62', 'Bugis', 'ccvm', 'value')),
6107     (63, 'item_lang', 'bul', oils_i18n_gettext('63', 'Bulgarian', 'ccvm', 'value')),
6108     (64, 'item_lang', 'bur', oils_i18n_gettext('64', 'Burmese', 'ccvm', 'value')),
6109     (65, 'item_lang', 'cad', oils_i18n_gettext('65', 'Caddo', 'ccvm', 'value')),
6110     (66, 'item_lang', 'cai', oils_i18n_gettext('66', 'Central American Indian (Other)', 'ccvm', 'value')),
6111     (67, 'item_lang', '-cam', oils_i18n_gettext('67', 'Khmer', 'ccvm', 'value')),
6112     (68, 'item_lang', 'car', oils_i18n_gettext('68', 'Carib', 'ccvm', 'value')),
6113     (69, 'item_lang', 'cat', oils_i18n_gettext('69', 'Catalan', 'ccvm', 'value')),
6114     (70, 'item_lang', 'cau', oils_i18n_gettext('70', 'Caucasian (Other)', 'ccvm', 'value')),
6115     (71, 'item_lang', 'ceb', oils_i18n_gettext('71', 'Cebuano', 'ccvm', 'value')),
6116     (72, 'item_lang', 'cel', oils_i18n_gettext('72', 'Celtic (Other)', 'ccvm', 'value')),
6117     (73, 'item_lang', 'cha', oils_i18n_gettext('73', 'Chamorro', 'ccvm', 'value')),
6118     (74, 'item_lang', 'chb', oils_i18n_gettext('74', 'Chibcha', 'ccvm', 'value')),
6119     (75, 'item_lang', 'che', oils_i18n_gettext('75', 'Chechen', 'ccvm', 'value')),
6120     (76, 'item_lang', 'chg', oils_i18n_gettext('76', 'Chagatai', 'ccvm', 'value')),
6121     (77, 'item_lang', 'chi', oils_i18n_gettext('77', 'Chinese', 'ccvm', 'value')),
6122     (78, 'item_lang', 'chk', oils_i18n_gettext('78', 'Truk', 'ccvm', 'value')),
6123     (79, 'item_lang', 'chm', oils_i18n_gettext('79', 'Mari', 'ccvm', 'value')),
6124     (80, 'item_lang', 'chn', oils_i18n_gettext('80', 'Chinook jargon', 'ccvm', 'value')),
6125     (81, 'item_lang', 'cho', oils_i18n_gettext('81', 'Choctaw', 'ccvm', 'value')),
6126     (82, 'item_lang', 'chp', oils_i18n_gettext('82', 'Chipewyan', 'ccvm', 'value')),
6127     (83, 'item_lang', 'chr', oils_i18n_gettext('83', 'Cherokee', 'ccvm', 'value')),
6128     (84, 'item_lang', 'chu', oils_i18n_gettext('84', 'Church Slavic', 'ccvm', 'value')),
6129     (85, 'item_lang', 'chv', oils_i18n_gettext('85', 'Chuvash', 'ccvm', 'value')),
6130     (86, 'item_lang', 'chy', oils_i18n_gettext('86', 'Cheyenne', 'ccvm', 'value')),
6131     (87, 'item_lang', 'cmc', oils_i18n_gettext('87', 'Chamic languages', 'ccvm', 'value')),
6132     (88, 'item_lang', 'cop', oils_i18n_gettext('88', 'Coptic', 'ccvm', 'value')),
6133     (89, 'item_lang', 'cor', oils_i18n_gettext('89', 'Cornish', 'ccvm', 'value')),
6134     (90, 'item_lang', 'cos', oils_i18n_gettext('90', 'Corsican', 'ccvm', 'value')),
6135     (91, 'item_lang', 'cpe', oils_i18n_gettext('91', 'Creoles and Pidgins, English-based (Other)', 'ccvm', 'value')),
6136     (92, 'item_lang', 'cpf', oils_i18n_gettext('92', 'Creoles and Pidgins, French-based (Other)', 'ccvm', 'value')),
6137     (93, 'item_lang', 'cpp', oils_i18n_gettext('93', 'Creoles and Pidgins, Portuguese-based (Other)', 'ccvm', 'value')),
6138     (94, 'item_lang', 'cre', oils_i18n_gettext('94', 'Cree', 'ccvm', 'value')),
6139     (95, 'item_lang', 'crh', oils_i18n_gettext('95', 'Crimean Tatar', 'ccvm', 'value')),
6140     (96, 'item_lang', 'crp', oils_i18n_gettext('96', 'Creoles and Pidgins (Other)', 'ccvm', 'value')),
6141     (97, 'item_lang', 'cus', oils_i18n_gettext('97', 'Cushitic (Other)', 'ccvm', 'value')),
6142     (98, 'item_lang', 'cze', oils_i18n_gettext('98', 'Czech', 'ccvm', 'value')),
6143     (99, 'item_lang', 'dak', oils_i18n_gettext('99', 'Dakota', 'ccvm', 'value')),
6144     (100, 'item_lang', 'dan', oils_i18n_gettext('100', 'Danish', 'ccvm', 'value')),
6145     (101, 'item_lang', 'dar', oils_i18n_gettext('101', 'Dargwa', 'ccvm', 'value')),
6146     (102, 'item_lang', 'day', oils_i18n_gettext('102', 'Dayak', 'ccvm', 'value')),
6147     (103, 'item_lang', 'del', oils_i18n_gettext('103', 'Delaware', 'ccvm', 'value')),
6148     (104, 'item_lang', 'den', oils_i18n_gettext('104', 'Slave', 'ccvm', 'value')),
6149     (105, 'item_lang', 'dgr', oils_i18n_gettext('105', 'Dogrib', 'ccvm', 'value')),
6150     (106, 'item_lang', 'din', oils_i18n_gettext('106', 'Dinka', 'ccvm', 'value')),
6151     (107, 'item_lang', 'div', oils_i18n_gettext('107', 'Divehi', 'ccvm', 'value')),
6152     (108, 'item_lang', 'doi', oils_i18n_gettext('108', 'Dogri', 'ccvm', 'value')),
6153     (109, 'item_lang', 'dra', oils_i18n_gettext('109', 'Dravidian (Other)', 'ccvm', 'value')),
6154     (110, 'item_lang', 'dua', oils_i18n_gettext('110', 'Duala', 'ccvm', 'value')),
6155     (111, 'item_lang', 'dum', oils_i18n_gettext('111', 'Dutch, Middle (ca. 1050-1350)', 'ccvm', 'value')),
6156     (112, 'item_lang', 'dut', oils_i18n_gettext('112', 'Dutch', 'ccvm', 'value')),
6157     (113, 'item_lang', 'dyu', oils_i18n_gettext('113', 'Dyula', 'ccvm', 'value')),
6158     (114, 'item_lang', 'dzo', oils_i18n_gettext('114', 'Dzongkha', 'ccvm', 'value')),
6159     (115, 'item_lang', 'efi', oils_i18n_gettext('115', 'Efik', 'ccvm', 'value')),
6160     (116, 'item_lang', 'egy', oils_i18n_gettext('116', 'Egyptian', 'ccvm', 'value')),
6161     (117, 'item_lang', 'eka', oils_i18n_gettext('117', 'Ekajuk', 'ccvm', 'value')),
6162     (118, 'item_lang', 'elx', oils_i18n_gettext('118', 'Elamite', 'ccvm', 'value')),
6163     (119, 'item_lang', 'eng', oils_i18n_gettext('119', 'English', 'ccvm', 'value')),
6164     (120, 'item_lang', 'enm', oils_i18n_gettext('120', 'English, Middle (1100-1500)', 'ccvm', 'value')),
6165     (121, 'item_lang', 'epo', oils_i18n_gettext('121', 'Esperanto', 'ccvm', 'value')),
6166     (122, 'item_lang', '-esk', oils_i18n_gettext('122', 'Eskimo languages', 'ccvm', 'value')),
6167     (123, 'item_lang', '-esp', oils_i18n_gettext('123', 'Esperanto', 'ccvm', 'value')),
6168     (124, 'item_lang', 'est', oils_i18n_gettext('124', 'Estonian', 'ccvm', 'value')),
6169     (125, 'item_lang', '-eth', oils_i18n_gettext('125', 'Ethiopic', 'ccvm', 'value')),
6170     (126, 'item_lang', 'ewe', oils_i18n_gettext('126', 'Ewe', 'ccvm', 'value')),
6171     (127, 'item_lang', 'ewo', oils_i18n_gettext('127', 'Ewondo', 'ccvm', 'value')),
6172     (128, 'item_lang', 'fan', oils_i18n_gettext('128', 'Fang', 'ccvm', 'value')),
6173     (129, 'item_lang', 'fao', oils_i18n_gettext('129', 'Faroese', 'ccvm', 'value')),
6174     (130, 'item_lang', '-far', oils_i18n_gettext('130', 'Faroese', 'ccvm', 'value')),
6175     (131, 'item_lang', 'fat', oils_i18n_gettext('131', 'Fanti', 'ccvm', 'value')),
6176     (132, 'item_lang', 'fij', oils_i18n_gettext('132', 'Fijian', 'ccvm', 'value')),
6177     (133, 'item_lang', 'fin', oils_i18n_gettext('133', 'Finnish', 'ccvm', 'value')),
6178     (134, 'item_lang', 'fiu', oils_i18n_gettext('134', 'Finno-Ugrian (Other)', 'ccvm', 'value')),
6179     (135, 'item_lang', 'fon', oils_i18n_gettext('135', 'Fon', 'ccvm', 'value')),
6180     (136, 'item_lang', 'fre', oils_i18n_gettext('136', 'French', 'ccvm', 'value')),
6181     (137, 'item_lang', '-fri', oils_i18n_gettext('137', 'Frisian', 'ccvm', 'value')),
6182     (138, 'item_lang', 'frm', oils_i18n_gettext('138', 'French, Middle (ca. 1400-1600)', 'ccvm', 'value')),
6183     (139, 'item_lang', 'fro', oils_i18n_gettext('139', 'French, Old (ca. 842-1400)', 'ccvm', 'value')),
6184     (140, 'item_lang', 'fry', oils_i18n_gettext('140', 'Frisian', 'ccvm', 'value')),
6185     (141, 'item_lang', 'ful', oils_i18n_gettext('141', 'Fula', 'ccvm', 'value')),
6186     (142, 'item_lang', 'fur', oils_i18n_gettext('142', 'Friulian', 'ccvm', 'value')),
6187     (143, 'item_lang', 'gaa', oils_i18n_gettext('143', 'Gã', 'ccvm', 'value')),
6188     (144, 'item_lang', '-gae', oils_i18n_gettext('144', 'Scottish Gaelic', 'ccvm', 'value')),
6189     (145, 'item_lang', '-gag', oils_i18n_gettext('145', 'Galician', 'ccvm', 'value')),
6190     (146, 'item_lang', '-gal', oils_i18n_gettext('146', 'Oromo', 'ccvm', 'value')),
6191     (147, 'item_lang', 'gay', oils_i18n_gettext('147', 'Gayo', 'ccvm', 'value')),
6192     (148, 'item_lang', 'gba', oils_i18n_gettext('148', 'Gbaya', 'ccvm', 'value')),
6193     (149, 'item_lang', 'gem', oils_i18n_gettext('149', 'Germanic (Other)', 'ccvm', 'value')),
6194     (150, 'item_lang', 'geo', oils_i18n_gettext('150', 'Georgian', 'ccvm', 'value')),
6195     (151, 'item_lang', 'ger', oils_i18n_gettext('151', 'German', 'ccvm', 'value')),
6196     (152, 'item_lang', 'gez', oils_i18n_gettext('152', 'Ethiopic', 'ccvm', 'value')),
6197     (153, 'item_lang', 'gil', oils_i18n_gettext('153', 'Gilbertese', 'ccvm', 'value')),
6198     (154, 'item_lang', 'gla', oils_i18n_gettext('154', 'Scottish Gaelic', 'ccvm', 'value')),
6199     (155, 'item_lang', 'gle', oils_i18n_gettext('155', 'Irish', 'ccvm', 'value')),
6200     (156, 'item_lang', 'glg', oils_i18n_gettext('156', 'Galician', 'ccvm', 'value')),
6201     (157, 'item_lang', 'glv', oils_i18n_gettext('157', 'Manx', 'ccvm', 'value')),
6202     (158, 'item_lang', 'gmh', oils_i18n_gettext('158', 'German, Middle High (ca. 1050-1500)', 'ccvm', 'value')),
6203     (159, 'item_lang', 'goh', oils_i18n_gettext('159', 'German, Old High (ca. 750-1050)', 'ccvm', 'value')),
6204     (160, 'item_lang', 'gon', oils_i18n_gettext('160', 'Gondi', 'ccvm', 'value')),
6205     (161, 'item_lang', 'gor', oils_i18n_gettext('161', 'Gorontalo', 'ccvm', 'value')),
6206     (162, 'item_lang', 'got', oils_i18n_gettext('162', 'Gothic', 'ccvm', 'value')),
6207     (163, 'item_lang', 'grb', oils_i18n_gettext('163', 'Grebo', 'ccvm', 'value')),
6208     (164, 'item_lang', 'grc', oils_i18n_gettext('164', 'Greek, Ancient (to 1453)', 'ccvm', 'value')),
6209     (165, 'item_lang', 'gre', oils_i18n_gettext('165', 'Greek, Modern (1453- )', 'ccvm', 'value')),
6210     (166, 'item_lang', 'grn', oils_i18n_gettext('166', 'Guarani', 'ccvm', 'value')),
6211     (167, 'item_lang', '-gua', oils_i18n_gettext('167', 'Guarani', 'ccvm', 'value')),
6212     (168, 'item_lang', 'guj', oils_i18n_gettext('168', 'Gujarati', 'ccvm', 'value')),
6213     (169, 'item_lang', 'gwi', oils_i18n_gettext('169', 'Gwich''in', 'ccvm', 'value')),
6214     (170, 'item_lang', 'hai', oils_i18n_gettext('170', 'Haida', 'ccvm', 'value')),
6215     (171, 'item_lang', 'hat', oils_i18n_gettext('171', 'Haitian French Creole', 'ccvm', 'value')),
6216     (172, 'item_lang', 'hau', oils_i18n_gettext('172', 'Hausa', 'ccvm', 'value')),
6217     (173, 'item_lang', 'haw', oils_i18n_gettext('173', 'Hawaiian', 'ccvm', 'value')),
6218     (174, 'item_lang', 'heb', oils_i18n_gettext('174', 'Hebrew', 'ccvm', 'value')),
6219     (175, 'item_lang', 'her', oils_i18n_gettext('175', 'Herero', 'ccvm', 'value')),
6220     (176, 'item_lang', 'hil', oils_i18n_gettext('176', 'Hiligaynon', 'ccvm', 'value')),
6221     (177, 'item_lang', 'him', oils_i18n_gettext('177', 'Himachali', 'ccvm', 'value')),
6222     (178, 'item_lang', 'hin', oils_i18n_gettext('178', 'Hindi', 'ccvm', 'value')),
6223     (179, 'item_lang', 'hit', oils_i18n_gettext('179', 'Hittite', 'ccvm', 'value')),
6224     (180, 'item_lang', 'hmn', oils_i18n_gettext('180', 'Hmong', 'ccvm', 'value')),
6225     (181, 'item_lang', 'hmo', oils_i18n_gettext('181', 'Hiri Motu', 'ccvm', 'value')),
6226     (182, 'item_lang', 'hun', oils_i18n_gettext('182', 'Hungarian', 'ccvm', 'value')),
6227     (183, 'item_lang', 'hup', oils_i18n_gettext('183', 'Hupa', 'ccvm', 'value')),
6228     (184, 'item_lang', 'iba', oils_i18n_gettext('184', 'Iban', 'ccvm', 'value')),
6229     (185, 'item_lang', 'ibo', oils_i18n_gettext('185', 'Igbo', 'ccvm', 'value')),
6230     (186, 'item_lang', 'ice', oils_i18n_gettext('186', 'Icelandic', 'ccvm', 'value')),
6231     (187, 'item_lang', 'ido', oils_i18n_gettext('187', 'Ido', 'ccvm', 'value')),
6232     (188, 'item_lang', 'iii', oils_i18n_gettext('188', 'Sichuan Yi', 'ccvm', 'value')),
6233     (189, 'item_lang', 'ijo', oils_i18n_gettext('189', 'Ijo', 'ccvm', 'value')),
6234     (190, 'item_lang', 'iku', oils_i18n_gettext('190', 'Inuktitut', 'ccvm', 'value')),
6235     (191, 'item_lang', 'ile', oils_i18n_gettext('191', 'Interlingue', 'ccvm', 'value')),
6236     (192, 'item_lang', 'ilo', oils_i18n_gettext('192', 'Iloko', 'ccvm', 'value')),
6237     (193, 'item_lang', 'ina', oils_i18n_gettext('193', 'Interlingua (International Auxiliary Language Association)', 'ccvm', 'value')),
6238     (194, 'item_lang', 'inc', oils_i18n_gettext('194', 'Indic (Other)', 'ccvm', 'value')),
6239     (195, 'item_lang', 'ind', oils_i18n_gettext('195', 'Indonesian', 'ccvm', 'value')),
6240     (196, 'item_lang', 'ine', oils_i18n_gettext('196', 'Indo-European (Other)', 'ccvm', 'value')),
6241     (197, 'item_lang', 'inh', oils_i18n_gettext('197', 'Ingush', 'ccvm', 'value')),
6242     (198, 'item_lang', '-int', oils_i18n_gettext('198', 'Interlingua (International Auxiliary Language Association)', 'ccvm', 'value')),
6243     (199, 'item_lang', 'ipk', oils_i18n_gettext('199', 'Inupiaq', 'ccvm', 'value')),
6244     (200, 'item_lang', 'ira', oils_i18n_gettext('200', 'Iranian (Other)', 'ccvm', 'value')),
6245     (201, 'item_lang', '-iri', oils_i18n_gettext('201', 'Irish', 'ccvm', 'value')),
6246     (202, 'item_lang', 'iro', oils_i18n_gettext('202', 'Iroquoian (Other)', 'ccvm', 'value')),
6247     (203, 'item_lang', 'ita', oils_i18n_gettext('203', 'Italian', 'ccvm', 'value')),
6248     (204, 'item_lang', 'jav', oils_i18n_gettext('204', 'Javanese', 'ccvm', 'value')),
6249     (205, 'item_lang', 'jpn', oils_i18n_gettext('205', 'Japanese', 'ccvm', 'value')),
6250     (206, 'item_lang', 'jpr', oils_i18n_gettext('206', 'Judeo-Persian', 'ccvm', 'value')),
6251     (207, 'item_lang', 'jrb', oils_i18n_gettext('207', 'Judeo-Arabic', 'ccvm', 'value')),
6252     (208, 'item_lang', 'kaa', oils_i18n_gettext('208', 'Kara-Kalpak', 'ccvm', 'value')),
6253     (209, 'item_lang', 'kab', oils_i18n_gettext('209', 'Kabyle', 'ccvm', 'value')),
6254     (210, 'item_lang', 'kac', oils_i18n_gettext('210', 'Kachin', 'ccvm', 'value')),
6255     (211, 'item_lang', 'kal', oils_i18n_gettext('211', 'Kalâtdlisut', 'ccvm', 'value')),
6256     (212, 'item_lang', 'kam', oils_i18n_gettext('212', 'Kamba', 'ccvm', 'value')),
6257     (213, 'item_lang', 'kan', oils_i18n_gettext('213', 'Kannada', 'ccvm', 'value')),
6258     (214, 'item_lang', 'kar', oils_i18n_gettext('214', 'Karen', 'ccvm', 'value')),
6259     (215, 'item_lang', 'kas', oils_i18n_gettext('215', 'Kashmiri', 'ccvm', 'value')),
6260     (216, 'item_lang', 'kau', oils_i18n_gettext('216', 'Kanuri', 'ccvm', 'value')),
6261     (217, 'item_lang', 'kaw', oils_i18n_gettext('217', 'Kawi', 'ccvm', 'value')),
6262     (218, 'item_lang', 'kaz', oils_i18n_gettext('218', 'Kazakh', 'ccvm', 'value')),
6263     (219, 'item_lang', 'kbd', oils_i18n_gettext('219', 'Kabardian', 'ccvm', 'value')),
6264     (220, 'item_lang', 'kha', oils_i18n_gettext('220', 'Khasi', 'ccvm', 'value')),
6265     (221, 'item_lang', 'khi', oils_i18n_gettext('221', 'Khoisan (Other)', 'ccvm', 'value')),
6266     (222, 'item_lang', 'khm', oils_i18n_gettext('222', 'Khmer', 'ccvm', 'value')),
6267     (223, 'item_lang', 'kho', oils_i18n_gettext('223', 'Khotanese', 'ccvm', 'value')),
6268     (224, 'item_lang', 'kik', oils_i18n_gettext('224', 'Kikuyu', 'ccvm', 'value')),
6269     (225, 'item_lang', 'kin', oils_i18n_gettext('225', 'Kinyarwanda', 'ccvm', 'value')),
6270     (226, 'item_lang', 'kir', oils_i18n_gettext('226', 'Kyrgyz', 'ccvm', 'value')),
6271     (227, 'item_lang', 'kmb', oils_i18n_gettext('227', 'Kimbundu', 'ccvm', 'value')),
6272     (228, 'item_lang', 'kok', oils_i18n_gettext('228', 'Konkani', 'ccvm', 'value')),
6273     (229, 'item_lang', 'kom', oils_i18n_gettext('229', 'Komi', 'ccvm', 'value')),
6274     (230, 'item_lang', 'kon', oils_i18n_gettext('230', 'Kongo', 'ccvm', 'value')),
6275     (231, 'item_lang', 'kor', oils_i18n_gettext('231', 'Korean', 'ccvm', 'value')),
6276     (232, 'item_lang', 'kos', oils_i18n_gettext('232', 'Kusaie', 'ccvm', 'value')),
6277     (233, 'item_lang', 'kpe', oils_i18n_gettext('233', 'Kpelle', 'ccvm', 'value')),
6278     (234, 'item_lang', 'kro', oils_i18n_gettext('234', 'Kru', 'ccvm', 'value')),
6279     (235, 'item_lang', 'kru', oils_i18n_gettext('235', 'Kurukh', 'ccvm', 'value')),
6280     (236, 'item_lang', 'kua', oils_i18n_gettext('236', 'Kuanyama', 'ccvm', 'value')),
6281     (237, 'item_lang', 'kum', oils_i18n_gettext('237', 'Kumyk', 'ccvm', 'value')),
6282     (238, 'item_lang', 'kur', oils_i18n_gettext('238', 'Kurdish', 'ccvm', 'value')),
6283     (239, 'item_lang', '-kus', oils_i18n_gettext('239', 'Kusaie', 'ccvm', 'value')),
6284     (240, 'item_lang', 'kut', oils_i18n_gettext('240', 'Kutenai', 'ccvm', 'value')),
6285     (241, 'item_lang', 'lad', oils_i18n_gettext('241', 'Ladino', 'ccvm', 'value')),
6286     (242, 'item_lang', 'lah', oils_i18n_gettext('242', 'Lahnda', 'ccvm', 'value')),
6287     (243, 'item_lang', 'lam', oils_i18n_gettext('243', 'Lamba', 'ccvm', 'value')),
6288     (244, 'item_lang', '-lan', oils_i18n_gettext('244', 'Occitan (post-1500)', 'ccvm', 'value')),
6289     (245, 'item_lang', 'lao', oils_i18n_gettext('245', 'Lao', 'ccvm', 'value')),
6290     (246, 'item_lang', '-lap', oils_i18n_gettext('246', 'Sami', 'ccvm', 'value')),
6291     (247, 'item_lang', 'lat', oils_i18n_gettext('247', 'Latin', 'ccvm', 'value')),
6292     (248, 'item_lang', 'lav', oils_i18n_gettext('248', 'Latvian', 'ccvm', 'value')),
6293     (249, 'item_lang', 'lez', oils_i18n_gettext('249', 'Lezgian', 'ccvm', 'value')),
6294     (250, 'item_lang', 'lim', oils_i18n_gettext('250', 'Limburgish', 'ccvm', 'value')),
6295     (251, 'item_lang', 'lin', oils_i18n_gettext('251', 'Lingala', 'ccvm', 'value')),
6296     (252, 'item_lang', 'lit', oils_i18n_gettext('252', 'Lithuanian', 'ccvm', 'value')),
6297     (253, 'item_lang', 'lol', oils_i18n_gettext('253', 'Mongo-Nkundu', 'ccvm', 'value')),
6298     (254, 'item_lang', 'loz', oils_i18n_gettext('254', 'Lozi', 'ccvm', 'value')),
6299     (255, 'item_lang', 'ltz', oils_i18n_gettext('255', 'Letzeburgesch', 'ccvm', 'value')),
6300     (256, 'item_lang', 'lua', oils_i18n_gettext('256', 'Luba-Lulua', 'ccvm', 'value')),
6301     (257, 'item_lang', 'lub', oils_i18n_gettext('257', 'Luba-Katanga', 'ccvm', 'value')),
6302     (258, 'item_lang', 'lug', oils_i18n_gettext('258', 'Ganda', 'ccvm', 'value')),
6303     (259, 'item_lang', 'lui', oils_i18n_gettext('259', 'Luiseño', 'ccvm', 'value')),
6304     (260, 'item_lang', 'lun', oils_i18n_gettext('260', 'Lunda', 'ccvm', 'value')),
6305     (261, 'item_lang', 'luo', oils_i18n_gettext('261', 'Luo (Kenya and Tanzania)', 'ccvm', 'value')),
6306     (262, 'item_lang', 'lus', oils_i18n_gettext('262', 'Lushai', 'ccvm', 'value')),
6307     (263, 'item_lang', 'mac', oils_i18n_gettext('263', 'Macedonian', 'ccvm', 'value')),
6308     (264, 'item_lang', 'mad', oils_i18n_gettext('264', 'Madurese', 'ccvm', 'value')),
6309     (265, 'item_lang', 'mag', oils_i18n_gettext('265', 'Magahi', 'ccvm', 'value')),
6310     (266, 'item_lang', 'mah', oils_i18n_gettext('266', 'Marshallese', 'ccvm', 'value')),
6311     (267, 'item_lang', 'mai', oils_i18n_gettext('267', 'Maithili', 'ccvm', 'value')),
6312     (268, 'item_lang', 'mak', oils_i18n_gettext('268', 'Makasar', 'ccvm', 'value')),
6313     (269, 'item_lang', 'mal', oils_i18n_gettext('269', 'Malayalam', 'ccvm', 'value')),
6314     (270, 'item_lang', 'man', oils_i18n_gettext('270', 'Mandingo', 'ccvm', 'value')),
6315     (271, 'item_lang', 'mao', oils_i18n_gettext('271', 'Maori', 'ccvm', 'value')),
6316     (272, 'item_lang', 'map', oils_i18n_gettext('272', 'Austronesian (Other)', 'ccvm', 'value')),
6317     (273, 'item_lang', 'mar', oils_i18n_gettext('273', 'Marathi', 'ccvm', 'value')),
6318     (274, 'item_lang', 'mas', oils_i18n_gettext('274', 'Masai', 'ccvm', 'value')),
6319     (275, 'item_lang', '-max', oils_i18n_gettext('275', 'Manx', 'ccvm', 'value')),
6320     (276, 'item_lang', 'may', oils_i18n_gettext('276', 'Malay', 'ccvm', 'value')),
6321     (277, 'item_lang', 'mdr', oils_i18n_gettext('277', 'Mandar', 'ccvm', 'value')),
6322     (278, 'item_lang', 'men', oils_i18n_gettext('278', 'Mende', 'ccvm', 'value')),
6323     (279, 'item_lang', 'mga', oils_i18n_gettext('279', 'Irish, Middle (ca. 1100-1550)', 'ccvm', 'value')),
6324     (280, 'item_lang', 'mic', oils_i18n_gettext('280', 'Micmac', 'ccvm', 'value')),
6325     (281, 'item_lang', 'min', oils_i18n_gettext('281', 'Minangkabau', 'ccvm', 'value')),
6326     (282, 'item_lang', 'mis', oils_i18n_gettext('282', 'Miscellaneous languages', 'ccvm', 'value')),
6327     (283, 'item_lang', 'mkh', oils_i18n_gettext('283', 'Mon-Khmer (Other)', 'ccvm', 'value')),
6328     (284, 'item_lang', '-mla', oils_i18n_gettext('284', 'Malagasy', 'ccvm', 'value')),
6329     (285, 'item_lang', 'mlg', oils_i18n_gettext('285', 'Malagasy', 'ccvm', 'value')),
6330     (286, 'item_lang', 'mlt', oils_i18n_gettext('286', 'Maltese', 'ccvm', 'value')),
6331     (287, 'item_lang', 'mnc', oils_i18n_gettext('287', 'Manchu', 'ccvm', 'value')),
6332     (288, 'item_lang', 'mni', oils_i18n_gettext('288', 'Manipuri', 'ccvm', 'value')),
6333     (289, 'item_lang', 'mno', oils_i18n_gettext('289', 'Manobo languages', 'ccvm', 'value')),
6334     (290, 'item_lang', 'moh', oils_i18n_gettext('290', 'Mohawk', 'ccvm', 'value')),
6335     (291, 'item_lang', 'mol', oils_i18n_gettext('291', 'Moldavian', 'ccvm', 'value')),
6336     (292, 'item_lang', 'mon', oils_i18n_gettext('292', 'Mongolian', 'ccvm', 'value')),
6337     (293, 'item_lang', 'mos', oils_i18n_gettext('293', 'Mooré', 'ccvm', 'value')),
6338     (294, 'item_lang', 'mul', oils_i18n_gettext('294', 'Multiple languages', 'ccvm', 'value')),
6339     (295, 'item_lang', 'mun', oils_i18n_gettext('295', 'Munda (Other)', 'ccvm', 'value')),
6340     (296, 'item_lang', 'mus', oils_i18n_gettext('296', 'Creek', 'ccvm', 'value')),
6341     (297, 'item_lang', 'mwr', oils_i18n_gettext('297', 'Marwari', 'ccvm', 'value')),
6342     (298, 'item_lang', 'myn', oils_i18n_gettext('298', 'Mayan languages', 'ccvm', 'value')),
6343     (299, 'item_lang', 'nah', oils_i18n_gettext('299', 'Nahuatl', 'ccvm', 'value')),
6344     (300, 'item_lang', 'nai', oils_i18n_gettext('300', 'North American Indian (Other)', 'ccvm', 'value')),
6345     (301, 'item_lang', 'nap', oils_i18n_gettext('301', 'Neapolitan Italian', 'ccvm', 'value')),
6346     (302, 'item_lang', 'nau', oils_i18n_gettext('302', 'Nauru', 'ccvm', 'value')),
6347     (303, 'item_lang', 'nav', oils_i18n_gettext('303', 'Navajo', 'ccvm', 'value')),
6348     (304, 'item_lang', 'nbl', oils_i18n_gettext('304', 'Ndebele (South Africa)', 'ccvm', 'value')),
6349     (305, 'item_lang', 'nde', oils_i18n_gettext('305', 'Ndebele (Zimbabwe)  ', 'ccvm', 'value')),
6350     (306, 'item_lang', 'ndo', oils_i18n_gettext('306', 'Ndonga', 'ccvm', 'value')),
6351     (307, 'item_lang', 'nds', oils_i18n_gettext('307', 'Low German', 'ccvm', 'value')),
6352     (308, 'item_lang', 'nep', oils_i18n_gettext('308', 'Nepali', 'ccvm', 'value')),
6353     (309, 'item_lang', 'new', oils_i18n_gettext('309', 'Newari', 'ccvm', 'value')),
6354     (310, 'item_lang', 'nia', oils_i18n_gettext('310', 'Nias', 'ccvm', 'value')),
6355     (311, 'item_lang', 'nic', oils_i18n_gettext('311', 'Niger-Kordofanian (Other)', 'ccvm', 'value')),
6356     (312, 'item_lang', 'niu', oils_i18n_gettext('312', 'Niuean', 'ccvm', 'value')),
6357     (313, 'item_lang', 'nno', oils_i18n_gettext('313', 'Norwegian (Nynorsk)', 'ccvm', 'value')),
6358     (314, 'item_lang', 'nob', oils_i18n_gettext('314', 'Norwegian (BokmÃ¥l)', 'ccvm', 'value')),
6359     (315, 'item_lang', 'nog', oils_i18n_gettext('315', 'Nogai', 'ccvm', 'value')),
6360     (316, 'item_lang', 'non', oils_i18n_gettext('316', 'Old Norse', 'ccvm', 'value')),
6361     (317, 'item_lang', 'nor', oils_i18n_gettext('317', 'Norwegian', 'ccvm', 'value')),
6362     (318, 'item_lang', 'nso', oils_i18n_gettext('318', 'Northern Sotho', 'ccvm', 'value')),
6363     (319, 'item_lang', 'nub', oils_i18n_gettext('319', 'Nubian languages', 'ccvm', 'value')),
6364     (320, 'item_lang', 'nya', oils_i18n_gettext('320', 'Nyanja', 'ccvm', 'value')),
6365     (321, 'item_lang', 'nym', oils_i18n_gettext('321', 'Nyamwezi', 'ccvm', 'value')),
6366     (322, 'item_lang', 'nyn', oils_i18n_gettext('322', 'Nyankole', 'ccvm', 'value')),
6367     (323, 'item_lang', 'nyo', oils_i18n_gettext('323', 'Nyoro', 'ccvm', 'value')),
6368     (324, 'item_lang', 'nzi', oils_i18n_gettext('324', 'Nzima', 'ccvm', 'value')),
6369     (325, 'item_lang', 'oci', oils_i18n_gettext('325', 'Occitan (post-1500)', 'ccvm', 'value')),
6370     (326, 'item_lang', 'oji', oils_i18n_gettext('326', 'Ojibwa', 'ccvm', 'value')),
6371     (327, 'item_lang', 'ori', oils_i18n_gettext('327', 'Oriya', 'ccvm', 'value')),
6372     (328, 'item_lang', 'orm', oils_i18n_gettext('328', 'Oromo', 'ccvm', 'value')),
6373     (329, 'item_lang', 'osa', oils_i18n_gettext('329', 'Osage', 'ccvm', 'value')),
6374     (330, 'item_lang', 'oss', oils_i18n_gettext('330', 'Ossetic', 'ccvm', 'value')),
6375     (331, 'item_lang', 'ota', oils_i18n_gettext('331', 'Turkish, Ottoman', 'ccvm', 'value')),
6376     (332, 'item_lang', 'oto', oils_i18n_gettext('332', 'Otomian languages', 'ccvm', 'value')),
6377     (333, 'item_lang', 'paa', oils_i18n_gettext('333', 'Papuan (Other)', 'ccvm', 'value')),
6378     (334, 'item_lang', 'pag', oils_i18n_gettext('334', 'Pangasinan', 'ccvm', 'value')),
6379     (335, 'item_lang', 'pal', oils_i18n_gettext('335', 'Pahlavi', 'ccvm', 'value')),
6380     (336, 'item_lang', 'pam', oils_i18n_gettext('336', 'Pampanga', 'ccvm', 'value')),
6381     (337, 'item_lang', 'pan', oils_i18n_gettext('337', 'Panjabi', 'ccvm', 'value')),
6382     (338, 'item_lang', 'pap', oils_i18n_gettext('338', 'Papiamento', 'ccvm', 'value')),
6383     (339, 'item_lang', 'pau', oils_i18n_gettext('339', 'Palauan', 'ccvm', 'value')),
6384     (340, 'item_lang', 'peo', oils_i18n_gettext('340', 'Old Persian (ca. 600-400 B.C.)', 'ccvm', 'value')),
6385     (341, 'item_lang', 'per', oils_i18n_gettext('341', 'Persian', 'ccvm', 'value')),
6386     (342, 'item_lang', 'phi', oils_i18n_gettext('342', 'Philippine (Other)', 'ccvm', 'value')),
6387     (343, 'item_lang', 'phn', oils_i18n_gettext('343', 'Phoenician', 'ccvm', 'value')),
6388     (344, 'item_lang', 'pli', oils_i18n_gettext('344', 'Pali', 'ccvm', 'value')),
6389     (345, 'item_lang', 'pol', oils_i18n_gettext('345', 'Polish', 'ccvm', 'value')),
6390     (346, 'item_lang', 'pon', oils_i18n_gettext('346', 'Ponape', 'ccvm', 'value')),
6391     (347, 'item_lang', 'por', oils_i18n_gettext('347', 'Portuguese', 'ccvm', 'value')),
6392     (348, 'item_lang', 'pra', oils_i18n_gettext('348', 'Prakrit languages', 'ccvm', 'value')),
6393     (349, 'item_lang', 'pro', oils_i18n_gettext('349', 'Provençal (to 1500)', 'ccvm', 'value')),
6394     (350, 'item_lang', 'pus', oils_i18n_gettext('350', 'Pushto', 'ccvm', 'value')),
6395     (351, 'item_lang', 'que', oils_i18n_gettext('351', 'Quechua', 'ccvm', 'value')),
6396     (352, 'item_lang', 'raj', oils_i18n_gettext('352', 'Rajasthani', 'ccvm', 'value')),
6397     (353, 'item_lang', 'rap', oils_i18n_gettext('353', 'Rapanui', 'ccvm', 'value')),
6398     (354, 'item_lang', 'rar', oils_i18n_gettext('354', 'Rarotongan', 'ccvm', 'value')),
6399     (355, 'item_lang', 'roa', oils_i18n_gettext('355', 'Romance (Other)', 'ccvm', 'value')),
6400     (356, 'item_lang', 'roh', oils_i18n_gettext('356', 'Raeto-Romance', 'ccvm', 'value')),
6401     (357, 'item_lang', 'rom', oils_i18n_gettext('357', 'Romani', 'ccvm', 'value')),
6402     (358, 'item_lang', 'rum', oils_i18n_gettext('358', 'Romanian', 'ccvm', 'value')),
6403     (359, 'item_lang', 'run', oils_i18n_gettext('359', 'Rundi', 'ccvm', 'value')),
6404     (360, 'item_lang', 'rus', oils_i18n_gettext('360', 'Russian', 'ccvm', 'value')),
6405     (361, 'item_lang', 'sad', oils_i18n_gettext('361', 'Sandawe', 'ccvm', 'value')),
6406     (362, 'item_lang', 'sag', oils_i18n_gettext('362', 'Sango (Ubangi Creole)', 'ccvm', 'value')),
6407     (363, 'item_lang', 'sah', oils_i18n_gettext('363', 'Yakut', 'ccvm', 'value')),
6408     (364, 'item_lang', 'sai', oils_i18n_gettext('364', 'South American Indian (Other)', 'ccvm', 'value')),
6409     (365, 'item_lang', 'sal', oils_i18n_gettext('365', 'Salishan languages', 'ccvm', 'value')),
6410     (366, 'item_lang', 'sam', oils_i18n_gettext('366', 'Samaritan Aramaic', 'ccvm', 'value')),
6411     (367, 'item_lang', 'san', oils_i18n_gettext('367', 'Sanskrit', 'ccvm', 'value')),
6412     (368, 'item_lang', '-sao', oils_i18n_gettext('368', 'Samoan', 'ccvm', 'value')),
6413     (369, 'item_lang', 'sas', oils_i18n_gettext('369', 'Sasak', 'ccvm', 'value')),
6414     (370, 'item_lang', 'sat', oils_i18n_gettext('370', 'Santali', 'ccvm', 'value')),
6415     (371, 'item_lang', 'scc', oils_i18n_gettext('371', 'Serbian', 'ccvm', 'value')),
6416     (372, 'item_lang', 'sco', oils_i18n_gettext('372', 'Scots', 'ccvm', 'value')),
6417     (373, 'item_lang', 'scr', oils_i18n_gettext('373', 'Croatian', 'ccvm', 'value')),
6418     (374, 'item_lang', 'sel', oils_i18n_gettext('374', 'Selkup', 'ccvm', 'value')),
6419     (375, 'item_lang', 'sem', oils_i18n_gettext('375', 'Semitic (Other)', 'ccvm', 'value')),
6420     (376, 'item_lang', 'sga', oils_i18n_gettext('376', 'Irish, Old (to 1100)', 'ccvm', 'value')),
6421     (377, 'item_lang', 'sgn', oils_i18n_gettext('377', 'Sign languages', 'ccvm', 'value')),
6422     (378, 'item_lang', 'shn', oils_i18n_gettext('378', 'Shan', 'ccvm', 'value')),
6423     (379, 'item_lang', '-sho', oils_i18n_gettext('379', 'Shona', 'ccvm', 'value')),
6424     (380, 'item_lang', 'sid', oils_i18n_gettext('380', 'Sidamo', 'ccvm', 'value')),
6425     (381, 'item_lang', 'sin', oils_i18n_gettext('381', 'Sinhalese', 'ccvm', 'value')),
6426     (382, 'item_lang', 'sio', oils_i18n_gettext('382', 'Siouan (Other)', 'ccvm', 'value')),
6427     (383, 'item_lang', 'sit', oils_i18n_gettext('383', 'Sino-Tibetan (Other)', 'ccvm', 'value')),
6428     (384, 'item_lang', 'sla', oils_i18n_gettext('384', 'Slavic (Other)', 'ccvm', 'value')),
6429     (385, 'item_lang', 'slo', oils_i18n_gettext('385', 'Slovak', 'ccvm', 'value')),
6430     (386, 'item_lang', 'slv', oils_i18n_gettext('386', 'Slovenian', 'ccvm', 'value')),
6431     (387, 'item_lang', 'sma', oils_i18n_gettext('387', 'Southern Sami', 'ccvm', 'value')),
6432     (388, 'item_lang', 'sme', oils_i18n_gettext('388', 'Northern Sami', 'ccvm', 'value')),
6433     (389, 'item_lang', 'smi', oils_i18n_gettext('389', 'Sami', 'ccvm', 'value')),
6434     (390, 'item_lang', 'smj', oils_i18n_gettext('390', 'Lule Sami', 'ccvm', 'value')),
6435     (391, 'item_lang', 'smn', oils_i18n_gettext('391', 'Inari Sami', 'ccvm', 'value')),
6436     (392, 'item_lang', 'smo', oils_i18n_gettext('392', 'Samoan', 'ccvm', 'value')),
6437     (393, 'item_lang', 'sms', oils_i18n_gettext('393', 'Skolt Sami', 'ccvm', 'value')),
6438     (394, 'item_lang', 'sna', oils_i18n_gettext('394', 'Shona', 'ccvm', 'value')),
6439     (395, 'item_lang', 'snd', oils_i18n_gettext('395', 'Sindhi', 'ccvm', 'value')),
6440     (396, 'item_lang', '-snh', oils_i18n_gettext('396', 'Sinhalese', 'ccvm', 'value')),
6441     (397, 'item_lang', 'snk', oils_i18n_gettext('397', 'Soninke', 'ccvm', 'value')),
6442     (398, 'item_lang', 'sog', oils_i18n_gettext('398', 'Sogdian', 'ccvm', 'value')),
6443     (399, 'item_lang', 'som', oils_i18n_gettext('399', 'Somali', 'ccvm', 'value')),
6444     (400, 'item_lang', 'son', oils_i18n_gettext('400', 'Songhai', 'ccvm', 'value')),
6445     (401, 'item_lang', 'sot', oils_i18n_gettext('401', 'Sotho', 'ccvm', 'value')),
6446     (402, 'item_lang', 'spa', oils_i18n_gettext('402', 'Spanish', 'ccvm', 'value')),
6447     (403, 'item_lang', 'srd', oils_i18n_gettext('403', 'Sardinian', 'ccvm', 'value')),
6448     (404, 'item_lang', 'srr', oils_i18n_gettext('404', 'Serer', 'ccvm', 'value')),
6449     (405, 'item_lang', 'ssa', oils_i18n_gettext('405', 'Nilo-Saharan (Other)', 'ccvm', 'value')),
6450     (406, 'item_lang', '-sso', oils_i18n_gettext('406', 'Sotho', 'ccvm', 'value')),
6451     (407, 'item_lang', 'ssw', oils_i18n_gettext('407', 'Swazi', 'ccvm', 'value')),
6452     (408, 'item_lang', 'suk', oils_i18n_gettext('408', 'Sukuma', 'ccvm', 'value')),
6453     (409, 'item_lang', 'sun', oils_i18n_gettext('409', 'Sundanese', 'ccvm', 'value')),
6454     (410, 'item_lang', 'sus', oils_i18n_gettext('410', 'Susu', 'ccvm', 'value')),
6455     (411, 'item_lang', 'sux', oils_i18n_gettext('411', 'Sumerian', 'ccvm', 'value')),
6456     (412, 'item_lang', 'swa', oils_i18n_gettext('412', 'Swahili', 'ccvm', 'value')),
6457     (413, 'item_lang', 'swe', oils_i18n_gettext('413', 'Swedish', 'ccvm', 'value')),
6458     (414, 'item_lang', '-swz', oils_i18n_gettext('414', 'Swazi', 'ccvm', 'value')),
6459     (415, 'item_lang', 'syr', oils_i18n_gettext('415', 'Syriac', 'ccvm', 'value')),
6460     (416, 'item_lang', '-tag', oils_i18n_gettext('416', 'Tagalog', 'ccvm', 'value')),
6461     (417, 'item_lang', 'tah', oils_i18n_gettext('417', 'Tahitian', 'ccvm', 'value')),
6462     (418, 'item_lang', 'tai', oils_i18n_gettext('418', 'Tai (Other)', 'ccvm', 'value')),
6463     (419, 'item_lang', '-taj', oils_i18n_gettext('419', 'Tajik', 'ccvm', 'value')),
6464     (420, 'item_lang', 'tam', oils_i18n_gettext('420', 'Tamil', 'ccvm', 'value')),
6465     (421, 'item_lang', '-tar', oils_i18n_gettext('421', 'Tatar', 'ccvm', 'value')),
6466     (422, 'item_lang', 'tat', oils_i18n_gettext('422', 'Tatar', 'ccvm', 'value')),
6467     (423, 'item_lang', 'tel', oils_i18n_gettext('423', 'Telugu', 'ccvm', 'value')),
6468     (424, 'item_lang', 'tem', oils_i18n_gettext('424', 'Temne', 'ccvm', 'value')),
6469     (425, 'item_lang', 'ter', oils_i18n_gettext('425', 'Terena', 'ccvm', 'value')),
6470     (426, 'item_lang', 'tet', oils_i18n_gettext('426', 'Tetum', 'ccvm', 'value')),
6471     (427, 'item_lang', 'tgk', oils_i18n_gettext('427', 'Tajik', 'ccvm', 'value')),
6472     (428, 'item_lang', 'tgl', oils_i18n_gettext('428', 'Tagalog', 'ccvm', 'value')),
6473     (429, 'item_lang', 'tha', oils_i18n_gettext('429', 'Thai', 'ccvm', 'value')),
6474     (430, 'item_lang', 'tib', oils_i18n_gettext('430', 'Tibetan', 'ccvm', 'value')),
6475     (431, 'item_lang', 'tig', oils_i18n_gettext('431', 'Tigré', 'ccvm', 'value')),
6476     (432, 'item_lang', 'tir', oils_i18n_gettext('432', 'Tigrinya', 'ccvm', 'value')),
6477     (433, 'item_lang', 'tiv', oils_i18n_gettext('433', 'Tiv', 'ccvm', 'value')),
6478     (434, 'item_lang', 'tkl', oils_i18n_gettext('434', 'Tokelauan', 'ccvm', 'value')),
6479     (435, 'item_lang', 'tli', oils_i18n_gettext('435', 'Tlingit', 'ccvm', 'value')),
6480     (436, 'item_lang', 'tmh', oils_i18n_gettext('436', 'Tamashek', 'ccvm', 'value')),
6481     (437, 'item_lang', 'tog', oils_i18n_gettext('437', 'Tonga (Nyasa)', 'ccvm', 'value')),
6482     (438, 'item_lang', 'ton', oils_i18n_gettext('438', 'Tongan', 'ccvm', 'value')),
6483     (439, 'item_lang', 'tpi', oils_i18n_gettext('439', 'Tok Pisin', 'ccvm', 'value')),
6484     (440, 'item_lang', '-tru', oils_i18n_gettext('440', 'Truk', 'ccvm', 'value')),
6485     (441, 'item_lang', 'tsi', oils_i18n_gettext('441', 'Tsimshian', 'ccvm', 'value')),
6486     (442, 'item_lang', 'tsn', oils_i18n_gettext('442', 'Tswana', 'ccvm', 'value')),
6487     (443, 'item_lang', 'tso', oils_i18n_gettext('443', 'Tsonga', 'ccvm', 'value')),
6488     (444, 'item_lang', '-tsw', oils_i18n_gettext('444', 'Tswana', 'ccvm', 'value')),
6489     (445, 'item_lang', 'tuk', oils_i18n_gettext('445', 'Turkmen', 'ccvm', 'value')),
6490     (446, 'item_lang', 'tum', oils_i18n_gettext('446', 'Tumbuka', 'ccvm', 'value')),
6491     (447, 'item_lang', 'tup', oils_i18n_gettext('447', 'Tupi languages', 'ccvm', 'value')),
6492     (448, 'item_lang', 'tur', oils_i18n_gettext('448', 'Turkish', 'ccvm', 'value')),
6493     (449, 'item_lang', 'tut', oils_i18n_gettext('449', 'Altaic (Other)', 'ccvm', 'value')),
6494     (450, 'item_lang', 'tvl', oils_i18n_gettext('450', 'Tuvaluan', 'ccvm', 'value')),
6495     (451, 'item_lang', 'twi', oils_i18n_gettext('451', 'Twi', 'ccvm', 'value')),
6496     (452, 'item_lang', 'tyv', oils_i18n_gettext('452', 'Tuvinian', 'ccvm', 'value')),
6497     (453, 'item_lang', 'udm', oils_i18n_gettext('453', 'Udmurt', 'ccvm', 'value')),
6498     (454, 'item_lang', 'uga', oils_i18n_gettext('454', 'Ugaritic', 'ccvm', 'value')),
6499     (455, 'item_lang', 'uig', oils_i18n_gettext('455', 'Uighur', 'ccvm', 'value')),
6500     (456, 'item_lang', 'ukr', oils_i18n_gettext('456', 'Ukrainian', 'ccvm', 'value')),
6501     (457, 'item_lang', 'umb', oils_i18n_gettext('457', 'Umbundu', 'ccvm', 'value')),
6502     (458, 'item_lang', 'und', oils_i18n_gettext('458', 'Undetermined', 'ccvm', 'value')),
6503     (459, 'item_lang', 'urd', oils_i18n_gettext('459', 'Urdu', 'ccvm', 'value')),
6504     (460, 'item_lang', 'uzb', oils_i18n_gettext('460', 'Uzbek', 'ccvm', 'value')),
6505     (461, 'item_lang', 'vai', oils_i18n_gettext('461', 'Vai', 'ccvm', 'value')),
6506     (462, 'item_lang', 'ven', oils_i18n_gettext('462', 'Venda', 'ccvm', 'value')),
6507     (463, 'item_lang', 'vie', oils_i18n_gettext('463', 'Vietnamese', 'ccvm', 'value')),
6508     (464, 'item_lang', 'vol', oils_i18n_gettext('464', 'Volapük', 'ccvm', 'value')),
6509     (465, 'item_lang', 'vot', oils_i18n_gettext('465', 'Votic', 'ccvm', 'value')),
6510     (466, 'item_lang', 'wak', oils_i18n_gettext('466', 'Wakashan languages', 'ccvm', 'value')),
6511     (467, 'item_lang', 'wal', oils_i18n_gettext('467', 'Walamo', 'ccvm', 'value')),
6512     (468, 'item_lang', 'war', oils_i18n_gettext('468', 'Waray', 'ccvm', 'value')),
6513     (469, 'item_lang', 'was', oils_i18n_gettext('469', 'Washo', 'ccvm', 'value')),
6514     (470, 'item_lang', 'wel', oils_i18n_gettext('470', 'Welsh', 'ccvm', 'value')),
6515     (471, 'item_lang', 'wen', oils_i18n_gettext('471', 'Sorbian languages', 'ccvm', 'value')),
6516     (472, 'item_lang', 'wln', oils_i18n_gettext('472', 'Walloon', 'ccvm', 'value')),
6517     (473, 'item_lang', 'wol', oils_i18n_gettext('473', 'Wolof', 'ccvm', 'value')),
6518     (474, 'item_lang', 'xal', oils_i18n_gettext('474', 'Kalmyk', 'ccvm', 'value')),
6519     (475, 'item_lang', 'xho', oils_i18n_gettext('475', 'Xhosa', 'ccvm', 'value')),
6520     (476, 'item_lang', 'yao', oils_i18n_gettext('476', 'Yao (Africa)', 'ccvm', 'value')),
6521     (477, 'item_lang', 'yap', oils_i18n_gettext('477', 'Yapese', 'ccvm', 'value')),
6522     (478, 'item_lang', 'yid', oils_i18n_gettext('478', 'Yiddish', 'ccvm', 'value')),
6523     (479, 'item_lang', 'yor', oils_i18n_gettext('479', 'Yoruba', 'ccvm', 'value')),
6524     (480, 'item_lang', 'ypk', oils_i18n_gettext('480', 'Yupik languages', 'ccvm', 'value')),
6525     (481, 'item_lang', 'zap', oils_i18n_gettext('481', 'Zapotec', 'ccvm', 'value')),
6526     (482, 'item_lang', 'zen', oils_i18n_gettext('482', 'Zenaga', 'ccvm', 'value')),
6527     (483, 'item_lang', 'zha', oils_i18n_gettext('483', 'Zhuang', 'ccvm', 'value')),
6528     (484, 'item_lang', 'znd', oils_i18n_gettext('484', 'Zande', 'ccvm', 'value')),
6529     (485, 'item_lang', 'zul', oils_i18n_gettext('485', 'Zulu', 'ccvm', 'value')),
6530     (486, 'item_lang', 'zun', oils_i18n_gettext('486', 'Zuni', 'ccvm', 'value'));
6531
6532 INSERT INTO config.coded_value_map (id, ctype, code, value, description) VALUES 
6533     (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')),
6534     (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')),
6535     (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')),
6536     (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')),
6537     (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')),
6538     (492,'audience', 'e', oils_i18n_gettext('492', 'Adult', 'ccvm', 'value'),                   oils_i18n_gettext('492', 'The item is intended for adults.', 'ccvm', 'description')),
6539     (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')),
6540     (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')),
6541     (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'));
6542
6543 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
6544     (496, 'item_type', 'a', oils_i18n_gettext('496', 'Language material', 'ccvm', 'value')),
6545     (497, 'item_type', 't', oils_i18n_gettext('497', 'Manuscript language material', 'ccvm', 'value')),
6546     (498, 'item_type', 'g', oils_i18n_gettext('498', 'Projected medium', 'ccvm', 'value')),
6547     (499, 'item_type', 'k', oils_i18n_gettext('499', 'Two-dimensional nonprojectable graphic', 'ccvm', 'value')),
6548     (500, 'item_type', 'r', oils_i18n_gettext('500', 'Three-dimensional artifact or naturally occurring object', 'ccvm', 'value')),
6549     (501, 'item_type', 'o', oils_i18n_gettext('501', 'Kit', 'ccvm', 'value')),
6550     (502, 'item_type', 'p', oils_i18n_gettext('502', 'Mixed materials', 'ccvm', 'value')),
6551     (503, 'item_type', 'e', oils_i18n_gettext('503', 'Cartographic material', 'ccvm', 'value')),
6552     (504, 'item_type', 'f', oils_i18n_gettext('504', 'Manuscript cartographic material', 'ccvm', 'value')),
6553     (505, 'item_type', 'c', oils_i18n_gettext('505', 'Notated music', 'ccvm', 'value')),
6554     (506, 'item_type', 'd', oils_i18n_gettext('506', 'Manuscript notated music', 'ccvm', 'value')),
6555     (507, 'item_type', 'i', oils_i18n_gettext('507', 'Nonmusical sound recording', 'ccvm', 'value')),
6556     (508, 'item_type', 'j', oils_i18n_gettext('508', 'Musical sound recording', 'ccvm', 'value')),
6557     (509, 'item_type', 'm', oils_i18n_gettext('509', 'Computer file', 'ccvm', 'value'));
6558
6559 INSERT INTO config.coded_value_map (id, ctype, code, value, description) VALUES 
6560     (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')),
6561     (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')),
6562     (512, 'lit_form', 'c', oils_i18n_gettext('512', 'Comic strips', 'ccvm', 'value'), NULL),
6563     (513, 'lit_form', 'd', oils_i18n_gettext('513', 'Dramas', 'ccvm', 'value'), NULL),
6564     (514, 'lit_form', 'e', oils_i18n_gettext('514', 'Essays', 'ccvm', 'value'), NULL),
6565     (515, 'lit_form', 'f', oils_i18n_gettext('515', 'Novels', 'ccvm', 'value'), NULL),
6566     (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')),
6567     (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')),
6568     (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')),
6569     (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')),
6570     (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')),
6571     (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')),
6572     (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'));
6573
6574
6575 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
6576     (523, 'item_form', 'a', oils_i18n_gettext('523', 'Microfilm', 'ccvm', 'value')),
6577     (524, 'item_form', 'b', oils_i18n_gettext('524', 'Microfiche', 'ccvm', 'value')),
6578     (525, 'item_form', 'c', oils_i18n_gettext('525', 'Microopaque', 'ccvm', 'value')),
6579     (526, 'item_form', 'd', oils_i18n_gettext('526', 'Large print', 'ccvm', 'value')),
6580     (527, 'item_form', 'f', oils_i18n_gettext('527', 'Braille', 'ccvm', 'value')),
6581     (528, 'item_form', 'r', oils_i18n_gettext('528', 'Regular print reproduction', 'ccvm', 'value')),
6582     (529, 'item_form', 's', oils_i18n_gettext('529', 'Electronic', 'ccvm', 'value'));
6583
6584 INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
6585     (530, 'bib_level', 'a', oils_i18n_gettext('530', 'Monographic component part', 'ccvm', 'value')),
6586     (531, 'bib_level', 'b', oils_i18n_gettext('531', 'Serial component part', 'ccvm', 'value')),
6587     (532, 'bib_level', 'c', oils_i18n_gettext('532', 'Collection', 'ccvm', 'value')),
6588     (533, 'bib_level', 'd', oils_i18n_gettext('533', 'Subunit', 'ccvm', 'value')),
6589     (534, 'bib_level', 'i', oils_i18n_gettext('534', 'Integrating resource', 'ccvm', 'value')),
6590     (535, 'bib_level', 'm', oils_i18n_gettext('535', 'Monograph/Item', 'ccvm', 'value')),
6591     (536, 'bib_level', 's', oils_i18n_gettext('536', 'Serial', 'ccvm', 'value'));
6592
6593 INSERT INTO config.coded_value_map(id, ctype, code, value) VALUES
6594     (537, 'vr_format', 'a', oils_i18n_gettext('537', 'Beta', 'ccvm', 'value')),
6595     (538, 'vr_format', 'b', oils_i18n_gettext('538', 'VHS', 'ccvm', 'value')),
6596     (539, 'vr_format', 'c', oils_i18n_gettext('539', 'U-matic', 'ccvm', 'value')),
6597     (540, 'vr_format', 'd', oils_i18n_gettext('540', 'EIAJ', 'ccvm', 'value')),
6598     (541, 'vr_format', 'e', oils_i18n_gettext('541', 'Type C', 'ccvm', 'value')),
6599     (542, 'vr_format', 'f', oils_i18n_gettext('542', 'Quadruplex', 'ccvm', 'value')),
6600     (543, 'vr_format', 'g', oils_i18n_gettext('543', 'Laserdisc', 'ccvm', 'value')),
6601     (544, 'vr_format', 'h', oils_i18n_gettext('544', 'CED videodisc', 'ccvm', 'value')),
6602     (545, 'vr_format', 'i', oils_i18n_gettext('545', 'Betacam', 'ccvm', 'value')),
6603     (546, 'vr_format', 'j', oils_i18n_gettext('546', 'Betacam SP', 'ccvm', 'value')),
6604     (547, 'vr_format', 'k', oils_i18n_gettext('547', 'Super-VHS', 'ccvm', 'value')),
6605     (548, 'vr_format', 'm', oils_i18n_gettext('548', 'M-II', 'ccvm', 'value')),
6606     (549, 'vr_format', 'o', oils_i18n_gettext('549', 'D-2', 'ccvm', 'value')),
6607     (550, 'vr_format', 'p', oils_i18n_gettext('550', '8 mm.', 'ccvm', 'value')),
6608     (551, 'vr_format', 'q', oils_i18n_gettext('551', 'Hi-8 mm.', 'ccvm', 'value')),
6609     (552, 'vr_format', 's', oils_i18n_gettext('552', 'Blu-ray disc', 'ccvm', 'value')),
6610     (553, 'vr_format', 'u', oils_i18n_gettext('553', 'Unknown', 'ccvm', 'value')),
6611     (554, 'vr_format', 'v', oils_i18n_gettext('554', 'DVD', 'ccvm', 'value')),
6612     (555, 'vr_format', 'z', oils_i18n_gettext('555', 'Other', 'ccvm', 'value')),
6613     (556, 'vr_format', ' ', oils_i18n_gettext('556', 'Unspecified', 'ccvm', 'value'));
6614
6615 SELECT SETVAL('config.coded_value_map_id_seq'::TEXT, (SELECT max(id) FROM config.coded_value_map));
6616
6617 -- Trigger Event Definitions -------------------------------------------------
6618
6619 -- Sample Overdue Notice --
6620
6621 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, template) 
6622     VALUES (1, 'f', 1, '7 Day Overdue Email Notification', 'checkout.due', 'CircIsOverdue', 'SendEmail', '7 days', 'due_date', 'usr', '8 days', 
6623 $$
6624 [%- USE date -%]
6625 [%- user = target.0.usr -%]
6626 To: [%- params.recipient_email || user.email %]
6627 From: [%- params.sender_email || default_sender %]
6628 Subject: Overdue Notification
6629
6630 Dear [% user.family_name %], [% user.first_given_name %]
6631 Our records indicate the following items are overdue.
6632
6633 [% FOR circ IN target %]
6634     [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
6635     Title: [% copy_details.title %]
6636     Author: [% copy_details.author %]
6637     Call Number: [% circ.target_copy.call_number.label %]
6638     Barcode: [% circ.target_copy.barcode %]
6639     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
6640     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
6641     Total Owed For Transaction: [% circ.billable_transaction.summary.balance_owed %]
6642     Library: [% circ.circ_lib.name %]
6643
6644 [% END %]
6645
6646 $$);
6647
6648 INSERT INTO action_trigger.environment (event_def, path) VALUES 
6649     (1, 'target_copy.call_number'),
6650     (1, 'target_copy.location'),
6651     (1, 'usr'),
6652     (1, 'billable_transaction.summary'),
6653     (1, 'circ_lib.billing_address');
6654
6655 -- Sample Mark Long-Overdue Item Lost --
6656
6657 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field) 
6658     VALUES (2, 'f', 1, '90 Day Overdue Mark Lost', 'checkout.due', 'CircIsOverdue', 'MarkItemLost', '90 days', 'due_date');
6659
6660 INSERT INTO action_trigger.event_params (event_def, param, value) VALUES
6661     (2, 'editor', '''1''');
6662
6663 -- Sample Auto Mark Lost Notice --
6664
6665 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, template) 
6666     VALUES (3, 'f', 1, '90 Day Overdue Mark Lost Notice', 'lost.auto', 'NOOP_True', 'SendEmail', 'usr',
6667 $$
6668 [%- USE date -%]
6669 [%- user = target.0.usr -%]
6670 To: [%- params.recipient_email || user.email %]
6671 From: [%- params.sender_email || default_sender %]
6672 Subject: Overdue Items Marked Lost
6673
6674 Dear [% user.family_name %], [% user.first_given_name %]
6675 The following items are 90 days overdue and have been marked LOST.
6676
6677 [% FOR circ IN target %]
6678     [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
6679     Title: [% copy_details.title %], by [% copy_details.author %]
6680     Call Number: [% circ.target_copy.call_number.label %]
6681     Shelving Location: [% circ.target_copy.location.name %]
6682     Barcode: [% circ.target_copy.barcode %]
6683     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
6684     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
6685     Total Owed For Transaction: [% circ.billable_transaction.summary.balance_owed %]
6686     Library: [% circ.circ_lib.name %]
6687
6688 [% END %]
6689
6690 $$);
6691
6692
6693 INSERT INTO action_trigger.environment (event_def, path) VALUES 
6694     (3, 'target_copy.call_number'),
6695     (3, 'usr'),
6696     (3, 'billable_transaction.summary'),
6697     (3, 'circ_lib.billing_address'),
6698     (3, 'target_copy.location');
6699
6700
6701 -- Sample Purchase Order HTML Template --
6702
6703 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, template) 
6704     VALUES (4, 't', 1, 'PO HTML', 'format.po.html', 'NOOP_True', 'ProcessTemplate', 
6705 $$
6706 [%- USE date -%]
6707 [%-
6708     # find a lineitem attribute by name and optional type
6709     BLOCK get_li_attr;
6710         FOR attr IN li.attributes;
6711             IF attr.attr_name == attr_name;
6712                 IF !attr_type OR attr_type == attr.attr_type;
6713                     attr.attr_value;
6714                     LAST;
6715                 END;
6716             END;
6717         END;
6718     END
6719 -%]
6720
6721 <h2>Purchase Order: [% target.name %] ([% target.id %])</h2>
6722 <br/>
6723 date <b>[% date.format(date.now, '%Y%m%d') %]</b>
6724 <br/>
6725
6726 <style>
6727     table td { padding:5px; border:1px solid #aaa;}
6728     table { width:95%; border-collapse:collapse; }
6729     #vendor-notes { padding:5px; border:1px solid #aaa; }
6730 </style>
6731 <table id='vendor-table'>
6732   <tr>
6733     <td valign='top'>Vendor</td>
6734     <td>
6735       <div>[% target.provider.name %]</div>
6736       <div>[% target.provider.addresses.0.street1 %]</div>
6737       <div>[% target.provider.addresses.0.street2 %]</div>
6738       <div>[% target.provider.addresses.0.city %]</div>
6739       <div>[% target.provider.addresses.0.state %]</div>
6740       <div>[% target.provider.addresses.0.country %]</div>
6741       <div>[% target.provider.addresses.0.post_code %]</div>
6742     </td>
6743     <td valign='top'>Ship to / Bill to</td>
6744     <td>
6745       <div>[% target.ordering_agency.name %]</div>
6746       <div>[% target.ordering_agency.billing_address.street1 %]</div>
6747       <div>[% target.ordering_agency.billing_address.street2 %]</div>
6748       <div>[% target.ordering_agency.billing_address.city %]</div>
6749       <div>[% target.ordering_agency.billing_address.state %]</div>
6750       <div>[% target.ordering_agency.billing_address.country %]</div>
6751       <div>[% target.ordering_agency.billing_address.post_code %]</div>
6752     </td>
6753   </tr>
6754 </table>
6755
6756 <br/><br/>
6757 <fieldset id='vendor-notes'>
6758     <legend>Notes to the Vendor</legend>
6759     <ul>
6760     [% FOR note IN target.notes %]
6761         [% IF note.vendor_public == 't' %]
6762             <li>[% note.value %]</li>
6763         [% END %]
6764     [% END %]
6765     </ul>
6766 </fieldset>
6767 <br/><br/>
6768
6769 <table>
6770   <thead>
6771     <tr>
6772       <th>PO#</th>
6773       <th>ISBN or Item #</th>
6774       <th>Title</th>
6775       <th>Quantity</th>
6776       <th>Unit Price</th>
6777       <th>Line Total</th>
6778       <th>Notes</th>
6779     </tr>
6780   </thead>
6781   <tbody>
6782
6783   [% subtotal = 0 %]
6784   [% FOR li IN target.lineitems %]
6785
6786   <tr>
6787     [% count = li.lineitem_details.size %]
6788     [% price = li.estimated_unit_price %]
6789     [% litotal = (price * count) %]
6790     [% subtotal = subtotal + litotal %]
6791     [% 
6792         ident_attr = helpers.get_li_order_ident(li.attributes);
6793         SET ident_value = ident_attr.attr_value IF ident_attr;
6794     %]
6795     <td>[% target.id %]</td>
6796     <td>[% ident_value %]</td>
6797     <td>[% PROCESS get_li_attr attr_name = 'title' %]</td>
6798     <td>[% count %]</td>
6799     <td>[% price %]</td>
6800     <td>[% litotal %]</td>
6801     <td>
6802         <ul>
6803         [% FOR note IN li.lineitem_notes %]
6804             [% IF note.vendor_public == 't' %]
6805                 <li>[% note.value %]</li>
6806             [% END %]
6807         [% END %]
6808         </ul>
6809     </td>
6810   </tr>
6811   [% END %]
6812   <tr>
6813     <td/><td/><td/><td/>
6814     <td>Subtotal</td>
6815     <td>[% subtotal %]</td>
6816   </tr>
6817   </tbody>
6818 </table>
6819
6820 <br/>
6821
6822 Total Line Item Count: [% target.lineitems.size %]
6823 $$);
6824
6825 INSERT INTO action_trigger.environment (event_def, path) VALUES 
6826     (4, 'lineitems.lineitem_details.fund'),
6827     (4, 'lineitems.lineitem_details.location'),
6828     (4, 'lineitems.lineitem_details.owning_lib'),
6829     (4, 'ordering_agency.mailing_address'),
6830     (4, 'ordering_agency.billing_address'),
6831     (4, 'provider.addresses'),
6832     (4, 'lineitems.attributes'),
6833     (4, 'lineitems.lineitem_notes'),
6834     (4, 'notes');
6835
6836 INSERT INTO action_trigger.cleanup ( module, description ) VALUES (
6837     'CreateHoldNotification',
6838     oils_i18n_gettext(
6839         'CreateHoldNotification',
6840         'Creates a hold_notification record for each notified hold',
6841         'atclean',
6842         'description'
6843     )
6844 );
6845
6846 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, cleanup_success, template)
6847     VALUES (5, 'f', 1, 'Hold Ready for Pickup Email Notification', 'hold.available', 'HoldIsAvailable', 'SendEmail', '30 minutes', 'shelf_time', 'usr', 'CreateHoldNotification',
6848 $$
6849 [%- USE date -%]
6850 [%- user = target.0.usr -%]
6851 To: [%- params.recipient_email || user.email %]
6852 From: [%- params.sender_email || default_sender %]
6853 Subject: Hold Available Notification
6854
6855 Dear [% user.family_name %], [% user.first_given_name %]
6856 The item(s) you requested are available for pickup from the Library.
6857
6858 [% FOR hold IN target %]
6859     [%- copy_details = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
6860     Title: [% copy_details.title %]
6861     Author: [% copy_details.author %]
6862     Call Number: [% hold.current_copy.call_number.label %]
6863     Barcode: [% hold.current_copy.barcode %]
6864     Library: [% hold.pickup_lib.name %]
6865 [% END %]
6866
6867 $$);
6868
6869 INSERT INTO action_trigger.event_params (event_def, param, value)
6870     VALUES (5, 'check_email_notify', 1);
6871
6872 INSERT INTO action_trigger.hook (
6873         key,
6874         core_type,
6875         description,
6876         passive
6877     ) VALUES (
6878         'hold_request.shelf_expires_soon',
6879         'ahr',
6880         'A hold on the shelf will expire there soon.',
6881         TRUE
6882     );
6883
6884 INSERT INTO action_trigger.environment (event_def, path) VALUES
6885     (5, 'current_copy.call_number'),
6886     (5, 'usr'),
6887     (5, 'pickup_lib.billing_address');
6888
6889
6890 INSERT INTO action_trigger.event_definition (
6891         id,
6892         active,
6893         owner,
6894         name,
6895         hook,
6896         validator,
6897         reactor,
6898         delay,
6899         delay_field,
6900         group_field,
6901         template
6902     ) VALUES (
6903         7,
6904         FALSE,
6905         1,
6906         'Hold Expires from Shelf Soon',
6907         'hold_request.shelf_expires_soon',
6908         'HoldIsAvailable',
6909         'SendEmail',
6910         '- 1 DAY',
6911         'shelf_expire_time',
6912         'usr',
6913 $$
6914 [%- USE date -%]
6915 [%- user = target.0.usr -%]
6916 To: [%- params.recipient_email || user.email %]
6917 From: [%- params.sender_email || default_sender %]
6918 Subject: Hold Available Notification
6919
6920 Dear [% user.family_name %], [% user.first_given_name %]
6921 You requested holds on the following item(s), which are available for
6922 pickup, but these holds will soon expire.
6923
6924 [% FOR hold IN target %]
6925     [%- data = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
6926     Title: [% data.title %]
6927     Author: [% data.author %]
6928     Library: [% hold.pickup_lib.name %]
6929 [% END %]
6930 $$
6931 );
6932
6933 INSERT INTO action_trigger.event_params (event_def, param, value)
6934     VALUES (7, 'check_email_notify', 1);
6935
6936 INSERT INTO action_trigger.environment (
6937         event_def,
6938         path
6939     ) VALUES
6940     ( 7, 'current_copy'),
6941     ( 7, 'pickup_lib.billing_address'),
6942     ( 7, 'usr');
6943
6944 -- long wait hold request notifications
6945
6946 INSERT INTO action_trigger.hook (
6947         key,
6948         core_type,
6949         description,
6950         passive
6951     ) VALUES (
6952         'hold_request.long_wait',
6953         'ahr',
6954         'A patron has been waiting on a hold to be fulfilled for a long time.',
6955         TRUE
6956     );
6957
6958 INSERT INTO action_trigger.validator (module,description) VALUES
6959     ('HoldNotifyCheck',
6960     oils_i18n_gettext(
6961         'HoldNotifyCheck',
6962         'Check Hold notification flag(s)',
6963         'atval',
6964         'description'
6965     ));
6966
6967 INSERT INTO action_trigger.event_definition (
6968         id,
6969         active,
6970         owner,
6971         name,
6972         hook,
6973         validator,
6974         reactor,
6975         delay,
6976         delay_field,
6977         group_field,
6978         template
6979     ) VALUES (
6980         9,
6981         FALSE,
6982         1,
6983         'Hold waiting for pickup for long time',
6984         'hold_request.long_wait',
6985         'HoldNotifyCheck',
6986         'SendEmail',
6987         '6 MONTHS',
6988         'request_time',
6989         'usr',
6990 $$
6991 [%- USE date -%]
6992 [%- user = target.0.usr -%]
6993 To: [%- params.recipient_email || user.email %]
6994 From: [%- params.sender_email || default_sender %]
6995 Subject: Long Wait Hold Notification
6996
6997 Dear [% user.family_name %], [% user.first_given_name %]
6998
6999 You requested hold(s) on the following item(s), but unfortunately
7000 we have not been able to fulfill your request after a considerable
7001 length of time.  If you would still like to receive these items,
7002 no action is required.
7003
7004 [% FOR hold IN target %]
7005     [%- copy_details = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
7006     Title: [% copy_details.title %]
7007     Author: [% copy_details.author %]
7008 [% END %]
7009 $$
7010 );
7011
7012 INSERT INTO action_trigger.environment (event_def, path)
7013     VALUES
7014     (9, 'pickup_lib'),
7015     (9, 'usr'),
7016     (9, 'current_copy.call_number');
7017
7018 INSERT INTO action_trigger.event_params (event_def, param, value)
7019     VALUES (9, 'check_email_notify', 1);
7020
7021 -- trigger data related to acq user requests
7022
7023 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
7024         'aur.ordered',
7025         'aur', 
7026         oils_i18n_gettext(
7027             'aur.ordered',
7028             'A patron acquisition request has been marked On-Order.',
7029             'ath',
7030             'description'
7031         ), 
7032         TRUE
7033     ), (
7034         'aur.received', 
7035         'aur', 
7036         oils_i18n_gettext(
7037             'aur.received', 
7038             'A patron acquisition request has been marked Received.',
7039             'ath',
7040             'description'
7041         ),
7042         TRUE
7043     ), (
7044         'aur.cancelled',
7045         'aur',
7046         oils_i18n_gettext(
7047             'aur.cancelled',
7048             'A patron acquisition request has been marked Cancelled.',
7049             'ath',
7050             'description'
7051         ),
7052         TRUE
7053     ), (
7054         'aur.created',
7055         'aur',
7056         oils_i18n_gettext(
7057             'aur.created',
7058             'A patron has made an acquisitions request.',
7059             'ath',
7060             'description'
7061         ),
7062         TRUE
7063     ), (
7064         'aur.rejected',
7065         'aur',
7066         oils_i18n_gettext(
7067             'aur.rejected',
7068             'A patron acquisition request has been rejected.',
7069             'ath',
7070             'description'
7071         ),
7072         TRUE
7073     )
7074 ;
7075
7076 INSERT INTO action_trigger.validator (module,description) VALUES (
7077         'Acq::UserRequestOrdered',
7078         oils_i18n_gettext(
7079             'Acq::UserRequestOrdered',
7080             'Tests to see if the corresponding Line Item has a state of "on-order".',
7081             'atval',
7082             'description'
7083         )
7084     ), (
7085         'Acq::UserRequestReceived',
7086         oils_i18n_gettext(
7087             'Acq::UserRequestReceived',
7088             'Tests to see if the corresponding Line Item has a state of "received".',
7089             'atval',
7090             'description'
7091         )
7092     ), (
7093         'Acq::UserRequestCancelled',
7094         oils_i18n_gettext(
7095             'Acq::UserRequestCancelled',
7096             'Tests to see if the corresponding Line Item has a state of "cancelled".',
7097             'atval',
7098             'description'
7099         )
7100     )
7101 ;
7102
7103 INSERT INTO action_trigger.event_definition (
7104         id,
7105         active,
7106         owner,
7107         name,
7108         hook,
7109         validator,
7110         reactor,
7111         template
7112     ) VALUES (
7113         15,
7114         FALSE,
7115         1,
7116         'Email Notice: Patron Acquisition Request marked On-Order.',
7117         'aur.ordered',
7118         'Acq::UserRequestOrdered',
7119         'SendEmail',
7120 $$
7121 [%- USE date -%]
7122 [%- SET li = target.lineitem; -%]
7123 [%- SET user = target.usr -%]
7124 [%- SET title = helpers.get_li_attr("title", "", li.attributes) -%]
7125 [%- SET author = helpers.get_li_attr("author", "", li.attributes) -%]
7126 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) -%]
7127 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) -%]
7128 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
7129 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
7130
7131 To: [%- params.recipient_email || user.email %]
7132 From: [%- params.sender_email || default_sender %]
7133 Subject: Acquisition Request Notification
7134
7135 Dear [% user.family_name %], [% user.first_given_name %]
7136 Our records indicate the following acquisition request has been placed on order.
7137
7138 Title: [% title %]
7139 [% IF author %]Author: [% author %][% END %]
7140 [% IF edition %]Edition: [% edition %][% END %]
7141 [% IF isbn %]ISBN: [% isbn %][% END %]
7142 [% IF publisher %]Publisher: [% publisher %][% END %]
7143 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7144 Lineitem ID: [% li.id %]
7145 $$
7146     ), (
7147         16,
7148         FALSE,
7149         1,
7150         'Email Notice: Patron Acquisition Request marked Received.',
7151         'aur.received',
7152         'Acq::UserRequestReceived',
7153         'SendEmail',
7154 $$
7155 [%- USE date -%]
7156 [%- SET li = target.lineitem; -%]
7157 [%- SET user = target.usr -%]
7158 [%- SET title = helpers.get_li_attr("title", "", li.attributes) %]
7159 [%- SET author = helpers.get_li_attr("author", "", li.attributes) %]
7160 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) %]
7161 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) %]
7162 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
7163 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
7164
7165 To: [%- params.recipient_email || user.email %]
7166 From: [%- params.sender_email || default_sender %]
7167 Subject: Acquisition Request Notification
7168
7169 Dear [% user.family_name %], [% user.first_given_name %]
7170 Our records indicate the materials for the following acquisition request have been received.
7171
7172 Title: [% title %]
7173 [% IF author %]Author: [% author %][% END %]
7174 [% IF edition %]Edition: [% edition %][% END %]
7175 [% IF isbn %]ISBN: [% isbn %][% END %]
7176 [% IF publisher %]Publisher: [% publisher %][% END %]
7177 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7178 Lineitem ID: [% li.id %]
7179 $$
7180     ), (
7181         17,
7182         FALSE,
7183         1,
7184         'Email Notice: Patron Acquisition Request marked Cancelled.',
7185         'aur.cancelled',
7186         'Acq::UserRequestCancelled',
7187         'SendEmail',
7188 $$
7189 [%- USE date -%]
7190 [%- SET li = target.lineitem; -%]
7191 [%- SET user = target.usr -%]
7192 [%- SET title = helpers.get_li_attr("title", "", li.attributes) %]
7193 [%- SET author = helpers.get_li_attr("author", "", li.attributes) %]
7194 [%- SET edition = helpers.get_li_attr("edition", "", li.attributes) %]
7195 [%- SET isbn = helpers.get_li_attr("isbn", "", li.attributes) %]
7196 [%- SET publisher = helpers.get_li_attr("publisher", "", li.attributes) -%]
7197 [%- SET pubdate = helpers.get_li_attr("pubdate", "", li.attributes) -%]
7198
7199 To: [%- params.recipient_email || user.email %]
7200 From: [%- params.sender_email || default_sender %]
7201 Subject: Acquisition Request Notification
7202
7203 Dear [% user.family_name %], [% user.first_given_name %]
7204 Our records indicate the following acquisition request has been cancelled.
7205
7206 Title: [% title %]
7207 [% IF author %]Author: [% author %][% END %]
7208 [% IF edition %]Edition: [% edition %][% END %]
7209 [% IF isbn %]ISBN: [% isbn %][% END %]
7210 [% IF publisher %]Publisher: [% publisher %][% END %]
7211 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7212 Lineitem ID: [% li.id %]
7213 $$
7214     ), (
7215         18,
7216         FALSE,
7217         1,
7218         'Email Notice: Acquisition Request created.',
7219         'aur.created',
7220         'NOOP_True',
7221         'SendEmail',
7222 $$
7223 [%- USE date -%]
7224 [%- SET user = target.usr -%]
7225 [%- SET title = target.title -%]
7226 [%- SET author = target.author -%]
7227 [%- SET isxn = target.isxn -%]
7228 [%- SET publisher = target.publisher -%]
7229 [%- SET pubdate = target.pubdate -%]
7230
7231 To: [%- params.recipient_email || user.email %]
7232 From: [%- params.sender_email || default_sender %]
7233 Subject: Acquisition Request Notification
7234
7235 Dear [% user.family_name %], [% user.first_given_name %]
7236 Our records indicate that you have made the following acquisition request:
7237
7238 Title: [% title %]
7239 [% IF author %]Author: [% author %][% END %]
7240 [% IF edition %]Edition: [% edition %][% END %]
7241 [% IF isbn %]ISXN: [% isxn %][% END %]
7242 [% IF publisher %]Publisher: [% publisher %][% END %]
7243 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7244 $$
7245     ), (
7246         19,
7247         FALSE,
7248         1,
7249         'Email Notice: Acquisition Request Rejected.',
7250         'aur.rejected',
7251         'NOOP_True',
7252         'SendEmail',
7253 $$
7254 [%- USE date -%]
7255 [%- SET user = target.usr -%]
7256 [%- SET title = target.title -%]
7257 [%- SET author = target.author -%]
7258 [%- SET isxn = target.isxn -%]
7259 [%- SET publisher = target.publisher -%]
7260 [%- SET pubdate = target.pubdate -%]
7261 [%- SET cancel_reason = target.cancel_reason.description -%]
7262
7263 To: [%- params.recipient_email || user.email %]
7264 From: [%- params.sender_email || default_sender %]
7265 Subject: Acquisition Request Notification
7266
7267 Dear [% user.family_name %], [% user.first_given_name %]
7268 Our records indicate the following acquisition request has been rejected for this reason: [% cancel_reason %]
7269
7270 Title: [% title %]
7271 [% IF author %]Author: [% author %][% END %]
7272 [% IF edition %]Edition: [% edition %][% END %]
7273 [% IF isbn %]ISBN: [% isbn %][% END %]
7274 [% IF publisher %]Publisher: [% publisher %][% END %]
7275 [% IF pubdate %]Publication Date: [% pubdate %][% END %]
7276 $$
7277     )
7278 ;
7279
7280 INSERT INTO action_trigger.environment (
7281         event_def,
7282         path
7283     ) VALUES 
7284         ( 15, 'lineitem' ),
7285         ( 15, 'lineitem.attributes' ),
7286         ( 15, 'usr' ),
7287
7288         ( 16, 'lineitem' ),
7289         ( 16, 'lineitem.attributes' ),
7290         ( 16, 'usr' ),
7291
7292         ( 17, 'lineitem' ),
7293         ( 17, 'lineitem.attributes' ),
7294         ( 17, 'usr' ),
7295
7296         ( 18, 'usr' ),
7297         ( 19, 'usr' ),
7298         ( 19, 'cancel_reason' )
7299     ;
7300
7301 INSERT INTO action_trigger.hook (key,core_type,description) VALUES ('password.reset_request','aupr','Patron has requested a self-serve password reset');
7302 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, template) 
7303     VALUES (20, 'f', 1, 'Password reset request notification', 'password.reset_request', 'NOOP_True', 'SendEmail', '00:00:01',
7304 $$
7305 [%- USE date -%]
7306 [%- user = target.usr -%]
7307 To: [%- params.recipient_email || user.email %]
7308 From: [%- params.sender_email || user.home_ou.email || default_sender %]
7309 Subject: [% user.home_ou.name %]: library account password reset request
7310
7311 You have received this message because you, or somebody else, requested a reset
7312 of your library system password. If you did not request a reset of your library
7313 system password, just ignore this message and your current password will
7314 continue to work.
7315
7316 If you did request a reset of your library system password, please perform
7317 the following steps to continue the process of resetting your password:
7318
7319 1. Open the following link in a web browser: https://[% params.hostname %]/eg/opac/password_reset/[% target.uuid %]
7320 The browser displays a password reset form.
7321
7322 2. Enter your new password in the password reset form in the browser. You must
7323 enter the password twice to ensure that you do not make a mistake. If the
7324 passwords match, you will then be able to log in to your library system account
7325 with the new password.
7326
7327 $$);
7328 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7329     ( 20, 'usr' );
7330 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7331     ( 20, 'usr.home_ou' );
7332
7333
7334 INSERT INTO action_trigger.hook (key, core_type, description, passive)
7335     VALUES (
7336         'format.acqcle.html',
7337         'acqcle',
7338         'Formats claim events into a voucher',
7339         TRUE
7340     );
7341
7342 INSERT INTO action_trigger.event_definition (
7343         id, active, owner, name, hook, group_field,
7344         validator, reactor, granularity, template
7345     ) VALUES (
7346         21,
7347         TRUE,
7348         1,
7349         'Claim Voucher',
7350         'format.acqcle.html',
7351         'claim',
7352         'NOOP_True',
7353         'ProcessTemplate',
7354         'print-on-demand',
7355 $$
7356 [%- USE date -%]
7357 [%- SET claim = target.0.claim -%]
7358 <!-- This will need refined/prettified. -->
7359 <div class="acq-claim-voucher">
7360     <h2>Claim: [% claim.id %] ([% claim.type.code %])</h2>
7361     <h3>Against: [%- helpers.get_li_attr("title", "", claim.lineitem_detail.lineitem.attributes) -%]</h3>
7362     <ul>
7363         [% FOR event IN target %]
7364         <li>
7365             Event type: [% event.type.code %]
7366             [% IF event.type.library_initiated %](Library initiated)[% END %]
7367             <br />
7368             Event date: [% event.event_date %]<br />
7369             Order date: [% event.claim.lineitem_detail.lineitem.purchase_order.order_date %]<br />
7370             Expected receive date: [% event.claim.lineitem_detail.lineitem.expected_recv_time %]<br />
7371             Initiated by: [% event.creator.family_name %], [% event.creator.first_given_name %] [% event.creator.second_given_name %]<br />
7372             Barcode: [% event.claim.lineitem_detail.barcode %]; Fund:
7373             [% event.claim.lineitem_detail.fund.code %]
7374             ([% event.claim.lineitem_detail.fund.year %])
7375         </li>
7376         [% END %]
7377     </ul>
7378 </div>
7379 $$
7380 );
7381
7382 INSERT INTO action_trigger.environment (event_def, path) VALUES
7383     (21, 'claim'),
7384     (21, 'claim.type'),
7385     (21, 'claim.lineitem_detail'),
7386     (21, 'claim.lineitem_detail.fund'),
7387     (21, 'claim.lineitem_detail.lineitem.attributes'),
7388     (21, 'claim.lineitem_detail.lineitem.purchase_order'),
7389     (21, 'creator'),
7390     (21, 'type')
7391 ;
7392
7393
7394 INSERT INTO action_trigger.hook (key, core_type, description, passive)
7395     VALUES (
7396         'format.acqinv.html',
7397         'acqinv',
7398         'Formats invoices into a voucher',
7399         TRUE
7400     );
7401
7402 INSERT INTO action_trigger.event_definition (
7403         id, active, owner, name, hook,
7404         validator, reactor, granularity, template
7405     ) VALUES (
7406         22,
7407         TRUE,
7408         1,
7409         'Invoice',
7410         'format.acqinv.html',
7411         'NOOP_True',
7412         'ProcessTemplate',
7413         'print-on-demand',
7414 $$
7415 [% FILTER collapse %]
7416 [%- SET invoice = target -%]
7417 <!-- This lacks general refinement -->
7418 <div class="acq-invoice-voucher">
7419     <h1>Invoice</h1>
7420     <div>
7421         <strong>No.</strong> [% invoice.inv_ident %]
7422         [% IF invoice.inv_type %]
7423             / <strong>Type:</strong>[% invoice.inv_type %]
7424         [% END %]
7425     </div>
7426     <div>
7427         <dl>
7428             [% BLOCK ent_with_address %]
7429             <dt>[% ent_label %]: [% ent.name %] ([% ent.code %])</dt>
7430             <dd>
7431                 [% IF ent.addresses.0 %]
7432                     [% SET addr = ent.addresses.0 %]
7433                     [% addr.street1 %]<br />
7434                     [% IF addr.street2 %][% addr.street2 %]<br />[% END %]
7435                     [% addr.city %],
7436                     [% IF addr.county %] [% addr.county %], [% END %]
7437                     [% IF addr.state %] [% addr.state %] [% END %]
7438                     [% IF addr.post_code %][% addr.post_code %][% END %]<br />
7439                     [% IF addr.country %] [% addr.country %] [% END %]
7440                 [% END %]
7441                 <p>
7442                     [% IF ent.phone %] Phone: [% ent.phone %]<br />[% END %]
7443                     [% IF ent.fax_phone %] Fax: [% ent.fax_phone %]<br />[% END %]
7444                     [% IF ent.url %] URL: [% ent.url %]<br />[% END %]
7445                     [% IF ent.email %] E-mail: [% ent.email %] [% END %]
7446                 </p>
7447             </dd>
7448             [% END %]
7449             [% INCLUDE ent_with_address
7450                 ent = invoice.provider
7451                 ent_label = "Provider" %]
7452             [% INCLUDE ent_with_address
7453                 ent = invoice.shipper
7454                 ent_label = "Shipper" %]
7455             <dt>Receiver</dt>
7456             <dd>
7457                 [% invoice.receiver.name %] ([% invoice.receiver.shortname %])
7458             </dd>
7459             <dt>Received</dt>
7460             <dd>
7461                 [% helpers.format_date(invoice.recv_date) %] by
7462                 [% invoice.recv_method %]
7463             </dd>
7464             [% IF invoice.note %]
7465                 <dt>Note</dt>
7466                 <dd>
7467                     [% invoice.note %]
7468                 </dd>
7469             [% END %]
7470         </dl>
7471     </div>
7472     <ul>
7473         [% FOR entry IN invoice.entries %]
7474             <li>
7475                 [% IF entry.lineitem %]
7476                     Title: [% helpers.get_li_attr(
7477                         "title", "", entry.lineitem.attributes
7478                     ) %]<br />
7479                     Author: [% helpers.get_li_attr(
7480                         "author", "", entry.lineitem.attributes
7481                     ) %]
7482                 [% END %]
7483                 [% IF entry.purchase_order %]
7484                     (PO: [% entry.purchase_order.name %])
7485                 [% END %]<br />
7486                 Invoice item count: [% entry.inv_item_count %]
7487                 [% IF entry.phys_item_count %]
7488                     / Physical item count: [% entry.phys_item_count %]
7489                 [% END %]
7490                 <br />
7491                 [% IF entry.cost_billed %]
7492                     Cost billed: [% entry.cost_billed %]
7493                     [% IF entry.billed_per_item %](per item)[% END %]
7494                     <br />
7495                 [% END %]
7496                 [% IF entry.actual_cost %]
7497                     Actual cost: [% entry.actual_cost %]<br />
7498                 [% END %]
7499                 [% IF entry.amount_paid %]
7500                     Amount paid: [% entry.amount_paid %]<br />
7501                 [% END %]
7502                 [% IF entry.note %]Note: [% entry.note %][% END %]
7503             </li>
7504         [% END %]
7505         [% FOR item IN invoice.items %]
7506             <li>
7507                 [% IF item.inv_item_type %]
7508                     Item Type: [% item.inv_item_type %]<br />
7509                 [% END %]
7510                 [% IF item.title %]Title/Description:
7511                     [% item.title %]<br />
7512                 [% END %]
7513                 [% IF item.author %]Author: [% item.author %]<br />[% END %]
7514                 [% IF item.purchase_order %]PO: [% item.purchase_order %]<br />[% END %]
7515                 [% IF item.note %]Note: [% item.note %]<br />[% END %]
7516                 [% IF item.cost_billed %]
7517                     Cost billed: [% item.cost_billed %]<br />
7518                 [% END %]
7519                 [% IF item.actual_cost %]
7520                     Actual cost: [% item.actual_cost %]<br />
7521                 [% END %]
7522                 [% IF item.amount_paid %]
7523                     Amount paid: [% item.amount_paid %]<br />
7524                 [% END %]
7525             </li>
7526         [% END %]
7527     </ul>
7528     <div>
7529         Amounts spent per fund:
7530         <table>
7531         [% FOR blob IN user_data %]
7532             <tr>
7533                 <th style="text-align: left;">[% blob.fund.code %] ([% blob.fund.year %]):</th>
7534                 <td>$[% blob.total %]</td>
7535             </tr>
7536         [% END %]
7537         </table>
7538     </div>
7539 </div>
7540 [% END %]$$
7541 );
7542
7543
7544 INSERT INTO action_trigger.environment (event_def, path) VALUES
7545     (22, 'provider'),
7546     (22, 'provider.addresses'),
7547     (22, 'shipper'),
7548     (22, 'shipper.addresses'),
7549     (22, 'receiver'),
7550     (22, 'entries'),
7551     (22, 'entries.purchase_order'),
7552     (22, 'entries.lineitem'),
7553     (22, 'entries.lineitem.attributes'),
7554     (22, 'items')
7555 ;
7556
7557 SELECT SETVAL('action_trigger.event_definition_id_seq'::TEXT, 100);
7558
7559 -- Hold cancel action/trigger hooks
7560
7561 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7562     'hold_request.cancel.expire_no_target',
7563     'ahr',
7564     'A hold is cancelled because no copies were found'
7565 );
7566
7567 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7568     'hold_request.cancel.expire_holds_shelf',
7569     'ahr',
7570     'A hold is cancelled because it was on the holds shelf too long'
7571 );
7572
7573 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7574     'hold_request.cancel.staff',
7575     'ahr',
7576     'A hold is cancelled because it was cancelled by staff'
7577 );
7578
7579 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
7580     'hold_request.cancel.patron',
7581     'ahr',
7582     'A hold is cancelled by the patron'
7583 );
7584
7585
7586 -- in-db indexing normalizers
7587 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7588         'NACO Normalize',
7589         'Apply NACO normalization rules to the extracted text.  See http://www.loc.gov/catdir/pcc/naco/normrule-2.html for details.',
7590         'naco_normalize',
7591         0
7592 );
7593
7594 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7595         'Normalize date range',
7596         'Split date ranges in the form of "XXXX-YYYY" into "XXXX YYYY" for proper index.',
7597         'split_date_range',
7598         0
7599 );
7600
7601 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7602         'NACO Normalize -- retain first comma',
7603         '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.',
7604         'naco_normalize_keep_comma',
7605         0
7606 );
7607
7608 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7609         'Strip Diacritics',
7610         'Convert text to NFD form and remove non-spacing combining marks.',
7611         'remove_diacritics',
7612         0
7613 );
7614
7615 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7616         'Remove Parenthesized Substring',
7617         'Remove any parenthesized substrings from the extracted text, such as the agency code preceding authority record control numbers in subfield 0.',
7618         'remove_paren_substring',
7619         0
7620 );
7621
7622 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7623         'Up-case',
7624         'Convert text upper case.',
7625         'uppercase',
7626         0
7627 );
7628
7629 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7630         'Down-case',
7631         'Convert text lower case.',
7632         'lowercase',
7633         0
7634 );
7635
7636 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7637         'Extract Dewey-like number',
7638         'Extract a string of numeric characters that resembles a DDC number.',
7639         'call_number_dewey',
7640         0
7641 );
7642
7643 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7644         'Left truncation',
7645         'Discard the specified number of characters from the left side of the string.',
7646         'left_trunc',
7647         1
7648 );
7649
7650 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7651         'Right truncation',
7652         'Include only the specified number of characters from the left side of the string.',
7653         'right_trunc',
7654         1
7655 );
7656
7657 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7658         'First word',
7659         'Include only the first space-separated word of a string.',
7660         'first_word',
7661         0
7662 );
7663
7664 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7665         'ISBN 10/13 conversion',
7666         'Translate ISBN10 to ISBN13 and vice versa.',
7667         'translate_isbn1013',
7668         0
7669 );
7670
7671 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7672         'Replace',
7673         'Replace all occurences of first parameter in the string with the second parameter.',
7674         'replace',
7675         2
7676 );
7677
7678 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7679         'Trim Surrounding Space',
7680         'Trim leading and trailing spaces from extracted text.',
7681         'btrim',
7682         0
7683 );
7684
7685 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7686     'Generic Mapping Normalizer', 
7687     'Map values or sets of values to new values',
7688     'generic_map_normalizer', 
7689     1
7690 );
7691
7692 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7693     'Coded Value Map Normalizer', 
7694     'Applies coded_value_map mapping of values',
7695     'coded_value_map_normalizer', 
7696     1
7697 );
7698
7699 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
7700         'Search Normalize',
7701         'Apply search normalization rules to the extracted text. A less extreme version of NACO normalization.',
7702         'search_normalize',
7703         0
7704 );
7705
7706 -- make use of the index normalizers
7707
7708 INSERT INTO config.metabib_field_index_norm_map (field,norm)
7709     SELECT  m.id,
7710             i.id
7711       FROM  config.metabib_field m,
7712         config.index_normalizer i
7713       WHERE i.func IN ('search_normalize','split_date_range')
7714             AND m.id NOT IN (18, 19);
7715
7716 INSERT INTO config.metabib_field_index_norm_map (field,norm,pos)
7717     SELECT  m.id,
7718             i.id,
7719             2
7720       FROM  config.metabib_field m,
7721             config.index_normalizer i
7722       WHERE i.func IN ('translate_isbn1013')
7723             AND m.id IN (18);
7724
7725 INSERT INTO config.metabib_field_index_norm_map (field,norm,params)
7726     SELECT  m.id,
7727             i.id,
7728             $$["-",""]$$
7729       FROM  config.metabib_field m,
7730             config.index_normalizer i
7731       WHERE i.func IN ('replace')
7732             AND m.id IN (19);
7733
7734 INSERT INTO config.metabib_field_index_norm_map (field,norm,params, pos)
7735      SELECT  m.id,
7736              i.id,
7737              $$["]",""]$$,
7738              '-1'
7739        FROM  config.metabib_field m,
7740              config.index_normalizer i
7741        WHERE i.func IN ('replace')
7742              AND m.id IN (1);
7743              
7744 INSERT INTO config.metabib_field_index_norm_map (field,norm,params, pos)
7745      SELECT  m.id,
7746              i.id,
7747              $$["[",""]$$,
7748              '-1'
7749        FROM  config.metabib_field m,
7750              config.index_normalizer i
7751        WHERE i.func IN ('replace')
7752              AND m.id IN (1);
7753
7754 INSERT INTO config.metabib_field_index_norm_map (field,norm,pos)
7755     SELECT  m.id,
7756             i.id,
7757             -1
7758       FROM  config.metabib_field m,
7759             config.index_normalizer i
7760       WHERE i.func = 'remove_paren_substring'
7761             AND m.id IN (28);
7762
7763 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7764     SELECT  m.name, i.id, 0
7765       FROM  config.record_attr_definition m,
7766             config.index_normalizer i
7767       WHERE i.func IN ('content_or_null')
7768             AND m.name IN ('titlesort', 'authorsort');
7769
7770 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7771     SELECT  m.name, i.id, 0
7772       FROM  config.record_attr_definition m,
7773             config.index_normalizer i
7774       WHERE i.func IN ('integer_or_null')
7775             AND m.name IN ('date1', 'date2', 'pubdate');
7776
7777 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7778     SELECT  m.name, i.id, 0
7779       FROM  config.record_attr_definition m,
7780             config.index_normalizer i
7781       WHERE i.func IN ('approximate_low_date')
7782             AND m.name IN ('date1', 'pubdate');
7783
7784 INSERT INTO config.record_attr_index_norm_map (attr,norm,pos)
7785     SELECT  m.name, i.id, 0
7786       FROM  config.record_attr_definition m,
7787             config.index_normalizer i
7788       WHERE i.func IN ('approximate_high_date')
7789             AND m.name IN ('date2');
7790
7791 -- Sample Pre-due Notice --
7792
7793 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, template) 
7794     VALUES (6, 'f', 1, '3 Day Courtesy Notice', 'checkout.due', 'CircIsOpen', 'SendEmail', '-3 days', 'due_date', 'usr', '-2 days',
7795 $$
7796 [%- USE date -%]
7797 [%- user = target.0.usr -%]
7798 To: [%- params.recipient_email || user.email %]
7799 From: [%- params.sender_email || default_sender %]
7800 Subject: Courtesy Notice
7801
7802 Dear [% user.family_name %], [% user.first_given_name %]
7803 As a reminder, the following items are due in 3 days.
7804
7805 [% FOR circ IN target %]
7806     [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
7807     Title: [% copy_details.title %]
7808     Author: [% copy_details.author %]
7809     Barcode: [% circ.target_copy.barcode %] 
7810     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
7811     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
7812     Library: [% circ.circ_lib.name %]
7813     Library Phone: [% circ.circ_lib.phone %]
7814
7815 [% END %]
7816
7817 $$);
7818
7819 INSERT INTO action_trigger.environment (event_def, path) VALUES 
7820     (6, 'target_copy.call_number'),
7821     (6, 'usr'),
7822     (6, 'circ_lib.billing_address');
7823
7824 -- Additional A/T Reactors
7825
7826 INSERT INTO action_trigger.reactor (module,description) VALUES
7827 (   'ApplyPatronPenalty',
7828     oils_i18n_gettext(
7829         'ApplyPatronPenalty',
7830         '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.',
7831         'atreact',
7832         'description'
7833     )
7834 );
7835
7836 INSERT INTO action_trigger.reactor (module,description) VALUES
7837 (   'SendFile',
7838     oils_i18n_gettext(
7839         'SendFile',
7840         '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.',
7841         'atreact',
7842         'description'
7843     )
7844 );
7845
7846 -- self-check checkout receipt
7847
7848 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7849     VALUES (
7850         'format.selfcheck.checkout',
7851         'circ',
7852         'Formats circ objects for self-checkout receipt',
7853         TRUE
7854     );
7855
7856 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
7857     VALUES (
7858         10,
7859         TRUE,
7860         1,
7861         'Self-Checkout Receipt',
7862         'format.selfcheck.checkout',
7863         'NOOP_True',
7864         'ProcessTemplate',
7865         'usr',
7866         'print-on-demand',
7867 $$
7868 [%- USE date -%]
7869 [%- SET user = target.0.usr -%]
7870 [%- SET lib = target.0.circ_lib -%]
7871 [%- SET lib_addr = target.0.circ_lib.billing_address -%]
7872 [%- SET hours = lib.hours_of_operation -%]
7873 <div>
7874     <style> li { padding: 8px; margin 5px; }</style>
7875     <div>[% date.format %]</div>
7876     <div>[% lib.name %]</div>
7877     <div>[% lib_addr.street1 %] [% lib_addr.street2 %]</div>
7878     <div>[% lib_addr.city %], [% lib_addr.state %] [% lb_addr.post_code %]</div>
7879     <div>[% lib.phone %]</div>
7880     <br/>
7881
7882     [% user.family_name %], [% user.first_given_name %]
7883     <ol>
7884     [% FOR circ IN target %]
7885         [%-
7886             SET idx = loop.count - 1;
7887             SET udata =  user_data.$idx
7888         -%]
7889         <li>
7890             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
7891             <div>Barcode: [% circ.target_copy.barcode %]</div>
7892             [% IF user_data.renewal_failure %]
7893                 <div style='color:red;'>Renewal Failed</div>
7894             [% ELSE %]
7895                 <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
7896             [% END %]
7897         </li>
7898     [% END %]
7899     </ol>
7900     
7901     <div>
7902         Library Hours
7903         [%- BLOCK format_time; date.format(time _ ' 1/1/1000', format='%I:%M %p'); END -%]
7904         <div>
7905             Monday 
7906             [% PROCESS format_time time = hours.dow_0_open %] 
7907             [% PROCESS format_time time = hours.dow_0_close %] 
7908         </div>
7909         <div>
7910             Tuesday 
7911             [% PROCESS format_time time = hours.dow_1_open %] 
7912             [% PROCESS format_time time = hours.dow_1_close %] 
7913         </div>
7914         <div>
7915             Wednesday 
7916             [% PROCESS format_time time = hours.dow_2_open %] 
7917             [% PROCESS format_time time = hours.dow_2_close %] 
7918         </div>
7919         <div>
7920             Thursday
7921             [% PROCESS format_time time = hours.dow_3_open %] 
7922             [% PROCESS format_time time = hours.dow_3_close %] 
7923         </div>
7924         <div>
7925             Friday
7926             [% PROCESS format_time time = hours.dow_4_open %] 
7927             [% PROCESS format_time time = hours.dow_4_close %] 
7928         </div>
7929         <div>
7930             Saturday
7931             [% PROCESS format_time time = hours.dow_5_open %] 
7932             [% PROCESS format_time time = hours.dow_5_close %] 
7933         </div>
7934         <div>
7935             Sunday 
7936             [% PROCESS format_time time = hours.dow_6_open %] 
7937             [% PROCESS format_time time = hours.dow_6_close %] 
7938         </div>
7939     </div>
7940 </div>
7941 $$
7942 );
7943
7944
7945 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7946     ( 10, 'target_copy'),
7947     ( 10, 'circ_lib.billing_address'),
7948     ( 10, 'circ_lib.hours_of_operation'),
7949     ( 10, 'usr');
7950
7951
7952 -- items out selfcheck receipt
7953
7954 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
7955     VALUES (
7956         'format.selfcheck.items_out',
7957         'circ',
7958         'Formats items out for self-checkout receipt',
7959         TRUE
7960     );
7961
7962 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
7963     VALUES (
7964         11,
7965         TRUE,
7966         1,
7967         'Self-Checkout Items Out Receipt',
7968         'format.selfcheck.items_out',
7969         'NOOP_True',
7970         'ProcessTemplate',
7971         'usr',
7972         'print-on-demand',
7973 $$
7974 [%- USE date -%]
7975 [%- SET user = target.0.usr -%]
7976 <div>
7977     <style> li { padding: 8px; margin 5px; }</style>
7978     <div>[% date.format %]</div>
7979     <br/>
7980
7981     [% user.family_name %], [% user.first_given_name %]
7982     <ol>
7983     [% FOR circ IN target %]
7984         <li>
7985             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
7986             <div>Barcode: [% circ.target_copy.barcode %]</div>
7987             <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
7988         </li>
7989     [% END %]
7990     </ol>
7991 </div>
7992 $$
7993 );
7994
7995
7996 INSERT INTO action_trigger.environment ( event_def, path) VALUES
7997     ( 11, 'target_copy'),
7998     ( 11, 'circ_lib.billing_address'),
7999     ( 11, 'circ_lib.hours_of_operation'),
8000     ( 11, 'usr');
8001
8002 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
8003     VALUES (
8004         'format.selfcheck.holds',
8005         'ahr',
8006         'Formats holds for self-checkout receipt',
8007         TRUE
8008     );
8009
8010 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, granularity, template )
8011     VALUES (
8012         12,
8013         TRUE,
8014         1,
8015         'Self-Checkout Holds Receipt',
8016         'format.selfcheck.holds',
8017         'NOOP_True',
8018         'ProcessTemplate',
8019         'usr',
8020         'print-on-demand',
8021 $$
8022 [%- USE date -%]
8023 [%- SET user = target.0.usr -%]
8024 <div>
8025     <style> li { padding: 8px; margin 5px; }</style>
8026     <div>[% date.format %]</div>
8027     <br/>
8028
8029     [% user.family_name %], [% user.first_given_name %]
8030     <ol>
8031     [% FOR hold IN target %]
8032         [%-
8033             SET idx = loop.count - 1;
8034             SET udata =  user_data.$idx
8035         -%]
8036         <li>
8037             <div>Title: [% hold.bib_rec.bib_record.simple_record.title %]</div>
8038             <div>Author: [% hold.bib_rec.bib_record.simple_record.author %]</div>
8039             <div>Pickup Location: [% hold.pickup_lib.name %]</div>
8040             <div>Status: 
8041                 [%- IF udata.ready -%]
8042                     Ready for pickup
8043                 [% ELSE %]
8044                     #[% udata.queue_position %] of [% udata.potential_copies %] copies.
8045                 [% END %]
8046             </div>
8047         </li>
8048     [% END %]
8049     </ol>
8050 </div>
8051 $$
8052 );
8053
8054
8055 INSERT INTO action_trigger.environment ( event_def, path) VALUES
8056     ( 12, 'bib_rec.bib_record.simple_record'),
8057     ( 12, 'pickup_lib'),
8058     ( 12, 'usr');
8059
8060 -- fines receipt
8061
8062 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
8063     VALUES (
8064         'format.selfcheck.fines',
8065         'au',
8066         'Formats fines for self-checkout receipt',
8067         TRUE
8068     );
8069
8070 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, granularity, template )
8071     VALUES (
8072         13,
8073         TRUE,
8074         1,
8075         'Self-Checkout Fines Receipt',
8076         'format.selfcheck.fines',
8077         'NOOP_True',
8078         'ProcessTemplate',
8079         'print-on-demand',
8080 $$
8081 [%- USE date -%]
8082 [%- SET user = target -%]
8083 <div>
8084     <style> li { padding: 8px; margin 5px; }</style>
8085     <div>[% date.format %]</div>
8086     <br/>
8087
8088     [% user.family_name %], [% user.first_given_name %]
8089     <ol>
8090     [% FOR xact IN user.open_billable_transactions_summary %]
8091         <li>
8092             <div>Details: 
8093                 [% IF xact.xact_type == 'circulation' %]
8094                     [%- helpers.get_copy_bib_basics(xact.circulation.target_copy).title -%]
8095                 [% ELSE %]
8096                     [%- xact.last_billing_type -%]
8097                 [% END %]
8098             </div>
8099             <div>Total Billed: [% xact.total_owed %]</div>
8100             <div>Total Paid: [% xact.total_paid %]</div>
8101             <div>Balance Owed : [% xact.balance_owed %]</div>
8102         </li>
8103     [% END %]
8104     </ol>
8105 </div>
8106 $$
8107 );
8108
8109 INSERT INTO action_trigger.hook (key, core_type, description, passive) 
8110     VALUES (
8111         'format.acqli.html',
8112         'jub',
8113         'Formats lineitem worksheet for titles received',
8114         TRUE
8115     );
8116
8117 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, granularity, template)
8118     VALUES (
8119         14,
8120         TRUE,
8121         1,
8122         'Lineitem Worksheet',
8123         'format.acqli.html',
8124         'NOOP_True',
8125         'ProcessTemplate',
8126         'print-on-demand',
8127 $$
8128 [%- USE date -%]
8129 [%- SET li = target; -%]
8130 <div class="wrapper">
8131     <div class="summary" style='font-size:110%; font-weight:bold;'>
8132
8133         <div>Title: [% helpers.get_li_attr("title", "", li.attributes) %]</div>
8134         <div>Author: [% helpers.get_li_attr("author", "", li.attributes) %]</div>
8135         <div class="count">Item Count: [% li.lineitem_details.size %]</div>
8136         <div class="lineid">Lineitem ID: [% li.id %]</div>
8137         <div>Open Holds: [% helpers.bre_open_hold_count(li.eg_bib_id) %]</div>
8138
8139         [% IF li.distribution_formulas.size > 0 %]
8140             [% SET forms = [] %]
8141             [% FOREACH form IN li.distribution_formulas; forms.push(form.formula.name); END %]
8142             <div>Distribution Formulas: [% forms.join(',') %]</div>
8143         [% END %]
8144
8145         [% IF li.lineitem_notes.size > 0 %]
8146             Lineitem Notes:
8147             <ul>
8148                 [%- FOR note IN li.lineitem_notes -%]
8149                     <li>
8150                     [% IF note.alert_text %]
8151                         [% note.alert_text.code -%] 
8152                         [% IF note.value -%]
8153                             : [% note.value %]
8154                         [% END %]
8155                     [% ELSE %]
8156                         [% note.value -%] 
8157                     [% END %]
8158                     </li>
8159                 [% END %]
8160             </ul>
8161         [% END %]
8162     </div>
8163     <br/>
8164     <table>
8165         <thead>
8166             <tr>
8167                 <th>Branch</th>
8168                 <th>Barcode</th>
8169                 <th>Call Number</th>
8170                 <th>Fund</th>
8171                 <th>Shelving Location</th>
8172                 <th>Recd.</th>
8173                 <th>Notes</th>
8174             </tr>
8175         </thead>
8176         <tbody>
8177         <!-- set detail.owning_lib from fm object to org name -->
8178         [% FOREACH detail IN li.lineitem_details %]
8179             [% detail.owning_lib = detail.owning_lib.shortname %]
8180         [% END %]
8181
8182         [% FOREACH detail IN li.lineitem_details.sort('owning_lib') %]
8183             [% 
8184                 IF detail.eg_copy_id;
8185                     SET copy = detail.eg_copy_id;
8186                     SET cn_label = copy.call_number.label;
8187                 ELSE; 
8188                     SET copy = detail; 
8189                     SET cn_label = detail.cn_label;
8190                 END 
8191             %]
8192             <tr>
8193                 <!-- acq.lineitem_detail.id = [%- detail.id -%] -->
8194                 <td style='padding:5px;'>[% detail.owning_lib %]</td>
8195                 <td style='padding:5px;'>[% IF copy.barcode   %]<span class="barcode"  >[% detail.barcode   %]</span>[% END %]</td>
8196                 <td style='padding:5px;'>[% IF cn_label %]<span class="cn_label" >[% cn_label  %]</span>[% END %]</td>
8197                 <td style='padding:5px;'>[% IF detail.fund %]<span class="fund">[% detail.fund.code %] ([% detail.fund.year %])</span>[% END %]</td>
8198                 <td style='padding:5px;'>[% copy.location.name %]</td>
8199                 <td style='padding:5px;'>[% IF detail.recv_time %]<span class="recv_time">[% detail.recv_time %]</span>[% END %]</td>
8200                 <td style='padding:5px;'>[% detail.note %]</td>
8201             </tr>
8202         [% END %]
8203         </tbody>
8204     </table>
8205 </div>
8206 $$
8207 );
8208
8209
8210 INSERT INTO action_trigger.environment (event_def, path) VALUES
8211     ( 14, 'attributes' ),
8212     ( 14, 'lineitem_notes' ),
8213     ( 14, 'lineitem_notes.alert_text' ),
8214     ( 14, 'distribution_formulas.formula' ),
8215     ( 14, 'lineitem_details' ),
8216     ( 14, 'lineitem_details.owning_lib' ),
8217     ( 14, 'lineitem_details.fund' ),
8218     ( 14, 'lineitem_details.location' ),
8219     ( 14, 'lineitem_details.eg_copy_id' ),
8220     ( 14, 'lineitem_details.eg_copy_id.call_number' ),
8221     ( 14, 'lineitem_details.eg_copy_id.location' )
8222 ;
8223
8224 INSERT INTO action_trigger.environment ( event_def, path) VALUES
8225     ( 13, 'open_billable_transactions_summary.circulation' );
8226
8227
8228 INSERT INTO action_trigger.validator (module, description) 
8229     VALUES (
8230         'Acq::PurchaseOrderEDIRequired',
8231         oils_i18n_gettext(
8232             'Acq::PurchaseOrderEDIRequired',
8233             'Purchase order is delivered via EDI',
8234             'atval',
8235             'description'
8236         )
8237     );
8238
8239 INSERT INTO action_trigger.reactor (module, description)
8240     VALUES (
8241         'GeneratePurchaseOrderJEDI',
8242         oils_i18n_gettext(
8243             'GeneratePurchaseOrderJEDI',
8244             'Creates purchase order JEDI (JSON EDI) for subsequent EDI processing',
8245             'atreact',
8246             'description'
8247         )
8248     );
8249
8250
8251 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, cleanup_success, cleanup_failure, delay, delay_field, group_field, template) 
8252     VALUES (23, true, 1, 'PO JEDI', 'acqpo.activated', 'Acq::PurchaseOrderEDIRequired', 'GeneratePurchaseOrderJEDI', NULL, NULL, '00:00:00', NULL, NULL,
8253 $$
8254 [%- USE date -%]
8255 [%
8256     # extract some commonly used variables
8257
8258     VENDOR_SAN = target.provider.san;
8259     VENDCODE = target.provider.edi_default.vendcode;
8260     VENDACCT = target.provider.edi_default.vendacct;
8261     ORG_UNIT_SAN = target.ordering_agency.mailing_address.san;
8262
8263     # set the vendor / provider
8264
8265     VENDOR_BT      = 0; # Baker & Taylor
8266     VENDOR_INGRAM  = 0;
8267     VENDOR_BRODART = 0;
8268     VENDOR_MW_TAPE = 0; # Midwest Tape
8269     VENDOR_RB      = 0; # Recorded Books
8270     VENDOR_ULS     = 0; # ULS
8271
8272     IF    VENDOR_SAN == '1556150'; VENDOR_BT = 1;
8273     ELSIF VENDOR_SAN == '1697684'; VENDOR_BRODART = 1;
8274     ELSIF VENDOR_SAN == '1697978'; VENDOR_INGRAM = 1;
8275     ELSIF VENDOR_SAN == '2549913'; VENDOR_MW_TAPE = 1;
8276     ELSIF VENDOR_SAN == '1113984'; VENDOR_RB = 1;
8277     ELSIF VENDOR_SAN == '1699342'; VENDOR_ULS = 1;
8278     END;
8279
8280     # if true, pass the PO name as a secondary identifier
8281     # RFF+LI:<name>/li_id
8282     INC_PO_NAME = 0;
8283     IF VENDOR_INGRAM;
8284         INC_PO_NAME = 1;
8285     END;
8286
8287     # GIR configuration --------------------------------------
8288
8289     INC_COPIES = 1; # copies on/off switch
8290     INC_FUND = 0;
8291     INC_CALLNUMBER = 0;
8292     INC_ITEM_TYPE = 1;
8293     INC_LOCATION = 0;
8294     INC_COLLECTION_CODE = 1;
8295     INC_OWNING_LIB = 1;
8296     INC_QUANTITY = 1;
8297     INC_COPY_ID = 0;
8298
8299     IF VENDOR_BT;
8300         INC_CALLNUMBER = 1;
8301     END;
8302
8303     IF VENDOR_BRODART;
8304         INC_FUND = 1;
8305     END;
8306
8307     IF VENDOR_MW_TAPE;
8308         INC_FUND = 1;
8309         INC_COLLECTION_CODE = 0;
8310         INC_ITEM_TYPE = 0;
8311     END;
8312
8313     # END GIR configuration ---------------------------------
8314
8315 -%]
8316 [%- BLOCK big_block -%]
8317 {
8318    "recipient":"[% VENDOR_SAN %]",
8319    "sender":"[% ORG_UNIT_SAN %]",
8320    "body": [{
8321      "ORDERS":[ "order", {
8322
8323         "po_number":[% target.id %],
8324
8325         [% IF INC_PO_NAME %]
8326         "po_name":"[% target.name | replace('\/', ' ') | replace('"', '\"') %]",
8327         [% END %]
8328
8329         "date":"[% date.format(date.now, '%Y%m%d') %]",
8330
8331         "buyer":[
8332             [% IF VENDOR_BT %]
8333                 {"id-qualifier": 91, "id":"[% ORG_UNIT_SAN %] [% VENDCODE %]"}
8334             [% ELSE %]
8335                 {"id":"[% ORG_UNIT_SAN %]"},
8336                 {"id-qualifier": 91, "id":"[% VENDACCT %]"}
8337             [% END %]
8338         ],
8339
8340         "vendor":[
8341             "[% VENDOR_SAN %]",
8342             {"id-qualifier": 92, "id":"[% target.provider.id %]"}
8343         ],
8344
8345         "currency":"[% target.provider.currency_type %]",
8346                 
8347         "items":[
8348         [%- FOR li IN target.lineitems %]
8349         {
8350             "line_index":"[% li.id %]",
8351             "identifiers":[   
8352             [%- 
8353                 idval = '';
8354                 idqual = 'EN'; # default ISBN/UPC/EAN-13
8355                 ident_attr = helpers.get_li_order_ident(li.attributes);
8356                 IF ident_attr;
8357                     idname = ident_attr.attr_name;
8358                     idval = ident_attr.attr_value;
8359                     IF idname == 'isbn' AND idval.length != 13;
8360                         idqual = 'IB';
8361                     ELSIF idname == 'issn';
8362                         idqual = 'IS';
8363                     END;
8364                 ELSE;
8365                     idqual = 'IN';
8366                     idval = li.id;
8367                 END -%]
8368                 {"id-qualifier":"[% idqual %]","id":"[% idval %]"}
8369             ],
8370             "price":[% li.estimated_unit_price || '0.00' %],
8371             "desc":[
8372                 {"BTI":"[% helpers.get_li_attr_jedi('title',     '', li.attributes) %]"},
8373                 {"BPU":"[% helpers.get_li_attr_jedi('publisher', '', li.attributes) %]"},
8374                 {"BPD":"[% helpers.get_li_attr_jedi('pubdate',   '', li.attributes) %]"},
8375                 [% IF VENDOR_ULS -%]
8376                 {"BEN":"[% helpers.get_li_attr_jedi('edition',   '', li.attributes) %]"},
8377                 {"BAU":"[% helpers.get_li_attr_jedi('author',    '', li.attributes) %]"}
8378                 [%- ELSE -%]
8379                 {"BPH":"[% helpers.get_li_attr_jedi('pagination','', li.attributes) %]"}
8380                 [%- END %]
8381             ],
8382             [%- ftx_vals = []; 
8383                 FOR note IN li.lineitem_notes;
8384                     NEXT UNLESS note.vendor_public == 't'; 
8385                     ftx_vals.push(note.value); 
8386                 END; 
8387                 IF VENDOR_BRODART; # look for copy-level spec code
8388                     FOR lid IN li.lineitem_details;
8389                         IF lid.note;
8390                             spec_note = lid.note.match('spec code ([a-zA-Z0-9_])');
8391                             IF spec_note.0; ftx_vals.push(spec_note.0); END;
8392                         END;
8393                     END;
8394                 END; 
8395                 IF xtra_ftx;           ftx_vals.unshift(xtra_ftx); END; 
8396
8397                 # BT & ULS want FTX+LIN for every LI, even if empty
8398                 IF ((VENDOR_BT OR VENDOR_ULS) AND ftx_vals.size == 0);
8399                     ftx_vals.unshift('');
8400                 END;  
8401             -%]
8402
8403             "free-text":[ 
8404                 [% FOR note IN ftx_vals -%] "[% note %]"[% UNLESS loop.last %], [% END %][% END %] 
8405             ],            
8406
8407             "quantity":[% li.lineitem_details.size %]
8408
8409             [%- IF INC_COPIES -%]
8410             ,"copies" : [
8411                 [%- compressed_copies = [];
8412                     FOR lid IN li.lineitem_details;
8413                         fund = lid.fund.code;
8414                         item_type = lid.circ_modifier;
8415                         callnumber = lid.cn_label;
8416                         owning_lib = lid.owning_lib.shortname;
8417                         location = lid.location;
8418                         collection_code = lid.collection_code;
8419     
8420                         # when we have real copy data, treat it as authoritative for some fields
8421                         acp = lid.eg_copy_id;
8422                         IF acp;
8423                             item_type = acp.circ_modifier;
8424                             callnumber = acp.call_number.label;
8425                             location = acp.location.name;
8426                         END ;
8427
8428
8429                         # collapse like copies into groups w/ quantity
8430
8431                         found_match = 0;
8432                         IF !INC_COPY_ID; # INC_COPY_ID implies 1 copy per GIR
8433                             FOR copy IN compressed_copies;
8434                                 IF  (fund == copy.fund OR (!fund AND !copy.fund)) AND
8435                                     (item_type == copy.item_type OR (!item_type AND !copy.item_type)) AND
8436                                     (callnumber == copy.callnumber OR (!callnumber AND !copy.callnumber)) AND
8437                                     (owning_lib == copy.owning_lib OR (!owning_lib AND !copy.owning_lib)) AND
8438                                     (location == copy.location OR (!location AND !copy.location)) AND
8439                                     (collection_code == copy.collection_code OR (!collection_code AND !copy.collection_code));
8440
8441                                     copy.quantity = copy.quantity + 1;
8442                                     found_match = 1;
8443                                 END;
8444                             END;
8445                         END;
8446
8447                         IF !found_match;
8448                             compressed_copies.push({
8449                                 fund => fund,
8450                                 item_type => item_type,
8451                                 callnumber => callnumber,
8452                                 owning_lib => owning_lib,
8453                                 location => location,
8454                                 collection_code => collection_code,
8455                                 copy_id => lid.id, # for INC_COPY_ID
8456                                 quantity => 1
8457                             });
8458                         END;
8459                     END;
8460                     FOR copy IN compressed_copies;
8461
8462                     # If we assume owning_lib is required and set, 
8463                     # it is safe to prepend each following copy field w/ a ","
8464
8465                     # B&T EDI requires expected GIR fields to be 
8466                     # present regardless of whether a value exists.  
8467                     # some fields are required to have a value in ACQ, 
8468                     # though, so they are not forced into place below.
8469
8470                  %]{[%- IF INC_OWNING_LIB AND copy.owning_lib %] "owning_lib":"[% copy.owning_lib %]"[% END -%]
8471                     [%- IF INC_FUND AND copy.fund %],"fund":"[% copy.fund %]"[% END -%]
8472                     [%- IF INC_CALLNUMBER AND (VENDOR_BT OR copy.callnumber) %],"call_number":"[% copy.callnumber %]"[% END -%]
8473                     [%- IF INC_ITEM_TYPE AND (VENDOR_BT OR copy.item_type) %],"item_type":"[% copy.item_type %]"[% END -%]
8474                     [%- IF INC_LOCATION AND copy.location %],"copy_location":"[% copy.location %]"[% END -%]
8475                     [%- IF INC_COLLECTION_CODE AND (VENDOR_BT OR copy.collection_code) %],"collection_code":"[% copy.collection_code %]"[% END -%]
8476                     [%- IF INC_QUANTITY %],"quantity":"[% copy.quantity %]"[% END -%]
8477                     [%- IF INC_COPY_ID %],"copy_id":"[% copy.copy_id %]" [% END %]}[% ',' UNLESS loop.last -%]
8478                 [%- END -%] [%# FOR compressed_copies -%]
8479             ]
8480             [%- END -%] [%# IF INC_COPIES %]
8481
8482         }[% UNLESS loop.last %],[% END -%]
8483
8484         [% END %] [%# END lineitems %]
8485         ],
8486         "line_items":[% target.lineitems.size %]
8487      }]  [%# close ORDERS array %]
8488    }]    [%# close  body  array %]
8489 }
8490 [% END %]
8491 [% tempo = PROCESS big_block; helpers.escape_json(tempo) %]
8492 $$
8493 );
8494
8495 INSERT INTO action_trigger.environment (event_def, path) VALUES 
8496   (23, 'lineitems.attributes'), 
8497   (23, 'lineitems.lineitem_details.owning_lib'),
8498   (23, 'lineitems.lineitem_details.location'),
8499   (23, 'lineitems.lineitem_details.fund'),
8500   (23, 'lineitems.lineitem_details.eg_copy_id.location'),
8501   (23, 'lineitems.lineitem_details.eg_copy_id.call_number'),
8502   (23, 'lineitems.lineitem_notes'), 
8503   (23, 'ordering_agency.mailing_address'), 
8504   (23, 'provider'),
8505   (23, 'provider.edi_default');
8506
8507 INSERT INTO action_trigger.reactor (module, description) VALUES (
8508     'AstCall', 'Possibly place a phone call with Asterisk'
8509 );
8510
8511 INSERT INTO
8512     action_trigger.event_definition (
8513         id, active, owner, name, hook, validator, reactor,
8514         cleanup_success, cleanup_failure, delay, delay_field, group_field,
8515         max_delay, granularity, usr_field, opt_in_setting, template
8516     ) VALUES (
8517         24,
8518         FALSE,
8519         1,
8520         'Telephone Overdue Notice',
8521         'checkout.due', 'NOOP_True', 'AstCall',
8522         DEFAULT, DEFAULT, '5 seconds', 'due_date', 'usr',
8523         DEFAULT, DEFAULT, DEFAULT, DEFAULT,
8524         $$
8525 [% phone = target.0.usr.day_phone | replace('[\s\-\(\)]', '') -%]
8526 [% IF phone.match('^[2-9]') %][% country = 1 %][% ELSE %][% country = '' %][% END -%]
8527 Channel: [% channel_prefix %]/[% country %][% phone %]
8528 Context: overdue-test
8529 MaxRetries: 1
8530 RetryTime: 60
8531 WaitTime: 30
8532 Extension: 10
8533 Archive: 1
8534 Set: eg_user_id=[% target.0.usr.id %]
8535 Set: items=[% target.size %]
8536 Set: titlestring=[% titles = [] %][% FOR circ IN target %][% titles.push(circ.target_copy.call_number.record.simple_record.title) %][% END %][% titles.join(". ") %]
8537 $$
8538     );
8539
8540 INSERT INTO
8541     action_trigger.environment (id, event_def, path)
8542     VALUES
8543         (DEFAULT, 24, 'target_copy.call_number.record.simple_record'),
8544         (DEFAULT, 24, 'usr')
8545     ;
8546
8547 -- 0285.data.history_format.sql
8548
8549 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8550         'circ.format.history.email',
8551         'circ', 
8552         oils_i18n_gettext(
8553             'circ.format.history.email',
8554             'An email has been requested for a circ history.',
8555             'ath',
8556             'description'
8557         ), 
8558         FALSE
8559     )
8560     ,(
8561         'circ.format.history.print',
8562         'circ', 
8563         oils_i18n_gettext(
8564             'circ.format.history.print',
8565             'A circ history needs to be formatted for printing.',
8566             'ath',
8567             'description'
8568         ), 
8569         FALSE
8570     )
8571     ,(
8572         'ahr.format.history.email',
8573         'ahr', 
8574         oils_i18n_gettext(
8575             'ahr.format.history.email',
8576             'An email has been requested for a hold request history.',
8577             'ath',
8578             'description'
8579         ), 
8580         FALSE
8581     )
8582     ,(
8583         'ahr.format.history.print',
8584         'ahr', 
8585         oils_i18n_gettext(
8586             'ahr.format.history.print',
8587             'A hold request history needs to be formatted for printing.',
8588             'ath',
8589             'description'
8590         ), 
8591         FALSE
8592     )
8593
8594 ;
8595
8596 INSERT INTO action_trigger.event_definition (
8597         id,
8598         active,
8599         owner,
8600         name,
8601         hook,
8602         validator,
8603         reactor,
8604         group_field,
8605         granularity,
8606         template
8607     ) VALUES (
8608         25,
8609         TRUE,
8610         1,
8611         'circ.history.email',
8612         'circ.format.history.email',
8613         'NOOP_True',
8614         'SendEmail',
8615         'usr',
8616         NULL,
8617 $$
8618 [%- USE date -%]
8619 [%- SET user = target.0.usr -%]
8620 To: [%- params.recipient_email || user.email %]
8621 From: [%- params.sender_email || default_sender %]
8622 Subject: Circulation History
8623
8624     [% FOR circ IN target %]
8625             [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
8626             Barcode: [% circ.target_copy.barcode %]
8627             Checked Out: [% date.format(helpers.format_date(circ.xact_start), '%Y-%m-%d') %]
8628             Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
8629             Returned: [% date.format(helpers.format_date(circ.checkin_time), '%Y-%m-%d') %]
8630     [% END %]
8631 $$
8632     )
8633     ,(
8634         26,
8635         TRUE,
8636         1,
8637         'circ.history.print',
8638         'circ.format.history.print',
8639         'NOOP_True',
8640         'ProcessTemplate',
8641         'usr',
8642         'print-on-demand',
8643 $$
8644 [%- USE date -%]
8645 <div>
8646     <style> li { padding: 8px; margin 5px; }</style>
8647     <div>[% date.format %]</div>
8648     <br/>
8649
8650     [% user.family_name %], [% user.first_given_name %]
8651     <ol>
8652     [% FOR circ IN target %]
8653         <li>
8654             <div>[% helpers.get_copy_bib_basics(circ.target_copy.id).title %]</div>
8655             <div>Barcode: [% circ.target_copy.barcode %]</div>
8656             <div>Checked Out: [% date.format(helpers.format_date(circ.xact_start), '%Y-%m-%d') %]</div>
8657             <div>Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]</div>
8658             <div>Returned: [% date.format(helpers.format_date(circ.checkin_time), '%Y-%m-%d') %]</div>
8659         </li>
8660     [% END %]
8661     </ol>
8662 </div>
8663 $$
8664     )
8665     ,(
8666         27,
8667         TRUE,
8668         1,
8669         'ahr.history.email',
8670         'ahr.format.history.email',
8671         'NOOP_True',
8672         'SendEmail',
8673         'usr',
8674         NULL,
8675 $$
8676 [%- USE date -%]
8677 [%- SET user = target.0.usr -%]
8678 To: [%- params.recipient_email || user.email %]
8679 From: [%- params.sender_email || default_sender %]
8680 Subject: Hold Request History
8681
8682     [% FOR hold IN target %]
8683             [% helpers.get_copy_bib_basics(hold.current_copy.id).title %]
8684             Requested: [% date.format(helpers.format_date(hold.request_time), '%Y-%m-%d') %]
8685             [% IF hold.fulfillment_time %]Fulfilled: [% date.format(helpers.format_date(hold.fulfillment_time), '%Y-%m-%d') %][% END %]
8686     [% END %]
8687 $$
8688     )
8689     ,(
8690         28,
8691         TRUE,
8692         1,
8693         'ahr.history.print',
8694         'ahr.format.history.print',
8695         'NOOP_True',
8696         'ProcessTemplate',
8697         'usr',
8698         'print-on-demand',
8699 $$
8700 [%- USE date -%]
8701 <div>
8702     <style> li { padding: 8px; margin 5px; }</style>
8703     <div>[% date.format %]</div>
8704     <br/>
8705
8706     [% user.family_name %], [% user.first_given_name %]
8707     <ol>
8708     [% FOR hold IN target %]
8709         <li>
8710             <div>[% helpers.get_copy_bib_basics(hold.current_copy.id).title %]</div>
8711             <div>Requested: [% date.format(helpers.format_date(hold.request_time), '%Y-%m-%d') %]</div>
8712             [% IF hold.fulfillment_time %]<div>Fulfilled: [% date.format(helpers.format_date(hold.fulfillment_time), '%Y-%m-%d') %]</div>[% END %]
8713         </li>
8714     [% END %]
8715     </ol>
8716 </div>
8717 $$
8718     )
8719
8720 ;
8721
8722 INSERT INTO action_trigger.environment (
8723         event_def,
8724         path
8725     ) VALUES 
8726          ( 25, 'target_copy')
8727         ,( 25, 'usr' )
8728         ,( 26, 'target_copy' )
8729         ,( 26, 'usr' )
8730         ,( 27, 'current_copy' )
8731         ,( 27, 'usr' )
8732         ,( 28, 'current_copy' )
8733         ,( 28, 'usr' )
8734 ;
8735
8736 -- 0289.data.payment_receipt_format.sql
8737 -- 0326.data.payment_receipt_format.sql
8738
8739 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8740         'money.format.payment_receipt.email',
8741         'mp', 
8742         oils_i18n_gettext(
8743             'money.format.payment_receipt.email',
8744             'An email has been requested for a payment receipt.',
8745             'ath',
8746             'description'
8747         ), 
8748         FALSE
8749     )
8750     ,(
8751         'money.format.payment_receipt.print',
8752         'mp', 
8753         oils_i18n_gettext(
8754             'money.format.payment_receipt.print',
8755             'A payment receipt needs to be formatted for printing.',
8756             'ath',
8757             'description'
8758         ), 
8759         FALSE
8760     )
8761 ;
8762
8763 INSERT INTO action_trigger.event_definition (
8764         id,
8765         active,
8766         owner,
8767         name,
8768         hook,
8769         validator,
8770         reactor,
8771         group_field,
8772         granularity,
8773         template
8774     ) VALUES (
8775         29,
8776         TRUE,
8777         1,
8778         'money.payment_receipt.email',
8779         'money.format.payment_receipt.email',
8780         'NOOP_True',
8781         'SendEmail',
8782         'xact.usr',
8783         NULL,
8784 $$
8785 [%- USE date -%]
8786 [%- SET user = target.0.xact.usr -%]
8787 To: [%- params.recipient_email || user.email %]
8788 From: [%- params.sender_email || default_sender %]
8789 Subject: Payment Receipt
8790
8791 [% date.format -%]
8792 [%- SET xact_mp_hash = {} -%]
8793 [%- FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions -%]
8794     [%- SET xact_id = mp.xact.id -%]
8795     [%- IF ! xact_mp_hash.defined( xact_id ) -%][%- xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } -%][%- END -%]
8796     [%- xact_mp_hash.$xact_id.payments.push(mp) -%]
8797 [%- END -%]
8798 [%- FOR xact_id IN xact_mp_hash.keys.sort -%]
8799     [%- SET xact = xact_mp_hash.$xact_id.xact %]
8800 Transaction ID: [% xact_id %]
8801     [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %]
8802     [% ELSE %]Miscellaneous
8803     [% END %]
8804     Line item billings:
8805         [%- SET mb_type_hash = {} -%]
8806         [%- FOR mb IN xact.billings %][%# Group billings by their btype -%]
8807             [%- IF mb.voided == 'f' -%]
8808                 [%- SET mb_type = mb.btype.id -%]
8809                 [%- IF ! mb_type_hash.defined( mb_type ) -%][%- mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } -%][%- END -%]
8810                 [%- IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) -%][%- mb_type_hash.$mb_type.first_ts = mb.billing_ts -%][%- END -%]
8811                 [%- mb_type_hash.$mb_type.last_ts = mb.billing_ts -%]
8812                 [%- mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount -%]
8813                 [%- mb_type_hash.$mb_type.billings.push( mb ) -%]
8814             [%- END -%]
8815         [%- END -%]
8816         [%- FOR mb_type IN mb_type_hash.keys.sort -%]
8817             [%- IF mb_type == 1 %][%-# Consolidated view of overdue billings -%]
8818                 $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] 
8819                     on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %]
8820             [%- ELSE -%][%# all other billings show individually %]
8821                 [% FOR mb IN mb_type_hash.$mb_type.billings %]
8822                     $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %]
8823                 [% END %]
8824             [% END %]
8825         [% END %]
8826     Line item payments:
8827         [% FOR mp IN xact_mp_hash.$xact_id.payments %]
8828             Payment ID: [% mp.id %]
8829                 Paid [% mp.amount %] via [% SWITCH mp.payment_type -%]
8830                     [% CASE "cash_payment" %]cash
8831                     [% CASE "check_payment" %]check
8832                     [% CASE "credit_card_payment" %]credit card (
8833                         [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%]
8834                         [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] 
8835                         [% cc_chunks.last -%]
8836                         exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%]
8837                     )
8838                     [% CASE "credit_payment" %]credit
8839                     [% CASE "forgive_payment" %]forgiveness
8840                     [% CASE "goods_payment" %]goods
8841                     [% CASE "work_payment" %]work
8842                 [%- END %] on [% mp.payment_ts %] [% mp.note %]
8843         [% END %]
8844 [% END %]
8845 $$
8846     )
8847     ,(
8848         30,
8849         TRUE,
8850         1,
8851         'money.payment_receipt.print',
8852         'money.format.payment_receipt.print',
8853         'NOOP_True',
8854         'ProcessTemplate',
8855         'xact.usr',
8856         'print-on-demand',
8857 $$
8858 [%- USE date -%][%- SET user = target.0.xact.usr -%]
8859 <div style="li { padding: 8px; margin 5px; }">
8860     <div>[% date.format %]</div><br/>
8861     <ol>
8862     [% SET xact_mp_hash = {} %]
8863     [% FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions %]
8864         [% SET xact_id = mp.xact.id %]
8865         [% IF ! xact_mp_hash.defined( xact_id ) %][% xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } %][% END %]
8866         [% xact_mp_hash.$xact_id.payments.push(mp) %]
8867     [% END %]
8868     [% FOR xact_id IN xact_mp_hash.keys.sort %]
8869         [% SET xact = xact_mp_hash.$xact_id.xact %]
8870         <li>Transaction ID: [% xact_id %]
8871             [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %]
8872             [% ELSE %]Miscellaneous
8873             [% END %]
8874             Line item billings:<ol>
8875                 [% SET mb_type_hash = {} %]
8876                 [% FOR mb IN xact.billings %][%# Group billings by their btype %]
8877                     [% IF mb.voided == 'f' %]
8878                         [% SET mb_type = mb.btype.id %]
8879                         [% IF ! mb_type_hash.defined( mb_type ) %][% mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } %][% END %]
8880                         [% IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) %][% mb_type_hash.$mb_type.first_ts = mb.billing_ts %][% END %]
8881                         [% mb_type_hash.$mb_type.last_ts = mb.billing_ts %]
8882                         [% mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount %]
8883                         [% mb_type_hash.$mb_type.billings.push( mb ) %]
8884                     [% END %]
8885                 [% END %]
8886                 [% FOR mb_type IN mb_type_hash.keys.sort %]
8887                     <li>[% IF mb_type == 1 %][%# Consolidated view of overdue billings %]
8888                         $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] 
8889                             on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %]
8890                     [% ELSE %][%# all other billings show individually %]
8891                         [% FOR mb IN mb_type_hash.$mb_type.billings %]
8892                             $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %]
8893                         [% END %]
8894                     [% END %]</li>
8895                 [% END %]
8896             </ol>
8897             Line item payments:<ol>
8898                 [% FOR mp IN xact_mp_hash.$xact_id.payments %]
8899                     <li>Payment ID: [% mp.id %]
8900                         Paid [% mp.amount %] via [% SWITCH mp.payment_type -%]
8901                             [% CASE "cash_payment" %]cash
8902                             [% CASE "check_payment" %]check
8903                             [% CASE "credit_card_payment" %]credit card (
8904                                 [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%]
8905                                 [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] 
8906                                 [% cc_chunks.last -%]
8907                                 exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%]
8908                             )
8909                             [% CASE "credit_payment" %]credit
8910                             [% CASE "forgive_payment" %]forgiveness
8911                             [% CASE "goods_payment" %]goods
8912                             [% CASE "work_payment" %]work
8913                         [%- END %] on [% mp.payment_ts %] [% mp.note %]
8914                     </li>
8915                 [% END %]
8916             </ol>
8917         </li>
8918     [% END %]
8919     </ol>
8920 </div>
8921 $$
8922     )
8923 ;
8924
8925 INSERT INTO action_trigger.environment (
8926         event_def,
8927         path
8928     ) VALUES -- for fleshing mp objects
8929          ( 29, 'xact')
8930         ,( 29, 'xact.usr')
8931         ,( 29, 'xact.grocery' )
8932         ,( 29, 'xact.circulation' )
8933         ,( 29, 'xact.summary' )
8934         ,( 29, 'credit_card_payment')
8935         ,( 29, 'xact.billings')
8936         ,( 29, 'xact.billings.btype')
8937         ,( 30, 'xact')
8938         ,( 30, 'xact.usr')
8939         ,( 30, 'xact.grocery' )
8940         ,( 30, 'xact.circulation' )
8941         ,( 30, 'xact.summary' )
8942         ,( 30, 'credit_card_payment')
8943         ,( 30, 'xact.billings')
8944         ,( 30, 'xact.billings.btype')
8945 ;
8946
8947 -- 0294.data.bre_format.sql
8948
8949 INSERT INTO container.biblio_record_entry_bucket_type( code, label ) VALUES (
8950     'temp',
8951     oils_i18n_gettext(
8952         'temp',
8953         'Temporary bucket which gets deleted after use.',
8954         'cbrebt',
8955         'label'
8956     )
8957 );
8958
8959 INSERT INTO action_trigger.cleanup ( module, description ) VALUES (
8960     'DeleteTempBiblioBucket',
8961     oils_i18n_gettext(
8962         'DeleteTempBiblioBucket',
8963         'Deletes a cbreb object used as a target if it has a btype of "temp"',
8964         'atclean',
8965         'description'
8966     )
8967 );
8968
8969 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
8970         'biblio.format.record_entry.email',
8971         'cbreb', 
8972         oils_i18n_gettext(
8973             'biblio.format.record_entry.email',
8974             'An email has been requested for one or more biblio record entries.',
8975             'ath',
8976             'description'
8977         ), 
8978         FALSE
8979     )
8980     ,(
8981         'biblio.format.record_entry.print',
8982         'cbreb', 
8983         oils_i18n_gettext(
8984             'biblio.format.record_entry.print',
8985             'One or more biblio record entries need to be formatted for printing.',
8986             'ath',
8987             'description'
8988         ), 
8989         FALSE
8990     )
8991 ;
8992
8993 INSERT INTO action_trigger.event_definition (
8994         id,
8995         active,
8996         owner,
8997         name,
8998         hook,
8999         validator,
9000         reactor,
9001         cleanup_success,
9002         cleanup_failure,
9003         group_field,
9004         granularity,
9005         delay,
9006         template
9007     ) VALUES (
9008         31,
9009         TRUE,
9010         1,
9011         'biblio.record_entry.email',
9012         'biblio.format.record_entry.email',
9013         'NOOP_True',
9014         'SendEmail',
9015         'DeleteTempBiblioBucket',
9016         'DeleteTempBiblioBucket',
9017         'owner',
9018         NULL,
9019         '00:00:00',
9020 $$
9021 [%- SET user = target.0.owner -%]
9022 To: [%- params.recipient_email || user.email %]
9023 From: [%- params.sender_email || default_sender %]
9024 Subject: Bibliographic Records
9025
9026 [% FOR cbreb IN target %][% title = '' %]
9027 [% FOR item IN cbreb.items;
9028     bre_id = item.target_biblio_record_entry;
9029
9030     bibxml = helpers.unapi_bre(bre_id, {flesh => '{mra}'});
9031     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
9032         title = title _ part.textContent;
9033     END;
9034
9035     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
9036     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
9037     publisher = bibxml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent;
9038     pubdate = bibxml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent;
9039     isbn = bibxml.findnodes('//*[@tag="020"]/*[@code="a"]').textContent;
9040     issn = bibxml.findnodes('//*[@tag="022"]/*[@code="a"]').textContent;
9041     upc = bibxml.findnodes('//*[@tag="024"]/*[@code="a"]').textContent;
9042 %]
9043
9044 [% loop.count %]/[% loop.size %].  Bib ID# [% bre_id %] 
9045 [% IF isbn %]ISBN: [% isbn _ "\n" %][% END -%]
9046 [% IF issn %]ISSN: [% issn _ "\n" %][% END -%]
9047 [% IF upc  %]UPC:  [% upc _ "\n" %] [% END -%]
9048 Title: [% title %]
9049 Author: [% author %]
9050 Publication Info: [% publisher %] [% pubdate %]
9051 Item Type: [% item_type %]
9052
9053 [% END %]
9054 [% END %]
9055 $$
9056     )
9057     ,(
9058         32,
9059         TRUE,
9060         1,
9061         'biblio.record_entry.print',
9062         'biblio.format.record_entry.print',
9063         'NOOP_True',
9064         'ProcessTemplate',
9065         'DeleteTempBiblioBucket',
9066         'DeleteTempBiblioBucket',
9067         'owner',
9068         'print-on-demand',
9069         '00:00:00',
9070 $$
9071 <div>
9072     <style> li { padding: 8px; margin 5px; }</style>
9073     <ol>
9074     [% FOR cbreb IN target %][% title = '' %]
9075     [% FOR item IN cbreb.items;
9076         bre_id = item.target_biblio_record_entry;
9077
9078         bibxml = helpers.unapi_bre(bre_id, {flesh => '{mra}'});
9079         FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
9080             title = title _ part.textContent;
9081         END;
9082
9083         author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
9084         item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
9085         publisher = bibxml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent;
9086         pubdate = bibxml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent;
9087         isbn = bibxml.findnodes('//*[@tag="020"]/*[@code="a"]').textContent;
9088         %]
9089
9090         <li>
9091             Bib ID# [% bre_id %] ISBN: [% isbn %]<br />
9092             Title: [% title %]<br />
9093             Author: [% author %]<br />
9094             Publication Info: [% publisher %] [% pubdate %]<br/>
9095             Item Type: [% item_type %]
9096         </li>
9097     [% END %]
9098     [% END %]
9099     </ol>
9100 </div>
9101 $$
9102     )
9103 ;
9104
9105 INSERT INTO action_trigger.environment (
9106         event_def,
9107         path
9108     ) VALUES -- for fleshing cbreb objects
9109          ( 31, 'owner' )
9110         ,( 31, 'items' )
9111         ,( 32, 'items' )
9112 ;
9113
9114 -- Use the ISO 4217 abbreviations for currency codes
9115 INSERT INTO acq.currency_type (code, label) VALUES ('USD', oils_i18n_gettext('USD', 'US Dollars', 'acqct', 'label'));
9116 INSERT INTO acq.currency_type (code, label) VALUES ('CAN', oils_i18n_gettext('CAN', 'Canadian Dollars', 'acqct', 'label'));
9117 INSERT INTO acq.currency_type (code, label) VALUES ('EUR', oils_i18n_gettext('EUR', 'Euros', 'acqct', 'label'));
9118
9119 INSERT INTO acq.exchange_rate (from_currency,to_currency,ratio) VALUES ('USD','CAN',1.2);
9120 INSERT INTO acq.exchange_rate (from_currency,to_currency,ratio) VALUES ('USD','EUR',0.5);
9121
9122 INSERT INTO acq.invoice_item_type (code,name) VALUES ('TAX',oils_i18n_gettext('TAX', 'Tax', 'aiit', 'name'));
9123 INSERT INTO acq.invoice_item_type (code,name) VALUES ('PRO',oils_i18n_gettext('PRO', 'Processing Fee', 'aiit', 'name'));
9124 INSERT INTO acq.invoice_item_type (code,name) VALUES ('SHP',oils_i18n_gettext('SHP', 'Shipping Charge', 'aiit', 'name'));
9125 INSERT INTO acq.invoice_item_type (code,name) VALUES ('HND',oils_i18n_gettext('HND', 'Handling Charge', 'aiit', 'name'));
9126 INSERT INTO acq.invoice_item_type (code,name) VALUES ('ITM',oils_i18n_gettext('ITM', 'Non-library Item', 'aiit', 'name'));
9127 INSERT INTO acq.invoice_item_type (code,name) VALUES ('SUB',oils_i18n_gettext('SUB', 'Serial Subscription', 'aiit', 'name'));
9128
9129 INSERT INTO acq.invoice_method (code,name) VALUES ('EDI',oils_i18n_gettext('EDI', 'EDI', 'acqim', 'name'));
9130 INSERT INTO acq.invoice_method (code,name) VALUES ('PPR',oils_i18n_gettext('PPR', 'Paper', 'acqit', 'name'));
9131
9132 INSERT INTO acq.cancel_reason ( id, org_unit, label, description ) VALUES (
9133     1, 1, oils_i18n_gettext(1,'invalid_isbn', 'acqcr', 'label'), oils_i18n_gettext( 1, 'ISBN is unrecognizable', 'acqcr', 'description' ));
9134 INSERT INTO acq.cancel_reason ( id, org_unit, label, description ) VALUES (
9135     2, 1, oils_i18n_gettext(2,'postpone', 'acqcr', 'label'), oils_i18n_gettext( 2, 'Title has been postponed', 'acqcr', 'description' ));
9136 INSERT INTO acq.cancel_reason ( id, org_unit, label, description, keep_debits ) VALUES (
9137     3, 1, oils_i18n_gettext(3, 'delivered_but_lost', 'acqcr', 'label'),
9138         oils_i18n_gettext( 3, 'Delivered but not received; presumed lost', 'acqcr', 'description' ), TRUE );
9139
9140 INSERT INTO acq.cancel_reason (keep_debits, id, org_unit, label, description) VALUES 
9141 ('f',(  2+1000), 1, oils_i18n_gettext(1002, 'Deleted', 'acqcr', 'label'),
9142         oils_i18n_gettext(1002, 'The information is to be or has been deleted.', 'acqcr', 'description')),
9143 ('t',(  3+1000), 1, oils_i18n_gettext(1003, 'Changed', 'acqcr', 'label'),
9144         oils_i18n_gettext(1003, 'The information is to be or has been changed.', 'acqcr', 'description')),
9145 ('t',(  4+1000), 1, oils_i18n_gettext(1004, 'No action', 'acqcr', 'label'),
9146         oils_i18n_gettext(1004, 'This line item is not affected by the actual message.', 'acqcr', 'description')),
9147 ('t',(  5+1000), 1, oils_i18n_gettext(1005, 'Accepted without amendment', 'acqcr', 'label'),
9148         oils_i18n_gettext(1005, 'This line item is entirely accepted by the seller.', 'acqcr', 'description')),
9149 ('f',(  7+1000), 1, oils_i18n_gettext(1007, 'Not accepted', 'acqcr', 'label'),
9150         oils_i18n_gettext(1007, 'This line item is not accepted by the seller.', 'acqcr', 'description')),
9151 ('f',( 10+1000), 1, oils_i18n_gettext(1010, 'Not found', 'acqcr', 'label'),
9152        oils_i18n_gettext(1010, 'This line item is not found in the referenced message.', 'acqcr', 'description')),
9153 ('t',( 24+1000), 1, oils_i18n_gettext(1024, 'Accepted with amendment, no confirmation required', 'acqcr', 'label'),
9154        oils_i18n_gettext(1024, 'Accepted with changes which require no confirmation.', 'acqcr', 'description'));
9155
9156 INSERT INTO acq.cancel_reason (org_unit, keep_debits, id, label, description) VALUES 
9157 (1, 't', 1211, oils_i18n_gettext(1211, 'Split quantity', 'acqcr', 'label'),
9158     oils_i18n_gettext(1211, 'Part of the whole quantity.', 'acqcr', 'description')),
9159 (1, 't', 1221, oils_i18n_gettext(1221, 'Ordered quantity', 'acqcr', 'label'),
9160     oils_i18n_gettext(1221, '[6024] The quantity which has been ordered.', 'acqcr', 'description')),
9161 (1, 't', 1246, oils_i18n_gettext(1246, 'Pieces delivered', 'acqcr', 'label'),
9162     oils_i18n_gettext(1246, 'Number of pieces actually received at the final destination.', 'acqcr', 'description')),
9163 (1, 't', 1283, oils_i18n_gettext(1283, 'Backorder quantity', 'acqcr', 'label'),
9164     oils_i18n_gettext(1283, 'The quantity of goods that is on back-order.', 'acqcr', 'description'));
9165
9166 INSERT INTO config.global_flag (name, label, enabled)
9167     VALUES (
9168         'circ.holds.usr_not_requestor',
9169         oils_i18n_gettext(
9170             'circ.holds.usr_not_requestor',
9171             'Holds: When testing hold matrix matchpoints, use the profile group of the receiving user instead of that of the requestor (affects staff-placed holds)',
9172             'cgf',
9173             'label'
9174         ),
9175         TRUE
9176     );
9177
9178 INSERT INTO config.global_flag (name, label, enabled)
9179     VALUES (
9180         'circ.holds.empty_issuance_ok',
9181         oils_i18n_gettext(
9182             'circ.holds.empty_issuance_ok',
9183             'Holds: Allow holds on empty issuances',
9184             'cgf',
9185             'label'
9186         ),
9187         TRUE
9188     );
9189
9190 INSERT INTO config.global_flag (name, label) -- defaults to enabled=FALSE
9191     VALUES (
9192         'ingest.disable_authority_linking',
9193         oils_i18n_gettext(
9194             'ingest.disable_authority_linking',
9195             'Authority Automation: Disable bib-authority link tracking',
9196             'cgf', 
9197             'label'
9198         )
9199     );
9200
9201 INSERT INTO config.global_flag (name, label) -- defaults to enabled=FALSE
9202     VALUES (
9203         'ingest.disable_authority_auto_update',
9204         oils_i18n_gettext(
9205             'ingest.disable_authority_auto_update',
9206             'Authority Automation: Disable automatic authority updating (requires link tracking)',
9207             'cgf', 
9208             'label'
9209         )
9210     );
9211
9212 INSERT INTO config.global_flag (name, label, enabled)
9213     VALUES (
9214         'cat.bib.use_id_for_tcn',
9215         oils_i18n_gettext(
9216             'cat.bib.use_id_for_tcn',
9217             'Cat: Use Internal ID for TCN Value',
9218             'cgf', 
9219             'label'
9220         ),
9221         TRUE
9222     );
9223
9224 INSERT INTO config.global_flag (name,label,enabled)
9225     VALUES (
9226         'history.circ.retention_age',
9227         oils_i18n_gettext('history.circ.retention_age', 'Historical Circulation Retention Age', 'cgf', 'label'),
9228         TRUE
9229     ),(
9230         'history.circ.retention_count',
9231         oils_i18n_gettext('history.circ.retention_count', 'Historical Circulations per Copy', 'cgf', 'label'),
9232         TRUE
9233     );
9234
9235 INSERT INTO config.global_flag  (name, label, enabled)
9236     VALUES (
9237         'history.hold.retention_age',
9238         oils_i18n_gettext('history.hold.retention_age', 'Historical Hold Retention Age', 'cgf', 'label'),
9239         TRUE
9240     ),(
9241         'history.hold.retention_age_fulfilled',
9242         oils_i18n_gettext('history.hold.retention_age_fulfilled', 'Historical Hold Retention Age - Fulfilled', 'cgf', 'label'),
9243         FALSE
9244     ),(
9245         'history.hold.retention_age_canceled',
9246         oils_i18n_gettext('history.hold.retention_age_canceled', 'Historical Hold Retention Age - Canceled (Default)', 'cgf', 'label'),
9247         FALSE
9248     ),(
9249         'history.hold.retention_age_canceled_1',
9250         oils_i18n_gettext('history.hold.retention_age_canceled_1', 'Historical Hold Retention Age - Canceled (Untarged expiration)', 'cgf', 'label'),
9251         FALSE
9252     ),(
9253         'history.hold.retention_age_canceled_2',
9254         oils_i18n_gettext('history.hold.retention_age_canceled_2', 'Historical Hold Retention Age - Canceled (Hold Shelf expiration)', 'cgf', 'label'),
9255         FALSE
9256     ),(
9257         'history.hold.retention_age_canceled_3',
9258         oils_i18n_gettext('history.hold.retention_age_canceled_3', 'Historical Hold Retention Age - Canceled (Patron via phone)', 'cgf', 'label'),
9259         TRUE
9260     ),(
9261         'history.hold.retention_age_canceled_4',
9262         oils_i18n_gettext('history.hold.retention_age_canceled_4', 'Historical Hold Retention Age - Canceled (Patron in person)', 'cgf', 'label'),
9263         TRUE
9264     ),(
9265         'history.hold.retention_age_canceled_5',
9266         oils_i18n_gettext('history.hold.retention_age_canceled_5', 'Historical Hold Retention Age - Canceled (Staff forced)', 'cgf', 'label'),
9267         TRUE
9268     ),(
9269         'history.hold.retention_age_canceled_6',
9270         oils_i18n_gettext('history.hold.retention_age_canceled_6', 'Historical Hold Retention Age - Canceled (Patron via OPAC)', 'cgf', 'label'),
9271         FALSE
9272     );
9273
9274 INSERT INTO config.global_flag (name, label, enabled)
9275     VALUES (
9276         'cat.maintain_control_numbers',
9277         oils_i18n_gettext(
9278             'cat.maintain_control_numbers',
9279             'Cat: Maintain 001/003/035 according to the MARC21 specification',
9280             'cgf', 
9281             'label'
9282         ),
9283         TRUE
9284     );
9285
9286 INSERT INTO config.global_flag (name, label, enabled)
9287     VALUES (
9288         'circ.opac_renewal.use_original_circ_lib',
9289         oils_i18n_gettext(
9290             'circ.opac_renewal.use_original_circ_lib',
9291             'Circ: Use original circulation library on opac renewal instead of user home library',
9292             'cgf',
9293             'label'
9294         ),
9295         FALSE
9296     );
9297
9298 INSERT INTO config.global_flag (name, label, enabled)
9299     VALUES (
9300         'circ.desk_renewal.use_original_circ_lib',
9301         oils_i18n_gettext(
9302             'circ.desk_renewal.use_original_circ_lib',
9303             'Circ: Use original circulation library on desk renewal instead of user home library',
9304             'cgf',
9305             'label'
9306         ),
9307         FALSE
9308     );
9309
9310 INSERT INTO config.global_flag (name, label, value, enabled)
9311     VALUES (
9312         'opac.use_autosuggest',
9313         oils_i18n_gettext(
9314             'opac.use_autosuggest',
9315             '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)',
9316             'cgf',
9317             'label'
9318         ),
9319         'opac_visible',
9320         TRUE
9321     );
9322
9323 INSERT INTO config.global_flag (name, label)
9324     VALUES (
9325         'history.circ.retention_uses_last_finished',
9326         oils_i18n_gettext(
9327             'history.circ.retention_uses_last_finished',
9328             'Historical Circulations use most recent xact_finish date instead of last circ''s.',
9329             'cgf',
9330             'label'
9331         )
9332     ),(
9333         'history.circ.retention_age_is_min',
9334         oils_i18n_gettext(
9335             'history.circ.retention_age_is_min',
9336             'Historical Circulations are kept for global retention age at a minimum, regardless of user preferences.',
9337             'cgf',
9338             'label'
9339         )
9340     );
9341
9342 INSERT INTO config.global_flag (name, value, enabled, label)
9343 VALUES (
9344     'opac.browse.warnable_regexp_per_class',
9345     '{"title": "^(a|the|an)\\s"}',
9346     FALSE,
9347     oils_i18n_gettext(
9348         'opac.browse.warnable_regexp_per_class',
9349         'Map of search classes to regular expressions to warn user about leading articles.',
9350         'cgf',
9351         'label'
9352     )
9353 ),
9354 (
9355     'opac.browse.holdings_visibility_test_limit',
9356     '100',
9357     TRUE,
9358     oils_i18n_gettext(
9359         'opac.browse.holdings_visibility_test_limit',
9360         'Don''t look for more than this number of records with holdings when displaying browse headings with visible record counts.',
9361         'cgf',
9362         'label'
9363     )
9364 );
9365
9366 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
9367     VALUES (
9368         'history.circ.retention_age',
9369         TRUE,
9370         oils_i18n_gettext('history.circ.retention_age','Historical Circulation Retention Age','cust','label'),
9371         oils_i18n_gettext('history.circ.retention_age','Historical Circulation Retention Age','cust','description'),
9372         'interval'
9373     ),(
9374         'history.circ.retention_start',
9375         FALSE,
9376         oils_i18n_gettext('history.circ.retention_start','Historical Circulation Retention Start Date','cust','label'),
9377         oils_i18n_gettext('history.circ.retention_start','Historical Circulation Retention Start Date','cust','description'),
9378         'date'
9379     );
9380
9381 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
9382     VALUES (
9383         'history.hold.retention_age',
9384         TRUE,
9385         oils_i18n_gettext('history.hold.retention_age','Historical Hold Retention Age','cust','label'),
9386         oils_i18n_gettext('history.hold.retention_age','Historical Hold Retention Age','cust','description'),
9387         'interval'
9388     ),(
9389         'history.hold.retention_start',
9390         TRUE,
9391         oils_i18n_gettext('history.hold.retention_start','Historical Hold Retention Start Date','cust','label'),
9392         oils_i18n_gettext('history.hold.retention_start','Historical Hold Retention Start Date','cust','description'),
9393         'interval'
9394     ),(
9395         'history.hold.retention_count',
9396         TRUE,
9397         oils_i18n_gettext('history.hold.retention_count','Historical Hold Retention Count','cust','label'),
9398         oils_i18n_gettext('history.hold.retention_count','Historical Hold Retention Count','cust','description'),
9399         'integer'
9400     );
9401
9402 -- 0311.data.query-seed-datatypes.sql
9403 -- Define the most common datatypes in query.datatype.  Note that none of
9404 -- these stock datatypes specifies a width or precision.
9405
9406 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9407   VALUES (1, 'SMALLINT', true);
9408  
9409 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9410   VALUES (2, 'INTEGER', true);
9411  
9412 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9413   VALUES (3, 'BIGINT', true);
9414  
9415 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9416   VALUES (4, 'DECIMAL', true);
9417  
9418 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9419   VALUES (5, 'NUMERIC', true);
9420  
9421 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9422   VALUES (6, 'REAL', true);
9423  
9424 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9425   VALUES (7, 'DOUBLE PRECISION', true);
9426  
9427 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9428   VALUES (8, 'SERIAL', true);
9429  
9430 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9431   VALUES (9, 'BIGSERIAL', true);
9432  
9433 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9434   VALUES (10, 'MONEY', false);
9435  
9436 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9437   VALUES (11, 'VARCHAR', false);
9438  
9439 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9440   VALUES (12, 'CHAR', false);
9441  
9442 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9443   VALUES (13, 'TEXT', false);
9444  
9445 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9446   VALUES (14, '"char"', false);
9447  
9448 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9449   VALUES (15, 'NAME', false);
9450  
9451 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9452   VALUES (16, 'BYTEA', false);
9453  
9454 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9455   VALUES (17, 'TIMESTAMP WITHOUT TIME ZONE', false);
9456  
9457 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9458   VALUES (18, 'TIMESTAMP WITH TIME ZONE', false);
9459  
9460 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9461   VALUES (19, 'DATE', false);
9462  
9463 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9464   VALUES (20, 'TIME WITHOUT TIME ZONE', false);
9465  
9466 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9467   VALUES (21, 'TIME WITH TIME ZONE', false);
9468  
9469 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9470   VALUES (22, 'INTERVAL', false);
9471  
9472 INSERT INTO query.datatype (id, datatype_name, is_numeric )
9473   VALUES (23, 'BOOLEAN', false);
9474
9475 INSERT INTO config.usr_setting_type (name, opac_visible, label, description, datatype) 
9476     VALUES (
9477         'opac.default_sort',
9478         TRUE,
9479         oils_i18n_gettext(
9480             'opac.default_sort',
9481             'OPAC Default Search Sort',
9482             'cust',
9483             'label'
9484         ),
9485         oils_i18n_gettext(
9486             'opac.default_sort',
9487             'OPAC Default Search Sort',
9488             'cust',
9489             'description'
9490         ),
9491         'string'
9492     );
9493
9494 -- 0355.data.missing_pieces_format.sql
9495
9496 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES 
9497     (   'circ.format.missing_pieces.slip.print',
9498         'circ', 
9499         oils_i18n_gettext(
9500             'circ.format.missing_pieces.slip.print',
9501             'A missing pieces slip needs to be formatted for printing.',
9502             'ath',
9503             'description'
9504         ), 
9505         FALSE
9506     )
9507     ,(  'circ.format.missing_pieces.letter.print',
9508         'circ', 
9509         oils_i18n_gettext(
9510             'circ.format.missing_pieces.letter.print',
9511             'A missing pieces patron letter needs to be formatted for printing.',
9512             'ath',
9513             'description'
9514         ), 
9515         FALSE
9516     )
9517 ;
9518
9519 INSERT INTO action_trigger.event_definition (
9520         id,
9521         active,
9522         owner,
9523         name,
9524         hook,
9525         validator,
9526         reactor,
9527         group_field,
9528         granularity,
9529         template
9530     ) VALUES (
9531         33,
9532         TRUE,
9533         1,
9534         'circ.missing_pieces.slip.print',
9535         'circ.format.missing_pieces.slip.print',
9536         'NOOP_True',
9537         'ProcessTemplate',
9538         'usr',
9539         'print-on-demand',
9540 $$
9541 [%- USE date -%]
9542 [%- SET user = target.0.usr -%]
9543 <div style="li { padding: 8px; margin 5px; }">
9544     <div>[% date.format %]</div><br/>
9545     Missing pieces for:
9546     <ol>
9547     [% FOR circ IN target %]
9548         <li>Barcode: [% circ.target_copy.barcode %] Transaction ID: [% circ.id %] Due: [% circ.due_date.format %]<br />
9549             [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
9550         </li>
9551     [% END %]
9552     </ol>
9553 </div>
9554 $$
9555     )
9556     ,(
9557         34,
9558         TRUE,
9559         1,
9560         'circ.missing_pieces.letter.print',
9561         'circ.format.missing_pieces.letter.print',
9562         'NOOP_True',
9563         'ProcessTemplate',
9564         'usr',
9565         'print-on-demand',
9566 $$
9567 [%- USE date -%]
9568 [%- SET user = target.0.usr -%]
9569 [% date.format %]
9570 Dear [% user.prefix %] [% user.first_given_name %] [% user.family_name %],
9571
9572 We are missing pieces for the following returned items:
9573 [% FOR circ IN target %]
9574 Barcode: [% circ.target_copy.barcode %] Transaction ID: [% circ.id %] Due: [% circ.due_date.format %]
9575 [% helpers.get_copy_bib_basics(circ.target_copy.id).title %]
9576 [% END %]
9577
9578 Please return these pieces as soon as possible.
9579
9580 Thanks!
9581
9582 Library Staff
9583 $$
9584     )
9585 ;
9586
9587 INSERT INTO action_trigger.environment (
9588         event_def,
9589         path
9590     ) VALUES -- for fleshing circ objects
9591          ( 33, 'usr')
9592         ,( 33, 'target_copy')
9593         ,( 33, 'target_copy.circ_lib')
9594         ,( 33, 'target_copy.circ_lib.mailing_address')
9595         ,( 33, 'target_copy.circ_lib.billing_address')
9596         ,( 33, 'target_copy.call_number')
9597         ,( 33, 'target_copy.call_number.owning_lib')
9598         ,( 33, 'target_copy.call_number.owning_lib.mailing_address')
9599         ,( 33, 'target_copy.call_number.owning_lib.billing_address')
9600         ,( 33, 'circ_lib')
9601         ,( 33, 'circ_lib.mailing_address')
9602         ,( 33, 'circ_lib.billing_address')
9603         ,( 34, 'usr')
9604         ,( 34, 'target_copy')
9605         ,( 34, 'target_copy.circ_lib')
9606         ,( 34, 'target_copy.circ_lib.mailing_address')
9607         ,( 34, 'target_copy.circ_lib.billing_address')
9608         ,( 34, 'target_copy.call_number')
9609         ,( 34, 'target_copy.call_number.owning_lib')
9610         ,( 34, 'target_copy.call_number.owning_lib.mailing_address')
9611         ,( 34, 'target_copy.call_number.owning_lib.billing_address')
9612         ,( 34, 'circ_lib')
9613         ,( 34, 'circ_lib.mailing_address')
9614         ,( 34, 'circ_lib.billing_address')
9615 ;
9616
9617 -- 0384.data.hold_pull_list_template.sql
9618
9619 INSERT INTO action_trigger.hook (key,core_type,description,passive) 
9620     VALUES (   
9621         'ahr.format.pull_list',
9622         'ahr', 
9623         oils_i18n_gettext(
9624             'ahr.format.pull_list',
9625             'Format holds pull list for printing',
9626             'ath',
9627             'description'
9628         ), 
9629         FALSE
9630     );
9631
9632 INSERT INTO action_trigger.event_definition (
9633         id,
9634         active,
9635         owner,
9636         name,
9637         hook,
9638         validator,
9639         reactor,
9640         group_field,
9641         granularity,
9642         template
9643     ) VALUES (
9644         35,
9645         TRUE,
9646         1,
9647         'Holds Pull List',
9648         'ahr.format.pull_list',
9649         'NOOP_True',
9650         'ProcessTemplate',
9651         'pickup_lib',
9652         'print-on-demand',
9653 $$
9654 [%- USE date -%]
9655 <style>
9656     table { border-collapse: collapse; }
9657     td { padding: 5px; border-bottom: 1px solid #888; }
9658     th { font-weight: bold; }
9659 </style>
9660 [%
9661     # Sort the holds into copy-location buckets
9662     # In the main print loop, sort each bucket by callnumber before printing
9663     SET holds_list = [];
9664     SET loc_data = [];
9665     SET current_location = target.0.current_copy.location.id;
9666     FOR hold IN target;
9667         IF current_location != hold.current_copy.location.id;
9668             SET current_location = hold.current_copy.location.id;
9669             holds_list.push(loc_data);
9670             SET loc_data = [];
9671         END;
9672         SET hold_data = {
9673             'hold' => hold,
9674             'callnumber' => hold.current_copy.call_number.label
9675         };
9676         loc_data.push(hold_data);
9677     END;
9678     holds_list.push(loc_data)
9679 %]
9680 <table>
9681     <thead>
9682         <tr>
9683             <th>Title</th>
9684             <th>Author</th>
9685             <th>Shelving Location</th>
9686             <th>Call Number</th>
9687             <th>Barcode/Part</th>
9688             <th>Patron</th>
9689         </tr>
9690     </thead>
9691     <tbody>
9692     [% FOR loc_data IN holds_list  %]
9693         [% FOR hold_data IN loc_data.sort('callnumber') %]
9694             [%
9695                 SET hold = hold_data.hold;
9696                 SET copy_data = helpers.get_copy_bib_basics(hold.current_copy.id);
9697             %]
9698             <tr>
9699                 <td>[% copy_data.title | truncate %]</td>
9700                 <td>[% copy_data.author | truncate %]</td>
9701                 <td>[% hold.current_copy.location.name %]</td>
9702                 <td>[% hold.current_copy.call_number.label %]</td>
9703                 <td>[% hold.current_copy.barcode %]
9704                     [% FOR part IN hold.current_copy.parts %]
9705                        [% part.part.label %]
9706                     [% END %]
9707                 </td>
9708                 <td>[% hold.usr.card.barcode %]</td>
9709             </tr>
9710         [% END %]
9711     [% END %]
9712     <tbody>
9713 </table>
9714 $$
9715 );
9716
9717 INSERT INTO action_trigger.environment (
9718         event_def,
9719         path
9720     ) VALUES
9721         (35, 'current_copy.location'),
9722         (35, 'current_copy.call_number'),
9723         (35, 'usr.card'),
9724         (35, 'pickup_lib'),
9725         (35, 'current_copy.parts'),
9726         (35, 'current_copy.parts.part')
9727 ;
9728
9729 -- 0412.data.trigger.validator.HoldIsCancelled.sql
9730
9731 INSERT INTO action_trigger.validator (module, description) VALUES (
9732     'HoldIsCancelled',
9733     oils_i18n_gettext(
9734         'HoldIsCancelled',
9735         'Check whether a hold request is cancelled.',
9736         'atval',
9737         'description'
9738     )
9739 );
9740
9741 -- 0448.data.trigger.circ.staff_age_to_lost.sql
9742
9743 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES 
9744     (   'circ.staff_age_to_lost',
9745         'circ', 
9746         oils_i18n_gettext(
9747             'circ.staff_age_to_lost',
9748             'An overdue circulation should be aged to a Lost status.',
9749             'ath',
9750             'description'
9751         ), 
9752         TRUE
9753     )
9754 ;
9755
9756 INSERT INTO action_trigger.event_definition (
9757         id,
9758         active,
9759         owner,
9760         name,
9761         hook,
9762         validator,
9763         reactor,
9764         delay_field
9765     ) VALUES (
9766         36,
9767         FALSE,
9768         1,
9769         'circ.staff_age_to_lost',
9770         'circ.staff_age_to_lost',
9771         'CircIsOverdue',
9772         'MarkItemLost',
9773         'due_date'
9774     )
9775 ;
9776
9777 INSERT INTO action_trigger.hook (key,core_type,description)
9778     VALUES ('circ.recall.target', 'circ', 'A checked-out copy has been recalled for a hold.');
9779
9780 INSERT INTO action_trigger.event_definition (id, owner, name, hook, validator, reactor, group_field, template)
9781     VALUES (37, 1, 'Item Recall Email Notice', 'circ.recall.target', 'NOOP_True', 'SendEmail', 'usr', 
9782 $$
9783 [%- USE date -%]
9784 [%- user = target.0.usr -%]
9785 To: [%- params.recipient_email || user.email %]
9786 From: [%- params.sender_email || default_sender %]
9787 Subject: Item Recall Notification 
9788
9789 Dear [% user.family_name %], [% user.first_given_name %]
9790
9791 The following item which you have checked out has been recalled so that
9792 another patron can have access to the item:
9793
9794 [% FOR circ IN target %]
9795     Title: [% circ.target_copy.call_number.record.simple_record.title %] 
9796     Barcode: [% circ.target_copy.barcode %] 
9797     Now Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
9798     Library: [% circ.circ_lib.name %]
9799
9800     If this item is not returned by the new due date, fines will be assessed at
9801     the rate of [% circ.recurring_fine %] every [% circ.fine_interval %].
9802 [% END %]
9803 $$
9804 );
9805
9806 INSERT INTO action_trigger.environment (event_def, path) VALUES
9807     (37, 'target_copy.call_number.record.simple_record'),
9808     (37, 'usr'),
9809     (37, 'circ_lib.billing_address')
9810 ;
9811
9812 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'general.unknown', oils_i18n_gettext('general.unknown', 'Import or Overlay failed', 'vie', 'description') );
9813 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') );
9814 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') );
9815 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') );
9816 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') );
9817 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') );
9818 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') );
9819 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') );
9820 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'import.xml.malformed', oils_i18n_gettext('import.xml.malformed', 'Malformed record cause Import failure', 'vie', 'description') );
9821 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'overlay.xml.malformed', oils_i18n_gettext('overlay.xml.malformed', 'Malformed record cause Overlay failure', 'vie', 'description') );
9822 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 'overlay.record.quality', oils_i18n_gettext('overlay.record.quality', 'New record had insufficient quality', 'vie', 'description') );
9823
9824 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9825     'import.item.invalid.status', oils_i18n_gettext('import.item.invalid.status', 'Invalid value for "status"', 'vie', 'description') );
9826 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9827     'import.item.invalid.price', oils_i18n_gettext('import.item.invalid.price', 'Invalid value for "price"', 'vie', 'description') );
9828 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9829     'import.item.invalid.deposit_amount', oils_i18n_gettext('import.item.invalid.deposit_amount', 'Invalid value for "deposit_amount"', 'vie', 'description') );
9830 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9831     'import.item.invalid.owning_lib', oils_i18n_gettext('import.item.invalid.owning_lib', 'Invalid value for "owning_lib"', 'vie', 'description') );
9832 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9833     'import.item.invalid.circ_lib', oils_i18n_gettext('import.item.invalid.circ_lib', 'Invalid value for "circ_lib"', 'vie', 'description') );
9834 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9835     'import.item.invalid.copy_number', oils_i18n_gettext('import.item.invalid.copy_number', 'Invalid value for "copy_number"', 'vie', 'description') );
9836 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9837     'import.item.invalid.circ_as_type', oils_i18n_gettext('import.item.invalid.circ_as_type', 'Invalid value for "circ_as_type"', 'vie', 'description') );
9838 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
9839     'import.record.perm_failure', oils_i18n_gettext('import.record.perm_failure', 'Perm failure creating a record', 'vie', 'description') );
9840
9841 -- Event def for email notice for hold cancelled due to lack of target -----
9842
9843 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, template)
9844     VALUES (38, FALSE, 1, 
9845         'Hold Cancelled (No Target) Email Notification', 
9846         'hold_request.cancel.expire_no_target', 
9847         'HoldIsCancelled', 'SendEmail', '30 minutes', 'cancel_time', 'usr',
9848 $$
9849 [%- USE date -%]
9850 [%- user = target.0.usr -%]
9851 To: [%- params.recipient_email || user.email %]
9852 From: [%- params.sender_email || default_sender %]
9853 Subject: Hold Request Cancelled
9854
9855 Dear [% user.family_name %], [% user.first_given_name %]
9856 The following holds were cancelled because no items were found to fullfil the hold.
9857
9858 [% FOR hold IN target %]
9859     Title: [% hold.bib_rec.bib_record.simple_record.title %]
9860     Author: [% hold.bib_rec.bib_record.simple_record.author %]
9861     Library: [% hold.pickup_lib.name %]
9862     Request Date: [% date.format(helpers.format_date(hold.rrequest_time), '%Y-%m-%d') %]
9863 [% END %]
9864
9865 $$);
9866
9867 INSERT INTO action_trigger.environment (event_def, path) VALUES
9868     (38, 'usr'),
9869     (38, 'pickup_lib'),
9870     (38, 'bib_rec.bib_record.simple_record');
9871
9872 INSERT INTO action_trigger.event_params (event_def, param, value)
9873     VALUES (38, 'check_email_notify', 1);
9874
9875 ----------------------------------------------------------------
9876 -- Seed data for queued record/item exports
9877 ----------------------------------------------------------------
9878
9879 INSERT INTO action_trigger.hook (key,core_type,description,passive) VALUES (
9880         'vandelay.queued_bib_record.print',
9881         'vqbr', 
9882         oils_i18n_gettext(
9883             'vandelay.queued_bib_record.print',
9884             'Print output has been requested for records in an Importer Bib Queue.',
9885             'ath',
9886             'description'
9887         ), 
9888         FALSE
9889     )
9890     ,(
9891         'vandelay.queued_bib_record.csv',
9892         'vqbr', 
9893         oils_i18n_gettext(
9894             'vandelay.queued_bib_record.csv',
9895             'CSV output has been requested for records in an Importer Bib Queue.',
9896             'ath',
9897             'description'
9898         ), 
9899         FALSE
9900     )
9901     ,(
9902         'vandelay.queued_bib_record.email',
9903         'vqbr', 
9904         oils_i18n_gettext(
9905             'vandelay.queued_bib_record.email',
9906             'An email has been requested for records in an Importer Bib Queue.',
9907             'ath',
9908             'description'
9909         ), 
9910         FALSE
9911     )
9912     ,(
9913         'vandelay.queued_auth_record.print',
9914         'vqar', 
9915         oils_i18n_gettext(
9916             'vandelay.queued_auth_record.print',
9917             'Print output has been requested for records in an Importer Authority Queue.',
9918             'ath',
9919             'description'
9920         ), 
9921         FALSE
9922     )
9923     ,(
9924         'vandelay.queued_auth_record.csv',
9925         'vqar', 
9926         oils_i18n_gettext(
9927             'vandelay.queued_auth_record.csv',
9928             'CSV output has been requested for records in an Importer Authority Queue.',
9929             'ath',
9930             'description'
9931         ), 
9932         FALSE
9933     )
9934     ,(
9935         'vandelay.queued_auth_record.email',
9936         'vqar', 
9937         oils_i18n_gettext(
9938             'vandelay.queued_auth_record.email',
9939             'An email has been requested for records in an Importer Authority Queue.',
9940             'ath',
9941             'description'
9942         ), 
9943         FALSE
9944     )
9945     ,(
9946         'vandelay.import_items.print',
9947         'vii', 
9948         oils_i18n_gettext(
9949             'vandelay.import_items.print',
9950             'Print output has been requested for Import Items from records in an Importer Bib Queue.',
9951             'ath',
9952             'description'
9953         ), 
9954         FALSE
9955     )
9956     ,(
9957         'vandelay.import_items.csv',
9958         'vii', 
9959         oils_i18n_gettext(
9960             'vandelay.import_items.csv',
9961             'CSV output has been requested for Import Items from records in an Importer Bib Queue.',
9962             'ath',
9963             'description'
9964         ), 
9965         FALSE
9966     )
9967     ,(
9968         'vandelay.import_items.email',
9969         'vii', 
9970         oils_i18n_gettext(
9971             'vandelay.import_items.email',
9972             'An email has been requested for Import Items from records in an Importer Bib Queue.',
9973             'ath',
9974             'description'
9975         ), 
9976         FALSE
9977     )
9978 ;
9979
9980 INSERT INTO action_trigger.event_definition (
9981         id,
9982         active,
9983         owner,
9984         name,
9985         hook,
9986         validator,
9987         reactor,
9988         group_field,
9989         granularity,
9990         template
9991     ) VALUES (
9992         39,
9993         TRUE,
9994         1,
9995         'Print Output for Queued Bib Records',
9996         'vandelay.queued_bib_record.print',
9997         'NOOP_True',
9998         'ProcessTemplate',
9999         'queue.owner',
10000         'print-on-demand',
10001 $$
10002 [%- USE date -%]
10003 <pre>
10004 Queue ID: [% target.0.queue.id %]
10005 Queue Name: [% target.0.queue.name %]
10006 Queue Type: [% target.0.queue.queue_type %]
10007 Complete? [% target.0.queue.complete %]
10008
10009     [% FOR vqbr IN target %]
10010 =-=-=
10011  Title of work    | [% helpers.get_queued_bib_attr('title',vqbr.attributes) %]
10012  Author of work   | [% helpers.get_queued_bib_attr('author',vqbr.attributes) %]
10013  Language of work | [% helpers.get_queued_bib_attr('language',vqbr.attributes) %]
10014  Pagination       | [% helpers.get_queued_bib_attr('pagination',vqbr.attributes) %]
10015  ISBN             | [% helpers.get_queued_bib_attr('isbn',vqbr.attributes) %]
10016  ISSN             | [% helpers.get_queued_bib_attr('issn',vqbr.attributes) %]
10017  Price            | [% helpers.get_queued_bib_attr('price',vqbr.attributes) %]
10018  Accession Number | [% helpers.get_queued_bib_attr('rec_identifier',vqbr.attributes) %]
10019  TCN Value        | [% helpers.get_queued_bib_attr('eg_tcn',vqbr.attributes) %]
10020  TCN Source       | [% helpers.get_queued_bib_attr('eg_tcn_source',vqbr.attributes) %]
10021  Internal ID      | [% helpers.get_queued_bib_attr('eg_identifier',vqbr.attributes) %]
10022  Publisher        | [% helpers.get_queued_bib_attr('publisher',vqbr.attributes) %]
10023  Publication Date | [% helpers.get_queued_bib_attr('pubdate',vqbr.attributes) %]
10024  Edition          | [% helpers.get_queued_bib_attr('edition',vqbr.attributes) %]
10025  Item Barcode     | [% helpers.get_queued_bib_attr('item_barcode',vqbr.attributes) %]
10026  Import Error     | [% vqbr.import_error %]
10027  Error Detail     | [% vqbr.error_detail %]
10028  Match Count      | [% vqbr.matches.size %]
10029
10030     [% END %]
10031 </pre>
10032 $$
10033     )
10034 ;
10035
10036 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10037     39, 'attributes')
10038     ,( 39, 'queue')
10039     ,( 39, 'matches')
10040 ;
10041
10042 INSERT INTO action_trigger.event_definition (
10043         id,
10044         active,
10045         owner,
10046         name,
10047         hook,
10048         validator,
10049         reactor,
10050         group_field,
10051         granularity,
10052         template
10053     ) VALUES (
10054         40,
10055         TRUE,
10056         1,
10057         'CSV Output for Queued Bib Records',
10058         'vandelay.queued_bib_record.csv',
10059         'NOOP_True',
10060         'ProcessTemplate',
10061         'queue.owner',
10062         'print-on-demand',
10063 $$
10064 [%- USE date -%]
10065 "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"
10066 [% 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 %]"
10067 [% END %]
10068 $$
10069     )
10070 ;
10071
10072 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10073     40, 'attributes')
10074     ,( 40, 'queue')
10075     ,( 40, 'matches')
10076 ;
10077
10078 INSERT INTO action_trigger.event_definition (
10079         id,
10080         active,
10081         owner,
10082         name,
10083         hook,
10084         validator,
10085         reactor,
10086         group_field,
10087         granularity,
10088         template
10089     ) VALUES (
10090         41,
10091         TRUE,
10092         1,
10093         'Email Output for Queued Bib Records',
10094         'vandelay.queued_bib_record.email',
10095         'NOOP_True',
10096         'SendEmail',
10097         'queue.owner',
10098         NULL,
10099 $$
10100 [%- USE date -%]
10101 [%- SET user = target.0.queue.owner -%]
10102 To: [%- params.recipient_email || user.email || 'root@localhost' %]
10103 From: [%- params.sender_email || default_sender %]
10104 Subject: Bibs from Import Queue
10105
10106 Queue ID: [% target.0.queue.id %]
10107 Queue Name: [% target.0.queue.name %]
10108 Queue Type: [% target.0.queue.queue_type %]
10109 Complete? [% target.0.queue.complete %]
10110
10111     [% FOR vqbr IN target %]
10112 =-=-=
10113  Title of work    | [% helpers.get_queued_bib_attr('title',vqbr.attributes) %]
10114  Author of work   | [% helpers.get_queued_bib_attr('author',vqbr.attributes) %]
10115  Language of work | [% helpers.get_queued_bib_attr('language',vqbr.attributes) %]
10116  Pagination       | [% helpers.get_queued_bib_attr('pagination',vqbr.attributes) %]
10117  ISBN             | [% helpers.get_queued_bib_attr('isbn',vqbr.attributes) %]
10118  ISSN             | [% helpers.get_queued_bib_attr('issn',vqbr.attributes) %]
10119  Price            | [% helpers.get_queued_bib_attr('price',vqbr.attributes) %]
10120  Accession Number | [% helpers.get_queued_bib_attr('rec_identifier',vqbr.attributes) %]
10121  TCN Value        | [% helpers.get_queued_bib_attr('eg_tcn',vqbr.attributes) %]
10122  TCN Source       | [% helpers.get_queued_bib_attr('eg_tcn_source',vqbr.attributes) %]
10123  Internal ID      | [% helpers.get_queued_bib_attr('eg_identifier',vqbr.attributes) %]
10124  Publisher        | [% helpers.get_queued_bib_attr('publisher',vqbr.attributes) %]
10125  Publication Date | [% helpers.get_queued_bib_attr('pubdate',vqbr.attributes) %]
10126  Edition          | [% helpers.get_queued_bib_attr('edition',vqbr.attributes) %]
10127  Item Barcode     | [% helpers.get_queued_bib_attr('item_barcode',vqbr.attributes) %]
10128
10129     [% END %]
10130
10131 $$
10132     )
10133 ;
10134
10135 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10136     41, 'attributes')
10137     ,( 41, 'queue')
10138     ,( 41, 'queue.owner')
10139 ;
10140
10141 INSERT INTO action_trigger.event_definition (
10142         id,
10143         active,
10144         owner,
10145         name,
10146         hook,
10147         validator,
10148         reactor,
10149         group_field,
10150         granularity,
10151         template
10152     ) VALUES (
10153         42,
10154         TRUE,
10155         1,
10156         'Print Output for Queued Authority Records',
10157         'vandelay.queued_auth_record.print',
10158         'NOOP_True',
10159         'ProcessTemplate',
10160         'queue.owner',
10161         'print-on-demand',
10162 $$
10163 [%- USE date -%]
10164 <pre>
10165 Queue ID: [% target.0.queue.id %]
10166 Queue Name: [% target.0.queue.name %]
10167 Queue Type: [% target.0.queue.queue_type %]
10168 Complete? [% target.0.queue.complete %]
10169
10170     [% FOR vqar IN target %]
10171 =-=-=
10172  Record Identifier | [% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) %]
10173
10174     [% END %]
10175 </pre>
10176 $$
10177     )
10178 ;
10179
10180 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10181     42, 'attributes')
10182     ,( 42, 'queue')
10183 ;
10184
10185 INSERT INTO action_trigger.event_definition (
10186         id,
10187         active,
10188         owner,
10189         name,
10190         hook,
10191         validator,
10192         reactor,
10193         group_field,
10194         granularity,
10195         template
10196     ) VALUES (
10197         43,
10198         TRUE,
10199         1,
10200         'CSV Output for Queued Authority Records',
10201         'vandelay.queued_auth_record.csv',
10202         'NOOP_True',
10203         'ProcessTemplate',
10204         'queue.owner',
10205         'print-on-demand',
10206 $$
10207 [%- USE date -%]
10208 "Record Identifier"
10209 [% FOR vqar IN target %]"[% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) | replace('"', '""') %]"
10210 [% END %]
10211 $$
10212     )
10213 ;
10214
10215 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10216     43, 'attributes')
10217     ,( 43, 'queue')
10218 ;
10219
10220 INSERT INTO action_trigger.event_definition (
10221         id,
10222         active,
10223         owner,
10224         name,
10225         hook,
10226         validator,
10227         reactor,
10228         group_field,
10229         granularity,
10230         template
10231     ) VALUES (
10232         44,
10233         TRUE,
10234         1,
10235         'Email Output for Queued Authority Records',
10236         'vandelay.queued_auth_record.email',
10237         'NOOP_True',
10238         'SendEmail',
10239         'queue.owner',
10240         NULL,
10241 $$
10242 [%- USE date -%]
10243 [%- SET user = target.0.queue.owner -%]
10244 To: [%- params.recipient_email || user.email || 'root@localhost' %]
10245 From: [%- params.sender_email || default_sender %]
10246 Subject: Authorities from Import Queue
10247
10248 Queue ID: [% target.0.queue.id %]
10249 Queue Name: [% target.0.queue.name %]
10250 Queue Type: [% target.0.queue.queue_type %]
10251 Complete? [% target.0.queue.complete %]
10252
10253     [% FOR vqar IN target %]
10254 =-=-=
10255  Record Identifier | [% helpers.get_queued_auth_attr('rec_identifier',vqar.attributes) %]
10256
10257     [% END %]
10258
10259 $$
10260     )
10261 ;
10262
10263 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10264     44, 'attributes')
10265     ,( 44, 'queue')
10266     ,( 44, 'queue.owner')
10267 ;
10268
10269 INSERT INTO action_trigger.event_definition (
10270         id,
10271         active,
10272         owner,
10273         name,
10274         hook,
10275         validator,
10276         reactor,
10277         group_field,
10278         granularity,
10279         template
10280     ) VALUES (
10281         45,
10282         TRUE,
10283         1,
10284         'Print Output for Import Items from Queued Bib Records',
10285         'vandelay.import_items.print',
10286         'NOOP_True',
10287         'ProcessTemplate',
10288         'record.queue.owner',
10289         'print-on-demand',
10290 $$
10291 [%- USE date -%]
10292 <pre>
10293 Queue ID: [% target.0.record.queue.id %]
10294 Queue Name: [% target.0.record.queue.name %]
10295 Queue Type: [% target.0.record.queue.queue_type %]
10296 Complete? [% target.0.record.queue.complete %]
10297
10298     [% FOR vii IN target %]
10299 =-=-=
10300  Import Item ID         | [% vii.id %]
10301  Title of work          | [% helpers.get_queued_bib_attr('title',vii.record.attributes) %]
10302  ISBN                   | [% helpers.get_queued_bib_attr('isbn',vii.record.attributes) %]
10303  Attribute Definition   | [% vii.definition %]
10304  Import Error           | [% vii.import_error %]
10305  Import Error Detail    | [% vii.error_detail %]
10306  Owning Library         | [% vii.owning_lib %]
10307  Circulating Library    | [% vii.circ_lib %]
10308  Call Number            | [% vii.call_number %]
10309  Copy Number            | [% vii.copy_number %]
10310  Status                 | [% vii.status.name %]
10311  Shelving Location      | [% vii.location.name %]
10312  Circulate              | [% vii.circulate %]
10313  Deposit                | [% vii.deposit %]
10314  Deposit Amount         | [% vii.deposit_amount %]
10315  Reference              | [% vii.ref %]
10316  Holdable               | [% vii.holdable %]
10317  Price                  | [% vii.price %]
10318  Barcode                | [% vii.barcode %]
10319  Circulation Modifier   | [% vii.circ_modifier %]
10320  Circulate As MARC Type | [% vii.circ_as_type %]
10321  Alert Message          | [% vii.alert_message %]
10322  Public Note            | [% vii.pub_note %]
10323  Private Note           | [% vii.priv_note %]
10324  OPAC Visible           | [% vii.opac_visible %]
10325
10326     [% END %]
10327 </pre>
10328 $$
10329     )
10330 ;
10331
10332 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10333     45, 'record')
10334     ,( 45, 'record.attributes')
10335     ,( 45, 'record.queue')
10336     ,( 45, 'record.queue.owner')
10337 ;
10338
10339 INSERT INTO action_trigger.event_definition (
10340         id,
10341         active,
10342         owner,
10343         name,
10344         hook,
10345         validator,
10346         reactor,
10347         group_field,
10348         granularity,
10349         template
10350     ) VALUES (
10351         46,
10352         TRUE,
10353         1,
10354         'CSV Output for Import Items from Queued Bib Records',
10355         'vandelay.import_items.csv',
10356         'NOOP_True',
10357         'ProcessTemplate',
10358         'record.queue.owner',
10359         'print-on-demand',
10360 $$
10361 [%- USE date -%]
10362 "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"
10363 [% 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('"', '""') %]"
10364 [% END %]
10365 $$
10366     )
10367 ;
10368
10369 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10370     46, 'record')
10371     ,( 46, 'record.attributes')
10372     ,( 46, 'record.queue')
10373     ,( 46, 'record.queue.owner')
10374 ;
10375
10376 INSERT INTO action_trigger.event_definition (
10377         id,
10378         active,
10379         owner,
10380         name,
10381         hook,
10382         validator,
10383         reactor,
10384         group_field,
10385         granularity,
10386         template
10387     ) VALUES (
10388         47,
10389         TRUE,
10390         1,
10391         'Email Output for Import Items from Queued Bib Records',
10392         'vandelay.import_items.email',
10393         'NOOP_True',
10394         'SendEmail',
10395         'record.queue.owner',
10396         NULL,
10397 $$
10398 [%- USE date -%]
10399 [%- SET user = target.0.record.queue.owner -%]
10400 To: [%- params.recipient_email || user.email || 'root@localhost' %]
10401 From: [%- params.sender_email || default_sender %]
10402 Subject: Import Items from Import Queue
10403
10404 Queue ID: [% target.0.record.queue.id %]
10405 Queue Name: [% target.0.record.queue.name %]
10406 Queue Type: [% target.0.record.queue.queue_type %]
10407 Complete? [% target.0.record.queue.complete %]
10408
10409     [% FOR vii IN target %]
10410 =-=-=
10411  Import Item ID         | [% vii.id %]
10412  Title of work          | [% helpers.get_queued_bib_attr('title',vii.record.attributes) %]
10413  ISBN                   | [% helpers.get_queued_bib_attr('isbn',vii.record.attributes) %]
10414  Attribute Definition   | [% vii.definition %]
10415  Import Error           | [% vii.import_error %]
10416  Import Error Detail    | [% vii.error_detail %]
10417  Owning Library         | [% vii.owning_lib %]
10418  Circulating Library    | [% vii.circ_lib %]
10419  Call Number            | [% vii.call_number %]
10420  Copy Number            | [% vii.copy_number %]
10421  Status                 | [% vii.status.name %]
10422  Shelving Location      | [% vii.location.name %]
10423  Circulate              | [% vii.circulate %]
10424  Deposit                | [% vii.deposit %]
10425  Deposit Amount         | [% vii.deposit_amount %]
10426  Reference              | [% vii.ref %]
10427  Holdable               | [% vii.holdable %]
10428  Price                  | [% vii.price %]
10429  Barcode                | [% vii.barcode %]
10430  Circulation Modifier   | [% vii.circ_modifier %]
10431  Circulate As MARC Type | [% vii.circ_as_type %]
10432  Alert Message          | [% vii.alert_message %]
10433  Public Note            | [% vii.pub_note %]
10434  Private Note           | [% vii.priv_note %]
10435  OPAC Visible           | [% vii.opac_visible %]
10436
10437     [% END %]
10438 $$
10439     )
10440 ;
10441
10442 INSERT INTO action_trigger.environment ( event_def, path) VALUES (
10443     47, 'record')
10444     ,( 47, 'record.attributes')
10445     ,( 47, 'record.queue')
10446     ,( 47, 'record.queue.owner')
10447 ;
10448
10449 INSERT INTO action_trigger.hook (key, core_type, description, passive)
10450 VALUES (
10451     'container.biblio_record_entry_bucket.csv',
10452     'cbreb',
10453     oils_i18n_gettext(
10454         'container.biblio_record_entry_bucket.csv',
10455         'Produce a CSV file representing a bookbag',
10456         'ath',
10457         'description'
10458     ),
10459     FALSE
10460 );
10461
10462 INSERT INTO action_trigger.reactor (module, description)
10463 VALUES (
10464     'ContainerCSV',
10465     oils_i18n_gettext(
10466         'ContainerCSV',
10467         'Facilitates produce a CSV file representing a bookbag by introducing an "items" variable into the TT environment, sorted as dictated according to user params',
10468         'atr',
10469         'description'
10470     )
10471 );
10472
10473 INSERT INTO action_trigger.event_definition (
10474     id, active, owner,
10475     name, hook, reactor,
10476     validator, template
10477 ) VALUES (
10478     48, TRUE, 1,
10479     'Bookbag CSV', 'container.biblio_record_entry_bucket.csv', 'ContainerCSV',
10480     'NOOP_True',
10481 $$
10482 [%-
10483 # target is the bookbag itself. The 'items' variable does not need to be in
10484 # the environment because a special reactor will take care of filling it in.
10485
10486 FOR item IN items;
10487     bibxml = helpers.unapi_bre(item.target_biblio_record_entry, {flesh => '{mra}'});
10488     title = "";
10489     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
10490         title = title _ part.textContent;
10491     END;
10492     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
10493     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
10494     pub_date = "";
10495     FOR pdatum IN bibxml.findnodes('//*[@tag="260"]/*[@code="c"]');
10496         IF pub_date ;
10497             pub_date = pub_date _ ", " _ pdatum.textContent;
10498         ELSE ;
10499             pub_date = pdatum.textContent;
10500         END;
10501     END;
10502     helpers.csv_datum(title) %],[% helpers.csv_datum(author) %],[% helpers.csv_datum(pub_date) %],[% helpers.csv_datum(item_type) %],[% FOR note IN item.notes; helpers.csv_datum(note.note); ","; END; "\n";
10503 END -%]
10504 $$
10505 );
10506
10507 SELECT SETVAL('authority.control_set_id_seq'::TEXT, 100);
10508 SELECT SETVAL('authority.control_set_authority_field_id_seq'::TEXT, 1000);
10509 SELECT SETVAL('authority.control_set_bib_field_id_seq'::TEXT, 1000);
10510
10511 INSERT INTO authority.control_set (id, name, description) VALUES (
10512     1,
10513     oils_i18n_gettext('1','LoC','acs','name'),
10514     oils_i18n_gettext('1','Library of Congress standard authority record control semantics','acs','description')
10515 );
10516
10517 -- Entries that need to respect an NFI
10518 INSERT INTO authority.control_set_authority_field (id, control_set, main_entry, tag, sf_list, display_sf_list, name, nfi) VALUES
10519     (4, 1, NULL, '130', 'adfgklmnoprstvxyz', 'adfgklmnoprstvxyz', oils_i18n_gettext('4','Heading -- Uniform Title','acsaf','name'), '2'),
10520     (24, 1, 4, '530', 'adfgiklmnoprstvwxyz4', 'adfgiklmnoprstvxyz', oils_i18n_gettext('24','See Also From Tracing -- Uniform Title','acsaf','name'), '2'),
10521     (44, 1, 4, '730', 'adfghklmnoprstvwxyz25', 'adfghklmnoprstvxyz', oils_i18n_gettext('44','Established Heading Linking Entry -- Uniform Title','acsaf','name'), '2'),
10522     (64, 1, 4, '430', 'adfgiklmnoprstvwxyz4', 'adfgiklmnoprstvxyz', oils_i18n_gettext('64','See From Tracing -- Uniform Title','acsaf','name'), '2');
10523
10524 INSERT INTO authority.control_set_authority_field (id, control_set, main_entry, tag, sf_list, display_sf_list, name) VALUES
10525
10526 -- Main entries
10527     (1, 1, NULL, '100', 'abcdefklmnopqrstvxyz', 'abcdefklmnopqrstvxyz',
10528         oils_i18n_gettext('1','Heading -- Personal Name','acsaf','name')),
10529     (2, 1, NULL, '110', 'abcdefgklmnoprstvxyz', 'abcdefgklmnoprstvxyz',
10530         oils_i18n_gettext('2','Heading -- Corporate Name','acsaf','name')),
10531     (3, 1, NULL, '111', 'acdefgklnpqstvxyz', 'acdefgklnpqstvxyz',
10532         oils_i18n_gettext('3','Heading -- Meeting Name','acsaf','name')),
10533     (5, 1, NULL, '150', 'abvxyz', 'abvxyz',
10534         oils_i18n_gettext('5','Heading -- Topical Term','acsaf','name')),
10535     (6, 1, NULL, '151', 'avxyz', 'avxyz',
10536         oils_i18n_gettext('6','Heading -- Geographic Name','acsaf','name')),
10537     (7, 1, NULL, '155', 'avxyz', 'avxyz',
10538         oils_i18n_gettext('7','Heading -- Genre/Form Term','acsaf','name')),
10539     (8, 1, NULL, '180', 'vxyz', 'vxyz',
10540         oils_i18n_gettext('8','Heading -- General Subdivision','acsaf','name')),
10541     (9, 1, NULL, '181', 'vxyz', 'vxyz',
10542         oils_i18n_gettext('9','Heading -- Geographic Subdivision','acsaf','name')),
10543     (10, 1, NULL, '182', 'vxyz', 'vxyz',
10544         oils_i18n_gettext('10','Heading -- Chronological Subdivision','acsaf','name')),
10545     (11, 1, NULL, '185', 'vxyz', 'vxyz',
10546         oils_i18n_gettext('11','Heading -- Form Subdivision','acsaf','name')),
10547     (12, 1, NULL, '148', 'avxyz', 'avxyz',
10548         oils_i18n_gettext('12','Heading -- Chronological Term','acsaf','name')),
10549
10550 -- See Also From tracings
10551     (21, 1, 1, '500', 'abcdefiklmnopqrstvwxyz4', 'abcdefiklmnopqrstvxyz', oils_i18n_gettext('21','See Also From Tracing -- Personal Name','acsaf','name')),
10552     (22, 1, 2, '510', 'abcdefgiklmnoprstvwxyz4', 'abcdefgiklmnoprstvxyz', oils_i18n_gettext('22','See Also From Tracing -- Corporate Name','acsaf','name')),
10553     (23, 1, 3, '511', 'acdefgiklnpqstvwxyz4', 'acdefgiklnpqstvxyz', oils_i18n_gettext('23','See Also From Tracing -- Meeting Name','acsaf','name')),
10554     (25, 1, 5, '550', 'abivwxyz4', 'abivxyz', oils_i18n_gettext('25','See Also From Tracing -- Topical Term','acsaf','name')),
10555     (26, 1, 6, '551', 'aivwxyz4', 'aivxyz', oils_i18n_gettext('26','See Also From Tracing -- Geographic Name','acsaf','name')),
10556     (27, 1, 7, '555', 'aivwxyz4', 'aivxyz', oils_i18n_gettext('27','See Also From Tracing -- Genre/Form Term','acsaf','name')),
10557     (28, 1, 8, '580', 'ivwxyz4', 'ivxyz', oils_i18n_gettext('28','See Also From Tracing -- General Subdivision','acsaf','name')),
10558     (29, 1, 9, '581', 'ivwxyz4', 'ivxyz', oils_i18n_gettext('29','See Also From Tracing -- Geographic Subdivision','acsaf','name')),
10559     (30, 1, 10, '582', 'ivwxyz4', 'ivxyz', oils_i18n_gettext('30','See Also From Tracing -- Chronological Subdivision','acsaf','name')),
10560     (31, 1, 11, '585', 'ivwxyz4', 'ivxyz', oils_i18n_gettext('31','See Also From Tracing -- Form Subdivision','acsaf','name')),
10561     (32, 1, 12, '548', 'aivwxyz4', 'aivxyz', oils_i18n_gettext('32','See Also From Tracing -- Chronological Term','acsaf','name')),
10562
10563 -- Linking entries
10564     (41, 1, 1, '700', 'abcdefghjklmnopqrstvwxyz25', 'abcdefghjklmnopqrstvxyz', oils_i18n_gettext('41','Established Heading Linking Entry -- Personal Name','acsaf','name')),
10565     (42, 1, 2, '710', 'abcdefghklmnoprstvwxyz25', 'abcdefghklmnoprstvxyz', oils_i18n_gettext('42','Established Heading Linking Entry -- Corporate Name','acsaf','name')),
10566     (43, 1, 3, '711', 'acdefghklnpqstvwxyz25', 'acdefghklnpqstvxyz', oils_i18n_gettext('43','Established Heading Linking Entry -- Meeting Name','acsaf','name')),
10567     (45, 1, 5, '750', 'abvwxyz25', 'abvxyz', oils_i18n_gettext('45','Established Heading Linking Entry -- Topical Term','acsaf','name')),
10568     (46, 1, 6, '751', 'avwxyz25', 'avxyz', oils_i18n_gettext('46','Established Heading Linking Entry -- Geographic Name','acsaf','name')),
10569     (47, 1, 7, '755', 'avwxyz25', 'avxyz', oils_i18n_gettext('47','Established Heading Linking Entry -- Genre/Form Term','acsaf','name')),
10570     (48, 1, 8, '780', 'vwxyz25', 'vxyz', oils_i18n_gettext('48','Subdivision Linking Entry -- General Subdivision','acsaf','name')),
10571     (49, 1, 9, '781', 'vwxyz25', 'vxyz', oils_i18n_gettext('49','Subdivision Linking Entry -- Geographic Subdivision','acsaf','name')),
10572     (50, 1, 10, '782', 'vwxyz25', 'vxyz', oils_i18n_gettext('50','Subdivision Linking Entry -- Chronological Subdivision','acsaf','name')),
10573     (51, 1, 11, '785', 'vwxyz25', 'vxyz', oils_i18n_gettext('51','Subdivision Linking Entry -- Form Subdivision','acsaf','name')),
10574     (52, 1, 12, '748', 'avwxyz25', 'avxyz', oils_i18n_gettext('52','Established Heading Linking Entry -- Chronological Term','acsaf','name')),
10575
10576 -- See From tracings
10577     (61, 1, 1, '400', 'abcdefiklmnopqrstvwxyz4', 'abcdefiklmnopqrstvxyz', oils_i18n_gettext('61','See From Tracing -- Personal Name','acsaf','name')),
10578     (62, 1, 2, '410', 'abcdefgiklmnoprstvwxyz4', 'abcdefgiklmnoprstvxyz', oils_i18n_gettext('62','See From Tracing -- Corporate Name','acsaf','name')),
10579     (63, 1, 3, '411', 'acdefgiklnpqstvwxyz4', 'acdefgiklnpqstvxyz', oils_i18n_gettext('63','See From Tracing -- Meeting Name','acsaf','name')),
10580     (65, 1, 5, '450', 'abivwxyz4', 'abivxyz', oils_i18n_gettext('65','See From Tracing -- Topical Term','acsaf','name')),
10581     (66, 1, 6, '451', 'aivwxyz4', 'aivxyz', oils_i18n_gettext('66','See From Tracing -- Geographic Name','acsaf','name')),
10582     (67, 1, 7, '455', 'aivwxyz4', 'aivxyz', oils_i18n_gettext('67','See From Tracing -- Genre/Form Term','acsaf','name')),
10583     (68, 1, 8, '480', 'ivwxyz4', 'ivxyz', oils_i18n_gettext('68','See From Tracing -- General Subdivision','acsaf','name')),
10584     (69, 1, 9, '481', 'ivwxyz4', 'ivxyz', oils_i18n_gettext('69','See From Tracing -- Geographic Subdivision','acsaf','name')),
10585     (70, 1, 10, '482', 'ivwxyz4', 'ivxyz', oils_i18n_gettext('70','See From Tracing -- Chronological Subdivision','acsaf','name')),
10586     (71, 1, 11, '485', 'ivwxyz4', 'ivxyz', oils_i18n_gettext('71','See From Tracing -- Form Subdivision','acsaf','name')),
10587     (72, 1, 12, '448', 'aivwxyz4', 'aivxyz', oils_i18n_gettext('72','See From Tracing -- Chronological Term','acsaf','name'));
10588
10589 UPDATE authority.control_set_authority_field
10590     SET linking_subfield = '0' WHERE main_entry IS NOT NULL;
10591
10592
10593 INSERT INTO authority.browse_axis (code,name,description,sorter) VALUES
10594     ('title','Title','Title axis','titlesort'),
10595     ('author','Author','Author axis','titlesort'),
10596     ('subject','Subject','Subject axis','titlesort'),
10597     ('topic','Topic','Topic Subject axis','titlesort');
10598
10599 INSERT INTO authority.browse_axis_authority_field_map (axis,field) VALUES
10600     ('author',  1 ),
10601     ('author',  2 ),
10602     ('author',  3 ),
10603     ('title',   4 ),
10604     ('topic',   5 ),
10605     ('subject', 5 ),
10606     ('subject', 6 ),
10607     ('subject', 7 ),
10608     ('subject', 12);
10609
10610 INSERT INTO authority.control_set_bib_field (tag, authority_field) 
10611     SELECT '100', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10612         UNION
10613     SELECT '600', id FROM authority.control_set_authority_field WHERE tag IN ('100','180','181','182','185')
10614         UNION
10615     SELECT '700', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10616         UNION
10617     SELECT '800', id FROM authority.control_set_authority_field WHERE tag IN ('100')
10618         UNION
10619
10620     SELECT '110', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10621         UNION
10622     SELECT '610', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10623         UNION
10624     SELECT '710', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10625         UNION
10626     SELECT '810', id FROM authority.control_set_authority_field WHERE tag IN ('110')
10627         UNION
10628
10629     SELECT '111', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10630         UNION
10631     SELECT '611', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10632         UNION
10633     SELECT '711', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10634         UNION
10635     SELECT '811', id FROM authority.control_set_authority_field WHERE tag IN ('111')
10636         UNION
10637
10638     SELECT '130', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10639         UNION
10640     SELECT '240', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10641         UNION
10642     SELECT '630', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10643         UNION
10644     SELECT '730', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10645         UNION
10646     SELECT '830', id FROM authority.control_set_authority_field WHERE tag IN ('130')
10647         UNION
10648
10649     SELECT '648', id FROM authority.control_set_authority_field WHERE tag IN ('148')
10650         UNION
10651
10652     SELECT '650', id FROM authority.control_set_authority_field WHERE tag IN ('150','180','181','182','185')
10653         UNION
10654     SELECT '651', id FROM authority.control_set_authority_field WHERE tag IN ('151','180','181','182','185')
10655         UNION
10656     SELECT '655', id FROM authority.control_set_authority_field WHERE tag IN ('155','180','181','182','185')
10657 ;
10658
10659 INSERT INTO authority.thesaurus (code, name, control_set) VALUES
10660     ('a', oils_i18n_gettext('a','Library of Congress Subject Headings','at','name'), 1),
10661     ('b', oils_i18n_gettext('b','LC subject headings for children''s literature','at','name'), 1), 
10662     ('c', oils_i18n_gettext('c','Medical Subject Headings','at','name'), 1),
10663     ('d', oils_i18n_gettext('d','National Agricultural Library subject authority file','at','name'), 1),
10664     ('k', oils_i18n_gettext('k','Canadian Subject Headings','at','name'), 1),
10665     ('n', oils_i18n_gettext('n','Not applicable','at','name'), 1),
10666     ('r', oils_i18n_gettext('r','Art and Architecture Thesaurus','at','name'), 1),
10667     ('s', oils_i18n_gettext('s','Sears List of Subject Headings','at','name'), 1),
10668     ('v', oils_i18n_gettext('v','Repertoire de vedettes-matiere','at','name'), 1),
10669     ('z', oils_i18n_gettext('z','Other','at','name'), 1),
10670     ('|', oils_i18n_gettext('|','No attempt to code','at','name'), NULL),
10671     (' ', oils_i18n_gettext(' ','Alternate no attempt to code','at','name'), NULL);
10672
10673 INSERT INTO action_trigger.hook ( key, core_type, description, passive ) VALUES (
10674     'reservation.available',
10675     'bresv',
10676     'A reservation is available for pickup',
10677     false
10678 );
10679
10680 INSERT INTO action_trigger.validator ( module, description ) VALUES (
10681     'ReservationIsAvailable',
10682     'Checked that a reserved resource is available for checkout'
10683 );
10684
10685 INSERT INTO container.biblio_record_entry_bucket_type (code, label) VALUES (
10686     'vandelay_queue',
10687     oils_i18n_gettext('vandelay_queue', 'Vandelay Queue', 'cbrebt', 'label')
10688 );
10689
10690 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype,fm_class) VALUES (
10691     'opac.default_sms_carrier',
10692     'sms',
10693     TRUE,
10694     oils_i18n_gettext(
10695         'opac.default_sms_carrier',
10696         'Default SMS/Text Carrier',
10697         'cust',
10698         'label'
10699     ),
10700     oils_i18n_gettext(
10701         'opac.default_sms_carrier',
10702         'Default SMS/Text Carrier',
10703         'cust',
10704         'description'
10705     ),
10706     'link',
10707     'csc'
10708 );
10709
10710 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10711     'opac.default_sms_notify',
10712     'sms',
10713     TRUE,
10714     oils_i18n_gettext(
10715         'opac.default_sms_notify',
10716         'Default SMS/Text Number',
10717         'cust',
10718         'label'
10719     ),
10720     oils_i18n_gettext(
10721         'opac.default_sms_notify',
10722         'Default SMS/Text Number',
10723         'cust',
10724         'description'
10725     ),
10726     'string'
10727 );
10728
10729 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10730     'opac.default_phone',
10731     'opac',
10732     TRUE,
10733     oils_i18n_gettext(
10734         'opac.default_phone',
10735         'Default Phone Number',
10736         'cust',
10737         'label'
10738     ),
10739     oils_i18n_gettext(
10740         'opac.default_phone',
10741         'Default Phone Number',
10742         'cust',
10743         'description'
10744     ),
10745     'string'
10746 );
10747
10748 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
10749     'ui.grid_columns.circ.hold_pull_list',
10750     'gui',
10751     FALSE,
10752     oils_i18n_gettext(
10753         'ui.grid_columns.circ.hold_pull_list',
10754         'Hold Pull List',
10755         'cust',
10756         'label'
10757     ),
10758     oils_i18n_gettext(
10759         'ui.grid_columns.circ.hold_pull_list',
10760         'Hold Pull List Saved Column Settings',
10761         'cust',
10762         'description'
10763     ),
10764     'string'
10765 ), (
10766     'ui.grid_columns.actor.user.event_log',
10767     'gui',
10768     FALSE,
10769     oils_i18n_gettext(
10770         'ui.grid_columns.actor.user.event_log',
10771         'User Event Log',
10772         'cust',
10773         'label'
10774     ),
10775     oils_i18n_gettext(
10776         'ui.grid_columns.actor.user.event_log',
10777         'User Event Log Saved Column Settings',
10778         'cust',
10779         'description'
10780     ),
10781     'string'
10782 ) ;
10783
10784 SELECT setval( 'config.sms_carrier_id_seq', 1000 );
10785 INSERT INTO config.sms_carrier VALUES
10786
10787     -- Testing
10788     (
10789         1,
10790         oils_i18n_gettext(
10791             1,
10792             'Local',
10793             'csc',
10794             'region'
10795         ),
10796         oils_i18n_gettext(
10797             1,
10798             'Test Carrier',
10799             'csc',
10800             'name'
10801         ),
10802         'opensrf+$number@localhost',
10803         FALSE
10804     ),
10805
10806     -- Canada & USA
10807     (
10808         2,
10809         oils_i18n_gettext(
10810             2,
10811             'Canada & USA',
10812             'csc',
10813             'region'
10814         ),
10815         oils_i18n_gettext(
10816             2,
10817             'Rogers Wireless',
10818             'csc',
10819             'name'
10820         ),
10821         '$number@pcs.rogers.com',
10822         TRUE
10823     ),
10824     (
10825         3,
10826         oils_i18n_gettext(
10827             3,
10828             'Canada & USA',
10829             'csc',
10830             'region'
10831         ),
10832         oils_i18n_gettext(
10833             3,
10834             'Rogers Wireless (Alternate)',
10835             'csc',
10836             'name'
10837         ),
10838         '1$number@mms.rogers.com',
10839         TRUE
10840     ),
10841     (
10842         4,
10843         oils_i18n_gettext(
10844             4,
10845             'Canada & USA',
10846             'csc',
10847             'region'
10848         ),
10849         oils_i18n_gettext(
10850             4,
10851             'Telus Mobility',
10852             'csc',
10853             'name'
10854         ),
10855         '$number@msg.telus.com',
10856         TRUE
10857     ),
10858
10859     -- Canada
10860     (
10861         5,
10862         oils_i18n_gettext(
10863             5,
10864             'Canada',
10865             'csc',
10866             'region'
10867         ),
10868         oils_i18n_gettext(
10869             5,
10870             'Koodo Mobile',
10871             'csc',
10872             'name'
10873         ),
10874         '$number@msg.telus.com',
10875         TRUE
10876     ),
10877     (
10878         6,
10879         oils_i18n_gettext(
10880             6,
10881             'Canada',
10882             'csc',
10883             'region'
10884         ),
10885         oils_i18n_gettext(
10886             6,
10887             'Fido',
10888             'csc',
10889             'name'
10890         ),
10891         '$number@fido.ca',
10892         TRUE
10893     ),
10894     (
10895         7,
10896         oils_i18n_gettext(
10897             7,
10898             'Canada',
10899             'csc',
10900             'region'
10901         ),
10902         oils_i18n_gettext(
10903             7,
10904             'Bell Mobility & Solo Mobile',
10905             'csc',
10906             'name'
10907         ),
10908         '$number@txt.bell.ca',
10909         TRUE
10910     ),
10911     (
10912         8,
10913         oils_i18n_gettext(
10914             8,
10915             'Canada',
10916             'csc',
10917             'region'
10918         ),
10919         oils_i18n_gettext(
10920             8,
10921             'Bell Mobility & Solo Mobile (Alternate)',
10922             'csc',
10923             'name'
10924         ),
10925         '$number@txt.bellmobility.ca',
10926         TRUE
10927     ),
10928     (
10929         9,
10930         oils_i18n_gettext(
10931             9,
10932             'Canada',
10933             'csc',
10934             'region'
10935         ),
10936         oils_i18n_gettext(
10937             9,
10938             'Aliant',
10939             'csc',
10940             'name'
10941         ),
10942         '$number@sms.wirefree.informe.ca',
10943         TRUE
10944     ),
10945     (
10946         10,
10947         oils_i18n_gettext(
10948             10,
10949             'Canada',
10950             'csc',
10951             'region'
10952         ),
10953         oils_i18n_gettext(
10954             10,
10955             'PC Telecom',
10956             'csc',
10957             'name'
10958         ),
10959         '$number@mobiletxt.ca',
10960         TRUE
10961     ),
10962     (
10963         11,
10964         oils_i18n_gettext(
10965             11,
10966             'Canada',
10967             'csc',
10968             'region'
10969         ),
10970         oils_i18n_gettext(
10971             11,
10972             'SaskTel',
10973             'csc',
10974             'name'
10975         ),
10976         '$number@sms.sasktel.com',
10977         TRUE
10978     ),
10979     (
10980         12,
10981         oils_i18n_gettext(
10982             12,
10983             'Canada',
10984             'csc',
10985             'region'
10986         ),
10987         oils_i18n_gettext(
10988             12,
10989             'MTS Mobility',
10990             'csc',
10991             'name'
10992         ),
10993         '$number@text.mtsmobility.com',
10994         TRUE
10995     ),
10996     (
10997         13,
10998         oils_i18n_gettext(
10999             13,
11000             'Canada',
11001             'csc',
11002             'region'
11003         ),
11004         oils_i18n_gettext(
11005             13,
11006             'Virgin Mobile',
11007             'csc',
11008             'name'
11009         ),
11010         '$number@vmobile.ca',
11011         TRUE
11012     ),
11013
11014     -- International
11015     (
11016         14,
11017         oils_i18n_gettext(
11018             14,
11019             'International',
11020             'csc',
11021             'region'
11022         ),
11023         oils_i18n_gettext(
11024             14,
11025             'Iridium',
11026             'csc',
11027             'name'
11028         ),
11029         '$number@msg.iridium.com',
11030         TRUE
11031     ),
11032     (
11033         15,
11034         oils_i18n_gettext(
11035             15,
11036             'International',
11037             'csc',
11038             'region'
11039         ),
11040         oils_i18n_gettext(
11041             15,
11042             'Globalstar',
11043             'csc',
11044             'name'
11045         ),
11046         '$number@msg.globalstarusa.com',
11047         TRUE
11048     ),
11049     (
11050         16,
11051         oils_i18n_gettext(
11052             16,
11053             'International',
11054             'csc',
11055             'region'
11056         ),
11057         oils_i18n_gettext(
11058             16,
11059             'Bulletin.net',
11060             'csc',
11061             'name'
11062         ),
11063         '$number@bulletinmessenger.net', -- International Formatted number
11064         TRUE
11065     ),
11066     (
11067         17,
11068         oils_i18n_gettext(
11069             17,
11070             'International',
11071             'csc',
11072             'region'
11073         ),
11074         oils_i18n_gettext(
11075             17,
11076             'Panacea Mobile',
11077             'csc',
11078             'name'
11079         ),
11080         '$number@api.panaceamobile.com',
11081         TRUE
11082     ),
11083
11084     -- USA
11085     (
11086         18,
11087         oils_i18n_gettext(
11088             18,
11089             'USA',
11090             'csc',
11091             'region'
11092         ),
11093         oils_i18n_gettext(
11094             18,
11095             'C Beyond',
11096             'csc',
11097             'name'
11098         ),
11099         '$number@cbeyond.sprintpcs.com',
11100         TRUE
11101     ),
11102     (
11103         19,
11104         oils_i18n_gettext(
11105             19,
11106             'Alaska, USA',
11107             'csc',
11108             'region'
11109         ),
11110         oils_i18n_gettext(
11111             19,
11112             'General Communications, Inc.',
11113             'csc',
11114             'name'
11115         ),
11116         '$number@mobile.gci.net',
11117         TRUE
11118     ),
11119     (
11120         20,
11121         oils_i18n_gettext(
11122             20,
11123             'California, USA',
11124             'csc',
11125             'region'
11126         ),
11127         oils_i18n_gettext(
11128             20,
11129             'Golden State Cellular',
11130             'csc',
11131             'name'
11132         ),
11133         '$number@gscsms.com',
11134         TRUE
11135     ),
11136     (
11137         21,
11138         oils_i18n_gettext(
11139             21,
11140             'Cincinnati, Ohio, USA',
11141             'csc',
11142             'region'
11143         ),
11144         oils_i18n_gettext(
11145             21,
11146             'Cincinnati Bell',
11147             'csc',
11148             'name'
11149         ),
11150         '$number@gocbw.com',
11151         TRUE
11152     ),
11153     (
11154         22,
11155         oils_i18n_gettext(
11156             22,
11157             'Hawaii, USA',
11158             'csc',
11159             'region'
11160         ),
11161         oils_i18n_gettext(
11162             22,
11163             'Hawaiian Telcom Wireless',
11164             'csc',
11165             'name'
11166         ),
11167         '$number@hawaii.sprintpcs.com',
11168         TRUE
11169     ),
11170     (
11171         23,
11172         oils_i18n_gettext(
11173             23,
11174             'Midwest, USA',
11175             'csc',
11176             'region'
11177         ),
11178         oils_i18n_gettext(
11179             23,
11180             'i wireless (T-Mobile)',
11181             'csc',
11182             'name'
11183         ),
11184         '$number.iws@iwspcs.net',
11185         TRUE
11186     ),
11187     (
11188         24,
11189         oils_i18n_gettext(
11190             24,
11191             'USA',
11192             'csc',
11193             'region'
11194         ),
11195         oils_i18n_gettext(
11196             24,
11197             'i-wireless (Sprint PCS)',
11198             'csc',
11199             'name'
11200         ),
11201         '$number@iwirelesshometext.com',
11202         TRUE
11203     ),
11204     (
11205         25,
11206         oils_i18n_gettext(
11207             25,
11208             'USA',
11209             'csc',
11210             'region'
11211         ),
11212         oils_i18n_gettext(
11213             25,
11214             'MetroPCS',
11215             'csc',
11216             'name'
11217         ),
11218         '$number@mymetropcs.com',
11219         TRUE
11220     ),
11221     (
11222         26,
11223         oils_i18n_gettext(
11224             26,
11225             'USA',
11226             'csc',
11227             'region'
11228         ),
11229         oils_i18n_gettext(
11230             26,
11231             'Kajeet',
11232             'csc',
11233             'name'
11234         ),
11235         '$number@mobile.kajeet.net',
11236         TRUE
11237     ),
11238     (
11239         27,
11240         oils_i18n_gettext(
11241             27,
11242             'USA',
11243             'csc',
11244             'region'
11245         ),
11246         oils_i18n_gettext(
11247             27,
11248             'Element Mobile',
11249             'csc',
11250             'name'
11251         ),
11252         '$number@SMS.elementmobile.net',
11253         TRUE
11254     ),
11255     (
11256         28,
11257         oils_i18n_gettext(
11258             28,
11259             'USA',
11260             'csc',
11261             'region'
11262         ),
11263         oils_i18n_gettext(
11264             28,
11265             'Esendex',
11266             'csc',
11267             'name'
11268         ),
11269         '$number@echoemail.net',
11270         TRUE
11271     ),
11272     (
11273         29,
11274         oils_i18n_gettext(
11275             29,
11276             'USA',
11277             'csc',
11278             'region'
11279         ),
11280         oils_i18n_gettext(
11281             29,
11282             'Boost Mobile',
11283             'csc',
11284             'name'
11285         ),
11286         '$number@myboostmobile.com',
11287         TRUE
11288     ),
11289     (
11290         30,
11291         oils_i18n_gettext(
11292             30,
11293             'USA',
11294             'csc',
11295             'region'
11296         ),
11297         oils_i18n_gettext(
11298             30,
11299             'BellSouth',
11300             'csc',
11301             'name'
11302         ),
11303         '$number@bellsouth.com',
11304         TRUE
11305     ),
11306     (
11307         31,
11308         oils_i18n_gettext(
11309             31,
11310             'USA',
11311             'csc',
11312             'region'
11313         ),
11314         oils_i18n_gettext(
11315             31,
11316             'Bluegrass Cellular',
11317             'csc',
11318             'name'
11319         ),
11320         '$number@sms.bluecell.com',
11321         TRUE
11322     ),
11323     (
11324         32,
11325         oils_i18n_gettext(
11326             32,
11327             'USA',
11328             'csc',
11329             'region'
11330         ),
11331         oils_i18n_gettext(
11332             32,
11333             'AT&T Enterprise Paging',
11334             'csc',
11335             'name'
11336         ),
11337         '$number@page.att.net',
11338         TRUE
11339     ),
11340     (
11341         33,
11342         oils_i18n_gettext(
11343             33,
11344             'USA',
11345             'csc',
11346             'region'
11347         ),
11348         oils_i18n_gettext(
11349             33,
11350             'AT&T Mobility/Wireless',
11351             'csc',
11352             'name'
11353         ),
11354         '$number@txt.att.net',
11355         TRUE
11356     ),
11357     (
11358         34,
11359         oils_i18n_gettext(
11360             34,
11361             'USA',
11362             'csc',
11363             'region'
11364         ),
11365         oils_i18n_gettext(
11366             34,
11367             'AT&T Global Smart Messaging Suite',
11368             'csc',
11369             'name'
11370         ),
11371         '$number@sms.smartmessagingsuite.com',
11372         TRUE
11373     ),
11374     (
11375         35,
11376         oils_i18n_gettext(
11377             35,
11378             'USA',
11379             'csc',
11380             'region'
11381         ),
11382         oils_i18n_gettext(
11383             35,
11384             'Alltel (Allied Wireless)',
11385             'csc',
11386             'name'
11387         ),
11388         '$number@sms.alltelwireless.com',
11389         TRUE
11390     ),
11391     (
11392         36,
11393         oils_i18n_gettext(
11394             36,
11395             'USA',
11396             'csc',
11397             'region'
11398         ),
11399         oils_i18n_gettext(
11400             36,
11401             'Alaska Communications',
11402             'csc',
11403             'name'
11404         ),
11405         '$number@msg.acsalaska.com',
11406         TRUE
11407     ),
11408     (
11409         37,
11410         oils_i18n_gettext(
11411             37,
11412             'USA',
11413             'csc',
11414             'region'
11415         ),
11416         oils_i18n_gettext(
11417             37,
11418             'Ameritech',
11419             'csc',
11420             'name'
11421         ),
11422         '$number@paging.acswireless.com',
11423         TRUE
11424     ),
11425     (
11426         38,
11427         oils_i18n_gettext(
11428             38,
11429             'USA',
11430             'csc',
11431             'region'
11432         ),
11433         oils_i18n_gettext(
11434             38,
11435             'Cingular (GoPhone prepaid)',
11436             'csc',
11437             'name'
11438         ),
11439         '$number@cingulartext.com',
11440         TRUE
11441     ),
11442     (
11443         39,
11444         oils_i18n_gettext(
11445             39,
11446             'USA',
11447             'csc',
11448             'region'
11449         ),
11450         oils_i18n_gettext(
11451             39,
11452             'Cingular (Postpaid)',
11453             'csc',
11454             'name'
11455         ),
11456         '$number@cingular.com',
11457         TRUE
11458     ),
11459     (
11460         40,
11461         oils_i18n_gettext(
11462             40,
11463             'USA',
11464             'csc',
11465             'region'
11466         ),
11467         oils_i18n_gettext(
11468             40,
11469             'Cellular One (Dobson) / O2 / Orange',
11470             'csc',
11471             'name'
11472         ),
11473         '$number@mobile.celloneusa.com',
11474         TRUE
11475     ),
11476     (
11477         41,
11478         oils_i18n_gettext(
11479             41,
11480             'USA',
11481             'csc',
11482             'region'
11483         ),
11484         oils_i18n_gettext(
11485             41,
11486             'Cellular South',
11487             'csc',
11488             'name'
11489         ),
11490         '$number@csouth1.com',
11491         TRUE
11492     ),
11493     (
11494         42,
11495         oils_i18n_gettext(
11496             42,
11497             'USA',
11498             'csc',
11499             'region'
11500         ),
11501         oils_i18n_gettext(
11502             42,
11503             'Cellcom',
11504             'csc',
11505             'name'
11506         ),
11507         '$number@cellcom.quiktxt.com',
11508         TRUE
11509     ),
11510     (
11511         43,
11512         oils_i18n_gettext(
11513             43,
11514             'USA',
11515             'csc',
11516             'region'
11517         ),
11518         oils_i18n_gettext(
11519             43,
11520             'Chariton Valley Wireless',
11521             'csc',
11522             'name'
11523         ),
11524         '$number@sms.cvalley.net',
11525         TRUE
11526     ),
11527     (
11528         44,
11529         oils_i18n_gettext(
11530             44,
11531             'USA',
11532             'csc',
11533             'region'
11534         ),
11535         oils_i18n_gettext(
11536             44,
11537             'Cricket',
11538             'csc',
11539             'name'
11540         ),
11541         '$number@sms.mycricket.com',
11542         TRUE
11543     ),
11544     (
11545         45,
11546         oils_i18n_gettext(
11547             45,
11548             'USA',
11549             'csc',
11550             'region'
11551         ),
11552         oils_i18n_gettext(
11553             45,
11554             'Cleartalk Wireless',
11555             'csc',
11556             'name'
11557         ),
11558         '$number@sms.cleartalk.us',
11559         TRUE
11560     ),
11561     (
11562         46,
11563         oils_i18n_gettext(
11564             46,
11565             'USA',
11566             'csc',
11567             'region'
11568         ),
11569         oils_i18n_gettext(
11570             46,
11571             'Edge Wireless',
11572             'csc',
11573             'name'
11574         ),
11575         '$number@sms.edgewireless.com',
11576         TRUE
11577     ),
11578     (
11579         47,
11580         oils_i18n_gettext(
11581             47,
11582             'USA',
11583             'csc',
11584             'region'
11585         ),
11586         oils_i18n_gettext(
11587             47,
11588             'Syringa Wireless',
11589             'csc',
11590             'name'
11591         ),
11592         '$number@rinasms.com',
11593         TRUE
11594     ),
11595     (
11596         48,
11597         oils_i18n_gettext(
11598             48,
11599             'USA',
11600             'csc',
11601             'region'
11602         ),
11603         oils_i18n_gettext(
11604             48,
11605             'T-Mobile',
11606             'csc',
11607             'name'
11608         ),
11609         '$number@tmomail.net',
11610         TRUE
11611     ),
11612     (
11613         49,
11614         oils_i18n_gettext(
11615             49,
11616             'USA',
11617             'csc',
11618             'region'
11619         ),
11620         oils_i18n_gettext(
11621             49,
11622             'Straight Talk / PagePlus Cellular',
11623             'csc',
11624             'name'
11625         ),
11626         '$number@vtext.com',
11627         TRUE
11628     ),
11629     (
11630         50,
11631         oils_i18n_gettext(
11632             50,
11633             'USA',
11634             'csc',
11635             'region'
11636         ),
11637         oils_i18n_gettext(
11638             50,
11639             'South Central Communications',
11640             'csc',
11641             'name'
11642         ),
11643         '$number@rinasms.com',
11644         TRUE
11645     ),
11646     (
11647         51,
11648         oils_i18n_gettext(
11649             51,
11650             'USA',
11651             'csc',
11652             'region'
11653         ),
11654         oils_i18n_gettext(
11655             51,
11656             'Simple Mobile',
11657             'csc',
11658             'name'
11659         ),
11660         '$number@smtext.com',
11661         TRUE
11662     ),
11663     (
11664         52,
11665         oils_i18n_gettext(
11666             52,
11667             'USA',
11668             'csc',
11669             'region'
11670         ),
11671         oils_i18n_gettext(
11672             52,
11673             'Sprint (PCS)',
11674             'csc',
11675             'name'
11676         ),
11677         '$number@messaging.sprintpcs.com',
11678         TRUE
11679     ),
11680     (
11681         53,
11682         oils_i18n_gettext(
11683             53,
11684             'USA',
11685             'csc',
11686             'region'
11687         ),
11688         oils_i18n_gettext(
11689             53,
11690             'Nextel',
11691             'csc',
11692             'name'
11693         ),
11694         '$number@messaging.nextel.com',
11695         TRUE
11696     ),
11697     (
11698         54,
11699         oils_i18n_gettext(
11700             54,
11701             'USA',
11702             'csc',
11703             'region'
11704         ),
11705         oils_i18n_gettext(
11706             54,
11707             'Pioneer Cellular',
11708             'csc',
11709             'name'
11710         ),
11711         '$number@zsend.com', -- nine digit number
11712         TRUE
11713     ),
11714     (
11715         55,
11716         oils_i18n_gettext(
11717             55,
11718             'USA',
11719             'csc',
11720             'region'
11721         ),
11722         oils_i18n_gettext(
11723             55,
11724             'Qwest Wireless',
11725             'csc',
11726             'name'
11727         ),
11728         '$number@qwestmp.com',
11729         TRUE
11730     ),
11731     (
11732         56,
11733         oils_i18n_gettext(
11734             56,
11735             'USA',
11736             'csc',
11737             'region'
11738         ),
11739         oils_i18n_gettext(
11740             56,
11741             'US Cellular',
11742             'csc',
11743             'name'
11744         ),
11745         '$number@email.uscc.net',
11746         TRUE
11747     ),
11748     (
11749         57,
11750         oils_i18n_gettext(
11751             57,
11752             'USA',
11753             'csc',
11754             'region'
11755         ),
11756         oils_i18n_gettext(
11757             57,
11758             'Unicel',
11759             'csc',
11760             'name'
11761         ),
11762         '$number@utext.com',
11763         TRUE
11764     ),
11765     (
11766         58,
11767         oils_i18n_gettext(
11768             58,
11769             'USA',
11770             'csc',
11771             'region'
11772         ),
11773         oils_i18n_gettext(
11774             58,
11775             'Teleflip',
11776             'csc',
11777             'name'
11778         ),
11779         '$number@teleflip.com',
11780         TRUE
11781     ),
11782     (
11783         59,
11784         oils_i18n_gettext(
11785             59,
11786             'USA',
11787             'csc',
11788             'region'
11789         ),
11790         oils_i18n_gettext(
11791             59,
11792             'Virgin Mobile',
11793             'csc',
11794             'name'
11795         ),
11796         '$number@vmobl.com',
11797         TRUE
11798     ),
11799     (
11800         60,
11801         oils_i18n_gettext(
11802             60,
11803             'USA',
11804             'csc',
11805             'region'
11806         ),
11807         oils_i18n_gettext(
11808             60,
11809             'Verizon Wireless',
11810             'csc',
11811             'name'
11812         ),
11813         '$number@vtext.com',
11814         TRUE
11815     ),
11816     (
11817         61,
11818         oils_i18n_gettext(
11819             61,
11820             'USA',
11821             'csc',
11822             'region'
11823         ),
11824         oils_i18n_gettext(
11825             61,
11826             'USA Mobility',
11827             'csc',
11828             'name'
11829         ),
11830         '$number@usamobility.net',
11831         TRUE
11832     ),
11833     (
11834         62,
11835         oils_i18n_gettext(
11836             62,
11837             'USA',
11838             'csc',
11839             'region'
11840         ),
11841         oils_i18n_gettext(
11842             62,
11843             'Viaero',
11844             'csc',
11845             'name'
11846         ),
11847         '$number@viaerosms.com',
11848         TRUE
11849     ),
11850     (
11851         63,
11852         oils_i18n_gettext(
11853             63,
11854             'USA',
11855             'csc',
11856             'region'
11857         ),
11858         oils_i18n_gettext(
11859             63,
11860             'TracFone',
11861             'csc',
11862             'name'
11863         ),
11864         '$number@mmst5.tracfone.com',
11865         TRUE
11866     ),
11867     (
11868         64,
11869         oils_i18n_gettext(
11870             64,
11871             'USA',
11872             'csc',
11873             'region'
11874         ),
11875         oils_i18n_gettext(
11876             64,
11877             'Centennial Wireless',
11878             'csc',
11879             'name'
11880         ),
11881         '$number@cwemail.com',
11882         TRUE
11883     ),
11884
11885     -- South Korea and USA
11886     (
11887         65,
11888         oils_i18n_gettext(
11889             65,
11890             'South Korea and USA',
11891             'csc',
11892             'region'
11893         ),
11894         oils_i18n_gettext(
11895             65,
11896             'Helio',
11897             'csc',
11898             'name'
11899         ),
11900         '$number@myhelio.com',
11901         TRUE
11902     )
11903 ;
11904
11905 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
11906     SELECT
11907         pgt.id, perm.id, aout.depth, TRUE
11908     FROM
11909         permission.grp_tree pgt,
11910         permission.perm_list perm,
11911         actor.org_unit_type aout
11912     WHERE
11913         pgt.name = 'Global Administrator' AND
11914         aout.name = 'Consortium' AND
11915         perm.code = 'ADMIN_SMS_CARRIER';
11916
11917 INSERT INTO action_trigger.reactor (
11918     module,
11919     description
11920 ) VALUES (
11921     'SendSMS',
11922     'Send an SMS text message based on a user-defined template'
11923 );
11924
11925 INSERT INTO action_trigger.event_definition (
11926     active,
11927     owner,
11928     name,
11929     hook,
11930     validator,
11931     reactor,
11932     cleanup_success,
11933     delay,
11934     delay_field,
11935     group_field,
11936     template
11937 ) VALUES (
11938     true,
11939     1, -- admin
11940     'Hold Ready for Pickup SMS Notification',
11941     'hold.available',
11942     'HoldIsAvailable',
11943     'SendSMS',
11944     'CreateHoldNotification',
11945     '00:30:00',
11946     'shelf_time',
11947     'sms_notify',
11948     '[%- USE date -%]
11949 [%- user = target.0.usr -%]
11950 From: [%- params.sender_email || default_sender %]
11951 To: [%- params.recipient_email || helpers.get_sms_gateway_email(target.0.sms_carrier,target.0.sms_notify) %]
11952 Subject: [% target.size %] hold(s) ready
11953
11954 [% FOR hold IN target %][%-
11955   bibxml = helpers.xml_doc( hold.current_copy.call_number.record.marc );
11956   title = "";
11957   FOR part IN bibxml.findnodes(''//*[@tag="245"]/*[@code="a"]'');
11958     title = title _ part.textContent;
11959   END;
11960   author = bibxml.findnodes(''//*[@tag="100"]/*[@code="a"]'').textContent;
11961 %][% hold.usr.first_given_name %]:[% title %] @ [% hold.pickup_lib.name %]
11962 [% END %]
11963 '
11964 );
11965
11966 INSERT INTO action_trigger.environment (
11967     event_def,
11968     path
11969 ) VALUES (
11970     currval('action_trigger.event_definition_id_seq'),
11971     'current_copy.call_number.record.simple_record'
11972 ), (
11973     currval('action_trigger.event_definition_id_seq'),
11974     'usr'
11975 ), (
11976     currval('action_trigger.event_definition_id_seq'),
11977     'pickup_lib.billing_address'
11978 );
11979
11980 INSERT INTO action_trigger.event_params (event_def, param, value)
11981     VALUES (currval('action_trigger.event_definition_id_seq'), 'check_sms_notify', 1);
11982
11983 INSERT INTO action_trigger.hook(
11984     key,
11985     core_type,
11986     description,
11987     passive
11988 ) VALUES (
11989     'acn.format.sms_text',
11990     'acn',
11991     oils_i18n_gettext(
11992         'acn.format.sms_text',
11993         'A text message has been requested for a call number.',
11994         'ath',
11995         'description'
11996     ),
11997     FALSE
11998 );
11999
12000 INSERT INTO action_trigger.event_definition (
12001     active,
12002     owner,
12003     name,
12004     hook,
12005     validator,
12006     reactor,
12007     template
12008 ) VALUES (
12009     true,
12010     1, -- admin
12011     'SMS Call Number',
12012     'acn.format.sms_text',
12013     'NOOP_True',
12014     'SendSMS',
12015     '[%- USE date -%]
12016 From: [%- params.sender_email || default_sender %]
12017 To: [%- params.recipient_email || helpers.get_sms_gateway_email(user_data.sms_carrier,user_data.sms_notify) %]
12018 Subject: Call Number
12019
12020 [%-
12021   bibxml = helpers.xml_doc( target.record.marc );
12022   title = "";
12023   FOR part IN bibxml.findnodes(''//*[@tag="245"]/*[@code="a" or @code="b"]'');
12024     title = title _ part.textContent;
12025   END;
12026   author = bibxml.findnodes(''//*[@tag="100"]/*[@code="a"]'').textContent;
12027 %]
12028 Call Number: [% target.label %]
12029 Location: [% helpers.get_most_populous_location( target.id ).name %]
12030 Library: [% target.owning_lib.name %]
12031 [%- IF title %]
12032 Title: [% title %]
12033 [%- END %]
12034 [%- IF author %]
12035 Author: [% author %]
12036 [%- END %]
12037 '
12038 );
12039
12040 INSERT INTO action_trigger.environment (
12041     event_def,
12042     path
12043 ) VALUES (
12044     currval('action_trigger.event_definition_id_seq'),
12045     'record.simple_record'
12046 ), (
12047     currval('action_trigger.event_definition_id_seq'),
12048     'owning_lib.billing_address'
12049 );
12050
12051 INSERT INTO vandelay.merge_profile (owner, name, replace_spec) 
12052     VALUES (1, 'Match-Only Merge', '901c');
12053
12054 INSERT INTO vandelay.merge_profile (owner, name, preserve_spec) 
12055     VALUES (1, 'Full Overlay', '901c');
12056
12057 -- user activity seed data --
12058
12059 INSERT INTO config.usr_activity_type (id, ewho, ewhat, ehow, egroup, label) VALUES
12060
12061      -- authen/authz actions
12062      -- note: "opensrf" is the default ingress/ehow
12063      (1,  NULL, 'login',  'opensrf',      'authen', oils_i18n_gettext(1 , 'Login via opensrf', 'cuat', 'label'))
12064     ,(2,  NULL, 'login',  'srfsh',        'authen', oils_i18n_gettext(2 , 'Login via srfsh', 'cuat', 'label'))
12065     ,(3,  NULL, 'login',  'gateway-v1',   'authen', oils_i18n_gettext(3 , 'Login via gateway-v1', 'cuat', 'label'))
12066     ,(4,  NULL, 'login',  'translator-v1','authen', oils_i18n_gettext(4 , 'Login via translator-v1', 'cuat', 'label'))
12067     ,(5,  NULL, 'login',  'xmlrpc',       'authen', oils_i18n_gettext(5 , 'Login via xmlrpc', 'cuat', 'label'))
12068     ,(6,  NULL, 'login',  'remoteauth',   'authen', oils_i18n_gettext(6 , 'Login via remoteauth', 'cuat', 'label'))
12069     ,(7,  NULL, 'login',  'sip2',         'authen', oils_i18n_gettext(7 , 'SIP2 Proxy Login', 'cuat', 'label'))
12070     ,(8,  NULL, 'login',  'apache',       'authen', oils_i18n_gettext(8 , 'Login via Apache module', 'cuat', 'label'))
12071
12072     ,(9,  NULL, 'verify', 'opensrf',      'authz',  oils_i18n_gettext(9 , 'Verification via opensrf', 'cuat', 'label'))
12073     ,(10, NULL, 'verify', 'srfsh',        'authz',  oils_i18n_gettext(10, 'Verification via srfsh', 'cuat', 'label'))
12074     ,(11, NULL, 'verify', 'gateway-v1',   'authz',  oils_i18n_gettext(11, 'Verification via gateway-v1', 'cuat', 'label'))
12075     ,(12, NULL, 'verify', 'translator-v1','authz',  oils_i18n_gettext(12, 'Verification via translator-v1', 'cuat', 'label'))
12076     ,(13, NULL, 'verify', 'xmlrpc',       'authz',  oils_i18n_gettext(13, 'Verification via xmlrpc', 'cuat', 'label'))
12077     ,(14, NULL, 'verify', 'remoteauth',   'authz',  oils_i18n_gettext(14, 'Verification via remoteauth', 'cuat', 'label'))
12078     ,(15, NULL, 'verify', 'sip2',         'authz',  oils_i18n_gettext(15, 'SIP2 User Verification', 'cuat', 'label'))
12079
12080      -- authen/authz actions w/ known uses of "who"
12081     ,(16, 'opac',        'login',  'gateway-v1',   'authen', oils_i18n_gettext(16, 'OPAC Login (jspac)', 'cuat', 'label'))
12082     ,(17, 'opac',        'login',  'apache',       'authen', oils_i18n_gettext(17, 'OPAC Login (tpac)', 'cuat', 'label'))
12083     ,(18, 'staffclient', 'login',  'gateway-v1',   'authen', oils_i18n_gettext(18, 'Staff Client Login', 'cuat', 'label'))
12084     ,(19, 'selfcheck',   'login',  'translator-v1','authen', oils_i18n_gettext(19, 'Self-Check Proxy Login', 'cuat', 'label'))
12085     ,(20, 'ums',         'login',  'xmlrpc',       'authen', oils_i18n_gettext(20, 'Unique Mgt Login', 'cuat', 'label'))
12086     ,(21, 'authproxy',   'login',  'apache',       'authen', oils_i18n_gettext(21, 'Apache Auth Proxy Login', 'cuat', 'label'))
12087     ,(22, 'libraryelf',  'login',  'xmlrpc',       'authz',  oils_i18n_gettext(22, 'LibraryElf Login', 'cuat', 'label'))
12088
12089     ,(23, 'selfcheck',   'verify', 'translator-v1','authz',  oils_i18n_gettext(23, 'Self-Check User Verification', 'cuat', 'label'))
12090     ,(24, 'ezproxy',     'verify', 'remoteauth',   'authz',  oils_i18n_gettext(24, 'EZProxy Verification', 'cuat', 'label'))
12091     -- ...
12092     ;
12093
12094 -- reserve the first 1000 slots
12095 SELECT SETVAL('config.usr_activity_type_id_seq'::TEXT, 1000);
12096
12097 INSERT INTO config.org_unit_setting_type 
12098     (name, label, description, grp, datatype) 
12099     VALUES (
12100         'circ.fines.charge_when_closed',
12101          oils_i18n_gettext(
12102             'circ.fines.charge_when_closed',
12103             'Charge fines on overdue circulations when closed',
12104             'coust', 
12105             'label'
12106         ),
12107         oils_i18n_gettext(
12108             'circ.fines.charge_when_closed',
12109             '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.',
12110             'coust', 
12111             'description'
12112         ),
12113         'circ',
12114         'bool'
12115     );
12116
12117 INSERT INTO config.org_unit_setting_type 
12118     (name, label, description, grp, datatype) 
12119     VALUES (
12120         'circ.patron.usr_activity_retrieve.max',
12121          oils_i18n_gettext(
12122             'circ.patron.usr_activity_retrieve.max',
12123             'Max user activity entries to retrieve (staff client)',
12124             'coust', 
12125             'label'
12126         ),
12127         oils_i18n_gettext(
12128             'circ.patron.usr_activity_retrieve.max',
12129             '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.',
12130             'coust', 
12131             'description'
12132         ),
12133         'gui',
12134         'integer'
12135     );
12136 -- circ export csv export --
12137
12138 INSERT INTO action_trigger.hook (key, core_type, description, passive)
12139 VALUES (
12140     'circ.format.history.csv',
12141     'circ',
12142     oils_i18n_gettext(
12143         'circ.format.history.csv',
12144         'Produce CSV of circulation history',
12145         'ath',
12146         'description'
12147     ),
12148     FALSE
12149 );
12150
12151 INSERT INTO action_trigger.event_definition (
12152     active, owner, name, hook, reactor, validator, group_field, template) 
12153 VALUES (
12154     TRUE, 1, 'Circ History CSV', 'circ.format.history.csv', 'ProcessTemplate', 'NOOP_True', 'usr',
12155 $$
12156 Title,Author,Call Number,Barcode,Format
12157 [%-
12158 FOR circ IN target;
12159     bibxml = helpers.unapi_bre(circ.target_copy.call_number.record, {flesh => '{mra}'});
12160     title = "";
12161     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
12162         title = title _ part.textContent;
12163     END;
12164     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
12165     item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value') %]
12166
12167     [%- helpers.csv_datum(title) -%],
12168     [%- helpers.csv_datum(author) -%],
12169     [%- helpers.csv_datum(circ.target_copy.call_number.label) -%],
12170     [%- helpers.csv_datum(circ.target_copy.barcode) -%],
12171     [%- helpers.csv_datum(item_type) %]
12172 [%- END -%]
12173 $$
12174 );
12175
12176 INSERT INTO action_trigger.environment (event_def, path)
12177     VALUES (
12178         currval('action_trigger.event_definition_id_seq'),
12179         'target_copy.call_number'
12180     );
12181
12182 INSERT INTO actor.toolbar(id,org,label,layout) VALUES
12183     ( 1, 1, oils_i18n_gettext(1, 'circ', 'atb', 'label'), '["circ_checkout","circ_checkin","toolbarseparator.1","search_opac","copy_status","toolbarseparator.2","patron_search","patron_register","toolbarspacer.3","hotkeys_toggle"]' ),
12184     ( 2, 1, oils_i18n_gettext(2, 'cat', 'atb', 'label'), '["circ_checkin","toolbarseparator.1","search_opac","copy_status","toolbarseparator.2","create_marc","authority_manage","retrieve_last_record","toolbarspacer.3","hotkeys_toggle"]' );
12185
12186 INSERT INTO config.global_flag (name, enabled, label) 
12187     VALUES (
12188         'opac.org_unit.non_inherited_visibility',
12189         FALSE,
12190         oils_i18n_gettext(
12191             'opac.org_unit.non_inherited_visibility',
12192             'Org Units Do Not Inherit Visibility',
12193             'cgf',
12194             'label'
12195         )
12196     );
12197
12198 INSERT INTO config.org_unit_setting_type ( name, label, description, datatype, grp, update_perm )
12199     VALUES (
12200         'ui.hide_copy_editor_fields',
12201         oils_i18n_gettext(
12202             'ui.hide_copy_editor_fields',
12203             'GUI: Hide these fields within the Item Attribute Editor',
12204             'coust',
12205             'label'
12206         ),
12207         oils_i18n_gettext(
12208             'ui.hide_copy_editor_fields',
12209             'This setting may be best maintained with the dedicated configuration'
12210             || ' interface within the Item Attribute Editor.  However, here it'
12211             || ' shows up as comma separated list of field identifiers to hide.',
12212             'coust',
12213             'description'
12214         ),
12215         'array',
12216         'gui',
12217         539
12218     );
12219
12220 INSERT into config.org_unit_setting_type 
12221     (name, grp, label, description, datatype) 
12222     VALUES ( 
12223         'opac.patron.auto_overide_hold_events', 
12224         'opac',
12225         oils_i18n_gettext(
12226             'opac.patron.auto_overide_hold_events',
12227             'Auto-Override Permitted Hold Blocks (Patrons)',
12228             'coust', 
12229             'label'
12230         ),
12231         oils_i18n_gettext(
12232             'opac.patron.auto_overide_hold_events',
12233             'When a patron places a hold that fails and the patron has the correct permission ' || 
12234             'to override the hold, automatically override the hold without presenting a message ' || 
12235             'to the patron and requiring that the patron make a decision to override',
12236             'coust', 
12237             'description'
12238         ),
12239         'bool'
12240     );
12241
12242 INSERT into config.org_unit_setting_type
12243     (name, grp, label, description, datatype)
12244     VALUES (
12245         'opac.patron.temporary_list_warn',
12246         'opac',
12247         oils_i18n_gettext(
12248             'opac.patron.temporary_list_warn',
12249             'Warn patrons when adding to a temporary book list',
12250             'coust',
12251             'label'
12252         ),
12253         oils_i18n_gettext(
12254             'opac.patron.temporary_list_warn',
12255             'Present a warning dialog to the patron when a patron adds a book to a temporary book bag.',
12256             'coust',
12257             'description'
12258         ),
12259         'bool'
12260     );
12261
12262 INSERT INTO config.usr_setting_type
12263     (name,grp,opac_visible,label,description,datatype)
12264 VALUES (
12265     'opac.temporary_list_no_warn',
12266     'opac',
12267     TRUE,
12268     oils_i18n_gettext(
12269         'opac.temporary_list_no_warn',
12270         'Opt out of warning when adding a book to a temporary book list',
12271         'cust',
12272         'label'
12273     ),
12274     oils_i18n_gettext(
12275         'opac.temporary_list_no_warn',
12276         'Opt out of warning when adding a book to a temporary book list',
12277         'cust',
12278         'description'
12279     ),
12280     'bool'
12281 );
12282
12283 INSERT INTO config.usr_setting_type
12284     (name,grp,opac_visible,label,description,datatype)
12285 VALUES (
12286     'opac.default_list',
12287     'opac',
12288     FALSE,
12289     oils_i18n_gettext(
12290         'opac.default_list',
12291         'Default list to use when adding to a bookbag',
12292         'cust',
12293         'label'
12294     ),
12295     oils_i18n_gettext(
12296         'opac.default_list',
12297         'Default list to use when adding to a bookbag',
12298         'cust',
12299         'description'
12300     ),
12301     'integer'
12302 );
12303
12304 INSERT INTO config.org_unit_setting_type (
12305     name, grp, label, description, datatype
12306 ) VALUES (
12307     'circ.staff.max_visible_event_age',
12308     'circ',
12309     'Maximum visible age of User Trigger Events in Staff Interfaces',
12310     '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.',
12311     'interval'
12312 );
12313
12314 -- kid's opac main search filter
12315
12316 INSERT INTO actor.search_filter_group (owner, code, label) 
12317     VALUES (1, 'kpac_main', 'Kid''s OPAC Search Filter');
12318
12319 INSERT INTO actor.search_query (label, query_text) 
12320     VALUES ('Children''s Materials', 'audience(a,b,c)');
12321 INSERT INTO actor.search_query (label, query_text) 
12322     VALUES ('Young Adult Materials', 'audience(j,d)');
12323 INSERT INTO actor.search_query (label, query_text) 
12324     VALUES ('General/Adult Materials',  'audience(e,f,g, )');
12325
12326 INSERT INTO actor.search_filter_group_entry (grp, query, pos)
12327     VALUES (
12328         (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
12329         (SELECT id FROM actor.search_query WHERE label = 'Children''s Materials'),
12330         0
12331     ); INSERT INTO actor.search_filter_group_entry (grp, query, pos) VALUES (
12332         (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
12333         (SELECT id FROM actor.search_query WHERE label = 'Young Adult Materials'),
12334         1
12335     );
12336 INSERT INTO actor.search_filter_group_entry (grp, query, pos) 
12337     VALUES (
12338         (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
12339         (SELECT id FROM actor.search_query WHERE label = 'General/Adult Materials'),
12340         2
12341     );
12342 INSERT into config.org_unit_setting_type
12343     (name, grp, label, description, datatype)
12344     VALUES (
12345         'acq.fund.allow_rollover_without_money',
12346         'acq',
12347         oils_i18n_gettext(
12348             'acq.fund.allow_rollover_without_money',
12349             'Allow funds to be rolled over without bringing the money along',
12350             'coust',
12351             'label'
12352         ),
12353         oils_i18n_gettext(
12354             'acq.fund.allow_rollover_without_money',
12355             'Allow funds to be rolled over without bringing the money along.  This makes money left in the old fund disappear, modeling its return to some outside entity.',
12356             'coust',
12357             'description'
12358         ),
12359         'bool'
12360     );
12361
12362 INSERT INTO config.org_unit_setting_type
12363     (name, grp, label, description, datatype)
12364     VALUES (
12365         'circ.lost.xact_open_on_zero',
12366         'finance',
12367         oils_i18n_gettext(
12368             'circ.lost.xact_open_on_zero',
12369             'Leave transaction open when lost balance equals zero',
12370             'coust',
12371             'label'
12372         ),
12373         oils_i18n_gettext(
12374             'circ.lost.xact_open_on_zero',
12375             'Leave transaction open when lost balance equals zero.  This leaves the lost copy on the patron record when it is paid',
12376             'coust',
12377             'description'
12378         ),
12379         'bool'
12380     );
12381
12382 INSERT INTO config.org_unit_setting_type
12383     (name, grp, label, description, datatype)
12384     VALUES (
12385         'circ.patron_expires_soon_warning',
12386         'circ',
12387         oils_i18n_gettext(
12388             'circ.patron_expires_soon_warning',
12389             'Warn when patron account is about to expire',
12390             'coust',
12391             'label'
12392         ),
12393         oils_i18n_gettext(
12394             'circ.patron_expires_soon_warning',
12395             'Warn when patron account is about to expire. If set, the staff client displays a warning this many days before the expiry of a patron account. Value is in number of days, for example: 3 for 3 days.',
12396             'coust',
12397             'description'
12398         ),
12399         'integer'
12400     );
12401
12402 INSERT INTO config.org_unit_setting_type (
12403     name, label, grp, datatype
12404 ) VALUES (
12405     'circ.fines.truncate_to_max_fine',
12406     oils_i18n_gettext(
12407         'circ.fines.truncate_to_max_fine',
12408         'Truncate fines to max fine amount',
12409         'coust',
12410         'label'
12411     ),
12412     'circ',
12413     'bool'
12414 );
12415
12416
12417 INSERT INTO config.settings_group (name, label)
12418     VALUES (
12419         'url_verify',
12420         oils_i18n_gettext(
12421             'url_verify',
12422             'URL Verify',
12423             'csg',
12424             'label'
12425         )
12426     );
12427
12428 INSERT INTO config.org_unit_setting_type
12429     (name, grp, label, description, datatype, update_perm)
12430     VALUES (
12431         'url_verify.url_verification_delay',
12432         'url_verify',
12433         oils_i18n_gettext(
12434             'url_verify.url_verification_delay',
12435             'Number of seconds to wait between URL test attempts.',
12436             'coust',
12437             'label'
12438         ),
12439         oils_i18n_gettext(
12440             'url_verify.url_verification_delay',
12441             'Throttling mechanism for batch URL verification runs.  Each running process will wait this number of seconds after a URL test before performing the next.',
12442             'coust',
12443             'description'
12444         ),
12445         'integer',
12446         544
12447     );
12448
12449 INSERT INTO config.org_unit_setting_type
12450     (name, grp, label, description, datatype, update_perm)
12451     VALUES (
12452         'url_verify.url_verification_max_redirects',
12453         'url_verify',
12454         oils_i18n_gettext(
12455             'url_verify.url_verification_max_redirects',
12456             'Maximum redirect lookups',
12457             'coust',
12458             'label'
12459         ),
12460         oils_i18n_gettext(
12461             'url_verify.url_verification_max_redirects',
12462             'For URLs returning 3XX redirects, this is the maximum number of redirects we will follow before giving up.',
12463             'coust',
12464             'description'
12465         ),
12466         'integer',
12467         544
12468     );
12469
12470 INSERT INTO config.org_unit_setting_type
12471     (name, grp, label, description, datatype, update_perm)
12472     VALUES (
12473         'url_verify.url_verification_max_wait',
12474         'url_verify',
12475         oils_i18n_gettext(
12476             'url_verify.url_verification_max_wait',
12477             'Maximum wait time (in seconds) for a URL to lookup',
12478             'coust',
12479             'label'
12480         ),
12481         oils_i18n_gettext(
12482             'url_verify.url_verification_max_wait',
12483             'If we exceed the wait time, the URL is marked as a "timeout" and the system moves on to the next URL',
12484             'coust',
12485             'description'
12486         ),
12487         'integer',
12488         544
12489     );
12490
12491 INSERT INTO config.filter_dialog_interface (key, description) VALUES (
12492     'url_verify',
12493     oils_i18n_gettext(
12494         'url_verify',
12495         'All Link Checker filter dialogs',
12496         'cfdi',
12497         'description'
12498     )
12499 );
12500
12501 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
12502     'ui.grid_columns.url_verify.select_urls',
12503     'gui',
12504     FALSE,
12505     oils_i18n_gettext(
12506         'ui.grid_columns.url_verify.select_urls',
12507         'Link Checker''s URL Selection interface''s saved columns',
12508         'cust',
12509         'label'
12510     ),
12511     oils_i18n_gettext(
12512         'ui.grid_columns.url_verify.select_urls',
12513         'Link Checker''s URL Selection interface''s saved columns',
12514         'cust',
12515         'description'
12516     ),
12517     'string'
12518 );
12519
12520 INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
12521     'ui.grid_columns.url_verify.review_attempt',
12522     'gui',
12523     FALSE,
12524     oils_i18n_gettext(
12525         'ui.grid_columns.url_verify.review_attempt',
12526         'Link Checker''s Review Attempt interface''s saved columns',
12527         'cust',
12528         'label'
12529     ),
12530     oils_i18n_gettext(
12531         'ui.grid_columns.url_verify.review_attempt',
12532         'Link Checker''s Review Attempt interface''s saved columns',
12533         'cust',
12534         'description'
12535     ),
12536     'string'
12537 );
12538
12539 INSERT INTO config.org_unit_setting_type
12540     (name, grp, label, description, datatype, update_perm)
12541     VALUES (
12542         'url_verify.verification_batch_size',
12543         'url_verify',
12544         oils_i18n_gettext(
12545             'url_verify.verification_batch_size',
12546             'Number of URLs to test in parallel',
12547             'coust',
12548             'label'
12549         ),
12550         oils_i18n_gettext(
12551             'url_verify.verification_batch_size',
12552             'URLs are tested in batches.  This number defines the size of each batch and it directly relates to the number of back-end processes performing URL verification.',
12553             'coust',
12554             'description'
12555         ),
12556         'integer',
12557         544
12558     );
12559
12560 INSERT INTO config.org_unit_setting_type
12561     (name, label, description, grp, datatype, fm_class) 
12562 VALUES (
12563     'acq.upload.default.create_po',
12564     oils_i18n_gettext(
12565         'acq.upload.default.create_po',
12566         'Upload Create PO',
12567         'coust',
12568         'label'
12569     ),
12570      oils_i18n_gettext(
12571         'acq.upload.default.create_po',
12572         'Create a purchase order by default during ACQ file upload',
12573         'coust',
12574         'description'
12575     ),
12576    'acq',
12577     'bool',
12578     NULL
12579 ), (
12580     'acq.upload.default.activate_po',
12581     oils_i18n_gettext(
12582         'acq.upload.default.activate_po',
12583         'Upload Activate PO',
12584         'coust',
12585         'label'
12586     ),
12587      oils_i18n_gettext(
12588         'acq.upload.default.activate_po',
12589         'Activate the purchase order by default during ACQ file upload',
12590         'coust',
12591         'description'
12592     ),
12593     'acq',
12594     'bool',
12595     NULL
12596 ), (
12597     'acq.upload.default.provider',
12598     oils_i18n_gettext(
12599         'acq.upload.default.provider',
12600         'Upload Default Provider',
12601         'coust',
12602         'label'
12603     ),
12604      oils_i18n_gettext(
12605         'acq.upload.default.provider',
12606         'Default provider to use during ACQ file upload',
12607         'coust',
12608         'description'
12609     ),
12610     'acq',
12611     'link',
12612     'acqpro'
12613 ), (
12614     'acq.upload.default.vandelay.match_set',
12615     oils_i18n_gettext(
12616         'acq.upload.default.vandelay.match_set',
12617         'Upload Default Match Set',
12618         'coust',
12619         'label'
12620     ),
12621      oils_i18n_gettext(
12622         'acq.upload.default.vandelay.match_set',
12623         'Default match set to use during ACQ file upload',
12624         'coust',
12625         'description'
12626     ),
12627     'acq',
12628     'link',
12629     'vms'
12630 ), (
12631     'acq.upload.default.vandelay.merge_profile',
12632     oils_i18n_gettext(
12633         'acq.upload.default.vandelay.merge_profile',
12634         'Upload Default Merge Profile',
12635         'coust',
12636         'label'
12637     ),
12638      oils_i18n_gettext(
12639         'acq.upload.default.vandelay.merge_profile',
12640         'Default merge profile to use during ACQ file upload',
12641         'coust',
12642         'description'
12643     ),
12644     'acq',
12645     'link',
12646     'vmp'
12647 ), (
12648     'acq.upload.default.vandelay.import_non_matching',
12649     oils_i18n_gettext(
12650         'acq.upload.default.vandelay.import_non_matching',
12651         'Upload Import Non Matching by Default',
12652         'coust',
12653         'label'
12654     ),
12655      oils_i18n_gettext(
12656         'acq.upload.default.vandelay.import_non_matching',
12657         'Import non-matching records by default during ACQ file upload',
12658         'coust',
12659         'description'
12660     ),
12661     'acq',
12662     'bool',
12663     NULL
12664 ), (
12665     'acq.upload.default.vandelay.merge_on_exact',
12666     oils_i18n_gettext(
12667         'acq.upload.default.vandelay.merge_on_exact',
12668         'Upload Merge on Exact Match by Default',
12669         'coust',
12670         'label'
12671     ),
12672      oils_i18n_gettext(
12673         'acq.upload.default.vandelay.merge_on_exact',
12674         'Merge records on exact match by default during ACQ file upload',
12675         'coust',
12676         'description'
12677     ),
12678     'acq',
12679     'bool',
12680     NULL
12681 ), (
12682     'acq.upload.default.vandelay.merge_on_best',
12683     oils_i18n_gettext(
12684         'acq.upload.default.vandelay.merge_on_best',
12685         'Upload Merge on Best Match by Default',
12686         'coust',
12687         'label'
12688     ),
12689      oils_i18n_gettext(
12690         'acq.upload.default.vandelay.merge_on_best',
12691         'Merge records on best match by default during ACQ file upload',
12692         'coust',
12693         'description'
12694     ),
12695     'acq',
12696     'bool',
12697     NULL
12698 ), (
12699     'acq.upload.default.vandelay.merge_on_single',
12700     oils_i18n_gettext(
12701         'acq.upload.default.vandelay.merge_on_single',
12702         'Upload Merge on Single Match by Default',
12703         'coust',
12704         'label'
12705     ),
12706      oils_i18n_gettext(
12707         'acq.upload.default.vandelay.merge_on_single',
12708         'Merge records on single match by default during ACQ file upload',
12709         'coust',
12710         'description'
12711     ),
12712     'acq',
12713     'bool',
12714     NULL
12715 ), (
12716     'acq.upload.default.vandelay.quality_ratio',
12717     oils_i18n_gettext(
12718         'acq.upload.default.vandelay.quality_ratio',
12719         'Upload Default Min. Quality Ratio',
12720         'coust',
12721         'label'
12722     ),
12723      oils_i18n_gettext(
12724         'acq.upload.default.vandelay.quality_ratio',
12725         'Default minimum quality ratio used during ACQ file upload',
12726         'coust',
12727         'description'
12728     ),
12729     'acq',
12730     'integer',
12731     NULL
12732 ), (
12733     'acq.upload.default.vandelay.low_quality_fall_thru_profile',
12734     oils_i18n_gettext(
12735         'acq.upload.default.vandelay.low_quality_fall_thru_profile',
12736         'Upload Default Insufficient Quality Fall-Thru Profile',
12737         'coust',
12738         'label'
12739     ),
12740      oils_i18n_gettext(
12741         'acq.upload.default.vandelay.low_quality_fall_thru_profile',
12742         'Default low-quality fall through profile used during ACQ file upload',
12743         'coust',
12744         'description'
12745     ),
12746     'acq',
12747     'link',
12748     'vmp'
12749 ), (
12750     'acq.upload.default.vandelay.load_item_for_imported',
12751     oils_i18n_gettext(
12752         'acq.upload.default.vandelay.load_item_for_imported',
12753         'Upload Load Items for Imported Records by Default',
12754         'coust',
12755         'label'
12756     ),
12757      oils_i18n_gettext(
12758         'acq.upload.default.vandelay.load_item_for_imported',
12759         'Load items for imported records by default during ACQ file upload',
12760         'coust',
12761         'description'
12762     ),
12763     'acq',
12764     'bool',
12765     NULL
12766 );
12767
12768
12769 INSERT INTO config.ts_config_list(id, name) VALUES
12770     ('simple','Non-Stemmed Simple'),
12771     ('danish_nostop','Danish Stemmed'),
12772     ('dutch_nostop','Dutch Stemmed'),
12773     ('english_nostop','English Stemmed'),
12774     ('finnish_nostop','Finnish Stemmed'),
12775     ('french_nostop','French Stemmed'),
12776     ('german_nostop','German Stemmed'),
12777     ('hungarian_nostop','Hungarian Stemmed'),
12778     ('italian_nostop','Italian Stemmed'),
12779     ('norwegian_nostop','Norwegian Stemmed'),
12780     ('portuguese_nostop','Portuguese Stemmed'),
12781     ('romanian_nostop','Romanian Stemmed'),
12782     ('russian_nostop','Russian Stemmed'),
12783     ('spanish_nostop','Spanish Stemmed'),
12784     ('swedish_nostop','Swedish Stemmed'),
12785     ('turkish_nostop','Turkish Stemmed');
12786
12787 INSERT INTO config.metabib_class_ts_map(field_class, ts_config, index_weight, always) VALUES
12788     ('keyword','simple','A',true),
12789     ('keyword','english_nostop','C',true),
12790     ('title','simple','A',true),
12791     ('title','english_nostop','C',true),
12792     ('author','simple','A',true),
12793     ('author','english_nostop','C',true),
12794     ('series','simple','A',true),
12795     ('series','english_nostop','C',true),
12796     ('subject','simple','A',true),
12797     ('subject','english_nostop','C',true),
12798     ('identifier','simple','A',true);
12799
12800 INSERT INTO config.org_unit_setting_type (
12801     name, label, description, datatype, fm_class, update_perm, grp
12802 ) VALUES (
12803     'circ.hold_capture_order',
12804     oils_i18n_gettext(
12805         'circ.hold_capture_order',
12806         'Best-hold selection sort order',
12807         'coust',
12808         'label'
12809     ),
12810     oils_i18n_gettext(
12811         'circ.hold_capture_order',
12812         'Defines the sort order of holds when selecting a hold to fill using a given copy at capture time',
12813         'coust',
12814         'description'
12815     ),
12816     'link',
12817     'cbho',
12818     543,
12819     'holds'
12820 );
12821
12822 INSERT INTO config.org_unit_setting_type (
12823     name, label, description, datatype, update_perm, grp
12824 ) VALUES (
12825     'circ.hold_go_home_interval',
12826     oils_i18n_gettext(
12827         'circ.hold_go_home_interval',
12828         'Max foreign-circulation time',
12829         'coust',
12830         'label'
12831     ),
12832     oils_i18n_gettext(
12833         'circ.hold_go_home_interval',
12834         'Time a copy can spend circulating away from its circ lib before returning there to fill a hold (if one exists there)',
12835         'coust',
12836         'description'
12837     ),
12838     'interval',
12839     543,
12840     'holds'
12841 );
12842
12843
12844 INSERT INTO config.best_hold_order (
12845     name,
12846     approx, pprox, aprox, priority, cut, depth, rtime
12847 ) VALUES (
12848     'Traditional',
12849     1, 2, 3, 4, 5, 6, 7
12850 );
12851
12852 INSERT INTO config.best_hold_order (
12853     name,
12854     hprox, approx, pprox, aprox, priority, cut, depth, rtime
12855 ) VALUES (
12856     'Traditional with Holds-always-go-home',
12857     1, 2, 3, 4, 5, 6, 7, 8
12858 );
12859
12860 INSERT INTO config.best_hold_order (
12861     name,
12862     htime, approx, pprox, aprox, priority, cut, depth, rtime
12863 ) VALUES (
12864     'Traditional with Holds-go-home',
12865     1, 2, 3, 4, 5, 6, 7, 8
12866 );
12867
12868 INSERT INTO config.best_hold_order (
12869     name,
12870     priority, cut, rtime, depth, pprox, hprox, aprox, htime
12871 ) VALUES (
12872     'FIFO',
12873     1, 2, 3, 4, 5, 6, 7, 8
12874 );
12875
12876 INSERT INTO config.best_hold_order (
12877     name,
12878     hprox, priority, cut, rtime, depth, pprox, aprox, htime
12879 ) VALUES (
12880     'FIFO with Holds-always-go-home',
12881     1, 2, 3, 4, 5, 6, 7, 8
12882 );
12883
12884 INSERT INTO config.best_hold_order (
12885     name,
12886     htime, priority, cut, rtime, depth, pprox, aprox, hprox
12887 ) VALUES (
12888     'FIFO with Holds-go-home',
12889     1, 2, 3, 4, 5, 6, 7, 8
12890 );
12891
12892 INSERT INTO actor.org_unit_setting (
12893     org_unit, name, value
12894 ) VALUES (
12895     (SELECT id FROM actor.org_unit WHERE parent_ou IS NULL),
12896     'circ.hold_go_home_interval',
12897     '"6 months"'
12898 );
12899
12900 INSERT INTO action_trigger.hook (
12901         key,
12902         core_type,
12903         description,
12904         passive
12905     ) VALUES (
12906         'au.barred',
12907         'au',
12908         'A user was barred by staff',
12909         FALSE
12910     );
12911
12912 INSERT INTO action_trigger.hook (
12913         key,
12914         core_type,
12915         description,
12916         passive
12917     ) VALUES (
12918         'au.unbarred',
12919         'au',
12920         'A user was un-barred by staff',
12921         FALSE
12922     );
12923
12924 INSERT INTO action_trigger.validator (
12925         module, 
12926         description
12927     ) VALUES (
12928         'PatronBarred',
12929         'Tests if a patron is currently marked as barred'
12930     );
12931
12932 INSERT INTO action_trigger.validator (
12933         module, 
12934         description
12935     ) VALUES (
12936         'PatronNotBarred',
12937         'Tests if a patron is currently not marked as barred'
12938     );
12939
12940 INSERT INTO config.org_unit_setting_type
12941     (name, label, description, grp, datatype) 
12942 VALUES (
12943     'acq.fund.rollover_distrib_forms',
12944     oils_i18n_gettext(
12945         'acq.fund.rollover_distrib_forms',
12946         'Rollover Distribution Formulae Funds',
12947         'coust',
12948         'label'
12949     ),
12950      oils_i18n_gettext(
12951         'acq.fund.rollover_distrib_forms',
12952         'During fiscal rollover, update distribution formalae to use new funds',
12953         'coust',
12954         'description'
12955     ),
12956     'acq',
12957     'bool'
12958 );
12959
12960 INSERT INTO config.z3950_index_field_map 
12961     (id, label, metabib_field, z3950_attr_type) VALUES 
12962 (1, oils_i18n_gettext(1, 'Title',   'czifm', 'label'), 5,  'title'),
12963 (2, oils_i18n_gettext(2, 'Author',  'czifm', 'label'), 8,  'author'),
12964 (3, oils_i18n_gettext(3, 'ISBN',    'czifm', 'label'), 18, 'isbn'),
12965 (4, oils_i18n_gettext(4, 'ISSN',    'czifm', 'label'), 19, 'issn'),
12966 (5, oils_i18n_gettext(5, 'LCCN',    'czifm', 'label'), 30, 'lccn');
12967
12968 INSERT INTO config.z3950_index_field_map 
12969     (id, label, record_attr, z3950_attr_type) VALUES 
12970 (6, oils_i18n_gettext(6, 'Pubdate',  'czifm', 'label'),'pubdate', 'pubdate'),
12971 (7, oils_i18n_gettext(7, 'Item Type', 'czifm', 'label'),'item_type', 'item_type');
12972
12973
12974 -- let's leave room for more stock mappings
12975 SELECT SETVAL('config.z3950_index_field_map_id_seq'::TEXT, 1000);
12976
12977 INSERT INTO config.org_unit_setting_type
12978     (name, grp, label, description, datatype)
12979     VALUES (
12980         'cat.z3950.batch.max_parallel',
12981         'cat',
12982         oils_i18n_gettext(
12983             'cat.z3950.batch.max_parallel',
12984             'Maximum Parallel Z39.50 Batch Searches',
12985             'coust',
12986             'label'
12987         ),
12988         oils_i18n_gettext(
12989             'cat.z3950.batch.max_parallel',
12990             'The maximum number of Z39.50 searches that can be in-flight at any given time when performing batch Z39.50 searches',
12991             'coust',
12992             'description'
12993         ),
12994         'integer'
12995     );
12996
12997 INSERT INTO config.org_unit_setting_type
12998     (name, grp, label, description, datatype)
12999     VALUES (
13000         'cat.z3950.batch.max_results',
13001         'cat',
13002         oils_i18n_gettext(
13003             'cat.z3950.batch.max_results',
13004             'Maximum Z39.50 Batch Search Results',
13005             'coust',
13006             'label'
13007         ),
13008         oils_i18n_gettext(
13009             'cat.z3950.batch.max_results',
13010             'The maximum number of search results to retrieve and queue for each record + Z39 source during batch Z39.50 searches',
13011             'coust',
13012             'description'
13013         ),
13014         'integer'
13015     );
13016
13017 -- long overdue stuff...
13018
13019 INSERT INTO config.org_unit_setting_type 
13020     (name, grp, datatype, label, description) VALUES 
13021 (
13022     'circ.longoverdue_immediately_available',
13023     'circ', 'bool',
13024     oils_i18n_gettext(
13025         'circ.longoverdue_immediately_available',
13026         'Long-Overdue Items Usable on Checkin',
13027         'coust',
13028         'label'
13029     ),
13030     oils_i18n_gettext(
13031         'circ.longoverdue_immediately_available',
13032         'Long-overdue items are usable on checkin instead of going "home" first',
13033         'coust',
13034         'description'
13035     )
13036 ), (
13037     'circ.longoverdue_materials_processing_fee',
13038     'finance', 'currency',
13039     oils_i18n_gettext(
13040         'circ.longoverdue_materials_processing_fee',
13041         'Long-Overdue Materials Processing Fee',
13042         'coust',
13043         'label'
13044     ),
13045     oils_i18n_gettext(
13046         'circ.longoverdue_materials_processing_fee',
13047         'Long-Overdue Materials Processing Fee',
13048         'coust',
13049         'description'
13050     )
13051 ), (
13052     'circ.max_accept_return_of_longoverdue',
13053     'circ', 'interval',
13054     oils_i18n_gettext(
13055         'circ.max_accept_return_of_longoverdue',
13056         'Long-Overdue Max Return Interval',
13057         'coust',
13058         'label'
13059     ),
13060     oils_i18n_gettext(
13061         'circ.max_accept_return_of_longoverdue',
13062         'Long-overdue check-in processing (voiding fees, re-instating ' ||
13063             'overdues, etc.) will not take place for items that have been ' ||
13064             'overdue for (or have last activity older than) this amount of time',
13065         'coust',
13066         'description'
13067     )
13068 ), (
13069     'circ.restore_overdue_on_longoverdue_return',
13070     'circ', 'bool',
13071     oils_i18n_gettext(
13072         'circ.restore_overdue_on_longoverdue_return',
13073         'Restore Overdues on Long-Overdue Item Return',
13074         'coust',
13075         'label'
13076     ),
13077     oils_i18n_gettext(
13078         'circ.restore_overdue_on_longoverdue_return',
13079         'Restore Overdues on Long-Overdue Item Return',
13080         'coust',
13081         'description'
13082     )
13083 ), (
13084     'circ.void_longoverdue_on_checkin',
13085     'circ', 'bool',
13086     oils_i18n_gettext(
13087         'circ.void_longoverdue_on_checkin',
13088         'Void Long-Overdue Item Billing When Returned',
13089         'coust',
13090         'label'
13091     ),
13092     oils_i18n_gettext(
13093         'circ.void_longoverdue_on_checkin',
13094         'Void Long-Overdue Item Billing When Returned',
13095         'coust',
13096         'description'
13097     )
13098 ), (
13099     'circ.void_longoverdue_proc_fee_on_checkin',
13100     'circ', 'bool',
13101     oils_i18n_gettext(
13102         'circ.void_longoverdue_proc_fee_on_checkin',
13103         'Void Processing Fee on Long-Overdue Item Return',
13104         'coust',
13105         'label'
13106     ),
13107     oils_i18n_gettext(
13108         'circ.void_longoverdue_proc_fee_on_checkin',
13109         'Void Processing Fee on Long-Overdue Item Return',
13110         'coust',
13111         'description'
13112     )
13113 ), (
13114     'circ.void_overdue_on_longoverdue',
13115     'finance', 'bool',
13116     oils_i18n_gettext(
13117         'circ.void_overdue_on_longoverdue',
13118         'Void Overdue Fines When Items are Marked Long-Overdue',
13119         'coust',
13120         'label'
13121     ),
13122     oils_i18n_gettext(
13123         'circ.void_overdue_on_longoverdue',
13124         'Void Overdue Fines When Items are Marked Long-Overdue',
13125         'coust',
13126         'description'
13127     )
13128 ), (
13129     'circ.longoverdue.xact_open_on_zero',
13130     'finance', 'bool',
13131     oils_i18n_gettext(
13132         'circ.longoverdue.xact_open_on_zero',
13133         'Leave transaction open when long overdue balance equals zero',
13134         'coust',
13135         'label'
13136     ),
13137     oils_i18n_gettext(
13138         'circ.longoverdue.xact_open_on_zero',
13139         'Leave transaction open when long-overdue balance equals zero.  ' ||
13140             'This leaves the lost copy on the patron record when it is paid',
13141         'coust',
13142         'description'
13143     )
13144 ), (
13145     'circ.longoverdue.use_last_activity_date_on_return',
13146     'circ', 'bool',
13147     oils_i18n_gettext(
13148         'circ.longoverdue.use_last_activity_date_on_return',
13149         'Long-Overdue Check-In Interval Uses Last Activity Date',
13150         'coust',
13151         'label'
13152     ),
13153     oils_i18n_gettext(
13154         'circ.longoverdue.use_last_activity_date_on_return',
13155         'Use the long-overdue last-activity date instead of the due_date to ' ||
13156             'determine whether the item has been checked out too long to ' ||
13157             'perform long-overdue check-in processing.  If set, the system ' ||
13158             'will first check the last payment time, followed by the last ' ||
13159             'billing time, followed by the due date.  See also ' ||
13160             'circ.max_accept_return_of_longoverdue',
13161         'coust',
13162         'description'
13163     )
13164 );
13165
13166 -- mark long-overdue reactor
13167
13168 INSERT INTO action_trigger.reactor (module, description) VALUES
13169 (   'MarkItemLongOverdue',
13170     oils_i18n_gettext(
13171         'MarkItemLongOverdue',
13172         'Marks a circulating item as long-overdue and applies configured ' ||
13173         'penalties.  Also creates events for the longoverdue.auto hook',
13174         'atreact',
13175         'description'
13176     )
13177 );
13178
13179 INSERT INTO action_trigger.validator (module, description) VALUES (
13180     'PatronNotInCollections', 
13181     'Event is valid if the linked patron is not in collections processing ' ||
13182         'at the context org unit'
13183 );
13184
13185 INSERT INTO action_trigger.event_definition 
13186     (id, active, owner, name, hook, validator, reactor, delay, delay_field) 
13187 VALUES (
13188     49, FALSE, 1, '6 Month Overdue Mark Long-Overdue', 
13189     'checkout.due', 'PatronNotInCollections', 
13190     'MarkItemLongOverdue', '6 months', 'due_date'
13191 );
13192
13193 INSERT INTO action_trigger.event_params (event_def, param, value) VALUES
13194     (49, 'editor', '''1''');
13195
13196 -- new longoverdue and longervdue.auto hook.
13197
13198 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
13199     'longoverdue',
13200     'circ',
13201     'Circulating Item marked long-overdue'
13202 );
13203
13204 INSERT INTO action_trigger.hook (key,core_type,description) VALUES (
13205     'longoverdue.auto',
13206     'circ',
13207     'Circulating Item automatically marked long-overdue'
13208 );
13209
13210 -- sample longoverdue.auto notification reactor
13211
13212 INSERT INTO action_trigger.event_definition 
13213     (id, active, owner, name, hook, validator, reactor, group_field, template) 
13214     VALUES (
13215         50, FALSE, 1, '6 Month Long Overdue Notice', 
13216         'longoverdue.auto', 'NOOP_True', 'SendEmail', 'usr',
13217 $$
13218 [%- USE date -%]
13219 [%- user = target.0.usr -%]
13220 To: [%- params.recipient_email || user.email %]
13221 From: [%- params.sender_email || default_sender %]
13222 Subject: Overdue Items Marked Long Overdue
13223
13224 Dear [% user.family_name %], [% user.first_given_name %]
13225 The following items are 6 months overdue and have been marked Long Overdue.
13226
13227 [% FOR circ IN target %]
13228     [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
13229     Title: [% copy_details.title %], by [% copy_details.author %]
13230     Call Number: [% circ.target_copy.call_number.label %]
13231     Shelving Location: [% circ.target_copy.location.name %]
13232     Barcode: [% circ.target_copy.barcode %]
13233     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
13234     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
13235     Total Owed For Transaction: [% circ.billable_transaction.summary.balance_owed %]
13236     Library: [% circ.circ_lib.name %]
13237
13238 [% END %]
13239 $$);
13240
13241 -- ENV for above
13242
13243 INSERT INTO action_trigger.environment (event_def, path) VALUES 
13244     (50, 'target_copy.call_number'),
13245     (50, 'usr'),
13246     (50, 'billable_transaction.summary'),
13247     (50, 'circ_lib.billing_address'),
13248     (50, 'target_copy.location');
13249
13250 -- OUS's for patron self-reg
13251 INSERT INTO config.org_unit_setting_type
13252     (name, grp, datatype, label, description)
13253 VALUES (
13254     'opac.allow_pending_user',
13255     'opac',
13256     'bool',
13257     oils_i18n_gettext(
13258         'opac.allow_pending_user',
13259         'Allow Patron Self-Registration',
13260         'coust',
13261         'label'
13262     ),
13263     oils_i18n_gettext(
13264         'opac.allow_pending_user',
13265         'Allow patrons to self-register, creating pending user accounts',
13266         'coust',
13267         'description'
13268     )
13269 ), (
13270     'opac.pending_user_expire_interval',
13271     'opac',
13272     'interval',
13273     oils_i18n_gettext(
13274         'opac.pending_user_expire_interval',
13275         'Patron Self-Reg. Expire Interval',
13276         'coust',
13277         'label'
13278     ),
13279     oils_i18n_gettext(
13280         'opac.pending_user_expire_interval',
13281         'If set, this is the amount of time a pending user account will ' ||
13282         'be allowed to sit in the database.  After this time, the pending ' ||
13283         'user information will be purged',
13284         'coust',
13285         'description'
13286     )
13287 ), (
13288     'ui.patron.edit.aua.county.show',
13289     'gui',
13290     'bool',
13291     oils_i18n_gettext(
13292         'ui.patron.edit.aua.county.require',
13293         'Show county field on patron registration',
13294         'coust',
13295         'label'
13296     ),
13297     oils_i18n_gettext(
13298         'ui.patron.edit.aua.county.require',
13299         'The county field will be shown on the patron registration screen',
13300         'coust',
13301         'description'
13302     )
13303 );
13304
13305 -- vandelay item import defaults
13306 INSERT INTO config.org_unit_setting_type
13307     (grp, name, label, description, datatype, fm_class)
13308 VALUES (
13309     'vandelay',
13310     'vandelay.item.barcode.auto',
13311     oils_i18n_gettext(
13312         'vandelay.item.barcode.auto',
13313         'Vandelay Generate Default Barcodes',
13314         'coust', 'label'),
13315     oils_i18n_gettext(
13316         'vandelay.item.barcode.auto',
13317         'Auto-generate deault item barcodes when no item barcode is present',
13318         'coust', 'label'),
13319     'bool',
13320     NULL
13321 ), (
13322     'vandelay',
13323     'vandelay.item.barcode.prefix',
13324     oils_i18n_gettext(
13325         'vandelay.item.barcode.prefix',
13326         'Vandelay Default Barcode Prefix',
13327         'coust', 'label'),
13328     oils_i18n_gettext(
13329         'vandelay.item.barcode.prefix',
13330         'Apply this prefix to any auto-generated item barcodes',
13331         'coust', 'label'),
13332     'string',
13333     NULL
13334 ), (
13335     'vandelay',
13336     'vandelay.item.call_number.auto',
13337     oils_i18n_gettext(
13338         'vandelay.item.call_number.auto',
13339         'Vandelay Generate Default Call Numbers',
13340         'coust', 'label'),
13341     oils_i18n_gettext(
13342         'vandelay.item.call_number.auto',
13343         'Auto-generate default item call numbers when no item call number is present',
13344         'coust', 'label'),
13345     'bool',
13346     NULL
13347 ), (
13348     'vandelay',
13349     'vandelay.item.call_number.prefix',
13350     oils_i18n_gettext(
13351         'vandelay.item.call_number.prefix',
13352         'Vandelay Default Call Number Prefix',
13353         'coust', 'label'),
13354     oils_i18n_gettext(
13355         'vandelay.item.call_number.prefix',
13356         'Apply this prefix to any auto-generated item call numbers',
13357         'coust', 'label'),
13358     'string',
13359     NULL
13360 ), (
13361     'vandelay',
13362     'vandelay.item.copy_location.default',
13363     oils_i18n_gettext(
13364         'vandelay.item.copy_location.default',
13365         'Vandelay Default Copy Location',
13366         'coust', 'label'),
13367     oils_i18n_gettext(
13368         'vandelay.item.copy_location.default',
13369         'Default copy location value for imported items',
13370         'coust', 'label'),
13371     'link',
13372     'acpl'
13373 ), (
13374     'vandelay',
13375     'vandelay.item.circ_modifier.default',
13376     oils_i18n_gettext(
13377         'vandelay.item.circ_modifier.default',
13378         'Vandelay Default Circulation Modifier',
13379         'coust', 'label'),
13380     oils_i18n_gettext(
13381         'vandelay.item.circ_modifier.default',
13382         'Default circulation modifier value for imported items',
13383         'coust', 'label'),
13384     'link',
13385     'ccm'
13386 );
13387
13388
13389 INSERT into config.org_unit_setting_type 
13390     (name, grp, label, description, datatype)
13391 VALUES ( 
13392     'opac.holds.org_unit_not_pickup_lib', 
13393     'opac',
13394     oils_i18n_gettext('opac.holds.org_unit_not_pickup_lib',
13395         'OPAC: Org Unit is not a hold pickup library',
13396         'coust', 'label'),
13397     oils_i18n_gettext('opac.holds.org_unit_not_pickup_lib',
13398         'If set, this org unit will not be offered to the patron as an '||
13399         'option for a hold pickup location.  This setting has no affect '||
13400         'on searching or hold targeting',
13401         'coust', 'description'),
13402     'bool'
13403 );
13404
13405
13406 INSERT INTO config.standing_penalty
13407     (id, name, label, block_list, staff_alert)
13408 VALUES (
13409     35,
13410     'PATRON_EXCEEDS_LONGOVERDUE_COUNT',
13411     oils_i18n_gettext(
13412         35,
13413         'Patron Exceeds Max Long-Overdue Threshold',
13414         'csp',
13415         'label'
13416     ),
13417     'CIRC|FULFILL|HOLD|CAPTURE|RENEW',
13418     TRUE
13419 );
13420
13421
13422 INSERT INTO config.org_unit_setting_type
13423     (name, grp, datatype, label, description)
13424 VALUES (
13425     'opac.self_register.timeout',
13426     'opac',
13427     'integer',
13428     oils_i18n_gettext(
13429         'opac.self_register.timeout',
13430         'Patron Self-Reg. Display Timeout',
13431         'coust',
13432         'label'
13433     ),
13434     oils_i18n_gettext(
13435         'opac.self_register.timeout',
13436         'Number of seconds to wait before reloading the patron self-'||
13437         'registration interface to clear sensitive data',
13438         'coust',
13439         'description'
13440     )
13441 );
13442
13443
13444 INSERT INTO config.org_unit_setting_type 
13445     (name, grp, datatype, label, description)
13446 VALUES (
13447     'ui.circ.items_out.longoverdue', 'gui', 'integer',
13448     oils_i18n_gettext(
13449         'ui.circ.items_out.longoverdue',
13450         'Items Out Long-Overdue display setting',
13451         'coust',
13452         'label'
13453     ),
13454     oils_i18n_gettext(
13455         'ui.circ.items_out.longoverdue',
13456 'Value is a numeric code, describing which list the circulation '||
13457 'should appear while checked out and whether the circulation should '||
13458 'continue to appear in the bottom list, when checked in with '||
13459 'oustanding fines.  '||
13460 '1 = top list, bottom list.  2 = bottom list, bottom list.  ' ||
13461 '5 = top list, do not display.  6 = bottom list, do not display.',
13462         'coust',
13463         'description'
13464     )
13465 ), (
13466     'ui.circ.items_out.lost', 'gui', 'integer',
13467     oils_i18n_gettext(
13468         'ui.circ.items_out.lost',
13469         'Items Out Lost display setting',
13470         'coust',
13471         'label'
13472     ),
13473     oils_i18n_gettext(
13474         'ui.circ.items_out.lost',
13475 'Value is a numeric code, describing which list the circulation '||
13476 'should appear while checked out and whether the circulation should '||
13477 'continue to appear in the bottom list, when checked in with '||
13478 'oustanding fines.  '||
13479 '1 = top list, bottom list.  2 = bottom list, bottom list.  ' ||
13480 '5 = top list, do not display.  6 = bottom list, do not display.',
13481         'coust',
13482         'description'
13483     )
13484 ), (
13485     'ui.circ.items_out.claimsreturned', 'gui', 'integer',
13486     oils_i18n_gettext(
13487         'ui.circ.items_out.claimsreturned',
13488         'Items Out Claims Returned display setting',
13489         'coust',
13490         'label'
13491     ),
13492     oils_i18n_gettext(
13493         'ui.circ.items_out.claimsreturned',
13494 'Value is a numeric code, describing which list the circulation '||
13495 'should appear while checked out and whether the circulation should '||
13496 'continue to appear in the bottom list, when checked in with '||
13497 'oustanding fines.  '||
13498 '1 = top list, bottom list.  2 = bottom list, bottom list.  ' ||
13499 '5 = top list, do not display.  6 = bottom list, do not display.',
13500         'coust',
13501         'description'
13502     )
13503 );
13504