From 3fc655904f90e407d95201d0b76114dce2e992d9 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Mon, 16 Nov 2009 20:06:37 +0000 Subject: [PATCH] Copy issue status on project copy (#3877). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3075 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/issue.rb | 1 + test/unit/issue_test.rb | 10 ++++++++++ test/unit/project_test.rb | 10 ++++++++++ 3 files changed, 21 insertions(+) diff --git a/app/models/issue.rb b/app/models/issue.rb index ea6eb130..cfc2a1bc 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -80,6 +80,7 @@ class Issue < ActiveRecord::Base issue = arg.is_a?(Issue) ? arg : Issue.find(arg) self.attributes = issue.attributes.dup.except("id", "created_on", "updated_on") self.custom_values = issue.custom_values.collect {|v| v.clone} + self.status = issue.status self end diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index 84ccef60..3b0dd269 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -178,6 +178,16 @@ class IssueTest < ActiveSupport::TestCase assert_equal orig.tracker, issue.tracker assert_equal orig.custom_values.first.value, issue.custom_values.first.value end + + def test_copy_should_copy_status + orig = Issue.find(8) + assert orig.status != IssueStatus.default + + issue = Issue.new.copy_from(orig) + assert issue.save + issue.reload + assert_equal orig.status, issue.status + end def test_should_close_duplicates # Create 3 issues diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb index b4bb4cc1..93e4bbf2 100644 --- a/test/unit/project_test.rb +++ b/test/unit/project_test.rb @@ -406,6 +406,11 @@ class ProjectTest < ActiveSupport::TestCase end should "copy issues" do + @source_project.issues << Issue.generate!(:status_id => 5, + :subject => "copy issue status", + :tracker_id => 1, + :assigned_to_id => 2, + :project_id => @source_project.id) assert @project.valid? assert @project.issues.empty? assert @project.copy(@source_project) @@ -416,6 +421,11 @@ class ProjectTest < ActiveSupport::TestCase assert ! issue.assigned_to.blank? assert_equal @project, issue.project end + + copied_issue = @project.issues.first(:conditions => {:subject => "copy issue status"}) + assert copied_issue + assert copied_issue.status + assert_equal "Closed", copied_issue.status.name end should "change the new issues to use the copied version" do -- 2.11.0