diff --git a/adminlib.php b/adminlib.php
index 1f34c74c4443927addddc954ac6463182fed9af8..6171d60c2a09098d56b3d2a19df3bfdba40a3431 100644
--- a/adminlib.php
+++ b/adminlib.php
@@ -471,8 +471,8 @@ class workflow_settings {
$this->check_permissions();
// Handle other actions.
- step_manager::handle_action($action, $subpluginid);
- trigger_manager::handle_action($action, $subpluginid);
+ step_manager::handle_action($action, $subpluginid, $workflowid);
+ trigger_manager::handle_action($action, $subpluginid, $workflowid);
workflow_manager::handle_action($action, $workflowid);
if ($action === action::TRIGGER_INSTANCE_FORM) {
diff --git a/classes/manager/step_manager.php b/classes/manager/step_manager.php
index a2332f746b292d4f71e8f32dd9a9332225ddaee5..e3d118123232131a0e7ce50a179fdd8ba51e6dbc 100644
--- a/classes/manager/step_manager.php
+++ b/classes/manager/step_manager.php
@@ -217,10 +217,12 @@ class step_manager extends subplugin_manager {
* Handles an action for a workflow step.
* @param string $action action to be executed
* @param int $subpluginid id of the step instance
+ * @param int $workflowid id of the workflow
*/
- public static function handle_action($action, $subpluginid) {
- if ($step = self::get_step_instance($subpluginid)) {
- if (!workflow_manager::is_active($step->workflowid)) {
+ public static function handle_action($action, $subpluginid, $workflowid) {
+ $step = self::get_step_instance($subpluginid);
+ if ($step && $step->workflowid == $workflowid ) {
+ if (!workflow_manager::is_active($workflowid)) {
if ($action === action::UP_STEP) {
self::change_sortindex($subpluginid, true);
}
diff --git a/classes/manager/trigger_manager.php b/classes/manager/trigger_manager.php
index e76f3eb3dbc2d60f4e87c1b14a282ff74f6da787..7833104040ddd7262c2d5ca7e05da51e8f5ac298 100644
--- a/classes/manager/trigger_manager.php
+++ b/classes/manager/trigger_manager.php
@@ -240,11 +240,13 @@ class trigger_manager extends subplugin_manager {
/**
* Handles an action for a workflow step.
* @param string $action action to be executed
- * @param int $subpluginid id of the step instance
+ * @param int $subpluginid id of the trigger instance
+ * @param int $workflowid id of the workflow
*/
- public static function handle_action($action, $subpluginid) {
- if ($trigger = self::get_instance($subpluginid)) {
- if (!workflow_manager::is_active($trigger->workflowid)) {
+ public static function handle_action($action, $subpluginid, $workflowid) {
+ $trigger = self::get_instance($subpluginid);
+ if ($trigger && $trigger->workflowid == $workflowid ) {
+ if (!workflow_manager::is_active($workflowid)) {
if ($action === action::UP_TRIGGER) {
self::change_sortindex($subpluginid, true);
}