Commit 39cfb3914a90f11ef7f4a4df441b1c19f53f0378

Authored by Rodrigo Souto
2 parents 80ab88b8 92d6d31a

Merge branch 'update_search_by_categories' into 'master'

Update search by categories

Search softwares with one or more selected categories

See merge request !185
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 < 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")
... ...