From 324838c1c4cfd8a2c2c5731e7dd690ea16f3ffa5 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sun, 8 Feb 2009 20:38:27 +0100 Subject: [PATCH] fix some queries for mysql4 where NOT is interpreted more strict than in mysql5. Thanks Steven for finding this one out! --- app/models/todo.rb | 4 ++-- app/models/user.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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 )