From f2bf49d5f553a0afc60dcc4b91ed91d5bb421e92 Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Wed, 12 Dec 2012 00:46:44 +0000 Subject: [PATCH] [pluginize-solr] Moving {name,price}_sortable attributes --- app/helpers/search_helper.rb | 12 ++++++------ app/models/article.rb | 4 ---- app/models/category.rb | 5 ----- app/models/product.rb | 14 -------------- app/models/profile.rb | 8 -------- plugins/solr/lib/ext/article.rb | 6 +++++- plugins/solr/lib/ext/category.rb | 8 +++++++- plugins/solr/lib/ext/product.rb | 10 +++++++++- plugins/solr/lib/ext/profile.rb | 6 +++++- 9 files changed, 32 insertions(+), 41 deletions(-) diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb index faec914..a0c5996 100644 --- a/app/helpers/search_helper.rb +++ b/app/helpers/search_helper.rb @@ -19,26 +19,26 @@ module SearchHelper SortOptions = { :products => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')}, :more_recent, {:label => _('More recent'), :solr_opts => {:sort => 'updated_at desc, score desc'}}, - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}}, + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}}, :closest, {:label => _('Closest to me'), :if => proc{ logged_in? && (profile=current_user.person).lat && profile.lng }, :solr_opts => {:sort => "geodist() asc", :latitude => proc{ current_user.person.lat }, :longitude => proc{ current_user.person.lng }}}, ], :events => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')}, - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}}, + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}}, ], :articles => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')}, - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}}, + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}}, :more_recent, {:label => _('More recent'), :solr_opts => {:sort => 'updated_at desc, score desc'}}, ], :enterprises => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')}, - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}}, + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}}, ], :people => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')}, - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}}, + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}}, ], :communities => ActiveSupport::OrderedHash[ :none, {:label => _('Relevance')}, - :name, {:label => _('Name'), :solr_opts => {:sort => 'name_sortable asc'}}, + :name, {:label => _('Name'), :solr_opts => {:sort => 'solr_plugin_name_sortable asc'}}, ], } diff --git a/app/models/article.rb b/app/models/article.rb index aaaceca..950091b 100644 --- a/app/models/article.rb +++ b/app/models/article.rb @@ -648,10 +648,6 @@ class Article < ActiveRecord::Base Event delegate :region, :region_id, :environment, :environment_id, :to => :profile, :allow_nil => true - def name_sortable # give a different name for solr - name - end - public handle_asynchronously :solr_save diff --git a/app/models/category.rb b/app/models/category.rb index a67b1fc..61a8d6f 100644 --- a/app/models/category.rb +++ b/app/models/category.rb @@ -90,11 +90,6 @@ class Category < ActiveRecord::Base self.children.find(:all, :conditions => {:display_in_menu => true}).empty? end - private - def name_sortable # give a different name for solr - name - end - public handle_asynchronously :solr_save end diff --git a/app/models/product.rb b/app/models/product.rb index 2fc0cca..fda0c23 100644 --- a/app/models/product.rb +++ b/app/models/product.rb @@ -211,21 +211,7 @@ class Product < ActiveRecord::Base end end - private - delegate :enabled, :region, :region_id, :environment, :environment_id, :to => :enterprise - - alias_method :name_sortable, :name - def name_sortable # give a different name for solr - name - end - - def price_sortable - (price.nil? or price.zero?) ? nil : price - end - - public - handle_asynchronously :solr_save end diff --git a/app/models/profile.rb b/app/models/profile.rb index 616d02d..3066f6a 100644 --- a/app/models/profile.rb +++ b/app/models/profile.rb @@ -874,14 +874,6 @@ private :generate_url, :url_options self.active_fields end - private - - def name_sortable # give a different name for solr - name - end - - public - handle_asynchronously :solr_save def control_panel_settings_button diff --git a/plugins/solr/lib/ext/article.rb b/plugins/solr/lib/ext/article.rb index ec6a8c2..e87623d 100644 --- a/plugins/solr/lib/ext/article.rb +++ b/plugins/solr/lib/ext/article.rb @@ -25,7 +25,7 @@ class Article {:profile_id => :integer}, :language, {:solr_plugin_category_filter => :integer}, # ordered/query-boosted fields - {:name_sortable => :string}, :last_changed_by_id, :published_at, :is_image, + {:solr_plugin_name_sortable => :string}, :last_changed_by_id, :published_at, :is_image, :updated_at, :created_at, ], :include => [ {:profile => {:fields => [:name, :identifier, :address, :nickname, :region_id, :lat, :lng]}}, @@ -74,4 +74,8 @@ class Article def solr_plugin_category_filter categories_including_virtual_ids end + + def solr_plugin_name_sortable + name + end end diff --git a/plugins/solr/lib/ext/category.rb b/plugins/solr/lib/ext/category.rb index 87c7df7..dbf240d 100644 --- a/plugins/solr/lib/ext/category.rb +++ b/plugins/solr/lib/ext/category.rb @@ -11,6 +11,12 @@ class Category # filtered fields :parent_id, # ordered/query-boosted fields - {:name_sortable => :string}, + {:solr_plugin_name_sortable => :string}, ] + + private + + def solr_plugin_name_sortable + name + end end diff --git a/plugins/solr/lib/ext/product.rb b/plugins/solr/lib/ext/product.rb index dee4a8d..c271d8e 100644 --- a/plugins/solr/lib/ext/product.rb +++ b/plugins/solr/lib/ext/product.rb @@ -30,7 +30,7 @@ class Product {:solr_plugin_public => :boolean}, {:environment_id => :integer}, {:enabled => :boolean}, {:solr_plugin_category_filter => :integer}, # ordered/query-boosted fields - {:price_sortable => :decimal}, {:name_sortable => :string}, + {:solr_plugin_price_sortable => :decimal}, {:solr_plugin_name_sortable => :string}, {:lat => :float}, {:lng => :float}, :updated_at, :created_at, ], :include => [ @@ -82,4 +82,12 @@ class Product def solr_plugin_public self.public? end + + def solr_plugin_name_sortable # give a different name for solr + name + end + + def solr_plugin_price_sortable + (price.nil? or price.zero?) ? nil : price + end end diff --git a/plugins/solr/lib/ext/profile.rb b/plugins/solr/lib/ext/profile.rb index 879c252..2b62faa 100644 --- a/plugins/solr/lib/ext/profile.rb +++ b/plugins/solr/lib/ext/profile.rb @@ -20,7 +20,7 @@ class Profile {:solr_plugin_public => :boolean}, {:environment_id => :integer}, {:solr_plugin_category_filter => :integer}, # ordered/query-boosted fields - {:name_sortable => :string}, {:user_id => :integer}, + {:solr_plugin_name_sortable => :string}, {:user_id => :integer}, :enabled, :active, :validated, :public_profile, {:lat => :float}, {:lng => :float}, :updated_at, :created_at, @@ -94,4 +94,8 @@ class Profile def solr_plugin_category_filter categories_including_virtual_ids end + + def solr_plugin_name_sortable + name + end end -- libgit2 0.21.2