Feature #4403 » copy_to_another_project_and_relate.patch
| test/functional/issues_controller_test.rb (working copy) | ||
|---|---|---|
| 1126 | 1126 |
issue = Issue.first(:order => 'id DESC') |
| 1127 | 1127 |
assert_redirected_to :controller => 'issues', :action => 'show', :id => issue |
| 1128 | 1128 |
end |
| 1129 | ||
| 1130 |
def test_copy_to_another_project_and_relate |
|
| 1131 |
@request.session[:user_id] = 2 |
|
| 1132 |
Setting.cross_project_issue_relations = 1 |
|
| 1133 |
post :move, :ids => [1], :new_project_id => 2, :copy_options => {:copy => '1'}, :follow => '1'
|
|
| 1134 |
issue = Issue.first(:order => 'id DESC') |
|
| 1135 |
orig = Issue.last(:order => 'id DESC') |
|
| 1136 |
assert_equal issue.subject, orig.subject |
|
| 1137 |
assert_not_equal 0, issue.relations_from.size |
|
| 1138 |
end |
|
| 1129 | 1139 |
|
| 1130 | 1140 |
def test_context_menu_one_issue |
| 1131 | 1141 |
@request.session[:user_id] = 2 |
| app/controllers/issues_controller.rb (working copy) | ||
|---|---|---|
| 274 | 274 |
call_hook(:controller_issues_move_before_save, { :params => params, :issue => issue, :target_project => @target_project, :copy => !!@copy })
|
| 275 | 275 |
if r = issue.move_to_project(@target_project, new_tracker, {:copy => @copy, :attributes => changed_attributes})
|
| 276 | 276 |
moved_issues << r |
| 277 |
if @copy && Setting.cross_project_issue_relations? |
|
| 278 |
relation = IssueRelation.new |
|
| 279 |
relation.issue_to = issue |
|
| 280 |
relation.issue_from = r |
|
| 281 |
relation.relation_type = "duplicates" |
|
| 282 |
relation.save |
|
| 283 |
end |
|
| 277 | 284 |
else |
| 278 | 285 |
unsaved_issue_ids << issue.id |
| 279 | 286 |
end |