mirror of
https://github.com/redmine/redmine.git
synced 2025-12-17 05:50:29 +01:00
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:
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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!
|
||||||
|
|||||||
Reference in New Issue
Block a user