Commit fc6791641b3e184c36902733009e04555601a669

Authored by Braulio Bhavamitra
1 parent 897280ab

Don't crash with a non existant (old) facet

app/helpers/search_helper.rb
... ... @@ -156,6 +156,7 @@ module SearchHelper
156 156 params = params.dup
157 157 params[:facet].each do |id, value|
158 158 facet = klass.facet_by_id(id.to_sym)
  159 + next unless facet
159 160 if value.kind_of?(Hash)
160 161 label_hash = facet[:label].call(environment)
161 162 value.each do |label_id, value|
... ...
lib/acts_as_faceted.rb
... ... @@ -8,7 +8,7 @@ module ActsAsFaceted
8 8 #
9 9 #acts_as_faceted :fields => {
10 10 # :f_type => {:label => _('Type'), :proc => proc{|klass| f_type_proc(klass)}},
11   - # :f_published_at => {:type => :date, :label => _('Published date'), :queries => {'[* TO NOW-1YEARS/DAY]' => _("Older than one year"),
  11 + # :f_published_at => {:type => :date, :label => _('Published date'), :queries => {'[* TO NOW-1YEARS/DAY]' => _("Older than one year"),
12 12 # '[NOW-1YEARS TO NOW/DAY]' => _("Last year"), '[NOW-1MONTHS TO NOW/DAY]' => _("Last month"), '[NOW-7DAYS TO NOW/DAY]' => _("Last week"), '[NOW-1DAYS TO NOW/DAY]' => _("Last day")}},
13 13 # :f_profile_type => {:label => _('Author'), :proc => proc{|klass| f_profile_type_proc(klass)}},
14 14 # :f_category => {:label => _('Categories')}},
... ... @@ -36,7 +36,7 @@ module ActsAsFaceted
36 36 self.facets_order = options[:order] || self.facets.keys
37 37 self.facets_results_containers = {:fields => 'facet_fields', :queries => 'facet_queries', :ranges => 'facet_ranges'}
38 38 self.facets_option_for_solr = Hash[facets.select{ |id,data| ! data.has_key?(:queries) }].keys
39   - self.facets_fields_for_solr = facets.map{ |id,data| {id => data[:type] || :facet} }
  39 + self.facets_fields_for_solr = facets.map{ |id,data| {id => data[:type] || :facet} }
40 40 self.solr_fields_names = facets.map{ |id,data| id.to_s + '_' + get_solr_field_type(data[:type] || :facet) }
41 41 self.facet_category_query = options[:category_query]
42 42  
... ... @@ -159,13 +159,15 @@ module ActsAsFaceted
159 159 end
160 160  
161 161 def facet_label(facet)
162   - _ facet[:label]
  162 + return nil unless facet
  163 + _(facet[:label])
163 164 end
164 165  
165 166 def facets_find_options(facets_selected = {}, options = {})
166 167 browses = []
167 168 facets_selected ||= {}
168 169 facets_selected.map do |id, value|
  170 + next unless facets[id.to_sym]
169 171 if value.kind_of?(Hash)
170 172 value.map do |label_id, value|
171 173 value.to_a.each do |value|
... ...