hydra-collections 6.0.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|