Commit 47530dbe9564ca3093fa60f9272cf9271b1825d3
Committed by
Daniela Feitosa
1 parent
c9c75982
Exists in
master
and in
22 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,17 +8,20 @@ class BrowseController < PublicController | ||
| 8 | more_popular | 8 | more_popular |
| 9 | ) | 9 | ) |
| 10 | 10 | ||
| 11 | + def per_page | ||
| 12 | + 27 | ||
| 13 | + end | ||
| 14 | + | ||
| 11 | def people | 15 | def people |
| 12 | @filter = filter | 16 | @filter = filter |
| 13 | @title = self.filter_description(params[:action] + '_' + @filter ) | 17 | @title = self.filter_description(params[:action] + '_' + @filter ) |
| 14 | 18 | ||
| 15 | @results = @environment.people.visible.send(@filter) | 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 | end | 23 | end |
| 24 | + @results = @results.compact.paginate(:per_page => per_page, :page => params[:page]) | ||
| 22 | end | 25 | end |
| 23 | 26 | ||
| 24 | def communities | 27 | def communities |
| @@ -27,11 +30,10 @@ class BrowseController < PublicController | @@ -27,11 +30,10 @@ class BrowseController < PublicController | ||
| 27 | 30 | ||
| 28 | @results = @environment.communities.visible.send(@filter) | 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 | end | 35 | end |
| 36 | + @results = @results.compact.paginate(:per_page => per_page, :page => params[:page]) | ||
| 35 | end | 37 | end |
| 36 | 38 | ||
| 37 | protected | 39 | protected |
test/functional/browse_controller_test.rb
| @@ -65,6 +65,25 @@ class BrowseControllerTest < Test::Unit::TestCase | @@ -65,6 +65,25 @@ class BrowseControllerTest < Test::Unit::TestCase | ||
| 65 | assert_tag :a, '', :attributes => {:class => 'next_page'} | 65 | assert_tag :a, '', :attributes => {:class => 'next_page'} |
| 66 | end | 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 | should 'list all people filter by more active' do | 87 | should 'list all people filter by more active' do |
| 69 | Person.delete_all | 88 | Person.delete_all |
| 70 | p1 = create(Person, :name => 'Testing person 1', :user_id => 1) | 89 | p1 = create(Person, :name => 'Testing person 1', :user_id => 1) |
| @@ -160,6 +179,26 @@ class BrowseControllerTest < Test::Unit::TestCase | @@ -160,6 +179,26 @@ class BrowseControllerTest < Test::Unit::TestCase | ||
| 160 | assert_tag :a, '', :attributes => {:class => 'next_page'} | 179 | assert_tag :a, '', :attributes => {:class => 'next_page'} |
| 161 | end | 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 | should 'list all communities filter by more active' do | 202 | should 'list all communities filter by more active' do |
| 164 | c1 = create(Community, :name => 'Testing community 1') | 203 | c1 = create(Community, :name => 'Testing community 1') |
| 165 | c2 = create(Community, :name => 'Testing community 2') | 204 | c2 = create(Community, :name => 'Testing community 2') |