hydra-collections 6.0.0 → 7.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/concerns/hydra/collections/selects_collections.rb +1 -8
- data/app/controllers/concerns/hydra/collections_controller_behavior.rb +5 -10
- data/app/models/concerns/hydra/collections/metadata.rb +17 -2
- data/{lib → app/models/concerns}/hydra/collections/solr_document_behavior.rb +0 -0
- data/app/search_builders/hydra/collections/member_search_builder.rb +21 -0
- data/app/search_builders/hydra/collections/search_builder.rb +31 -1
- data/app/views/collections/_search_form.html.erb +1 -1
- data/hydra-collections.gemspec +2 -1
- data/lib/hydra-collections.rb +1 -8
- data/lib/hydra/collections/search_service.rb +1 -1
- data/lib/hydra/collections/version.rb +1 -1
- data/spec/controllers/collections_controller_spec.rb +16 -6
- data/spec/controllers/selects_collections_spec.rb +4 -4
- data/spec/models/collection_spec.rb +2 -1
- data/spec/test_app_templates/Gemfile.extra +1 -0
- data/spec/views/collections/_thumbnail_default.html.erb_spec.rb +7 -2
- data/spec/views/collections/show.html.erb_spec.rb +7 -3
- metadata +20 -6
- data/lib/hydra/collections/search_behaviors.rb +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebe55db03846ed51118593543505434956f99125
|
4
|
+
data.tar.gz: db11d0ff1b2513f376e5e381eba5bf32e1bebdfb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4798abcfddaaabe9bb8f63f3cc82bc214f70ead4a5f80a04a2388dc166ed1f8985e96ecb2b672c5f30d260b636e7aa8a5fdb35874b37cadf77ce4b497cf59b2d
|
7
|
+
data.tar.gz: 730fea9bd4c25e8887373e7c04b67be671c5a0d59f495f39b7a36760995471cebbcb73f4ebbaf30d1caafc294319fb9d6e2f99b155c4b7d2af4ed58bb618cf1a
|
@@ -57,16 +57,9 @@ module Hydra::Collections::SelectsCollections
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def collections_search_builder(access_level = nil)
|
60
|
-
collections_search_builder_class.new(
|
60
|
+
collections_search_builder_class.new(self).tap do |builder|
|
61
61
|
builder.current_ability = current_ability
|
62
62
|
builder.discovery_perms = access_levels[access_level] if access_level
|
63
63
|
end
|
64
64
|
end
|
65
|
-
|
66
|
-
# Defines which search_params_logic should be used when searching for Collections
|
67
|
-
def collection_search_params_logic
|
68
|
-
[:default_solr_parameters, :add_query_to_solr, :add_access_controls_to_solr_params,
|
69
|
-
:add_collection_filter, :some_rows]
|
70
|
-
end
|
71
|
-
|
72
65
|
end
|
@@ -87,7 +87,7 @@ module Hydra
|
|
87
87
|
|
88
88
|
def after_update_error
|
89
89
|
respond_to do |format|
|
90
|
-
format.html { render action:
|
90
|
+
format.html { render action: "edit" }
|
91
91
|
format.json { render json: @collection.errors, status: :unprocessable_entity }
|
92
92
|
end
|
93
93
|
end
|
@@ -103,14 +103,14 @@ module Hydra
|
|
103
103
|
|
104
104
|
def after_destroy (id)
|
105
105
|
respond_to do |format|
|
106
|
-
format.html { redirect_to
|
106
|
+
format.html { redirect_to search_catalog_path, notice: 'Collection was successfully deleted.' }
|
107
107
|
format.json { render json: {id:id}, status: :destroyed, location: @collection }
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
111
|
def after_destroy_error (id)
|
112
112
|
respond_to do |format|
|
113
|
-
format.html { redirect_to
|
113
|
+
format.html { redirect_to search_catalog_path, notice: 'Collection could not be deleted.' }
|
114
114
|
format.json { render json: {id:id}, status: :destroy_error, location: @collection }
|
115
115
|
end
|
116
116
|
end
|
@@ -129,11 +129,6 @@ module Hydra
|
|
129
129
|
|
130
130
|
protected
|
131
131
|
|
132
|
-
# Defines which search_params_logic should be used when searching for Collection members
|
133
|
-
def collection_member_search_logic
|
134
|
-
search_params_logic + [:include_collection_ids, :add_access_controls_to_solr_params]
|
135
|
-
end
|
136
|
-
|
137
132
|
def collection_params
|
138
133
|
params.require(:collection).permit(:part_of, :contributor, :creator, :title,
|
139
134
|
:description, :publisher, :date_created, :subject, :language, :rights,
|
@@ -152,11 +147,11 @@ module Hydra
|
|
152
147
|
end
|
153
148
|
|
154
149
|
def collection_member_search_builder_class
|
155
|
-
Hydra::Collections::
|
150
|
+
Hydra::Collections::MemberSearchBuilder
|
156
151
|
end
|
157
152
|
|
158
153
|
def collection_member_search_builder
|
159
|
-
@collection_member_search_builder ||= collection_member_search_builder_class.new(
|
154
|
+
@collection_member_search_builder ||= collection_member_search_builder_class.new(self).tap do |builder|
|
160
155
|
builder.current_ability = current_ability
|
161
156
|
end
|
162
157
|
end
|
@@ -7,56 +7,71 @@ module Hydra::Collections
|
|
7
7
|
end
|
8
8
|
|
9
9
|
property :part_of, predicate: RDF::Vocab::DC.isPartOf
|
10
|
+
|
10
11
|
property :contributor, predicate: RDF::Vocab::DC.contributor do |index|
|
11
12
|
index.as :stored_searchable, :facetable
|
12
13
|
end
|
14
|
+
|
13
15
|
property :creator, predicate: RDF::Vocab::DC.creator do |index|
|
14
16
|
index.as :stored_searchable, :facetable
|
15
17
|
end
|
18
|
+
|
16
19
|
property :title, predicate: RDF::Vocab::DC.title, multiple: false do |index|
|
17
|
-
index.as :stored_searchable
|
20
|
+
index.as :stored_searchable, :sortable
|
18
21
|
end
|
22
|
+
|
19
23
|
property :description, predicate: RDF::Vocab::DC.description, multiple: false do |index|
|
20
24
|
index.type :text
|
21
25
|
index.as :stored_searchable
|
22
26
|
end
|
27
|
+
|
23
28
|
property :publisher, predicate: RDF::Vocab::DC.publisher do |index|
|
24
29
|
index.as :stored_searchable, :facetable
|
25
30
|
end
|
31
|
+
|
26
32
|
property :date_created, predicate: RDF::Vocab::DC.created do |index|
|
27
33
|
index.as :stored_searchable
|
28
34
|
end
|
35
|
+
|
29
36
|
property :date_uploaded, predicate: RDF::Vocab::DC.dateSubmitted, multiple: false do |index|
|
30
37
|
index.type :date
|
31
38
|
index.as :stored_sortable
|
32
39
|
end
|
40
|
+
|
33
41
|
property :date_modified, predicate: RDF::Vocab::DC.modified, multiple: false do |index|
|
34
42
|
index.type :date
|
35
43
|
index.as :stored_sortable
|
36
44
|
end
|
45
|
+
|
37
46
|
property :subject, predicate: RDF::Vocab::DC.subject do |index|
|
38
47
|
index.as :stored_searchable, :facetable
|
39
48
|
end
|
49
|
+
|
40
50
|
property :language, predicate: RDF::Vocab::DC.language do |index|
|
41
51
|
index.as :stored_searchable, :facetable
|
42
52
|
end
|
53
|
+
|
43
54
|
property :rights, predicate: RDF::Vocab::DC.rights do |index|
|
44
55
|
index.as :stored_searchable
|
45
56
|
end
|
57
|
+
|
46
58
|
property :resource_type, predicate: RDF::Vocab::DC.type do |index|
|
47
59
|
index.as :stored_searchable, :facetable
|
48
60
|
end
|
61
|
+
|
49
62
|
property :identifier, predicate: RDF::Vocab::DC.identifier do |index|
|
50
63
|
index.as :stored_searchable
|
51
64
|
end
|
65
|
+
|
52
66
|
property :based_near, predicate: RDF::Vocab::FOAF.based_near do |index|
|
53
67
|
index.as :stored_searchable, :facetable
|
54
68
|
end
|
69
|
+
|
55
70
|
property :tag, predicate: RDF::Vocab::DC.relation do |index|
|
56
71
|
index.as :stored_searchable, :facetable
|
57
72
|
end
|
58
|
-
property :related_url, predicate: RDF::RDFS.seeAlso
|
59
73
|
|
74
|
+
property :related_url, predicate: RDF::RDFS.seeAlso
|
60
75
|
end
|
61
76
|
end
|
62
77
|
end
|
File without changes
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Hydra::Collections
|
2
|
+
class MemberSearchBuilder < Hydra::SearchBuilder
|
3
|
+
|
4
|
+
class_attribute :from_field
|
5
|
+
self.from_field = 'member_ids_ssim'
|
6
|
+
|
7
|
+
# Defines which search_params_logic should be used when searching for Collection members
|
8
|
+
self.default_processor_chain += [:include_collection_ids]
|
9
|
+
|
10
|
+
def collection
|
11
|
+
scope.collection
|
12
|
+
end
|
13
|
+
|
14
|
+
# include filters into the query to only include the collection memebers
|
15
|
+
def include_collection_ids(solr_parameters)
|
16
|
+
solr_parameters[:fq] ||= []
|
17
|
+
solr_parameters[:fq] << "{!join from=#{from_field} to=id}id:#{collection.id}"
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -1,5 +1,35 @@
|
|
1
1
|
module Hydra::Collections
|
2
2
|
class SearchBuilder < Hydra::SearchBuilder
|
3
|
-
|
3
|
+
# Defines which search_params_logic should be used when searching for Collections
|
4
|
+
self.default_processor_chain = [:default_solr_parameters, :add_query_to_solr,
|
5
|
+
:add_access_controls_to_solr_params, :add_collection_filter, :some_rows, :sort_by_title]
|
6
|
+
|
7
|
+
def some_rows(solr_parameters)
|
8
|
+
solr_parameters[:rows] = '100'
|
9
|
+
end
|
10
|
+
|
11
|
+
def add_collection_filter(solr_parameters)
|
12
|
+
solr_parameters[:fq] ||= []
|
13
|
+
solr_parameters[:fq] << ActiveFedora::SolrQueryBuilder.construct_query_for_rel(has_model: ::Collection.to_class_uri)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Sort results by title if no query was supplied.
|
17
|
+
# This overrides the default 'relevance' sort.
|
18
|
+
def sort_by_title(solr_parameters)
|
19
|
+
return if solr_parameters[:q]
|
20
|
+
solr_parameters[:sort] ||= "#{sort_field} asc"
|
21
|
+
end
|
22
|
+
|
23
|
+
def discovery_perms= perms
|
24
|
+
@discovery_perms = perms
|
25
|
+
end
|
26
|
+
|
27
|
+
def discovery_permissions
|
28
|
+
@discovery_perms || super
|
29
|
+
end
|
30
|
+
|
31
|
+
def sort_field
|
32
|
+
Solrizer.solr_name('title', :sortable)
|
33
|
+
end
|
4
34
|
end
|
5
35
|
end
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<label class="accessible-hidden">Search Collection <%=@collection.title %></label>
|
5
5
|
<%= text_field_tag :cq, params[:cq], :class => "collection-query", :placeholder => "Search Collection", :size => '30', :type => "search", :id => "collection_search" %>
|
6
6
|
<%= hidden_field_tag :sort, params[:sort], :id => 'collection_sort' %>
|
7
|
-
<%= render_hash_as_hidden_fields(params_for_search.except(:cq, :sort, :qt, :page))
|
7
|
+
<%= render_hash_as_hidden_fields(search_state.params_for_search.except(:cq, :sort, :qt, :page)) %>
|
8
8
|
<button type="submit" class="btn btn-primary" id="collection_submit"><i class="icon-search"></i> Go</button>
|
9
9
|
<% end %>
|
10
10
|
</div>
|
data/hydra-collections.gemspec
CHANGED
@@ -20,9 +20,10 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_dependency 'hydra-head', '~> 9.1'
|
22
22
|
spec.add_dependency 'deprecation', '~> 0.1'
|
23
|
-
spec.add_dependency 'blacklight', '~>
|
23
|
+
spec.add_dependency 'blacklight', '~> 6.0'
|
24
24
|
spec.add_dependency 'hydra-works', '~> 0.4'
|
25
25
|
spec.add_dependency 'rdf', '~> 1.99'
|
26
|
+
spec.add_dependency 'rdf-vocab', '~> 0'
|
26
27
|
|
27
28
|
spec.add_development_dependency 'engine_cart', '~> 0.8'
|
28
29
|
spec.add_development_dependency 'rspec-rails', '~> 3.1'
|
data/lib/hydra-collections.rb
CHANGED
@@ -8,16 +8,9 @@ module Hydra
|
|
8
8
|
autoload :Collectible
|
9
9
|
autoload :SearchService
|
10
10
|
autoload :AcceptsBatches
|
11
|
-
|
12
|
-
autoload :SolrDocumentBehavior
|
13
|
-
autoload :SearchBehaviors
|
11
|
+
|
14
12
|
class Engine < ::Rails::Engine
|
15
13
|
engine_name "collections"
|
16
|
-
config.autoload_paths += %W(
|
17
|
-
#{config.root}/app/controllers/concerns
|
18
|
-
#{config.root}/app/models/concerns
|
19
|
-
#{config.root}/app/models/datastreams
|
20
|
-
)
|
21
14
|
end
|
22
15
|
end
|
23
16
|
end
|
@@ -10,7 +10,7 @@ module Hydra
|
|
10
10
|
self.class.copy_blacklight_config_from(::CatalogController)
|
11
11
|
end
|
12
12
|
|
13
|
-
self.search_params_logic << :apply_gated_search
|
13
|
+
# self.search_params_logic << :apply_gated_search
|
14
14
|
|
15
15
|
def last_search_documents
|
16
16
|
return [] if @session[:history].blank?
|
@@ -14,7 +14,7 @@ describe CollectionsController, :type => :controller do
|
|
14
14
|
include Hydra::AccessControls::Permissions
|
15
15
|
include Hydra::Works::WorkBehavior
|
16
16
|
|
17
|
-
property :title, predicate: ::RDF::DC.title, multiple: false
|
17
|
+
property :title, predicate: ::RDF::Vocab::DC.title, multiple: false
|
18
18
|
|
19
19
|
def to_solr(solr_doc={})
|
20
20
|
super.tap do |solr_doc|
|
@@ -39,15 +39,15 @@ describe CollectionsController, :type => :controller do
|
|
39
39
|
end
|
40
40
|
|
41
41
|
describe "#index" do
|
42
|
-
let!(:collection1) { Collection.create { |c| c.apply_depositor_metadata(user.user_key) } }
|
43
|
-
let!(:collection2) { Collection.create { |c| c.apply_depositor_metadata(user.user_key) } }
|
42
|
+
let!(:collection1) { Collection.create(title: 'Beta') { |c| c.apply_depositor_metadata(user.user_key) } }
|
43
|
+
let!(:collection2) { Collection.create(title: 'Alpha') { |c| c.apply_depositor_metadata(user.user_key) } }
|
44
44
|
let!(:generic_file) { GenericWork.create }
|
45
45
|
|
46
|
-
it "
|
46
|
+
it "shows a list of collections sorted alphabetically" do
|
47
47
|
get :index
|
48
48
|
expect(response).to be_successful
|
49
49
|
expect(assigns[:document_list].map(&:id)).not_to include generic_file.id
|
50
|
-
expect(assigns[:document_list].map(&:id)).to eq [
|
50
|
+
expect(assigns[:document_list].map(&:id)).to eq [collection2.id, collection1.id]
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
@@ -126,6 +126,16 @@ describe CollectionsController, :type => :controller do
|
|
126
126
|
put :update, id: @collection.id, collection: { title: "New Title", description: "New Description" }
|
127
127
|
end
|
128
128
|
|
129
|
+
context "when updating fails" do
|
130
|
+
before do
|
131
|
+
allow_any_instance_of(Collection).to receive(:save).and_return(false)
|
132
|
+
end
|
133
|
+
it "should render edit succesfully" do
|
134
|
+
put :update, id: @collection.id, collection: { title: "New Title" }
|
135
|
+
expect(response).to render_template "edit"
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
129
139
|
context "when there are existing members in the collection" do
|
130
140
|
it "should support adding batches of members" do
|
131
141
|
@collection.members << @asset1
|
@@ -189,7 +199,7 @@ describe CollectionsController, :type => :controller do
|
|
189
199
|
|
190
200
|
it "deletes the collection" do
|
191
201
|
delete :destroy, id: @collection
|
192
|
-
expect(response).to redirect_to Rails.application.routes.url_helpers.
|
202
|
+
expect(response).to redirect_to Rails.application.routes.url_helpers.search_catalog_path
|
193
203
|
expect(flash[:notice]).to eq("Collection was successfully deleted.")
|
194
204
|
end
|
195
205
|
|
@@ -5,15 +5,15 @@ class SelectsCollectionsController < ApplicationController
|
|
5
5
|
include Hydra::Controller::ControllerBehavior
|
6
6
|
include Hydra::Collections::SelectsCollections
|
7
7
|
|
8
|
-
SelectsCollectionsController.search_params_logic += [:add_access_controls_to_solr_params]
|
8
|
+
#SelectsCollectionsController.search_params_logic += [:add_access_controls_to_solr_params]
|
9
9
|
end
|
10
10
|
|
11
11
|
describe SelectsCollectionsController, :type => :controller do
|
12
12
|
|
13
13
|
describe "#find_collections" do
|
14
|
-
it "
|
15
|
-
expect(subject.
|
16
|
-
expect(Hydra::Collections::SearchBuilder).to receive(:new).with(subject
|
14
|
+
it "uses the search builder" do
|
15
|
+
expect(subject.collections_search_builder_class.default_processor_chain).to eq [:default_solr_parameters, :add_query_to_solr, :add_access_controls_to_solr_params, :add_collection_filter, :some_rows, :sort_by_title]
|
16
|
+
expect(Hydra::Collections::SearchBuilder).to receive(:new).with(subject).and_call_original
|
17
17
|
subject.find_collections
|
18
18
|
end
|
19
19
|
end
|
@@ -23,8 +23,9 @@ describe Collection, :type => :model do
|
|
23
23
|
|
24
24
|
subject { collection.to_solr }
|
25
25
|
|
26
|
-
it "
|
26
|
+
it "has title and depositor information" do
|
27
27
|
expect(subject['title_tesim']).to eq ['A good title']
|
28
|
+
expect(subject['title_si']).to eq 'A good title'
|
28
29
|
expect(subject['depositor_tesim']).to eq [user.user_key]
|
29
30
|
expect(subject['depositor_ssim']).to eq [user.user_key]
|
30
31
|
end
|
@@ -8,14 +8,19 @@ describe 'collections/_thumbnail_default.html.erb' do
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
+
let(:blacklight_configuration_context) do
|
12
|
+
Blacklight::Configuration::Context.new(controller)
|
13
|
+
end
|
14
|
+
let(:search_state) { double('SearchState', url_for_document: '/foo') }
|
15
|
+
|
11
16
|
before do
|
12
17
|
assign :response, double(start: 0)
|
13
18
|
allow(view).to receive(:blacklight_config).and_return(blacklight_config)
|
14
19
|
allow(view).to receive(:render_grouped_response?).and_return(false)
|
15
20
|
allow(view).to receive(:current_search_session).and_return nil
|
16
21
|
allow(view).to receive(:search_session).and_return({})
|
17
|
-
allow(view).to receive(:
|
18
|
-
allow(view).to receive(:
|
22
|
+
allow(view).to receive(:search_state).and_return(search_state)
|
23
|
+
allow(view).to receive(:blacklight_configuration_context).and_return(blacklight_configuration_context)
|
19
24
|
render 'collections/thumbnail_default', document: document, document_counter: 1
|
20
25
|
end
|
21
26
|
|
@@ -6,11 +6,15 @@ describe 'collections/show.html.erb' do
|
|
6
6
|
|
7
7
|
let(:blacklight_config) { CatalogController.blacklight_config }
|
8
8
|
let(:member_docs) { [ SolrDocument.new(id: '234'), SolrDocument.new(id: '456') ] }
|
9
|
+
let(:search_state) { double('SearchState', params_for_search: {}) }
|
10
|
+
let(:blacklight_configuration_context) do
|
11
|
+
Blacklight::Configuration::Context.new(controller)
|
12
|
+
end
|
13
|
+
|
9
14
|
before do
|
10
15
|
allow(view).to receive(:blacklight_config).and_return(blacklight_config)
|
11
|
-
allow(view).to receive(:
|
12
|
-
allow(view).to receive(:
|
13
|
-
allow(view).to receive(:render_index_doc_actions).and_return nil
|
16
|
+
allow(view).to receive(:search_state).and_return(search_state)
|
17
|
+
allow(view).to receive(:blacklight_configuration_context).and_return(blacklight_configuration_context)
|
14
18
|
view.lookup_context.prefixes += ['catalog']
|
15
19
|
assign(:response, response)
|
16
20
|
assign(:collection, collection)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-collections
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carolyn Cole
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hydra-head
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '6.0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '6.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: hydra-works
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.99'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rdf-vocab
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: engine_cart
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -138,7 +152,9 @@ files:
|
|
138
152
|
- app/models/concerns/hydra/collection.rb
|
139
153
|
- app/models/concerns/hydra/collections/actions.rb
|
140
154
|
- app/models/concerns/hydra/collections/metadata.rb
|
155
|
+
- app/models/concerns/hydra/collections/solr_document_behavior.rb
|
141
156
|
- app/models/solr_document.rb
|
157
|
+
- app/search_builders/hydra/collections/member_search_builder.rb
|
142
158
|
- app/search_builders/hydra/collections/search_builder.rb
|
143
159
|
- app/views/batch_select/_add_button.html.erb
|
144
160
|
- app/views/batch_select/_check_all.html.erb
|
@@ -175,9 +191,7 @@ files:
|
|
175
191
|
- lib/hydra-collections.rb
|
176
192
|
- lib/hydra/collections/accepts_batches.rb
|
177
193
|
- lib/hydra/collections/collectible.rb
|
178
|
-
- lib/hydra/collections/search_behaviors.rb
|
179
194
|
- lib/hydra/collections/search_service.rb
|
180
|
-
- lib/hydra/collections/solr_document_behavior.rb
|
181
195
|
- lib/hydra/collections/version.rb
|
182
196
|
- solr_conf/conf/schema.xml
|
183
197
|
- solr_conf/conf/solrconfig.xml
|
@@ -1,36 +0,0 @@
|
|
1
|
-
module Hydra::Collections::SearchBehaviors
|
2
|
-
extend ActiveSupport::Concern
|
3
|
-
|
4
|
-
included do
|
5
|
-
class_attribute :from_field
|
6
|
-
self.from_field = 'member_ids_ssim'
|
7
|
-
end
|
8
|
-
|
9
|
-
def collection
|
10
|
-
scope.collection
|
11
|
-
end
|
12
|
-
|
13
|
-
# include filters into the query to only include the collection memebers
|
14
|
-
def include_collection_ids(solr_parameters)
|
15
|
-
solr_parameters[:fq] ||= []
|
16
|
-
solr_parameters[:fq] << "{!join from=#{from_field} to=id}id:#{collection.id}"
|
17
|
-
end
|
18
|
-
|
19
|
-
def some_rows(solr_parameters)
|
20
|
-
solr_parameters[:rows] = '100'
|
21
|
-
end
|
22
|
-
|
23
|
-
def add_collection_filter(solr_parameters)
|
24
|
-
solr_parameters[:fq] ||= []
|
25
|
-
solr_parameters[:fq] << ActiveFedora::SolrQueryBuilder.construct_query_for_rel(has_model: ::Collection.to_class_uri)
|
26
|
-
end
|
27
|
-
|
28
|
-
def discovery_perms= perms
|
29
|
-
@discovery_perms = perms
|
30
|
-
end
|
31
|
-
|
32
|
-
def discovery_permissions
|
33
|
-
@discovery_perms || super
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|