Commit 92d6d31a09cafc77f0ced5b946a7f72807cb6dbf

Authored by Luciano Prestes
1 parent a6d54e06

Update software_infos by categories

- Search softwares with one or more selected categories

Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com>
Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
src/noosfero-spb/software_communities/lib/ext/search_controller.rb
... ... @@ -105,12 +105,7 @@ class SearchController
105 105  
106 106 unless category_ids.empty?
107 107 filtered_software_list.select! do |software|
108   - if software.nil? || software.community.nil?
109   - false
110   - else
111   - result_ids = (software.community.category_ids & category_ids).sort
112   - result_ids == category_ids.sort
113   - end
  108 + !(software.community.category_ids & category_ids).empty?
114 109 end
115 110 end
116 111  
... ...
src/noosfero-spb/software_communities/test/functional/search_controller_test.rb
... ... @@ -94,6 +94,22 @@ class SearchControllerTest &lt; ActionController::TestCase
94 94 assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community
95 95 end
96 96  
  97 + should "software_infos search softwares with one or more selected categories" do
  98 + software = create_software_info("Software Two", :acronym => "SFT", :finality => "Task")
  99 + software.save!
  100 +
  101 + get(
  102 + :software_infos,
  103 + :query => "",
  104 + :selected_categories_id => [Category.all[0], Category.all[1]]
  105 + )
  106 +
  107 + assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community
  108 + assert_includes assigns(:searches)[:software_infos][:results], @softwares.last.community
  109 + assert_not_includes assigns(:searches)[:software_infos][:results], software.community
  110 + end
  111 +
  112 +
97 113 should "software_infos search by programming language" do
98 114 @softwares.first.software_languages << create_software_language("Python", "1.0")
99 115 @softwares.last.software_languages << create_software_language("Java", "8.1")
... ...