From 94f60ffba43281f24034bb4f50617b014cd1f206 Mon Sep 17 00:00:00 2001 From: Carsten Otto Date: Sun, 17 Jan 2016 17:43:31 +0100 Subject: [PATCH 1/5] do not load contexts for review, not necessary --- app/controllers/projects_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 7f2c22fb..ba07284f 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -58,7 +58,6 @@ class ProjectsController < ApplicationController @source_view = params['_source_view'] || 'review' @page_title = t('projects.list_reviews') @projects = current_user.projects.load - @contexts = current_user.contexts.load @projects_to_review = current_user.projects.select {|p| p.needs_review?(current_user)} @stalled_projects = current_user.projects.select {|p| p.stalled?} @blocked_projects = current_user.projects.select {|p| p.blocked?} From dc6eed3956e0b646bd0428b897dcb3752b7ddfc0 Mon Sep 17 00:00:00 2001 From: Carsten Otto Date: Sun, 17 Jan 2016 17:50:04 +0100 Subject: [PATCH 2/5] remove instance variable for projects, not necessary --- app/controllers/projects_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index ba07284f..0ba7f21e 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -57,7 +57,7 @@ class ProjectsController < ApplicationController def review @source_view = params['_source_view'] || 'review' @page_title = t('projects.list_reviews') - @projects = current_user.projects.load + projects = current_user.projects.load @projects_to_review = current_user.projects.select {|p| p.needs_review?(current_user)} @stalled_projects = current_user.projects.select {|p| p.stalled?} @blocked_projects = current_user.projects.select {|p| p.blocked?} From a4ef5654e9f22a4b6331836ecf74102daf8da837 Mon Sep 17 00:00:00 2001 From: Carsten Otto Date: Sun, 17 Jan 2016 17:51:49 +0100 Subject: [PATCH 3/5] explicit loading does not seem to be necessary --- app/controllers/projects_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 0ba7f21e..c98eb027 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -57,7 +57,7 @@ class ProjectsController < ApplicationController def review @source_view = params['_source_view'] || 'review' @page_title = t('projects.list_reviews') - projects = current_user.projects.load + projects = current_user.projects @projects_to_review = current_user.projects.select {|p| p.needs_review?(current_user)} @stalled_projects = current_user.projects.select {|p| p.stalled?} @blocked_projects = current_user.projects.select {|p| p.blocked?} From 33c814e1b9f53880b9315951a08ffc60e98e848e Mon Sep 17 00:00:00 2001 From: Carsten Otto Date: Sun, 17 Jan 2016 17:52:28 +0100 Subject: [PATCH 4/5] use local variable where possible --- app/controllers/projects_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index c98eb027..dcdc936c 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -58,9 +58,9 @@ class ProjectsController < ApplicationController @source_view = params['_source_view'] || 'review' @page_title = t('projects.list_reviews') projects = current_user.projects - @projects_to_review = current_user.projects.select {|p| p.needs_review?(current_user)} - @stalled_projects = current_user.projects.select {|p| p.stalled?} - @blocked_projects = current_user.projects.select {|p| p.blocked?} + @projects_to_review = projects.select {|p| p.needs_review?(current_user)} + @stalled_projects = projects.select {|p| p.stalled?} + @blocked_projects = projects.select {|p| p.blocked?} @current_projects = current_user.projects.uncompleted.select {|p| not(p.needs_review?(current_user))} init_not_done_counts(['project']) From d2931ea7f0a80a6ebed97cb2ce49a867d944f376 Mon Sep 17 00:00:00 2001 From: Carsten Otto Date: Thu, 21 Jan 2016 22:30:48 +0100 Subject: [PATCH 5/5] sort current projects by last_reviewed date fixes #1960 --- app/controllers/projects_controller.rb | 2 +- test/controllers/projects_controller_test.rb | 10 ++++++++++ test/fixtures/projects.yml | 8 ++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index dcdc936c..1e74c331 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -61,7 +61,7 @@ class ProjectsController < ApplicationController @projects_to_review = projects.select {|p| p.needs_review?(current_user)} @stalled_projects = projects.select {|p| p.stalled?} @blocked_projects = projects.select {|p| p.blocked?} - @current_projects = current_user.projects.uncompleted.select {|p| not(p.needs_review?(current_user))} + @current_projects = projects.uncompleted.select { |p| not (p.needs_review?(current_user)) }.sort_by { |p| p.last_reviewed || Time.zone.at(0) } init_not_done_counts(['project']) init_project_hidden_todo_counts(['project']) diff --git a/test/controllers/projects_controller_test.rb b/test/controllers/projects_controller_test.rb index b8cd2f70..9028d257 100644 --- a/test/controllers/projects_controller_test.rb +++ b/test/controllers/projects_controller_test.rb @@ -25,6 +25,16 @@ class ProjectsControllerTest < ActionController::TestCase assert_equal 2, assigns['deferred_todos'].size end + def test_sorted_current_in_review + p = projects(:timemachine) + login_as :admin_user + get :review + current_projects = assigns['current_projects'] + assert_equal 2, current_projects.length + assert_equal projects(:gardenclean), current_projects[0] + assert_equal projects(:moremoney), current_projects[1] + end + def test_show_exposes_next_project_in_same_state login_as :admin_user get :show, :id => projects(:timemachine).to_param diff --git a/test/fixtures/projects.yml b/test/fixtures/projects.yml index 92e495bd..e796feb8 100644 --- a/test/fixtures/projects.yml +++ b/test/fixtures/projects.yml @@ -6,6 +6,12 @@ def today Time.zone.now.utc.beginning_of_day.to_s(:db) end +def yesterday + 1.day.ago.utc.beginning_of_day.to_s(:db) +end +def last_week + 1.week.ago.utc.beginning_of_day.to_s(:db) +end %> timemachine: @@ -28,6 +34,7 @@ moremoney: user_id: 1 created_at: <%= today %> updated_at: <%= today %> + last_reviewed: <%= yesterday %> gardenclean: id: 3 @@ -38,6 +45,7 @@ gardenclean: user_id: 1 created_at: <%= today %> updated_at: <%= today %> + last_reviewed: <%= last_week %> attendrailsconf: id: 4