Commit 39cfb3914a90f11ef7f4a4df441b1c19f53f0378
Exists in
master
and in
2 other branches
Merge branch 'update_search_by_categories' into 'master'
Update search by categories Search softwares with one or more selected categories See merge request !185
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") |