Commit 31719255f669d69bd6d7cf82e84e0a513ebe9544

Authored by MoisesMachado
1 parent 1bbebba9

ActionItem501: fixed the tracking of the number of item per page


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2167 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/controllers/public/search_controller.rb
@@ -88,14 +88,16 @@ class SearchController < ApplicationController @@ -88,14 +88,16 @@ class SearchController < ApplicationController
88 88
89 def load_product_categories_menu(asset) 89 def load_product_categories_menu(asset)
90 @results[asset].uniq! 90 @results[asset].uniq!
  91 + # REFACTOR DUPLICATED CODE inner loop doing the same thing that outter loop
91 @categories_menu = ProductCategory.menu_categories(@product_category, environment).map do |cat| 92 @categories_menu = ProductCategory.menu_categories(@product_category, environment).map do |cat|
92 hits = @finder.count(asset, @filtered_query, calculate_find_options(asset, nil, nil, cat, @region, params[:radius], nil, nil)) 93 hits = @finder.count(asset, @filtered_query, calculate_find_options(asset, nil, nil, cat, @region, params[:radius], nil, nil))
93 childs = [] 94 childs = []
94 - # REFACTOR DUPLICATED CODE inner loop doing the same thing that outter loop  
95 - childs = cat.children.map do |child|  
96 - child_hits = @finder.count(asset, @filtered_query, calculate_find_options(asset, nil, nil, child, @region, params[:radius], nil, nil))  
97 - [child, child_hits]  
98 - end.select{|child, child_hits| child_hits > 0 } 95 + if hits > 0
  96 + childs = cat.children.map do |child|
  97 + child_hits = @finder.count(asset, @filtered_query, calculate_find_options(asset, nil, nil, child, @region, params[:radius]))
  98 + [child, child_hits]
  99 + end.select{|child, child_hits| child_hits > 0 }
  100 + end
99 [cat, hits, childs] 101 [cat, hits, childs]
100 end.select{|cat, hits| hits > 0 } 102 end.select{|cat, hits| hits > 0 }
101 end 103 end
@@ -117,7 +119,8 @@ class SearchController < ApplicationController @@ -117,7 +119,8 @@ class SearchController < ApplicationController
117 # limit the number of results per page 119 # limit the number of results per page
118 # TODO: dont hardcore like this 120 # TODO: dont hardcore like this
119 def limit 121 def limit
120 - (@searching.size == 1) ? 10 : 6 122 + searching = @searching.values.select{|v|v}
  123 + (searching.size == 1) ? 10 : 6
121 end 124 end
122 125
123 public 126 public
@@ -173,6 +176,7 @@ class SearchController < ApplicationController @@ -173,6 +176,7 @@ class SearchController < ApplicationController
173 end 176 end
174 177
175 render :action => 'index' 178 render :action => 'index'
  179 + render :text => 'bla'
176 end 180 end
177 181
178 alias :assets :index 182 alias :assets :index
app/models/product_category.rb
@@ -3,15 +3,11 @@ class ProductCategory < Category @@ -3,15 +3,11 @@ class ProductCategory < Category
3 has_many :consumptions 3 has_many :consumptions
4 has_many :consumers, :through => :consumptions, :source => :profile 4 has_many :consumers, :through => :consumptions, :source => :profile
5 5
6 - def tree  
7 - children.inject([]){|all,c| all + c.tree } << self  
8 - end  
9 -  
10 def all_products 6 def all_products
11 - Product.find(:all, :conditions => { :product_category_id => tree.map(&:id) }) 7 + Product.find(:all, :conditions => { :product_category_id => (all_children << self).map(&:id) })
12 end 8 end
13 9
14 def self.menu_categories(top_category, env) 10 def self.menu_categories(top_category, env)
15 - top_category ? top_category.children : top_level_for(env) 11 + top_category ? top_category.children : top_level_for(env).select{|c|c.kind_of?(ProductCategory)}
16 end 12 end
17 end 13 end
test/unit/product_category_test.rb
@@ -18,27 +18,6 @@ class ProductCategoryTest &lt; Test::Unit::TestCase @@ -18,27 +18,6 @@ class ProductCategoryTest &lt; Test::Unit::TestCase
18 assert !c3.errors.invalid?(:type) 18 assert !c3.errors.invalid?(:type)
19 end 19 end
20 20
21 - def test_tree  
22 - c0 = ProductCategory.create!(:name => 'base_cat', :environment => Environment.default)  
23 - assert ! c0.new_record?  
24 - assert_equivalent [c0], c0.tree  
25 -  
26 - c1 = ProductCategory.create!(:name => 'cat_1', :parent => c0, :environment => Environment.default)  
27 - c0.reload  
28 - assert_equivalent [c1], c1.tree  
29 - assert_equivalent [c0, c1], c0.tree  
30 -  
31 - c2 = ProductCategory.create!(:name => 'cat_2', :parent => c0, :environment => Environment.default)  
32 - c0.reload; c1.reload;  
33 - assert_equivalent [c0,c1,c2] , c0.tree  
34 -  
35 - c3 = ProductCategory.create!(:name => 'cat_3', :parent => c2, :environment => Environment.default)  
36 - c0.reload; c1.reload; c2.reload  
37 - assert_equivalent [c0,c1,c2,c3], c0.tree  
38 - assert_equivalent [c2,c3], c2.tree  
39 -  
40 - end  
41 -  
42 def test_all_products 21 def test_all_products
43 c0 = ProductCategory.create!(:name => 'base_cat', :environment => Environment.default) 22 c0 = ProductCategory.create!(:name => 'base_cat', :environment => Environment.default)
44 assert_equivalent [], c0.all_products 23 assert_equivalent [], c0.all_products