From 1f45497a527e00649a694c9f2ae425a26c2eea99 Mon Sep 17 00:00:00 2001 From: Eric Allen Date: Tue, 10 Nov 2009 22:08:28 -0500 Subject: [PATCH] Ticket #923: Filtering on active or pending todos in pred. auto completer. Conflicts: app/controllers/todos_controller.rb --- app/controllers/todos_controller.rb | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index dfa0f992..74097747 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -305,8 +305,6 @@ class TodosController < ApplicationController @todo.save! end - - @context_changed = @original_item_context_id != @todo.context_id @todo_was_activated_from_deferred_state = @original_item_was_deferred && @todo.active? @@ -601,17 +599,21 @@ class TodosController < ApplicationController get_todo_from_params # Begin matching todos in current project @items = current_user.todos.find(:all, - :conditions => [ 'NOT (id = ?) AND description LIKE ? AND project_id = ?', - @todo.id, - '%' + params[:predecessor_list] + '%', - @todo.project_id ], + :conditions => [ '(todos.state = ? OR todos.state = ?) AND ' + + 'NOT (id = ?) AND lower(description) LIKE ? AND project_id = ?', + 'active', 'pending', + @todo.id, + '%' + params[:predecessor_list].downcase + '%', + @todo.project_id ], :order => 'description ASC', :limit => 10 ) if @items.empty? # Match todos in other projects @items = current_user.todos.find(:all, - :conditions => [ 'NOT (id = ?) AND description LIKE ?', - params[:id], '%' + params[:predecessor_list] + '%' ], + :conditions => [ '(todos.state = ? OR todos.state = ?) AND ' + + 'NOT (id = ?) AND lower(description) LIKE ?', + 'active', 'pending', + params[:id], '%' + params[:predecessor_list].downcase + '%' ], :order => 'description ASC', :limit => 10 ) @@ -619,7 +621,9 @@ class TodosController < ApplicationController else # New todo - TODO: Filter on project @items = current_user.todos.find(:all, - :conditions => [ 'description LIKE ?', '%' + params[:predecessor_list] + '%' ], + :conditions => [ '(todos.state = ? OR todos.state = ?) AND lower(description) LIKE ?', + 'active', 'pending', + '%' + params[:predecessor_list].downcase + '%' ], :order => 'description ASC', :limit => 10 )