<field reporter:label="SVF Attributes" name="attrs" oils_persist:virtual="true" reporter:datatype="link"/>
<field reporter:label="MVF Attributes" name="mattrs" oils_persist:virtual="true" reporter:datatype="link"/>
<field reporter:label="Display Fields" name="display_entries" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Flat Display Fields" name="flat_display_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Flat Display Entries" name="flat_display_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Compressed Display Entries" name="compressed_display_entries" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Wide Display Entries" name="wide_display_entry" oils_persist:virtual="true" reporter:datatype="link"/>
</fields>
<links>
<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
<link field="source" reltype="has_a" key="id" map="" class="cbs"/>
<link field="display_entries" reltype="has_many" key="source" map="" class="mde"/>
<link field="flat_display_entries" reltype="has_many" key="source" map="" class="mfde"/>
+ <link field="compressed_display_entries" reltype="has_many" key="source" map="" class="mcde"/>
+ <link field="wide_display_entry" reltype="might_have" key="source" map="" class="mwde"/>
</links>
<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
<actions>
oils_persist:field_safe="true"
reporter:label="Wide Display Entry"
oils_persist:readonly="true">
- <fields>
- <field name="source" reporter:datatype="id" />
- <field name="title" reporter:datatype="text"/>
- <field name="author" reporter:datatype="text"/>
- <field name="subject" reporter:datatype="text"/>
- <field name="topic_subject" reporter:datatype="text"/>
+ <fields oils_persist:primary="source">
+ <field name="source" reporter:label="Record ID" reporter:datatype="id" />
+ <field name="title" reporter:label="Title" reporter:datatype="text"/>
+ <field name="author" reporter:label="Author" reporter:datatype="text"/>
+ <field name="subject" reporter:label="Subject" reporter:datatype="text"/>
+ <field name="topic_subject" reporter:label="Topic Subject" reporter:datatype="text"/>
+ <field name="isbn" reporter:label="ISBN" reporter:datatype="text"/>
<!-- TODO add all well-known fields -->
</fields>
<links>
-- TODO: expand to encompass all well-known fields
CREATE VIEW metabib.wide_display_entry AS
SELECT
- mcde.source,
- mcde_title.value AS title,
- mcde_author.value AS author,
- mcde_subject.value AS subject,
- mcde_topic_subject.value AS topic_subject
- FROM metabib.compressed_display_entry mcde
+ bre.id AS source,
+ COALESCE(mcde_title.value, 'null') AS title,
+ COALESCE(mcde_author.value, 'null') AS author,
+ COALESCE(mcde_subject.value, 'null') AS subject,
+ COALESCE(mcde_topic_subject.value, 'null') AS topic_subject,
+ COALESCE(mcde_isbn.value, 'null') AS isbn
+ -- ensure one row per bre regardless of any display fields
+ FROM biblio.record_entry bre
LEFT JOIN metabib.compressed_display_entry mcde_title
- ON (mcde.source = mcde_title.source AND mcde_title.name = 'title')
+ ON (bre.id = mcde_title.source AND mcde_title.name = 'title')
LEFT JOIN metabib.compressed_display_entry mcde_author
- ON (mcde.source = mcde_author.source AND mcde_author.name = 'author')
+ ON (bre.id = mcde_author.source AND mcde_author.name = 'author')
LEFT JOIN metabib.compressed_display_entry mcde_subject
- ON (mcde.source = mcde_subject.source AND mcde_subject.name = 'subject')
+ ON (bre.id = mcde_subject.source AND mcde_subject.name = 'subject')
LEFT JOIN metabib.compressed_display_entry mcde_topic_subject
- ON (mcde.source = mcde_topic_subject.source AND mcde_topic_subject.name = 'topic_subject')
+ ON (bre.id = mcde_topic_subject.source AND mcde_topic_subject.name = 'topic_subject')
+ LEFT JOIN metabib.compressed_display_entry mcde_isbn
+ ON (bre.id = mcde_isbn.source AND mcde_isbn.name = 'isbn')
;
'//mods32:mods/mods32:subject'),
(40, 'subject', 'display|topic_subject', 'mods32', TRUE, FALSE, FALSE,
oils_i18n_gettext(40, 'Subject', 'cmf', 'label'),
- '//mods32:mods/mods32:subject/mods32:topic')
+ '//mods32:mods/mods32:subject/mods32:topic'),
+ (41, 'identifier', 'display|isbn', 'marcxml', TRUE, FALSE, FALSE,
+ oils_i18n_gettext(41, 'ISBN', 'cmf', 'label'),
+ $$//marc:datafield[@tag='020']/marc:subfield[@code='a' or @code='z']$$)
+
;
INSERT INTO config.display_field_map (name, field, multi) VALUES
('title', 37, FALSE),
('author', 38, FALSE),
('subject', 39, TRUE),
- ('topic_subject', 40, TRUE)
+ ('topic_subject', 40, TRUE),
+ ('isbn', 41, TRUE)
;
COMMIT;