diff --git a/src/noosfero-spb/software_communities/lib/ext/search_controller.rb b/src/noosfero-spb/software_communities/lib/ext/search_controller.rb index 8d0c7bc..2c02af9 100644 --- a/src/noosfero-spb/software_communities/lib/ext/search_controller.rb +++ b/src/noosfero-spb/software_communities/lib/ext/search_controller.rb @@ -89,10 +89,11 @@ class SearchController params[:query] ||= "" visible_communities = visible_profiles(Community) - filtered_software_list = SoftwareInfo.search_by_query(params[:query]) + filtered_software_list = SoftwareInfo.search_by_query(params[:query], environment) if params[:only_softwares] params[:only_softwares].collect!{ |software_name| software_name.to_slug } + #FIX-ME: This query is not appropriate filtered_software_list = SoftwareInfo.all.select{ |s| params[:only_softwares].include?(s.identifier) } @public_software_selected = false end diff --git a/src/noosfero-spb/software_communities/lib/software_info.rb b/src/noosfero-spb/software_communities/lib/software_info.rb index 02fb072..a9816f2 100644 --- a/src/noosfero-spb/software_communities/lib/software_info.rb +++ b/src/noosfero-spb/software_communities/lib/software_info.rb @@ -13,15 +13,15 @@ class SoftwareInfo < ActiveRecord::Base DatabaseDescription ] - scope :search_by_query, lambda { |query = ""| + scope :search_by_query, lambda { |query = "", env = Environment.default| filtered_query = query.gsub(/[\|\(\)\\\/\s\[\]'"*%&!:]/,' ').split.map{|w| w += ":*"}.join('|') search_fields = SoftwareInfo.pg_search_plugin_fields if query.empty? - SoftwareInfo.joins(:community).where("profiles.visible = ?", true) + SoftwareInfo.joins(:community).where("profiles.visible = ? AND environment_id = ? ", true, env.id) else searchable_software_objects = SoftwareInfo.transform_list_in_methods_list(SEARCHABLE_SOFTWARE_CLASSES) - includes(searchable_software_objects).where("to_tsvector('simple', #{search_fields}) @@ to_tsquery('#{filtered_query}')").where("profiles.visible = ?", true) + includes(searchable_software_objects).where("to_tsvector('simple', #{search_fields}) @@ to_tsquery('#{filtered_query}')").where("profiles.visible = ? AND environment_id = ?", true, env.id) end } -- libgit2 0.21.2