/** * Set the workflow state for multiple users * * @return void */ protected function process_set_batch_marking_workflow_state() { global $DB; require_sesskey(); $batchusers = required_param('selectedusers', PARAM_TEXT); $state = required_param('markingworkflowstate', PARAM_ALPHA); $useridlist = explode(',', $batchusers); foreach ($useridlist as $userid) { $flags = $this->get_user_flags($userid, true); $flags->workflowstate = $state; $gradingdisabled = $this->grading_disabled($userid); // Will not apply update if user does not have permission to assign this workflow state. if (!$gradingdisabled && $this->update_user_flags($flags)) { if ($state == ASSIGN_MARKING_WORKFLOW_STATE_RELEASED) { // Update Gradebook. $assign = clone $this->get_instance(); $assign->cmidnumber = $this->get_course_module()->idnumber; assign_update_grades($assign, $userid); } $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST); $params = array('id' => $user->id, 'fullname' => fullname($user), 'state' => $state); $message = get_string('setmarkingworkflowstateforlog', 'assign', $params); $addtolog = $this->add_to_log('set marking workflow state', $message, '', true); $params = array('context' => $this->context, 'objectid' => $this->get_instance()->id, 'relateduserid' => $userid, 'other' => array('newstate' => $state)); $event = \mod_assign\event\workflow_state_updated::create($params); $event->set_legacy_logdata($addtolog); $event->trigger(); } } }
/** * Set the workflow state for multiple users * * @return void */ protected function process_set_batch_marking_workflow_state() { global $CFG, $DB; // Include batch marking workflow form. require_once $CFG->dirroot . '/mod/assign/batchsetmarkingworkflowstateform.php'; $formparams = array('userscount' => 0, 'usershtml' => '', 'markingworkflowstates' => $this->get_marking_workflow_states_for_current_user()); $mform = new mod_assign_batch_set_marking_workflow_state_form(null, $formparams); if ($mform->is_cancelled()) { return true; } if ($formdata = $mform->get_data()) { $useridlist = explode(',', $formdata->selectedusers); $state = $formdata->markingworkflowstate; foreach ($useridlist as $userid) { $flags = $this->get_user_flags($userid, true); $flags->workflowstate = $state; $gradingdisabled = $this->grading_disabled($userid); // Will not apply update if user does not have permission to assign this workflow state. if (!$gradingdisabled && $this->update_user_flags($flags)) { if ($state == ASSIGN_MARKING_WORKFLOW_STATE_RELEASED) { // Update Gradebook. $assign = clone $this->get_instance(); $assign->cmidnumber = $this->get_course_module()->idnumber; // Set assign gradebook feedback plugin status. $assign->gradefeedbackenabled = $this->is_gradebook_feedback_enabled(); assign_update_grades($assign, $userid); } $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST); $params = array('id' => $user->id, 'fullname' => fullname($user), 'state' => $state); $message = get_string('setmarkingworkflowstateforlog', 'assign', $params); $addtolog = $this->add_to_log('set marking workflow state', $message, '', true); $params = array('context' => $this->context, 'objectid' => $this->get_instance()->id, 'relateduserid' => $userid, 'other' => array('newstate' => $state)); $event = \mod_assign\event\workflow_state_updated::create($params); $event->set_legacy_logdata($addtolog); $event->trigger(); } } } }