mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-29 13:28:49 +01:00
improving todo creation tests and implement context, project and tag setting/creation
This commit is contained in:
parent
3180164ed0
commit
9eae8a7068
2 changed files with 110 additions and 44 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue