Feature #43883 ยป 0001-Reset-Done-to-the-default-value-of-a-new-issue-when-.patch
| app/models/issue.rb | ||
|---|---|---|
| 317 | 317 |
self.attributes = |
| 318 | 318 |
issue.attributes.dup.except( |
| 319 | 319 |
"id", "root_id", "parent_id", "lft", "rgt", |
| 320 |
"created_on", "updated_on", "status_id", "closed_on" |
|
| 320 |
"created_on", "updated_on", "status_id", "closed_on", "done_ratio"
|
|
| 321 | 321 |
) |
| 322 | 322 |
self.custom_field_values = |
| 323 | 323 |
issue.custom_field_values.to_h do |v| |
| ... | ... | |
| 325 | 325 |
end |
| 326 | 326 |
if options[:keep_status] |
| 327 | 327 |
self.status = issue.status |
| 328 |
self.done_ratio = issue.read_attribute(:done_ratio) |
|
| 328 | 329 |
end |
| 329 | 330 |
self.author = User.current |
| 330 | 331 |
unless options[:attachments] == false |
| test/unit/issue_test.rb | ||
|---|---|---|
| 1398 | 1398 |
assert_equal orig.status, issue.status |
| 1399 | 1399 |
end |
| 1400 |
def test_copy_should_reset_done_ratio_to_default_value |
|
| 1401 |
with_settings :issue_done_ratio => 'issue_field' do |
|
| 1402 |
orig = Issue.generate!(:done_ratio => 80) |
|
| 1403 | ||
| 1404 |
issue = Issue.new.copy_from(orig) |
|
| 1405 |
assert_equal 0, issue.done_ratio |
|
| 1406 |
assert issue.save |
|
| 1407 |
assert_equal 0, issue.reload.done_ratio |
|
| 1408 |
end |
|
| 1409 |
end |
|
| 1410 | ||
| 1411 |
def test_copy_should_use_default_done_ratio_of_default_status_when_done_ratio_is_based_on_issue_status |
|
| 1412 |
IssueStatus.find(1).update!(:default_done_ratio => 20) |
|
| 1413 |
with_settings :issue_done_ratio => 'issue_status' do |
|
| 1414 |
orig = Issue.generate!(:status_id => 2, :done_ratio => 80) |
|
| 1415 | ||
| 1416 |
issue = Issue.new.copy_from(orig) |
|
| 1417 |
assert_equal 1, issue.status_id |
|
| 1418 |
assert_equal 20, issue.done_ratio |
|
| 1419 |
assert issue.save |
|
| 1420 |
assert_equal 20, issue.reload.done_ratio |
|
| 1421 |
end |
|
| 1422 |
end |
|
| 1423 | ||
| 1424 |
def test_copy_with_keep_status_should_copy_done_ratio |
|
| 1425 |
orig = Issue.generate!(:status_id => 2, :done_ratio => 80) |
|
| 1426 | ||
| 1427 |
issue = Issue.new.copy_from(orig, :keep_status => true) |
|
| 1428 |
assert issue.save |
|
| 1429 |
assert_equal 80, issue.reload.done_ratio |
|
| 1430 |
end |
|
| 1431 | ||
| 1400 | 1432 |
def test_copy_should_add_relation_with_copied_issue |
| 1401 | 1433 |
copied = Issue.find(1) |
| 1402 | 1434 |
issue = Issue.new.copy_from(copied) |
| test/unit/project_copy_test.rb | ||
|---|---|---|
| 46 | 46 |
test "#copy should copy issues" do |
| 47 | 47 |
@source_project.issues << Issue.generate!(:status => IssueStatus.find_by_name('Closed'),
|
| 48 | 48 |
:subject => "copy issue status", |
| 49 |
:done_ratio => 80, |
|
| 49 | 50 |
:tracker_id => 1, |
| 50 | 51 |
:assigned_to_id => 2, |
| 51 | 52 |
:project_id => @source_project.id) |
| ... | ... | |
| 64 | 65 |
assert copied_issue |
| 65 | 66 |
assert copied_issue.status |
| 66 | 67 |
assert_equal "Closed", copied_issue.status.name |
| 68 |
assert_equal 80, copied_issue.done_ratio |
|
| 67 | 69 |
end |
| 68 | 70 |
test "#copy should copy issues custom values" do |