Commit bbb8594c53c7c0600ce5cea9d5f195735a759651

Authored by Rafael Martins
1 parent e3aaf966

Use new acts_as_solr interface for pagination

Showing 1 changed file with 7 additions and 7 deletions   Show diff stats
lib/acts_as_searchable.rb
@@ -31,27 +31,29 @@ module ActsAsSearchable @@ -31,27 +31,29 @@ module ActsAsSearchable
31 def find_by_contents(query, pg_options = {}, options = {}, db_options = {}) 31 def find_by_contents(query, pg_options = {}, options = {}, db_options = {})
32 pg_options[:page] ||= 1 32 pg_options[:page] ||= 1
33 pg_options[:per_page] ||= 20 33 pg_options[:per_page] ||= 20
34 - options[:limit] ||= pg_options[:per_page].to_i*pg_options[:page].to_i 34 + options[:page] = pg_options[:page].to_i
  35 + options[:per_page] = pg_options[:per_page].to_i
35 options[:scores] ||= true 36 options[:scores] ||= true
36 options[:filter_queries] ||= [] 37 options[:filter_queries] ||= []
37 - all_facets_enabled = options.delete(:all_facets)  
38 options[:filter_queries] << "schema_name:\"#{schema_name}\"" unless schema_name.empty? 38 options[:filter_queries] << "schema_name:\"#{schema_name}\"" unless schema_name.empty?
  39 + all_facets_enabled = options.delete(:all_facets)
  40 + options[:per_page] = options.delete(:extra_limit) if options[:extra_limit]
39 results = [] 41 results = []
40 facets = all_facets = {} 42 facets = all_facets = {}
41 43
42 solr_result = find_by_solr(query, options) 44 solr_result = find_by_solr(query, options)
43 if all_facets_enabled 45 if all_facets_enabled
44 options[:facets][:browse] = nil 46 options[:facets][:browse] = nil
45 - all_facets = find_by_solr(query, options.merge(:limit => 0)).facets 47 + all_facets = find_by_solr(query, options.merge(:per_page => 0)).facets
46 end 48 end
47 49
48 if !solr_result.nil? 50 if !solr_result.nil?
49 facets = options.include?(:facets) ? solr_result.facets : [] 51 facets = options.include?(:facets) ? solr_result.facets : []
50 52
51 if db_options.empty? 53 if db_options.empty?
52 - results = solr_result.results 54 + results = solr_result
53 else 55 else
54 - ids = solr_result.results.map{|r|r[:id].to_i} 56 + ids = solr_result.results.map{ |r| r[:id].to_i }
55 if ids.empty? 57 if ids.empty?
56 ids << -1 58 ids << -1
57 end 59 end
@@ -64,8 +66,6 @@ module ActsAsSearchable @@ -64,8 +66,6 @@ module ActsAsSearchable
64 66
65 results = find(:all, db_options) 67 results = find(:all, db_options)
66 end 68 end
67 -  
68 - results = results.paginate(pg_options.merge(:total_entries => solr_result.total))  
69 end 69 end
70 70
71 {:results => results, :facets => facets, :all_facets => all_facets} 71 {:results => results, :facets => facets, :all_facets => all_facets}