Commit b68fd4c0 authored by Jean-Philippe Lang's avatar Jean-Philippe Lang

When moving an issue to another project, reassign it to the category with same name if any (#1653).

git-svn-id: http://redmine.rubyforge.org/svn/trunk@1697 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 6ddea339
......@@ -77,7 +77,9 @@ class Issue < ActiveRecord::Base
self.relations_to.clear
end
# issue is moved to another project
self.category = nil
# reassign to the category with same name if any
new_category = category.nil? ? nil : new_project.issue_categories.find_by_name(category.name)
self.category = new_category
self.fixed_version = nil
self.project = new_project
end
......
......@@ -14,4 +14,9 @@ issue_categories_003:
project_id: 2
assigned_to_id:
id: 3
issue_categories_004:
name: Printing
project_id: 2
assigned_to_id:
id: 4
\ No newline at end of file
......@@ -165,17 +165,26 @@ class IssueTest < Test::Unit::TestCase
assert !issue1.reload.closed?
end
def test_move_to_another_project
def test_move_to_another_project_with_same_category
issue = Issue.find(1)
assert issue.move_to(Project.find(2))
issue.reload
assert_equal 2, issue.project_id
# Category removed
assert_nil issue.category
# Category changes
assert_equal 4, issue.category_id
# Make sure time entries were move to the target project
assert_equal 2, issue.time_entries.first.project_id
end
def test_move_to_another_project_without_same_category
issue = Issue.find(2)
assert issue.move_to(Project.find(2))
issue.reload
assert_equal 2, issue.project_id
# Category cleared
assert_nil issue.category_id
end
def test_issue_destroy
Issue.find(1).destroy
assert_nil Issue.find_by_id(1)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment