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