def move_to(new_project, new_tracker = nil, options = {})
options ||= {}
issue = options[:copy] ? self.clone : self
- transaction do
+ ret = Issue.transaction do
if new_project && issue.project_id != new_project.id
# delete issue relations
unless Setting.cross_project_issue_relations?
# Manually update project_id on related time entries
TimeEntry.update_all("project_id = #{new_project.id}", {:issue_id => id})
end
+ true
else
- Issue.connection.rollback_db_transaction
- return false
+ raise ActiveRecord::Rollback
end
end
- return issue
+ ret ? issue : false
end
def priority_id=(pid)
assert_equal 7, issue.fixed_version_id
end
+ def test_move_to_another_project_with_disabled_tracker
+ issue = Issue.find(1)
+ target = Project.find(2)
+ target.tracker_ids = [3]
+ target.save
+ assert_equal false, issue.move_to(target)
+ issue.reload
+ assert_equal 1, issue.project_id
+ end
+
def test_copy_to_the_same_project
issue = Issue.find(1)
copy = nil