Commit 92d6d31a09cafc77f0ced5b946a7f72807cb6dbf
1 parent
a6d54e06
Exists in
master
and in
3 other branches
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>
Showing
2 changed files
with
17 additions
and
6 deletions
Show diff stats
src/noosfero-spb/software_communities/lib/ext/search_controller.rb
@@ -105,12 +105,7 @@ class SearchController | @@ -105,12 +105,7 @@ class SearchController | ||
105 | 105 | ||
106 | unless category_ids.empty? | 106 | unless category_ids.empty? |
107 | filtered_software_list.select! do |software| | 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 | end | 109 | end |
115 | end | 110 | end |
116 | 111 |
src/noosfero-spb/software_communities/test/functional/search_controller_test.rb
@@ -94,6 +94,22 @@ class SearchControllerTest < ActionController::TestCase | @@ -94,6 +94,22 @@ class SearchControllerTest < ActionController::TestCase | ||
94 | assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community | 94 | assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community |
95 | end | 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 | should "software_infos search by programming language" do | 113 | should "software_infos search by programming language" do |
98 | @softwares.first.software_languages << create_software_language("Python", "1.0") | 114 | @softwares.first.software_languages << create_software_language("Python", "1.0") |
99 | @softwares.last.software_languages << create_software_language("Java", "8.1") | 115 | @softwares.last.software_languages << create_software_language("Java", "8.1") |