Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds items in this collection section. #736

Merged
merged 1 commit into from
Oct 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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