mirror of
https://github.com/TracksApp/tracks.git
synced 2026-01-02 23:38:50 +01:00
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:
parent
45dd524519
commit
42cbe52224
4 changed files with 98 additions and 3 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue