Merge pull request #112 from zoombody/postgres

Don't sort todos when counting them
This commit is contained in:
Matt Rogers 2012-10-07 21:02:06 -07:00
commit 1aa1908a98
2 changed files with 8 additions and 4 deletions

View file

@ -280,14 +280,14 @@ class ApplicationController < ActionController::Base
def init_not_done_counts(parents = ['project','context'])
parents.each do |parent|
eval("@#{parent}_not_done_counts ||= current_user.todos.active.group('#{parent}_id').count")
eval("@#{parent}_deferred_counts ||= current_user.todos.deferred.group('#{parent}_id').count")
eval("@#{parent}_not_done_counts ||= current_user.todos.active.count_by_group('#{parent}_id')")
eval("@#{parent}_deferred_counts ||= current_user.todos.deferred.count_by_group('#{parent}_id')")
end
end
def init_project_hidden_todo_counts(parents = ['project','context'])
parents.each do |parent|
eval("@#{parent}_project_hidden_todo_counts = @#{parent}_project_hidden_todo_counts || current_user.todos.count(:conditions => ['state = ? or state = ?', 'project_hidden', 'active'], :group => :#{parent}_id)")
eval("@#{parent}_project_hidden_todo_counts ||= current_user.todos.active_or_hidden.count_by_group('#{parent}_id')")
end
end

View file

@ -81,7 +81,11 @@ class User < ActiveRecord::Base
end
has_many :todos,
:order => 'todos.completed_at DESC, todos.created_at DESC',
:dependent => :delete_all
:dependent => :delete_all do
def count_by_group(g)
except(:order).group(g).count
end
end
has_many :recurring_todos,
:order => 'recurring_todos.completed_at DESC, recurring_todos.created_at DESC',
:dependent => :delete_all