Commit f2bf49d5f553a0afc60dcc4b91ed91d5bb421e92

Authored by Rodrigo Souto
1 parent 56f7c497

[pluginize-solr] Moving {name,price}_sortable attributes

Obs: Must move the search_helper now.
app/helpers/search_helper.rb
... ... @@ -19,26 +19,26 @@ module SearchHelper
19 19 SortOptions = {
20 20 :products => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')},
21 21 :more_recent, {:label => _('More recent'), :solr_opts => {:sort => 'updated_at desc, score desc'}},
22   - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}},
  22 + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}},
23 23 :closest, {:label => _('Closest to me'), :if => proc{ logged_in? && (profile=current_user.person).lat && profile.lng },
24 24 :solr_opts => {:sort => "geodist() asc",
25 25 :latitude => proc{ current_user.person.lat }, :longitude => proc{ current_user.person.lng }}},
26 26 ],
27 27 :events => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')},
28   - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}},
  28 + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}},
29 29 ],
30 30 :articles => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')},
31   - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}},
  31 + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}},
32 32 :more_recent, {:label => _('More recent'), :solr_opts => {:sort => 'updated_at desc, score desc'}},
33 33 ],
34 34 :enterprises => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')},
35   - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}},
  35 + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}},
36 36 ],
37 37 :people => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')},
38   - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}},
  38 + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}},
39 39 ],
40 40 :communities => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')},
41   - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}},
  41 + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}},
42 42 ],
43 43 }
44 44  
... ...
app/models/article.rb
... ... @@ -648,10 +648,6 @@ class Article < ActiveRecord::Base
648 648 Event
649 649  
650 650 delegate :region, :region_id, :environment, :environment_id, :to => :profile, :allow_nil => true
651   - def name_sortable # give a different name for solr
652   - name
653   - end
654   -
655 651 public
656 652 handle_asynchronously :solr_save
657 653  
... ...
app/models/category.rb
... ... @@ -90,11 +90,6 @@ class Category < ActiveRecord::Base
90 90 self.children.find(:all, :conditions => {:display_in_menu => true}).empty?
91 91 end
92 92  
93   - private
94   - def name_sortable # give a different name for solr
95   - name
96   - end
97   - public
98 93 handle_asynchronously :solr_save
99 94  
100 95 end
... ...
app/models/product.rb
... ... @@ -211,21 +211,7 @@ class Product < ActiveRecord::Base
211 211 end
212 212 end
213 213  
214   - private
215   -
216 214 delegate :enabled, :region, :region_id, :environment, :environment_id, :to => :enterprise
217   -
218   - alias_method :name_sortable, :name
219   - def name_sortable # give a different name for solr
220   - name
221   - end
222   -
223   - def price_sortable
224   - (price.nil? or price.zero?) ? nil : price
225   - end
226   -
227   - public
228   -
229 215 handle_asynchronously :solr_save
230 216  
231 217 end
... ...
app/models/profile.rb
... ... @@ -874,14 +874,6 @@ private :generate_url, :url_options
874 874 self.active_fields
875 875 end
876 876  
877   - private
878   -
879   - def name_sortable # give a different name for solr
880   - name
881   - end
882   -
883   - public
884   -
885 877 handle_asynchronously :solr_save
886 878  
887 879 def control_panel_settings_button
... ...
plugins/solr/lib/ext/article.rb
... ... @@ -25,7 +25,7 @@ class Article
25 25 {:profile_id => :integer}, :language,
26 26 {:solr_plugin_category_filter => :integer},
27 27 # ordered/query-boosted fields
28   - {:name_sortable => :string}, :last_changed_by_id, :published_at, :is_image,
  28 + {:solr_plugin_name_sortable => :string}, :last_changed_by_id, :published_at, :is_image,
29 29 :updated_at, :created_at,
30 30 ], :include => [
31 31 {:profile => {:fields => [:name, :identifier, :address, :nickname, :region_id, :lat, :lng]}},
... ... @@ -74,4 +74,8 @@ class Article
74 74 def solr_plugin_category_filter
75 75 categories_including_virtual_ids
76 76 end
  77 +
  78 + def solr_plugin_name_sortable
  79 + name
  80 + end
77 81 end
... ...
plugins/solr/lib/ext/category.rb
... ... @@ -11,6 +11,12 @@ class Category
11 11 # filtered fields
12 12 :parent_id,
13 13 # ordered/query-boosted fields
14   - {:name_sortable => :string},
  14 + {:solr_plugin_name_sortable => :string},
15 15 ]
  16 +
  17 + private
  18 +
  19 + def solr_plugin_name_sortable
  20 + name
  21 + end
16 22 end
... ...
plugins/solr/lib/ext/product.rb
... ... @@ -30,7 +30,7 @@ class Product
30 30 {:solr_plugin_public => :boolean}, {:environment_id => :integer},
31 31 {:enabled => :boolean}, {:solr_plugin_category_filter => :integer},
32 32 # ordered/query-boosted fields
33   - {:price_sortable => :decimal}, {:name_sortable => :string},
  33 + {:solr_plugin_price_sortable => :decimal}, {:solr_plugin_name_sortable => :string},
34 34 {:lat => :float}, {:lng => :float},
35 35 :updated_at, :created_at,
36 36 ], :include => [
... ... @@ -82,4 +82,12 @@ class Product
82 82 def solr_plugin_public
83 83 self.public?
84 84 end
  85 +
  86 + def solr_plugin_name_sortable # give a different name for solr
  87 + name
  88 + end
  89 +
  90 + def solr_plugin_price_sortable
  91 + (price.nil? or price.zero?) ? nil : price
  92 + end
85 93 end
... ...
plugins/solr/lib/ext/profile.rb
... ... @@ -20,7 +20,7 @@ class Profile
20 20 {:solr_plugin_public => :boolean}, {:environment_id => :integer},
21 21 {:solr_plugin_category_filter => :integer},
22 22 # ordered/query-boosted fields
23   - {:name_sortable => :string}, {:user_id => :integer},
  23 + {:solr_plugin_name_sortable => :string}, {:user_id => :integer},
24 24 :enabled, :active, :validated, :public_profile,
25 25 {:lat => :float}, {:lng => :float},
26 26 :updated_at, :created_at,
... ... @@ -94,4 +94,8 @@ class Profile
94 94 def solr_plugin_category_filter
95 95 categories_including_virtual_ids
96 96 end
  97 +
  98 + def solr_plugin_name_sortable
  99 + name
  100 + end
97 101 end
... ...