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 13 DatabaseDescription
14 14 ]
15 15  
16   - scope :search_by_query, lambda {|query = ""|
  16 + scope :search_by_query, lambda { |query = ""|
17 17 filtered_query = query.gsub(/[\|\(\)\\\/\s\[\]'"*%&!:]/,' ').split.map{|w| w += ":*"}.join('|')
18 18 search_fields = SoftwareInfo.pg_search_plugin_fields
19 19  
20 20 if query.empty?
21   - SoftwareInfo.all
  21 + SoftwareInfo.joins(:community).where("profiles.visible = ?", true)
22 22 else
23 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 25 end
26 26 }
27 27  
... ...
test/functional/search_controller_test.rb
... ... @@ -214,6 +214,31 @@ class SearchControllerTest < ActionController::TestCase
214 214 assert_not_includes assigns(:searches)[:software_infos][:results], software_one.community
215 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 242 private
218 243  
219 244 def create_software_categories
... ...