Skip to content

Commit

Permalink
Merge pull request #736 from sul-dlss/t714-collection2
Browse files Browse the repository at this point in the history
Adds items in this collection section.
  • Loading branch information
justinlittman authored Oct 30, 2023
2 parents 2feac30 + bd7fce1 commit b99ed1d
Show file tree
Hide file tree
Showing 11 changed files with 316 additions and 1 deletion.
4 changes: 4 additions & 0 deletions app/models/public_xml.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,8 @@ def relations(predicate)
node.attribute('resource').text.split('/', 2).last.split(':', 2).last
end
end

def object_type
document.root.at_xpath('identityMetadata/objectType')&.text
end
end
6 changes: 5 additions & 1 deletion app/models/purl_resource.rb
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ def containing_purl_collections
end.compact
end

delegate :rights_metadata, to: :public_xml
delegate :rights_metadata, :object_type, to: :public_xml

def content_metadata
@content_metadata ||= ContentMetadata.new(public_xml.content_metadata)
Expand Down Expand Up @@ -121,6 +121,10 @@ def iiif3_manifest
@iiif3_manifest ||= Iiif3PresentationManifest.new(self)
end

def collection?
object_type == 'collection'
end

concerning :Metadata do
def title
if mods?
Expand Down
10 changes: 10 additions & 0 deletions app/views/purl/_collection_items.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<% if document.collection? && document.folio_instance_hrid %>
<div class="section">
<div class="section-heading">
<h2>Items in collection</h2>
</div>
<div class="section-body">
<%= link_to 'View items in this collection in SearchWorks', "#{Settings.searchworks.url}/catalog?f[collection][]=#{document.folio_instance_hrid}" %>
</div>
</div>
<% end %>
1 change: 1 addition & 0 deletions app/views/purl/_mods_metadata_sections.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@
<%= render "mods_bibliographic", document: document %>
<%= render "mods_contact", document: document %>
<%= render "collection", document: document %>
<%= render "collection_items", document: document %>
<%= render "find_it", document: document %>
32 changes: 32 additions & 0 deletions spec/fixtures/document_cache/bb/631/ry/3167/mods
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink" version="3.7" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-7.xsd">
<titleInfo usage="primary">
<title>Native American Alumni Oral Histories</title>
</titleInfo>
<typeOfResource manuscript="yes" collection="yes">mixed material</typeOfResource>
<language>
<languageTerm authority="iso639-2b" type="code">eng</languageTerm>
</language>
<originInfo>
<place>
<placeTerm authority="marccountry" type="code">cau</placeTerm>
</place>
<issuance>monographic</issuance>
</originInfo>
<location>
<url usage="primary display">https://purl.stanford.edu/bb631ry3167</url>
</location>
<location>
<physicalLocation>Dept. of Special Collections and University Archives Stanford University Libraries Stanford, CA 94305</physicalLocation>
</location>
<recordInfo>
<recordContentSource authority="marcorg">CSt</recordContentSource>
<descriptionStandard>aacr</descriptionStandard>
<descriptionStandard>dacs</descriptionStandard>
<recordOrigin>Converted from MARCXML to MODS version 3.7 using MARC21slim2MODS3-7_SDR_v2-5.xsl (SUL 3.7 version 2.5 20210421; LC Revision 1.140 20200717)</recordOrigin>
<recordCreationDate encoding="marc">210811</recordCreationDate>
<recordIdentifier source="SIRSI">a13965062</recordIdentifier>
</recordInfo>
<accessCondition type="useAndReproduction">The materials are open for research use and may be used freely for non-commercial purposes with an attribution. For commercial permission requests, please contact the Stanford University Archives ([email protected]).</accessCondition>
<accessCondition type="copyright">Copyright (c) The Board of Trustees of the Leland Stanford Junior University. All rights reserved.</accessCondition>
</mods>
74 changes: 74 additions & 0 deletions spec/fixtures/document_cache/bb/631/ry/3167/public
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<publicObject id="druid:bb631ry3167" published="2023-01-05T18:31:17Z" publishVersion="cocina-models/0.86.0">
<identityMetadata>
<objectType>collection</objectType>
<objectLabel>Native American Alumni Oral Histories</objectLabel>
<otherId name="catkey">13965062</otherId>
<otherId name="folio_instance_hrid">a13965062</otherId>
</identityMetadata>
<rightsMetadata>
<access type="discover">
<machine>
<world/>
</machine>
</access>
<access type="read">
<machine>
<world/>
</machine>
</access>
<use>
<human type="useAndReproduction">The materials are open for research use and may be used freely for non-commercial purposes with an attribution. For commercial permission requests, please contact the Stanford University Archives ([email protected]).</human>
<license/>
</use>
<copyright>
<human>Copyright (c) The Board of Trustees of the Leland Stanford Junior University. All rights reserved.</human>
</copyright>
</rightsMetadata>
<rdf:RDF xmlns:fedora="info:fedora/fedora-system:def/relations-external#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="info:fedora/druid:bb631ry3167">


</rdf:Description>
</rdf:RDF>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:srw_dc="info:srw/schema/1/dc-schema" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:title>Native American Alumni Oral Histories</dc:title>
<dc:type>Collection</dc:type>
<dc:language>eng</dc:language>
<dc:identifier>https://purl.stanford.edu/bb631ry3167</dc:identifier>
</oai_dc:dc>
<mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink" version="3.7" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-7.xsd">
<titleInfo usage="primary">
<title>Native American Alumni Oral Histories</title>
</titleInfo>
<typeOfResource manuscript="yes" collection="yes">mixed material</typeOfResource>
<language>
<languageTerm authority="iso639-2b" type="code">eng</languageTerm>
</language>
<originInfo>
<place>
<placeTerm authority="marccountry" type="code">cau</placeTerm>
</place>
<issuance>monographic</issuance>
</originInfo>
<location>
<url usage="primary display">https://purl.stanford.edu/bb631ry3167</url>
</location>
<location>
<physicalLocation>Dept. of Special Collections and University Archives Stanford University Libraries Stanford, CA 94305</physicalLocation>
</location>
<recordInfo>
<recordContentSource authority="marcorg">CSt</recordContentSource>
<descriptionStandard>aacr</descriptionStandard>
<descriptionStandard>dacs</descriptionStandard>
<recordOrigin>Converted from MARCXML to MODS version 3.7 using MARC21slim2MODS3-7_SDR_v2-5.xsl (SUL 3.7 version 2.5 20210421; LC Revision 1.140 20200717)</recordOrigin>
<recordCreationDate encoding="marc">210811</recordCreationDate>
<recordIdentifier source="SIRSI">a13965062</recordIdentifier>
</recordInfo>
<accessCondition type="useAndReproduction">The materials are open for research use and may be used freely for non-commercial purposes with an attribution. For commercial permission requests, please contact the Stanford University Archives ([email protected]).</accessCondition>
<accessCondition type="copyright">Copyright (c) The Board of Trustees of the Leland Stanford Junior University. All rights reserved.</accessCondition>
</mods>
<releaseData>
<release to="Searchworks">true</release>
</releaseData>
</publicObject>
32 changes: 32 additions & 0 deletions spec/fixtures/document_cache/gk/894/yk/3598/mods
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink" version="3.7" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-7.xsd">
<titleInfo usage="primary">
<title>Native American Alumni Oral Histories</title>
</titleInfo>
<typeOfResource manuscript="yes" collection="yes">mixed material</typeOfResource>
<language>
<languageTerm authority="iso639-2b" type="code">eng</languageTerm>
</language>
<originInfo>
<place>
<placeTerm authority="marccountry" type="code">cau</placeTerm>
</place>
<issuance>monographic</issuance>
</originInfo>
<location>
<url usage="primary display">https://purl.stanford.edu/bb631ry3167</url>
</location>
<location>
<physicalLocation>Dept. of Special Collections and University Archives Stanford University Libraries Stanford, CA 94305</physicalLocation>
</location>
<recordInfo>
<recordContentSource authority="marcorg">CSt</recordContentSource>
<descriptionStandard>aacr</descriptionStandard>
<descriptionStandard>dacs</descriptionStandard>
<recordOrigin>Converted from MARCXML to MODS version 3.7 using MARC21slim2MODS3-7_SDR_v2-5.xsl (SUL 3.7 version 2.5 20210421; LC Revision 1.140 20200717)</recordOrigin>
<recordCreationDate encoding="marc">210811</recordCreationDate>
<recordIdentifier source="SIRSI">a13965062</recordIdentifier>
</recordInfo>
<accessCondition type="useAndReproduction">The materials are open for research use and may be used freely for non-commercial purposes with an attribution. For commercial permission requests, please contact the Stanford University Archives ([email protected]).</accessCondition>
<accessCondition type="copyright">Copyright (c) The Board of Trustees of the Leland Stanford Junior University. All rights reserved.</accessCondition>
</mods>
73 changes: 73 additions & 0 deletions spec/fixtures/document_cache/gk/894/yk/3598/public
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<publicObject id="druid:bb631ry3167" published="2023-01-05T18:31:17Z" publishVersion="cocina-models/0.86.0">
<identityMetadata>
<objectType>collection</objectType>
<objectLabel>Native American Alumni Oral Histories</objectLabel>
<otherId name="catkey">13965062</otherId>
</identityMetadata>
<rightsMetadata>
<access type="discover">
<machine>
<world/>
</machine>
</access>
<access type="read">
<machine>
<world/>
</machine>
</access>
<use>
<human type="useAndReproduction">The materials are open for research use and may be used freely for non-commercial purposes with an attribution. For commercial permission requests, please contact the Stanford University Archives ([email protected]).</human>
<license/>
</use>
<copyright>
<human>Copyright (c) The Board of Trustees of the Leland Stanford Junior University. All rights reserved.</human>
</copyright>
</rightsMetadata>
<rdf:RDF xmlns:fedora="info:fedora/fedora-system:def/relations-external#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="info:fedora/druid:bb631ry3167">


</rdf:Description>
</rdf:RDF>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:srw_dc="info:srw/schema/1/dc-schema" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:title>Native American Alumni Oral Histories</dc:title>
<dc:type>Collection</dc:type>
<dc:language>eng</dc:language>
<dc:identifier>https://purl.stanford.edu/bb631ry3167</dc:identifier>
</oai_dc:dc>
<mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink" version="3.7" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-7.xsd">
<titleInfo usage="primary">
<title>Native American Alumni Oral Histories</title>
</titleInfo>
<typeOfResource manuscript="yes" collection="yes">mixed material</typeOfResource>
<language>
<languageTerm authority="iso639-2b" type="code">eng</languageTerm>
</language>
<originInfo>
<place>
<placeTerm authority="marccountry" type="code">cau</placeTerm>
</place>
<issuance>monographic</issuance>
</originInfo>
<location>
<url usage="primary display">https://purl.stanford.edu/bb631ry3167</url>
</location>
<location>
<physicalLocation>Dept. of Special Collections and University Archives Stanford University Libraries Stanford, CA 94305</physicalLocation>
</location>
<recordInfo>
<recordContentSource authority="marcorg">CSt</recordContentSource>
<descriptionStandard>aacr</descriptionStandard>
<descriptionStandard>dacs</descriptionStandard>
<recordOrigin>Converted from MARCXML to MODS version 3.7 using MARC21slim2MODS3-7_SDR_v2-5.xsl (SUL 3.7 version 2.5 20210421; LC Revision 1.140 20200717)</recordOrigin>
<recordCreationDate encoding="marc">210811</recordCreationDate>
<recordIdentifier source="SIRSI">a13965062</recordIdentifier>
</recordInfo>
<accessCondition type="useAndReproduction">The materials are open for research use and may be used freely for non-commercial purposes with an attribution. For commercial permission requests, please contact the Stanford University Archives ([email protected]).</accessCondition>
<accessCondition type="copyright">Copyright (c) The Board of Trustees of the Leland Stanford Junior University. All rights reserved.</accessCondition>
</mods>
<releaseData>
<release to="Searchworks">true</release>
</releaseData>
</publicObject>
9 changes: 9 additions & 0 deletions spec/integration/purl_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
@unpublished_object = 'ab123cd4567'
@legacy_object = 'ir:rs276tc2764'
@nested_resources_object = 'dm907qj6498'
@collection = 'bb631ry3167'
end

describe 'manifest' do
Expand Down Expand Up @@ -213,4 +214,12 @@
expect(page).to have_text('Application is running')
end
end

describe 'items in collection' do
it 'included in purl page' do
visit "/#{@collection}"
expect(page).to have_content 'Items in collection'
expect(page).to have_content 'View items in this collection in SearchWorks'
end
end
end
42 changes: 42 additions & 0 deletions spec/model/purl_resource_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -325,4 +325,46 @@
end
end
end

describe '#object_type and #collection?' do
context 'when a collection' do
before do
allow(subject).to receive(:public_xml_body).and_return(<<-EOF
<?xml version="1.0" encoding="UTF-8"?>
<publicObject>
<identityMetadata>
<objectType>collection</objectType>
<objectLabel>Acquisitions Serials</objectLabel>
</identityMetadata>
</publicObject>
EOF
)
end

it 'pulls the value from the identity metadata' do
expect(subject.object_type).to eq 'collection'
expect(subject.collection?).to be true
end
end

context 'when an item' do
before do
allow(subject).to receive(:public_xml_body).and_return(<<-EOF
<?xml version="1.0" encoding="UTF-8"?>
<publicObject>
<identityMetadata>
<objectLabel>SUL Logo 2015</objectLabel>
<objectType>item</objectType>
</identityMetadata>
</publicObject>
EOF
)
end

it 'pulls the value from the identity metadata' do
expect(subject.object_type).to eq 'item'
expect(subject.collection?).to be false
end
end
end
end
34 changes: 34 additions & 0 deletions spec/views/purl/_collection_items.html.erb_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
require 'rails_helper'

RSpec.describe 'purl/_collection_items' do
context 'when collection has a folio HRID' do
let(:purl) { PurlResource.new(id: 'bb631ry3167') }

it 'displays a View items in this collection link' do
# render
render 'purl/collection_items', document: purl
expect(rendered).to have_css 'a[href="https://searchworks.stanford.edu/catalog?f[collection][]=a13965062"]',
text: 'View items in this collection in SearchWorks'
end
end

context 'when collection does not have a folio HRID' do
let(:purl) { PurlResource.new(id: 'gk894yk3598') }

it 'does not display View items in this collection link' do
# render
render 'purl/collection_items', document: purl
expect(rendered).not_to have_css 'a'
end
end

context 'when not a collection' do
let(:purl) { PurlResource.new(id: 'cg357zz0321') }

it 'does not display View items in this collection link' do
# render
render 'purl/collection_items', document: purl
expect(rendered).not_to have_css 'a'
end
end
end

0 comments on commit b99ed1d

Please sign in to comment.