Setting to disable automatic closing of duplicates (#26192).

git-svn-id: http://svn.redmine.org/redmine/trunk@16697 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2017-06-25 11:40:58 +00:00
parent bd9e5447ea
commit dd650c5c26
6 changed files with 24 additions and 1 deletions

View File

@@ -1798,7 +1798,7 @@ class Issue < ActiveRecord::Base
# Closes duplicates if the issue is being closed # Closes duplicates if the issue is being closed
def close_duplicates def close_duplicates
if closing? if Setting.close_duplicate_issues? && closing?
duplicates.each do |duplicate| duplicates.each do |duplicate|
# Reload is needed in case the duplicate was updated by a previous duplicate # Reload is needed in case the duplicate was updated by a previous duplicate
duplicate.reload duplicate.reload

View File

@@ -7,6 +7,8 @@
<p><%= setting_select :cross_project_subtasks, cross_project_subtasks_options %></p> <p><%= setting_select :cross_project_subtasks, cross_project_subtasks_options %></p>
<p><%= setting_check_box :close_duplicate_issues %></p>
<p><%= setting_check_box :issue_group_assignment %></p> <p><%= setting_check_box :issue_group_assignment %></p>
<p><%= setting_check_box :default_issue_start_date_to_creation_date %></p> <p><%= setting_check_box :default_issue_start_date_to_creation_date %></p>

View File

@@ -462,6 +462,7 @@ en:
setting_new_item_menu_tab: Project menu tab for creating new objects setting_new_item_menu_tab: Project menu tab for creating new objects
setting_commit_logs_formatting: Apply text formatting to commit messages setting_commit_logs_formatting: Apply text formatting to commit messages
setting_timelog_required_fields: Required fields for time logs setting_timelog_required_fields: Required fields for time logs
setting_close_duplicate_issues: Close duplicate issues automatically
permission_add_project: Create project permission_add_project: Create project
permission_add_subprojects: Create subprojects permission_add_subprojects: Create subprojects

View File

@@ -474,6 +474,7 @@ fr:
setting_new_item_menu_tab: Onglet de création d'objets dans le menu du project setting_new_item_menu_tab: Onglet de création d'objets dans le menu du project
setting_commit_logs_formatting: Appliquer le formattage de texte aux messages de commit setting_commit_logs_formatting: Appliquer le formattage de texte aux messages de commit
setting_timelog_required_fields: Champs obligatoire pour les temps passés setting_timelog_required_fields: Champs obligatoire pour les temps passés
setting_close_duplicate_issues: Fermer les doublons automatiquement
permission_add_project: Créer un projet permission_add_project: Créer un projet
permission_add_subprojects: Créer des sous-projets permission_add_subprojects: Créer des sous-projets

View File

@@ -173,6 +173,8 @@ parent_issue_done_ratio:
default: 'derived' default: 'derived'
link_copied_issue: link_copied_issue:
default: 'ask' default: 'ask'
close_duplicate_issues:
default: 1
issue_group_assignment: issue_group_assignment:
default: 0 default: 0
default_issue_start_date_to_creation_date: default_issue_start_date_to_creation_date:

View File

@@ -1436,6 +1436,23 @@ class IssueTest < ActiveSupport::TestCase
assert issue3.reload.closed? assert issue3.reload.closed?
end end
def test_should_not_close_duplicate_when_disabled
issue = Issue.generate!
duplicate = Issue.generate!
IssueRelation.create!(:issue_from => duplicate, :issue_to => issue,
:relation_type => IssueRelation::TYPE_DUPLICATES)
assert issue.reload.duplicates.include?(duplicate)
with_settings :close_duplicate_issues => '0' do
issue.init_journal(User.first, "Closing issue")
issue.status = IssueStatus.where(:is_closed => true).first
issue.save
end
assert !duplicate.reload.closed?
end
def test_should_close_duplicates_with_private_notes def test_should_close_duplicates_with_private_notes
issue = Issue.generate! issue = Issue.generate!
duplicate = Issue.generate! duplicate = Issue.generate!