app/models/concerns/spotlight/exhibit_documents.rb in blacklight-spotlight-0.9.2 vs app/models/concerns/spotlight/exhibit_documents.rb in blacklight-spotlight-0.10.0

- old
+ new

@@ -8,25 +8,28 @@ # @return [Enumerable<SolrDocument>] def solr_documents return to_enum(:solr_documents) unless block_given? start = 0 - response = repository.search(exhibit_search_params.merge(start: start)) + search_params = exhibit_search_builder.merge(q: '*:*', fl: '*') + response = repository.search(search_params.start(start).to_h) + while response.documents.present? response.documents.each { |x| yield x } start += response.documents.length - response = repository.search(exhibit_search_params.merge(start: start)) + response = repository.search(search_params.start(start).to_h) end end private - def exhibit_search_params - params = { q: '*:*', fl: '*' } - params[:fq] ||= [] - params[:fq] << solr_data if Spotlight::Engine.config.filter_resources_by_exhibit - params + def exhibit_search_builder + blacklight_config.search_builder_class.new(true, exhibit_search_builder_context).except(:apply_permissive_visibility_filter) + end + + def exhibit_search_builder_context + OpenStruct.new(blacklight_config: blacklight_config, current_exhibit: self) end def repository @repository ||= Blacklight.repository_class.new(blacklight_config) if Blacklight.respond_to? :repository_class @repository ||= Blacklight::Solr::Repository.new(blacklight_config)