diff --git a/tracks/app/models/todo.rb b/tracks/app/models/todo.rb index feab3068..c3754e53 100644 --- a/tracks/app/models/todo.rb +++ b/tracks/app/models/todo.rb @@ -8,7 +8,9 @@ class Todo < ActiveRecord::Base acts_as_state_machine :initial => :active, :column => 'state' - state :active, :enter => Proc.new { |t| t[:show_from] = nil } + # when entering active state, also remove completed_at date. + # Looks like :exit of state completed is not run, see #679 + state :active, :enter => Proc.new { |t| t[:show_from], t.completed_at = nil, nil } state :project_hidden state :completed, :enter => Proc.new { |t| t.completed_at = Time.now.utc }, :exit => Proc.new { |t| t.completed_at = nil } state :deferred diff --git a/tracks/test/unit/todo_test.rb b/tracks/test/unit/todo_test.rb index 9288cd16..cfb05eca 100644 --- a/tracks/test/unit/todo_test.rb +++ b/tracks/test/unit/todo_test.rb @@ -31,6 +31,15 @@ class TodoTest < Test::Rails::TestCase assert_not_nil @completed.completed_at end + def test_completed_at_cleared_after_toggle_to_active + assert_kind_of Todo, @completed + assert @completed.completed? + @completed.toggle_completion! + assert @completed.active? + assert_nil @completed.completed_at + end + + # Validation tests # def test_validate_presence_of_description