Commit 47530dbe9564ca3093fa60f9272cf9271b1825d3
Committed by
Daniela Feitosa
1 parent
c9c75982
Exists in
master
and in
23 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') | ... | ... |