Commit 47530dbe9564ca3093fa60f9272cf9271b1825d3
Committed by
Daniela Feitosa
1 parent
c9c75982
Exists in
staging
and in
42 other branches
Removing nil results from browse pages
(ActionItem1875)
Showing
2 changed files
with
49 additions
and
8 deletions
Show diff stats
app/controllers/public/browse_controller.rb
... | ... | @@ -8,17 +8,20 @@ class BrowseController < PublicController |
8 | 8 | more_popular |
9 | 9 | ) |
10 | 10 | |
11 | + def per_page | |
12 | + 27 | |
13 | + end | |
14 | + | |
11 | 15 | def people |
12 | 16 | @filter = filter |
13 | 17 | @title = self.filter_description(params[:action] + '_' + @filter ) |
14 | 18 | |
15 | 19 | @results = @environment.people.visible.send(@filter) |
16 | 20 | |
17 | - if params[:query].blank? | |
18 | - @results = @results.paginate(:per_page => 27, :page => params[:page]) | |
19 | - else | |
20 | - @results = @results.find_by_contents(params[:query]).paginate(:per_page => 27, :page => params[:page]) | |
21 | + if !params[:query].blank? | |
22 | + @results = @results.find_by_contents(params[:query]) | |
21 | 23 | end |
24 | + @results = @results.compact.paginate(:per_page => per_page, :page => params[:page]) | |
22 | 25 | end |
23 | 26 | |
24 | 27 | def communities |
... | ... | @@ -27,11 +30,10 @@ class BrowseController < PublicController |
27 | 30 | |
28 | 31 | @results = @environment.communities.visible.send(@filter) |
29 | 32 | |
30 | - if params[:query].blank? | |
31 | - @results = @results.paginate(:per_page => 27, :page => params[:page]) | |
32 | - else | |
33 | - @results = @results.find_by_contents(params[:query]).paginate(:per_page => 27, :page => params[:page]) | |
33 | + if !params[:query].blank? | |
34 | + @results = @results.find_by_contents(params[:query]) | |
34 | 35 | end |
36 | + @results = @results.compact.paginate(:per_page => per_page, :page => params[:page]) | |
35 | 37 | end |
36 | 38 | |
37 | 39 | protected | ... | ... |
test/functional/browse_controller_test.rb
... | ... | @@ -65,6 +65,25 @@ class BrowseControllerTest < Test::Unit::TestCase |
65 | 65 | assert_tag :a, '', :attributes => {:class => 'next_page'} |
66 | 66 | end |
67 | 67 | |
68 | + should 'not return nil results in the more_active people list' do | |
69 | + Profile.delete_all | |
70 | + p1 = fast_create(Person) | |
71 | + p2 = fast_create(Person) | |
72 | + p3 = fast_create(Person) | |
73 | + fast_create(Article, :profile_id => p1, :created_at => 1.day.ago) | |
74 | + fast_create(Article, :profile_id => p2, :created_at => 1.day.ago) | |
75 | + fast_create(Article, :profile_id => p2, :created_at => 1.day.ago) | |
76 | + fast_create(Article, :profile_id => p2, :created_at => 1.day.ago) | |
77 | + fast_create(Article, :profile_id => p3, :created_at => 1.day.ago) | |
78 | + | |
79 | + per_page = 1 | |
80 | + @controller.stubs(:per_page).returns(per_page) | |
81 | + | |
82 | + get :people, :filter => 'more_active' | |
83 | + | |
84 | + assert_equal assigns(:results).total_pages, Person.count/per_page | |
85 | + end | |
86 | + | |
68 | 87 | should 'list all people filter by more active' do |
69 | 88 | Person.delete_all |
70 | 89 | p1 = create(Person, :name => 'Testing person 1', :user_id => 1) |
... | ... | @@ -160,6 +179,26 @@ class BrowseControllerTest < Test::Unit::TestCase |
160 | 179 | assert_tag :a, '', :attributes => {:class => 'next_page'} |
161 | 180 | end |
162 | 181 | |
182 | + should 'not return nil results in the more_active communities list' do | |
183 | + Profile.delete_all | |
184 | + c1 = fast_create(Community) | |
185 | + c2 = fast_create(Community) | |
186 | + c3 = fast_create(Community) | |
187 | + fast_create(Article, :profile_id => c1, :created_at => 1.day.ago) | |
188 | + fast_create(Article, :profile_id => c2, :created_at => 1.day.ago) | |
189 | + fast_create(Article, :profile_id => c2, :created_at => 1.day.ago) | |
190 | + fast_create(Article, :profile_id => c2, :created_at => 1.day.ago) | |
191 | + fast_create(Article, :profile_id => c3, :created_at => 1.day.ago) | |
192 | + | |
193 | + per_page = 1 | |
194 | + @controller.stubs(:per_page).returns(per_page) | |
195 | + | |
196 | + get :communities, :filter => 'more_active' | |
197 | + | |
198 | + assert_equal assigns(:results).total_pages, Community.count/per_page | |
199 | + end | |
200 | + | |
201 | + | |
163 | 202 | should 'list all communities filter by more active' do |
164 | 203 | c1 = create(Community, :name => 'Testing community 1') |
165 | 204 | c2 = create(Community, :name => 'Testing community 2') | ... | ... |