diff --git a/app/models/todo.rb b/app/models/todo.rb index 5f231221..d608e56f 100644 --- a/app/models/todo.rb +++ b/app/models/todo.rb @@ -6,8 +6,8 @@ class Todo < ActiveRecord::Base belongs_to :recurring_todo named_scope :active, :conditions => { :state => 'active' } - named_scope :not_completed, :conditions => ['NOT state = ? ', 'completed'] - named_scope :are_due, :conditions => ['NOT todos.due IS NULL'] + named_scope :not_completed, :conditions => ['NOT (state = ? )', 'completed'] + named_scope :are_due, :conditions => ['NOT (todos.due IS NULL)'] STARRED_TAG_NAME = "starred" diff --git a/app/models/user.rb b/app/models/user.rb index f2ecedb8..01f4bf0f 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -59,7 +59,7 @@ class User < ActiveRecord::Base "SELECT project.id, count(todo.id) as p_count " + "FROM projects as project " + "LEFT OUTER JOIN todos as todo ON todo.project_id = project.id "+ - "WHERE project.user_id = ? AND NOT todo.state='completed' " + + "WHERE project.user_id = ? AND NOT (todo.state='completed') " + query_state + " GROUP BY project.id ORDER by p_count DESC",user_id]) self.update_positions(projects.map{ |p| p.id }) @@ -91,7 +91,7 @@ class User < ActiveRecord::Base end has_many :completed_todos, :class_name => 'Todo', - :conditions => ['todos.state = ? and todos.completed_at is not null', 'completed'], + :conditions => ['todos.state = ? AND NOT(todos.completed_at IS NULL)', 'completed'], :order => 'todos.completed_at DESC', :include => [ :project, :context ] do def completed_within( date )