Commit 6af4a830917d19ba60b7eec4b23ea865b5a9d1c3

Authored by MoisesMachado
1 parent b25a3643

ActionItem558: search for products georeferenced


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2298 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/controllers/public/search_controller.rb
@@ -99,9 +99,8 @@ class SearchController < ApplicationController @@ -99,9 +99,8 @@ class SearchController < ApplicationController
99 end 99 end
100 100
101 def calculate_find_options(asset, limit, page, product_category, region, radius, year, month) 101 def calculate_find_options(asset, limit, page, product_category, region, radius, year, month)
102 -  
103 result = { :product_category => product_category, :per_page => limit, :page => page } 102 result = { :product_category => product_category, :per_page => limit, :page => page }
104 - if [:enterprises, :people].include?(asset) && region 103 + if [:enterprises, :people, :products].include?(asset) && region
105 result.merge!(:within => radius, :region => region.id) 104 result.merge!(:within => radius, :region => region.id)
106 end 105 end
107 106
@@ -199,8 +198,8 @@ class SearchController < ApplicationController @@ -199,8 +198,8 @@ class SearchController < ApplicationController
199 [ :products, ('Products'), @finder.recent('products', limit) ], 198 [ :products, ('Products'), @finder.recent('products', limit) ],
200 [ :events, _('Upcoming events'), @finder.upcoming_events({:per_page => limit}) ], 199 [ :events, _('Upcoming events'), @finder.upcoming_events({:per_page => limit}) ],
201 [ :communities, _('Communities'), @finder.recent('communities', limit) ], 200 [ :communities, _('Communities'), @finder.recent('communities', limit) ],
202 - [ :articles, _('Articles'), @finder.recent('articles', limit) ],  
203 - [ :most_commented_articles, _('Most commented articles'), @finder.most_commented_articles(limit) ] 201 + [ :most_commented_articles, _('Most commented articles'), @finder.most_commented_articles(limit) ],
  202 + [ :articles, _('Articles'), @finder.recent('text_articles', limit) ]
204 ].each do |key, name, list| 203 ].each do |key, name, list|
205 @order << key 204 @order << key
206 @results[key] = list 205 @results[key] = list
test/functional/search_controller_test.rb
@@ -913,6 +913,21 @@ class SearchControllerTest &lt; Test::Unit::TestCase @@ -913,6 +913,21 @@ class SearchControllerTest &lt; Test::Unit::TestCase
913 assert_not_includes @controller.where_to_search.map(&:first), :products 913 assert_not_includes @controller.where_to_search.map(&:first), :products
914 end 914 end
915 915
  916 + should 'search for products by origin and radius correctly' do
  917 + s = City.create!(:name => 'Salvador', :lat => -12.97, :lng => -38.51, :environment => Environment.default)
  918 + e1 = Enterprise.create!(:name => 'test ent 1', :identifier => 'test_ent1', :lat => -12.97, :lng => -38.51)
  919 + p1 = e1.products.create!(:name => 'test_product1')
  920 + e1.save!
  921 + e2 = Enterprise.create!(:name => 'test ent 2', :identifier => 'test_ent2', :lat => -14.97, :lng => -40.51)
  922 + p2 = e2.products.create!(:name => 'test_product2')
  923 + e2.save!
  924 +
  925 + get :assets, :asset => 'products', :city => s.id, :radius => 15
  926 +
  927 + assert_includes assigns(:results)[:products], p1
  928 + assert_not_includes assigns(:results)[:products], p2
  929 + end
  930 +
916 ################################################################## 931 ##################################################################
917 ################################################################## 932 ##################################################################
918 933