Commit fc6791641b3e184c36902733009e04555601a669
1 parent
897280ab
Exists in
master
and in
29 other branches
Don't crash with a non existant (old) facet
Showing
2 changed files
with
6 additions
and
3 deletions
Show diff stats
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| | ... | ... |