Merged r16071 (#24595).

git-svn-id: http://svn.redmine.org/redmine/branches/3.2-stable@16100 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2016-12-20 09:05:31 +00:00
parent e2b3fcabde
commit 0453c56b22
2 changed files with 22 additions and 2 deletions

View File

@@ -350,6 +350,10 @@ class Project < ActiveRecord::Base
self.status == STATUS_ACTIVE
end
def closed?
self.status == STATUS_CLOSED
end
def archived?
self.status == STATUS_ARCHIVED
end
@@ -377,8 +381,12 @@ class Project < ActiveRecord::Base
# Unarchives the project
# All its ancestors must be active
def unarchive
return false if ancestors.detect {|a| !a.active?}
update_attribute :status, STATUS_ACTIVE
return false if ancestors.detect {|a| a.archived?}
new_status = STATUS_ACTIVE
if parent
new_status = parent.status
end
update_attribute :status, new_status
end
def close

View File

@@ -205,6 +205,18 @@ class ProjectTest < ActiveSupport::TestCase
assert @ecookbook_sub1.unarchive
end
def test_unarchive_a_child_of_a_closed_project_should_set_status_to_closed
Project.find(1).close
child = Project.find(3)
assert_equal Project::STATUS_CLOSED, child.status
child.archive
assert_equal Project::STATUS_ARCHIVED, child.status
child.unarchive
assert_equal Project::STATUS_CLOSED, child.status
end
def test_destroy
# 2 active members
assert_equal 2, @ecookbook.members.size