diff --git a/app/models/issue.rb b/app/models/issue.rb index b45dc966f..7d7db13e1 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -822,6 +822,16 @@ class Issue < ActiveRecord::Base !leaf? end + def assignable_trackers + trackers = project.trackers + if new_record? && parent_issue_id.present? + trackers = trackers.reject do |tracker| + tracker_id != tracker.id && tracker.disabled_core_fields.include?('parent_issue_id') + end + end + trackers + end + # Users the issue can be assigned to def assignable_users users = project.assignable_users.to_a diff --git a/app/views/issues/_form.html.erb b/app/views/issues/_form.html.erb index f9907c345..788a2f38e 100644 --- a/app/views/issues/_form.html.erb +++ b/app/views/issues/_form.html.erb @@ -14,7 +14,7 @@ <% end %> <% if @issue.safe_attribute? 'tracker_id' %> -
<%= f.select :tracker_id, @issue.project.trackers.reject { |t| @issue.new_record? && @issue.parent_issue_id.present? && @issue.tracker_id != t.id && t.disabled_core_fields.include?('parent_issue_id') }.collect {|t| [t.name, t.id]}, {:required => true}, +
<%= f.select :tracker_id, @issue.assignable_trackers.collect {|t| [t.name, t.id]}, {:required => true}, :onchange => "updateIssueFrom('#{escape_javascript update_issue_form_path(@project, @issue)}', this)" %>
<% end %>