LP#1744385: Additional seed data and display field use in the OPAC
authorMike Rylander <mrylander@gmail.com>
Fri, 12 Jan 2018 20:24:12 +0000 (15:24 -0500)
committerDan Wells <dbw2@calvin.edu>
Wed, 28 Feb 2018 21:18:35 +0000 (16:18 -0500)
... and teach subjects.tt2 how to search with a facet in HL mode (for genre)

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Open-ILS/src/sql/Pg/upgrade/XXXX.data.display-field-seed-data.sql
Open-ILS/src/sql/Pg/upgrade/YYYY.data.virtual_index_defs.sql
Open-ILS/src/templates/opac/parts/record/contents.tt2
Open-ILS/src/templates/opac/parts/record/subjects.tt2

index 6b1788b..b44afd4 100644 (file)
@@ -4,6 +4,8 @@ BEGIN;
 
 -- NEW config.metabib_field entries
 
+UPDATE config.metabib_field SET display_xpath = facet_xpath, display_field = TRUE WHERE id = 33;
+
 INSERT INTO config.metabib_field (id, field_class, name, 
     label, xpath, display_field, search_field, browse_field)
 VALUES (
@@ -67,6 +69,36 @@ VALUES (
     TRUE, FALSE, FALSE
 );
 
+INSERT INTO config.metabib_field (id, field_class, name, 
+    label, xpath, display_field, search_field, browse_field)
+VALUES (
+    46, 'keyword', 'bibliography', 
+    oils_i18n_gettext(46, 'Bibliography', 'cmf', 'label'),
+    $$//mods33:note[@type='bibliography']$$,
+    TRUE, TRUE, FALSE
+),(
+    47, 'keyword', 'thesis', 
+    oils_i18n_gettext(47, 'Thesis', 'cmf', 'label'),
+    $$//mods33:note[@type='thesis']$$,
+    TRUE, TRUE, FALSE
+),(
+    48, 'keyword', 'production_credits', 
+    oils_i18n_gettext(48, 'Creation/Production Credits', 'cmf', 'label'),
+    $$//mods33:note[@type='creation/production credits']$$,
+    TRUE, TRUE, FALSE
+),(
+    49, 'keyword', 'performers', 
+    oils_i18n_gettext(49, 'Performers', 'cmf', 'label'),
+    $$//mods33:note[@type='performers']$$,
+    TRUE, TRUE, FALSE
+),(
+    50, 'keyword', 'general_note', 
+    oils_i18n_gettext(50, 'General Note', 'cmf', 'label'),
+    $$//mods33:note[not(@type)]$$,
+    TRUE, TRUE, FALSE
+)
+;
+
 
 -- Modify existing config.metabib_field entries
 
index 65e67ed..1618350 100644 (file)
@@ -8,7 +8,8 @@ INSERT INTO config.metabib_field_virtual_map (real, virtual)
             45
       FROM  config.metabib_field
       WHERE search_field
-            AND id NOT IN (15, 45);
+            AND id NOT IN (15, 45)
+            AND id NOT IN (SELECT real FROM config.metabib_field_virtual_map);
 
 UPDATE config.metabib_field SET xpath=$$//mods32:mods/mods32:subject[not(descendant::mods32:geographicCode)]$$ WHERE id = 16;
 
index 4f7897e..87057dc 100644 (file)
@@ -1,15 +1,18 @@
 [%-
 contents =  [
     {
+        display_field => 'general_note',
         label => l('General Note: '),
         xpath => '//*[@tag="500"]'
     }, {
         label => l('With Note: '),
         xpath => '//*[@tag="501"]'
     }, {
+        display_field => 'thesis',
         label => l('Dissertation Note: '),
         xpath => '//*[@tag="502"]'
     }, {
+        display_field => 'bibliography',
         label => l('Bibliography, etc. Note: '),
         xpath => '//*[@tag="504"]'
     }, {
@@ -23,12 +26,14 @@ contents =  [
         label => l('Scale Note for Graphic Material: '),
         xpath => '//*[@tag="507"]'
     }, {
+        display_field => 'production_credits',
         label => l('Creation/Production Credits Note: '),
         xpath => '//*[@tag="508"]'
     }, {
         label => l('Citation/References Note: '),
         xpath => '//*[@tag="510"]'
     }, {
+        display_field => 'performers',
         label => l('Participant or Performer Note: '),
         xpath => '//*[@tag="511"]'
     }, {
@@ -187,7 +192,7 @@ BLOCK render_all_contents;
         content = '';
         df = cont.display_field;
         IF df AND attrs.hl.$df.size;
-            content = attrs.hl.$df.join('<br/>');
+            content = '<!-- highlighted -->' _ attrs.hl.$df.join('<br/>');
         ELSE;
             content = PROCESS render_contents(xpath=cont.xpath);
         END;
index ad02856..73ae64f 100644 (file)
@@ -5,6 +5,7 @@
             label => l('Subject: '),
             xpath => '//*[@tag="600" or @tag="610" or @tag="611" or @tag="630" or @tag="650" or @tag="651"]'
         }, {
+            display_field => 'genre',
             label => l('Genre: '),
             facet => 'identifier|genre',
             joiner => ' -- ',
     END;
 
     BLOCK render_hl_subject;
-        '<span property="about">';
+        total_term = s.value;
+        IF s.facet;
+            total_term = s.facet _ '[' _ s.value _ ']';
+        END;
+
+        '<span property="about"><!-- highlighted -->';
         %]<a href="[%-
-               mkurl(ctx.opac_root _ '/results', {qtype=>'subject', query=>s.value}, stop_parms.merge(expert_search_parms, general_search_parms, browse_search_parms, facet_search_parms))
+               mkurl(ctx.opac_root _ '/results', {qtype=>'subject', query=>total_term}, stop_parms.merge(expert_search_parms, general_search_parms, browse_search_parms, facet_search_parms))
         -%]">[% s.highlight %]</a> [%-
         '</span>';
     END;
         IF df AND attrs.hl_display_fields.$df.size;
             content = [];
             FOREACH hl_s IN attrs.hl_display_fields.$df;
+                hl_s.facet = subj.facet;
                 next_s = PROCESS render_hl_subject(s=hl_s);
                 content.push(next_s);
             END;