mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-10 17:41:31 +00:00
Adding a subtask should default to a tracker without disabled parent field (#16260).
git-svn-id: http://svn.redmine.org/redmine/trunk@16383 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
9c6ba66539
commit
ff6d8c6f5c
@ -530,10 +530,17 @@ class Issue < ActiveRecord::Base
|
||||
self.tracker_id = t
|
||||
end
|
||||
end
|
||||
if project
|
||||
if project && tracker.nil?
|
||||
# Set a default tracker to accept custom field values
|
||||
# even if tracker is not specified
|
||||
self.tracker ||= allowed_target_trackers(user).first
|
||||
allowed_trackers = allowed_target_trackers(user)
|
||||
|
||||
if attrs['parent_issue_id'].present?
|
||||
# If parent_issue_id is present, the first tracker for which this field
|
||||
# is not disabled is chosen as default
|
||||
self.tracker = allowed_trackers.detect {|t| t.core_fields.include?('parent_issue_id')}
|
||||
end
|
||||
self.tracker ||= allowed_trackers.first
|
||||
end
|
||||
|
||||
statuses_allowed = new_statuses_allowed_to(user)
|
||||
|
||||
@ -1920,6 +1920,32 @@ class IssuesControllerTest < Redmine::ControllerTest
|
||||
end
|
||||
end
|
||||
|
||||
def test_new_should_default_to_first_tracker
|
||||
@request.session[:user_id] = 2
|
||||
|
||||
get :new, :project_id => 1
|
||||
assert_response :success
|
||||
assert_select 'select[name=?]', 'issue[tracker_id]' do
|
||||
assert_select 'option', 3
|
||||
assert_select 'option[value="1"][selected=selected]'
|
||||
end
|
||||
end
|
||||
|
||||
def test_new_with_parent_issue_id_should_default_to_first_tracker_without_disabled_parent_field
|
||||
tracker = Tracker.find(1)
|
||||
tracker.core_fields -= ['parent_issue_id']
|
||||
tracker.save!
|
||||
@request.session[:user_id] = 2
|
||||
|
||||
get :new, :project_id => 1, :issue => {:parent_issue_id => 1}
|
||||
assert_response :success
|
||||
assert_select 'select[name=?]', 'issue[tracker_id]' do
|
||||
assert_select 'option', 2
|
||||
assert_select 'option[value="2"][selected=selected]'
|
||||
assert_select 'option[value="1"]', 0
|
||||
end
|
||||
end
|
||||
|
||||
def test_new_without_allowed_trackers_should_respond_with_403
|
||||
role = Role.find(1)
|
||||
role.set_permission_trackers 'add_issues', []
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user