mirror of
https://github.com/TracksApp/tracks.git
synced 2026-02-03 22:41:48 +01:00
Applied Luke's patch to init_not_done_counts to exclude actions from hidden projects in the count shown in the sidebar.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@340 a4c988fc-2ded-0310-b66e-134b36920a42
This commit is contained in:
parent
a4963a9883
commit
838b2d83c2
2 changed files with 24 additions and 2 deletions
|
|
@ -92,11 +92,12 @@ class ApplicationController < ActionController::Base
|
|||
init_not_done_counts
|
||||
end
|
||||
|
||||
# TODO: Need to exclude hidden projects from this count
|
||||
def init_not_done_counts(parents = ['project','context'])
|
||||
parents.each do |parent|
|
||||
eval("@#{parent}_not_done_counts = Todo.count(:all,
|
||||
:conditions => ['user_id = ? and type = ? and done = ?', @user.id, \"Immediate\", false],
|
||||
:conditions => ['todos.user_id = ? and todos.type = ? and todos.done = ? and (projects.state != ? or todos.project_id is ?)',
|
||||
@user.id, \"Immediate\", false, \"hidden\", nil],
|
||||
:joins => 'LEFT JOIN projects on projects.id = todos.project_id',
|
||||
:group => :#{parent}_id)")
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ require 'todo_controller'
|
|||
class TodoController; def rescue_action(e) raise e end; end
|
||||
|
||||
class TodoControllerTest < Test::Unit::TestCase
|
||||
fixtures :users, :preferences, :projects, :contexts, :todos
|
||||
|
||||
def setup
|
||||
@controller = TodoController.new
|
||||
@request, @response = ActionController::TestRequest.new, ActionController::TestResponse.new
|
||||
|
|
@ -17,4 +19,23 @@ class TodoControllerTest < Test::Unit::TestCase
|
|||
assert_redirected_to :controller => 'login', :action => 'login'
|
||||
end
|
||||
|
||||
def test_not_done_counts
|
||||
@request.session['user_id'] = users(:admin_user).id
|
||||
get :index
|
||||
assert_equal 2, assigns['project_not_done_counts'][projects(:timemachine).id]
|
||||
assert_equal 3, assigns['context_not_done_counts'][contexts(:call).id]
|
||||
assert_equal 1, assigns['context_not_done_counts'][contexts(:lab).id]
|
||||
end
|
||||
|
||||
def test_not_done_counts_after_hiding_project
|
||||
p = Project.find(1)
|
||||
p.hide!
|
||||
p.save!
|
||||
@request.session['user_id'] = users(:admin_user).id
|
||||
get :index
|
||||
assert_equal nil, assigns['project_not_done_counts'][projects(:timemachine).id]
|
||||
assert_equal 2, assigns['context_not_done_counts'][contexts(:call).id]
|
||||
assert_equal nil, assigns['context_not_done_counts'][contexts(:lab).id]
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue