From 0697df81aa08f203271d6fb1293ce19bdc52df0a Mon Sep 17 00:00:00 2001 From: David Balch Date: Thu, 11 Dec 2014 12:21:50 +0000 Subject: [PATCH] MDL-48574 assign: Fire workflow_state_updated event on batch and single. This change adds the workflow_state_updated event when changing workflow state using the single grading page and the quick grading mechanisms. Previously, it only fired for batch updates using process_set_batch_marking_workflow_state(). --- mod/assign/locallib.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index 6bf4342e0e6..c70f7367bc9 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -5388,7 +5388,10 @@ class assign { $flags->allocatedmarker = $modified->allocatedmarker; } if ($workflowstatemodified || $allocatedmarkermodified) { - $this->update_user_flags($flags); + if ($this->update_user_flags($flags) && $workflowstatemodified) { + $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST); + \mod_assign\event\workflow_state_updated::create_from_user($this, $user, $flags->workflowstate)->trigger(); + } } $this->update_grade($grade); @@ -6633,9 +6636,15 @@ class assign { } if (isset($formdata->workflowstate) || isset($formdata->allocatedmarker)) { $flags = $this->get_user_flags($userid, true); + $oldworkflowstate = $flags->workflowstate; $flags->workflowstate = isset($formdata->workflowstate) ? $formdata->workflowstate : $flags->workflowstate; $flags->allocatedmarker = isset($formdata->allocatedmarker) ? $formdata->allocatedmarker : $flags->allocatedmarker; - $this->update_user_flags($flags); + if ($this->update_user_flags($flags) && + isset($formdata->workflowstate) && + $formdata->workflowstate !== $oldworkflowstate) { + $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST); + \mod_assign\event\workflow_state_updated::create_from_user($this, $user, $formdata->workflowstate)->trigger(); + } } } $grade->grader= $USER->id;