LP#1053397 MR holds seed data collab/miker/lp1053397-tpac-metarecords-plus-composite
authorBill Erickson <berick@esilibrary.com>
Thu, 6 Feb 2014 16:32:43 +0000 (11:32 -0500)
committerBill Erickson <berick@esilibrary.com>
Thu, 6 Feb 2014 16:33:52 +0000 (11:33 -0500)
* move seed data to separate file
* use subset of icon_format coded values for MR hold format

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/sql/Pg/upgrade/ZZZZ.schema.unapi-mmr.sql
Open-ILS/src/sql/Pg/upgrade/ZZZZZ.data.mmr-holds-formats.sql [new file with mode: 0644]

index 7adc24d..f352f5f 100644 (file)
@@ -484,91 +484,5 @@ CREATE OR REPLACE FUNCTION evergreen.located_uris ( bibid BIGINT, ouid INT, pref
     RETURNS TABLE (id BIGINT, name TEXT, label_sortkey TEXT, rank INT)
     AS $$ SELECT * FROM evergreen.located_uris(ARRAY[$1],$2,$3) $$ LANGUAGE SQL STABLE;
 
--- SEED DATA ---------------------------------------------------------------
-
-INSERT INTO config.global_flag (name, label, value, enabled) VALUES (
-    'opac.metarecord.holds.format_attr', 
-    oils_i18n_gettext(
-        'opac.metarecord.holds.format_attr',
-        'OPAC Metarecord Hold Formats Attribute', 
-        'cgf',
-        'label'
-    ),
-    'icon_format', 
-    TRUE
-);
-
-INSERT INTO config.record_attr_definition 
-    (name, label, multi, filter, composite) 
-VALUES (
-    'metarecord_hold_format', 
-    oils_i18n_gettext(
-        'metarecord_hold_format',
-        'Metarecord Hold Formats', 
-        'crad',
-        'label'
-    ),
-    TRUE, TRUE, TRUE
-);
-
--- these formats are take verbatim from the JSPAC MR hold format selector
-
--- 587 is where the composite icon attrs leave off
-
-/*
-INSERT INTO config.coded_value_map 
-    (id, ctype, code, value, search_label) VALUES 
-(588, 'metarecord_hold_format', 'book', 
-    oils_i18n_gettext(588, 'Books', 'ccvm', 'value'),
-    oils_i18n_gettext(588, 'Books', 'ccvm', 'search_label'));
-(589, 'metarecord_hold_format', 'ebook', 
-    oils_i18n_gettext(588, 'Books', 'ccvm', 'value'),
-    oils_i18n_gettext(588, 'Books', 'ccvm', 'search_label'));
-
-(589, 'metarecord_hold_format', 'lpbook', 'Large Print Books','Large Print Books'),
-(590, 'metarecord_hold_format', 'ebook', 'E-Books', 'E-Books'),
-(592, 'metarecord_hold_format', 'audiobook', 'Audiobooks', 'Audiobooks'),
-(593, 'metarecord_hold_format', 'video', 'Video Recordings', 'Video Recordings'),
-(594, 'metarecord_hold_format', 'music', 'Music', 'Music');
-
-INSERT INTO config.composite_attr_entry_definition (coded_value, definition)
-SELECT ccvm.id, 
-'[{"_attr":"item_type","_val":"a"},{"_attr":"item_type","_val":"t"}]'
-FROM config.coded_value_map ccvm
-WHERE ccvm.ctype = 'metarecord_hold_format' AND ccvm.code = 'book';
-
-
-INSERT INTO config.composite_attr_entry_definition (coded_value, definition)
-
-INSERT INTO config.composite_attr_entry_definition (coded_value, definition)
-SELECT ccvm.id, 
-'[{"_attr":"item_type","_val":"a"},{"_attr":"item_type","_val":"t"},{"_attr":"item_form","_val":"d"}]'
-FROM config.coded_value_map ccvm
-WHERE ccvm.ctype = 'metarecord_hold_format' AND ccvm.code = 'large_print_book';
-
-INSERT INTO config.composite_attr_entry_definition (coded_value, definition)
-SELECT ccvm.id, 
-'[{"_attr":"item_type","_val":"a"},{"_attr":"item_type","_val":"t"},{"_attr":"item_form","_val":"s"}]'
-FROM config.coded_value_map ccvm
-WHERE ccvm.ctype = 'metarecord_hold_format' AND ccvm.code = 'e-book';
-
-INSERT INTO config.composite_attr_entry_definition (coded_value, definition)
-SELECT ccvm.id, '{"_attr":"item_type","_val":"i"}'
-FROM config.coded_value_map ccvm
-WHERE ccvm.ctype = 'metarecord_hold_format' AND ccvm.code = 'audiobook';
-
-INSERT INTO config.composite_attr_entry_definition (coded_value, definition)
-SELECT ccvm.id, '{"_attr":"item_type","_val":"g"}'
-FROM config.coded_value_map ccvm
-WHERE ccvm.ctype = 'metarecord_hold_format' AND ccvm.code = 'video_recording';
-
-INSERT INTO config.composite_attr_entry_definition (coded_value, definition)
-SELECT ccvm.id, '{"_attr":"item_type","_val":"j"}'
-FROM config.coded_value_map ccvm
-WHERE ccvm.ctype = 'metarecord_hold_format' AND ccvm.code = 'music';
-
-*/
-
-
 COMMIT;
 
diff --git a/Open-ILS/src/sql/Pg/upgrade/ZZZZZ.data.mmr-holds-formats.sql b/Open-ILS/src/sql/Pg/upgrade/ZZZZZ.data.mmr-holds-formats.sql
new file mode 100644 (file)
index 0000000..690d919
--- /dev/null
@@ -0,0 +1,116 @@
+BEGIN;
+
+INSERT INTO config.global_flag (name, label, value, enabled) VALUES (
+    'opac.metarecord.holds.format_attr', 
+    oils_i18n_gettext(
+        'opac.metarecord.holds.format_attr',
+        'OPAC Metarecord Hold Formats Attribute', 
+        'cgf',
+        'label'
+    ),
+    'mr_hold_format', 
+    TRUE
+);
+
+INSERT INTO config.record_attr_definition 
+    (name, label, multi, filter, composite) 
+VALUES (
+    'mr_hold_format', 
+    oils_i18n_gettext(
+        'mr_hold_format',
+        'Metarecord Hold Formats', 
+        'crad',
+        'label'
+    ),
+    TRUE, TRUE, TRUE
+);
+
+-- these formats are a subset of the "icon_format" attribute,
+-- modified to exclude electronic resources, which are not holdable
+
+-- for i18n purposes, these have to be listed individually
+INSERT INTO config.coded_value_map
+    (id, ctype, code, value, search_label) VALUES 
+(588, 'mr_hold_format', 'book', 
+    oils_i18n_gettext(588, 'Book', 'ccvm', 'value'),
+    oils_i18n_gettext(588, 'Book', 'ccvm', 'search_label')),
+(589, 'mr_hold_format', 'braille', 
+    oils_i18n_gettext(589, 'Braille', 'ccvm', 'value'),
+    oils_i18n_gettext(589, 'Braille', 'ccvm', 'search_label')),
+(590, 'mr_hold_format', 'software', 
+    oils_i18n_gettext(590, 'Software and video games', 'ccvm', 'value'),
+    oils_i18n_gettext(590, 'Software and video games', 'ccvm', 'search_label')),
+(591, 'mr_hold_format', 'dvd', 
+    oils_i18n_gettext(591, 'DVD', 'ccvm', 'value'),
+    oils_i18n_gettext(591, 'DVD', 'ccvm', 'search_label')),
+(592, 'mr_hold_format', 'kit', 
+    oils_i18n_gettext(592, 'Kit', 'ccvm', 'value'),
+    oils_i18n_gettext(592, 'Kit', 'ccvm', 'search_label')),
+(593, 'mr_hold_format', 'map', 
+    oils_i18n_gettext(593, 'Map', 'ccvm', 'value'),
+    oils_i18n_gettext(593, 'Map', 'ccvm', 'search_label')),
+(594, 'mr_hold_format', 'microform', 
+    oils_i18n_gettext(594, 'Microform', 'ccvm', 'value'),
+    oils_i18n_gettext(594, 'Microform', 'ccvm', 'search_label')),
+(595, 'mr_hold_format', 'score', 
+    oils_i18n_gettext(595, 'Music Score', 'ccvm', 'value'),
+    oils_i18n_gettext(595, 'Music Score', 'ccvm', 'search_label')),
+(596, 'mr_hold_format', 'picture', 
+    oils_i18n_gettext(596, 'Picture', 'ccvm', 'value'),
+    oils_i18n_gettext(596, 'Picture', 'ccvm', 'search_label')),
+(597, 'mr_hold_format', 'equip', 
+    oils_i18n_gettext(597, 'Equipment, games, toys', 'ccvm', 'value'),
+    oils_i18n_gettext(597, 'Equipment, games, toys', 'ccvm', 'search_label')),
+(598, 'mr_hold_format', 'serial', 
+    oils_i18n_gettext(598, 'Serials and magazines', 'ccvm', 'value'),
+    oils_i18n_gettext(598, 'Serials and magazines', 'ccvm', 'search_label')),
+(599, 'mr_hold_format', 'vhs', 
+    oils_i18n_gettext(599, 'VHS', 'ccvm', 'value'),
+    oils_i18n_gettext(599, 'VHS', 'ccvm', 'search_label')),
+(600, 'mr_hold_format', 'cdaudiobook', 
+    oils_i18n_gettext(600, 'CD Audiobook', 'ccvm', 'value'),
+    oils_i18n_gettext(600, 'CD Audiobook', 'ccvm', 'search_label')),
+(601, 'mr_hold_format', 'cdmusic', 
+    oils_i18n_gettext(601, 'CD Music recording', 'ccvm', 'value'),
+    oils_i18n_gettext(601, 'CD Music recording', 'ccvm', 'search_label')),
+(602, 'mr_hold_format', 'casaudiobook', 
+    oils_i18n_gettext(602, 'Cassette audiobook', 'ccvm', 'value'),
+    oils_i18n_gettext(602, 'Cassette audiobook', 'ccvm', 'search_label')),
+(603, 'mr_hold_format', 'casmusic',
+    oils_i18n_gettext(603, 'Audiocassette music recording', 'ccvm', 'value'),
+    oils_i18n_gettext(603, 'Audiocassette music recording', 'ccvm', 'search_label')),
+(604, 'mr_hold_format', 'phonospoken', 
+    oils_i18n_gettext(604, 'Phonograph spoken recording', 'ccvm', 'value'),
+    oils_i18n_gettext(604, 'Phonograph spoken recording', 'ccvm', 'search_label')),
+(605, 'mr_hold_format', 'phonomusic', 
+    oils_i18n_gettext(605, 'Phonograph music recording', 'ccvm', 'value'),
+    oils_i18n_gettext(605, 'Phonograph music recording', 'ccvm', 'search_label')),
+(606, 'mr_hold_format', 'lpbook', 
+    oils_i18n_gettext(606, 'Large Print Book', 'ccvm', 'value'),
+    oils_i18n_gettext(606, 'Large Print Book', 'ccvm', 'search_label'))
+;
+
+-- but we can auto-generate the composite definitions
+
+DO $$
+    DECLARE format TEXT;
+BEGIN
+    FOR format IN SELECT UNNEST(
+        '{book,braille,software,dvd,kit,map,microform,score,picture,equip,serial,vhs,cdaudiobook,cdmusic,casaudiobook,casmusic,phonospoken,phonomusic,lpbook}'::text[]) LOOP
+
+        INSERT INTO config.composite_attr_entry_definition 
+            (coded_value, definition) VALUES
+            (
+                -- get the ID from the new ccvm above
+                (SELECT id FROM config.coded_value_map 
+                    WHERE code = format AND ctype = 'mr_hold_format'),
+                -- get the def of the matching ccvm attached to the icon_format attr
+                (SELECT definition FROM config.composite_attr_entry_definition ccaed
+                    JOIN config.coded_value_map ccvm ON (ccaed.coded_value = ccvm.id)
+                    WHERE ccvm.ctype = 'icon_format' AND ccvm.code = format)
+            );
+    END LOOP; 
+END $$;
+
+COMMIT;
+