Skip to content
This repository was archived by the owner on Mar 24, 2020. It is now read-only.

Commit 44bc893

Browse files
VivianChumcritchlow
authored andcommitted
Fixes #410 - Add support for metadata-only display to collection level record view
Fixes hound issue Fixes indentation Fixes hound violation Use alternative way to check for metadataonly collection
1 parent 7fff160 commit 44bc893

File tree

4 files changed

+63
-4
lines changed

4 files changed

+63
-4
lines changed

.rubocop.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,6 @@ Style/Next:
3333

3434
Metrics/AbcSize:
3535
Max: 50
36+
37+
Metrics/LineLength:
38+
Max: 150

app/controllers/dams_resource_controller.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ def show
4040
# generate facet collection list for collection page only
4141
models = @document["active_fedora_model_ssi"]
4242
if models.include?("DamsAssembledCollection") || models.include?("DamsProvenanceCollection") || models.include?("DamsProvenanceCollectionPart")
43+
other_rights_query = "(otherRights_tesim:localDisplay OR otherRights_tesim:metadataDisplay) AND collections_tesim:#{params[:id]}"
44+
@res, @doc = get_search_results(q: other_rights_query, rows: 1)
45+
@metadata_only = !@res.response['numFound'].zero?
46+
4347
facet_collection_params = { :f=>{"collection_sim"=>"#{@document['title_tesim'].first.to_s}"}, :id=>params[:id], :rows => 0 }
4448
apply_gated_discovery( facet_collection_params, nil )
4549
@facet_collection_resp = get_search_results( facet_collection_params )

app/views/shared/fields/_access_control_level.html.erb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@
77
if accessGroup != nil
88

99
if accessGroup.include?('public')
10-
viewAccess = nil
11-
elsif accessGroup.include?('local')
10+
viewAccess = :public
11+
elsif accessGroup.include?('local') && @metadata_only
12+
viewAccess = 'Restricted View'
13+
elsif accessGroup.include?('local')
1214
viewAccess = 'Restricted to UC San Diego use only'
1315
else
14-
viewAccess = 'Curator Only'
16+
viewAccess = 'Curator Only'
1517
end
1618

17-
if viewAccess != nil
19+
if viewAccess != :public
1820
htmlOpen %= 'Access'
1921
concat htmlOpen.html_safe
2022
concat "<li>#{viewAccess}</li>".html_safe

spec/features/dams_collections_spec.rb

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,3 +341,53 @@
341341
end
342342

343343
end
344+
345+
346+
feature "Visitor wants to view a UCSD IP only collection's page with metadata-only visibility" do
347+
before(:all) do
348+
@localDisplay = DamsOtherRight.create permissionType: "localDisplay"
349+
@metadataDisplay = DamsOtherRight.create permissionType: "metadataDisplay"
350+
@metadataOnlyCollection = DamsProvenanceCollection.create titleValue: "Test UCSD IP only Collection with metadata-only visibility", visibility: "local"
351+
@localOnlyCollection = DamsProvenanceCollection.create titleValue: "Test UCSD IP only Collection with localDisplay visibility", visibility: "local"
352+
@collection = DamsProvenanceCollection.create titleValue: "Test UCSD IP only Collection with no localDisplay or metadata-only visibility", visibility: "local"
353+
@copyright = DamsCopyright.create status: 'Under copyright'
354+
@metadataOnlyObj = DamsObject.create titleValue: 'Test Object with metadataOnly Display', provenanceCollectionURI: @metadataOnlyCollection.pid, copyrightURI: @copyright.pid, otherRightsURI: @metadataDisplay.pid
355+
@localObj = DamsObject.create titleValue: 'Test Object with localDisplay', provenanceCollectionURI: @localOnlyCollection.pid, copyrightURI: @copyright.pid, otherRightsURI: @localDisplay.pid
356+
@obj = DamsObject.create titleValue: 'Test Object with no localDisplay, no metadataOnlyDisplay', provenanceCollectionURI: @localOnlyCollection.pid, copyrightURI: @copyright.pid
357+
solr_index @localDisplay.pid
358+
solr_index @metadataDisplay.pid
359+
solr_index @metadataOnlyCollection.pid
360+
solr_index @localOnlyCollection.pid
361+
solr_index @collection.pid
362+
solr_index @copyright.pid
363+
solr_index @metadataOnlyObj.pid
364+
solr_index @localObj.pid
365+
solr_index @obj.pid
366+
end
367+
368+
after(:all) do
369+
@localDisplay.delete
370+
@metadataDisplay.delete
371+
@metadataOnlyCollection.delete
372+
@localOnlyCollection.delete
373+
@collection.delete
374+
@copyright.delete
375+
@metadataOnlyObj.delete
376+
@localObj.delete
377+
@obj.delete
378+
end
379+
380+
scenario 'should see Restricted View access control information' do
381+
sign_in_anonymous '132.239.0.3'
382+
visit dams_collection_path @metadataOnlyCollection.pid
383+
expect(page).to have_content('Restricted View')
384+
visit dams_collection_path @localOnlyCollection.pid
385+
expect(page).to have_content('Restricted View')
386+
end
387+
388+
scenario 'should not see Restricted View access control information' do
389+
sign_in_anonymous '132.239.0.3'
390+
visit dams_collection_path @collection.pid
391+
expect(page).to_not have_content('Restricted View')
392+
end
393+
end

0 commit comments

Comments
 (0)