app/models/state_machines/story.rb in voluntary-0.5.2 vs app/models/state_machines/story.rb in voluntary-0.6.0

- old
+ new

@@ -24,14 +24,22 @@ state :tasks_defined do #validates_associated :tasks validate :presence_of_tasks end + state :active do + validate :presence_of_tasks + end + event :activate do - transition [:tasks_defined, :completed] => :active + transition [:new, :tasks_defined, :completed] => :active end + event :deactivate do + transition :active => :tasks_defined + end + event :complete do transition :active => :completed end event :close do @@ -49,10 +57,12 @@ def set_initial_state self.state ||= :new end def presence_of_tasks - self.tasks.delete_if{|t| t.name.blank? && t.text.blank? } + self.tasks.delete_if do |t| + t.name.blank? && (t.class.name == 'Task' && t.text.blank?) + end if tasks.select{|t| !t.valid?}.any? errors[:base] << I18n.t( 'activerecord.errors.models.story.attributes.base.invalid_tasks' ) \ No newline at end of file