Commit 61040de7525918eb11a61f168bb9555ec7234538

Authored by Tallys Martins
2 parents 2a5409a8 ff48cac4

Merge branch 'remove_disabled_communities_from_catalog' into 'master'

Remove disabled communities from catalog

See merge request !15
lib/software_info.rb
@@ -13,15 +13,15 @@ class SoftwareInfo < ActiveRecord::Base @@ -13,15 +13,15 @@ class SoftwareInfo < ActiveRecord::Base
13 DatabaseDescription 13 DatabaseDescription
14 ] 14 ]
15 15
16 - scope :search_by_query, lambda {|query = ""| 16 + scope :search_by_query, lambda { |query = ""|
17 filtered_query = query.gsub(/[\|\(\)\\\/\s\[\]'"*%&!:]/,' ').split.map{|w| w += ":*"}.join('|') 17 filtered_query = query.gsub(/[\|\(\)\\\/\s\[\]'"*%&!:]/,' ').split.map{|w| w += ":*"}.join('|')
18 search_fields = SoftwareInfo.pg_search_plugin_fields 18 search_fields = SoftwareInfo.pg_search_plugin_fields
19 19
20 if query.empty? 20 if query.empty?
21 - SoftwareInfo.all 21 + SoftwareInfo.joins(:community).where("profiles.visible = ?", true)
22 else 22 else
23 searchable_software_objects = SoftwareInfo.transform_list_in_methods_list(SEARCHABLE_SOFTWARE_CLASSES) 23 searchable_software_objects = SoftwareInfo.transform_list_in_methods_list(SEARCHABLE_SOFTWARE_CLASSES)
24 - includes(searchable_software_objects).where("to_tsvector('simple', #{search_fields}) @@ to_tsquery('#{filtered_query}')") 24 + includes(searchable_software_objects).where("to_tsvector('simple', #{search_fields}) @@ to_tsquery('#{filtered_query}')").where("profiles.visible = ?", true)
25 end 25 end
26 } 26 }
27 27
test/functional/search_controller_test.rb
@@ -214,6 +214,31 @@ class SearchControllerTest < ActionController::TestCase @@ -214,6 +214,31 @@ class SearchControllerTest < ActionController::TestCase
214 assert_not_includes assigns(:searches)[:software_infos][:results], software_one.community 214 assert_not_includes assigns(:searches)[:software_infos][:results], software_one.community
215 end 215 end
216 216
  217 + should "software_infos search return only enabled softwares" do
  218 + s1 = SoftwareInfo.first
  219 + s2 = SoftwareInfo.last
  220 +
  221 + # First get them all normally
  222 + get(
  223 + :software_infos,
  224 + :query => "software"
  225 + )
  226 +
  227 + assert_includes assigns(:searches)[:software_infos][:results], s1.community
  228 + assert_includes assigns(:searches)[:software_infos][:results], s2.community
  229 +
  230 + s2.community.disable
  231 +
  232 + # Now it should not contain the disabled community
  233 + get(
  234 + :software_infos,
  235 + :query => "software"
  236 + )
  237 +
  238 + assert_includes assigns(:searches)[:software_infos][:results], s1.community
  239 + assert_not_includes assigns(:searches)[:software_infos][:results], s2.community
  240 + end
  241 +
217 private 242 private
218 243
219 def create_software_categories 244 def create_software_categories