diff options
Diffstat (limited to 'app/controllers/workflows_controller.rb')
-rw-r--r-- | app/controllers/workflows_controller.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/app/controllers/workflows_controller.rb b/app/controllers/workflows_controller.rb index e825171bf..dd75860ff 100644 --- a/app/controllers/workflows_controller.rb +++ b/app/controllers/workflows_controller.rb @@ -138,7 +138,11 @@ class WorkflowsController < ApplicationController def find_statuses @used_statuses_only = (params[:used_statuses_only] == '0' ? false : true) if @trackers && @used_statuses_only - @statuses = @trackers.map(&:issue_statuses).flatten.uniq.sort.presence + role_ids = Role.all.select(&:consider_workflow?).map(&:id) + status_ids = WorkflowTransition.where( + :tracker_id => @trackers.map(&:id), :role_id => role_ids + ).uniq.pluck(:old_status_id, :new_status_id).flatten.uniq + @statuses = IssueStatus.where(:id => status_ids).sorted.to_a.presence end @statuses ||= IssueStatus.sorted.to_a end |