1
0
mirror of https://github.com/meineerde/redmine.git synced 2025-12-19 15:01:14 +00:00

Do not clear category on project change if category with same exists (#16941).

git-svn-id: http://svn.redmine.org/redmine/trunk@14715 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2015-10-20 18:57:44 +00:00
parent 540053eb82
commit bf1f60f65f
2 changed files with 21 additions and 0 deletions

View File

@ -454,6 +454,11 @@ class Issue < ActiveRecord::Base
if allowed_target_projects(user).where(:id => p.to_i).exists?
self.project_id = p
end
if project_id_changed? && attrs['category_id'].to_s == category_id_was.to_s
# Discard submitted category on previous project
attrs.delete('category_id')
end
end
if (t = attrs.delete('tracker_id')) && safe_attribute?('tracker_id')

View File

@ -3096,6 +3096,22 @@ class IssuesControllerTest < ActionController::TestCase
assert_equal 'This is the test_new issue', issue.subject
end
def test_update_form_should_keep_category_with_same_when_changing_project
source = Project.generate!
target = Project.generate!
source_category = IssueCategory.create!(:name => 'Foo', :project => source)
target_category = IssueCategory.create!(:name => 'Foo', :project => target)
issue = Issue.generate!(:project => source, :category => source_category)
@request.session[:user_id] = 1
patch :edit, :id => issue.id,
:issue => {:project_id => target.id, :category_id => source_category.id}
assert_response :success
issue = assigns(:issue)
assert_equal target_category, issue.category
end
def test_update_form_should_propose_default_status_for_existing_issue
@request.session[:user_id] = 2
WorkflowTransition.delete_all