Browse Source

Clear target version when copying an issue if status is locked or closed (#27863).

Patch by Marius BALTEANU.


git-svn-id: http://svn.redmine.org/redmine/trunk@17368 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/4.0.0
Go MAEDA 6 years ago
parent
commit
85db9769bc
2 changed files with 21 additions and 0 deletions
  1. 1
    0
      app/models/issue.rb
  2. 20
    0
      test/unit/issue_test.rb

+ 1
- 0
app/models/issue.rb View File

@@ -1638,6 +1638,7 @@ class Issue < ActiveRecord::Base
copy.author = author
copy.project = project
copy.parent_issue_id = copied_issue_ids[child.parent_id]
copy.fixed_version_id = nil unless child.fixed_version.present? && child.fixed_version.status == 'open'
unless copy.save
logger.error "Could not copy subtask ##{child.id} while copying ##{@copied_from.id} to ##{id} due to validation errors: #{copy.errors.full_messages.join(', ')}" if logger
next

+ 20
- 0
test/unit/issue_test.rb View File

@@ -1393,6 +1393,26 @@ class IssueTest < ActiveSupport::TestCase
assert !issue.watched_by?(user2)
end

def test_copy_should_clear_subtasks_target_version_if_locked_or_closed
version = Version.new(:project => Project.find(1), :name => '2.1',)
version.save!

parent = Issue.generate!
child1 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 1', :fixed_version_id => 3)
child2 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 2', :fixed_version_id => version.id)

version.status = 'locked'
version.save!

copy = parent.reload.copy

assert_difference 'Issue.count', 3 do
assert copy.save
end

assert_equal [3, nil], copy.children.map(&:fixed_version_id)
end

def test_should_not_call_after_project_change_on_creation
issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1,
:subject => 'Test', :author_id => 1)

Loading…
Cancel
Save