diff --git a/app/controllers/my_profile/cms_controller.rb b/app/controllers/my_profile/cms_controller.rb index 1f91881..cf0a19d 100644 --- a/app/controllers/my_profile/cms_controller.rb +++ b/app/controllers/my_profile/cms_controller.rb @@ -289,6 +289,7 @@ class CmsController < MyProfileController results = query.blank? ? [] : profile.articles.published.find_by_contents(query)[:results] render :text => article_list_to_json(results), :content_type => 'application/json' end + def media_upload files_uploaded = [] parent = check_parent(params[:parent_id]) diff --git a/app/controllers/public/profile_search_controller.rb b/app/controllers/public/profile_search_controller.rb index e69174d..d6b1209 100644 --- a/app/controllers/public/profile_search_controller.rb +++ b/app/controllers/public/profile_search_controller.rb @@ -11,8 +11,7 @@ class ProfileSearchController < PublicController if params[:where] == 'environment' redirect_to :controller => 'search', :query => @q else - @results = Article.find_by_contents(@q, {:per_page => 10, :page => params[:page]}, - {:filter_queries => ["profile_id:#{profile.id}", 'public:true']})[:results] + @results = profile.articles.published.find_by_contents(@q, {:per_page => 10, :page => params[:page]})[:results] end end end diff --git a/app/controllers/public/search_controller.rb b/app/controllers/public/search_controller.rb index 8f30109..68e13a6 100644 --- a/app/controllers/public/search_controller.rb +++ b/app/controllers/public/search_controller.rb @@ -54,7 +54,7 @@ class SearchController < PublicController sql_options = {:limit => LIST_SEARCH_LIMIT, :order => 'random()'} if @geosearch full_text_search ['public:true', "{!geofilt}"], :sql_options => sql_options, :extra_limit => extra_limit, - :alternate_query => "{!boost b=recip(geodist(),#{1/DistBoost},1,1)}", + :alternate_query => "{!boost b=recip(geodist(),#{"%e" % (1.to_f/DistBoost)},1,1)}", :radius => DistFilt, :latitude => current_user.person.lat, :longitude => current_user.person.lng else full_text_search ['public:true'], :sql_options => sql_options, :extra_limit => extra_limit, diff --git a/app/models/article.rb b/app/models/article.rb index 8364cb5..3260c90 100644 --- a/app/models/article.rb +++ b/app/models/article.rb @@ -109,6 +109,8 @@ class Article < ActiveRecord::Base pending_categorizations << c else ArticleCategorization.add_category_to_article(c, self) + self.categories(true) + self.solr_save end self.categories(reload) end @@ -151,7 +153,8 @@ class Article < ActiveRecord::Base } named_scope :public, - :conditions => [ "advertise = ? AND published = ? AND profiles.visible = ? AND profiles.public_profile = ?", true, true, true, true ] + :conditions => [ "advertise = ? AND published = ? AND profiles.visible = ? AND profiles.public_profile = ?", true, true, true, true ], + :include => [:profile] named_scope :more_recent, :conditions => [ "advertise = ? AND published = ? AND profiles.visible = ? AND profiles.public_profile = ? AND diff --git a/app/models/product.rb b/app/models/product.rb index af0f9d0..f432931 100644 --- a/app/models/product.rb +++ b/app/models/product.rb @@ -20,7 +20,7 @@ class Product < ActiveRecord::Base validates_numericality_of :price, :allow_nil => true validates_numericality_of :discount, :allow_nil => true - named_scope :more_recent, :order => "updated_at DESC" + named_scope :more_recent, :order => "created_at DESC" after_update :save_image diff --git a/app/models/profile.rb b/app/models/profile.rb index 8a4aef2..3d8bdcd 100644 --- a/app/models/profile.rb +++ b/app/models/profile.rb @@ -236,6 +236,8 @@ class Profile < ActiveRecord::Base pending_categorizations << c else ProfileCategorization.add_category_to_profile(c, self) + self.categories(true) + self.solr_save end self.categories(reload) end @@ -853,7 +855,7 @@ private :generate_url, :url_options c.name if c.top_ancestor.id == facet[:label_id].to_i or facet[:label_id] == 0 end def f_categories - category_ids + category_ids - [region_id] end def f_region self.region_id diff --git a/app/models/region.rb b/app/models/region.rb index 8e95afc..cd9a64b 100644 --- a/app/models/region.rb +++ b/app/models/region.rb @@ -7,16 +7,15 @@ class Region < Category # searches for organizations that could become validators for this region. # search is passed as is to find_by_contents on Organization. def search_possible_validators(search) - Organization.find_by_contents(search)[:results].reject {|item| self.validator_ids.include?(item.id) } + Organization.find_by_contents(search)[:results].docs.reject {|item| self.validator_ids.include?(item.id) } end def has_validator? validators.count > 0 end - def self.with_validators - Region.find(:all, :joins => 'INNER JOIN region_validators on (region_validators.region_id = categories.id)', :select => "distinct #{table_name}.*") - end + named_scope :with_validators, :group => 'id', + :joins => 'INNER JOIN region_validators on (region_validators.region_id = categories.id)' end diff --git a/app/views/search/_results_header.rhtml b/app/views/search/_results_header.rhtml index cb2402b..b608f40 100644 --- a/app/views/search/_results_header.rhtml +++ b/app/views/search/_results_header.rhtml @@ -1,9 +1,11 @@