From 907f4b05f0ffaeb1a2fe700be8a0010144c2f091 Mon Sep 17 00:00:00 2001 From: Jens Kraemer Date: Mon, 7 Nov 2016 17:35:25 +0800 Subject: [PATCH 2/2] restrict list of statuses shown in workflow edit to those actually used by the relevant roles. --- app/controllers/workflows_controller.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/controllers/workflows_controller.rb b/app/controllers/workflows_controller.rb index 9fc3767..b258904 100644 --- a/app/controllers/workflows_controller.rb +++ b/app/controllers/workflows_controller.rb @@ -137,7 +137,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 -- 2.1.4