improving todo creation tests and implement context, project and tag setting/creation

This commit is contained in:
Stefan Richter 2011-10-10 22:25:51 +02:00
parent 3180164ed0
commit 9eae8a7068
2 changed files with 110 additions and 44 deletions

View file

@ -143,19 +143,6 @@ class Todo < ActiveRecord::Base
end
end
def predecessor_dependencies=(params)
value = params[:predecessor_dependencies]
if !value.nil?
if value.class == Array
value.each do |attrs|
predecessor_dependencies.build(attrs)
end
else
predecessor_dependencies.build(value)
end
end
end
def save_predecessors
unless @predecessor_array.nil? # Only save predecessors if they changed
current_array = self.predecessors
@ -190,19 +177,6 @@ class Todo < ActiveRecord::Base
self.activate!
end
def successor_dependencies=(params)
value = params[:successor_dependencies]
if !value.nil?
if value.class == Array
value.each do |attrs|
successor_dependencies.build(attrs)
end
else
successor_dependencies.build(value)
end
end
end
# Returns true if t is equal to self or a successor of self
def is_successor?(todo)
if self == todo
@ -314,6 +288,8 @@ class Todo < ActiveRecord::Base
end
def add_predecessor(t)
return if t.nil?
@predecessor_array = predecessors
@predecessor_array << t
end
@ -335,7 +311,63 @@ class Todo < ActiveRecord::Base
def raw_notes=(value)
self[:notes] = value
end
# XML API fixups
def predecessor_dependencies=(params)
value = params[:predecessor]
if !value.nil?
if value.class == Array
value.each do |ele|
if ele.is_a? String
add_predecessor(self.user.todos.find_by_id(ele.to_i)) unless ele.blank?
else
predecessor_dependencies.build(value)
end
end
else
if ele.is_a? String
add_predecessor(self.user.todos.find_by_id(ele.to_i)) unless ele.blank?
else
predecessor_dependencies.build(value)
end
end
end
end
alias_method :original_context=, :context=
def context=(value)
if value.is_a? Context
self.original_context=(value)
else
self.original_context=(Context.create(value))
end
end
alias_method :original_project=, :project=
def project=(value)
if value.is_a? Project
self.original_project=(value)
else
self.original_project=(Project.create(value))
end
end
alias_method :original_tags=, :tags=
def tags=(params)
value = params[:tag]
if !value.nil?
if value.class == Array
value.each do |attrs|
tags.build(attrs)
end
else
tags.build(value)
end
end
end
# Rich Todo API
def self.from_rich_message(user, default_context_id, description, notes)