From fa98c0865e638d28ea69ef36fd859ffb41ac66df Mon Sep 17 00:00:00 2001 From: Eric Allen Date: Sat, 8 May 2010 19:30:58 -0400 Subject: [PATCH] Override AASM's initial state if specified Fixes #977 --- app/controllers/todos_controller.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 7d203e59..480744fb 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -55,7 +55,7 @@ class TodosController < ApplicationController predecessor_list = p.predecessor_list @todo = current_user.todos.build(p.attributes) - + if p.project_specified_by_name? project = current_user.projects.find_or_create_by_name(p.project_name) @new_project_created = project.new_record_before_save? @@ -70,8 +70,16 @@ class TodosController < ApplicationController end @todo.add_predecessor_list(predecessor_list) + + # Fix for #977 because AASM overrides @state on creation + specified_state = @todo.state + @todo.update_state_from_project @saved = @todo.save + + # Fix for #977 because AASM overrides @state on creation + @todo.update_attribute('state', specified_state) unless specified_state == "immediate" + unless (@saved == false) || tag_list.blank? @todo.tag_with(tag_list) @todo.tags.reload