Bug #300: First shot at dependency entry in edit form

Limitations:
* No javascript update of dependency changes.
* No resolution for duplicate descriptions.

Conflicts:

	app/views/todos/_edit_form.rhtml
This commit is contained in:
Eric Allen 2009-11-04 22:39:19 -05:00
parent 45dd524519
commit 42cbe52224
4 changed files with 98 additions and 3 deletions

View file

@ -154,6 +154,39 @@ class Todo < ActiveRecord::Base
return self.recurring_todo_id != nil
end
def add_predecessor(predecessor)
logger.debug "add_predecessor #{predecessor.description}"
end
# TODO: DELIMITER
# TODO: Todo::Error
# TODO: Handle todos with the same description
def add_predecessor_list(predecessor_list)
logger.debug "add_predecessor_list #{predecessor_list}"
raise "Can't handle other types than string for now" unless predecessor_list.kind_of? String
list = predecessor_list.split(',').map do |description|
description.strip.squeeze(" ")
end
current = self.predecessors.map(&:description)
remove_list = current - list
# This is probably a bit naive code...
remove_list.each do |description|
t = Todo.find_by_description(description)
logger.debug "Removing #{t.description} from #{self.description} as predecessor"
self.predecessors.delete(t)
end
add_list = list - current
# ... as is this?
add_list.each do |description|
t = Todo.find_by_description(description)
#raise Todo::Error, "predecessor could not be found: #{description}" if t.nil?
# Create dependency record
self.predecessors << t unless self.predecessors.include?(t)
end
# debugger
end
# Rich Todo API
def self.from_rich_message(user, default_context_id, description, notes)