コード例 #1
0
ファイル: locallib.php プロジェクト: covex-nn/moodle
 /**
  * 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();
         }
     }
 }
コード例 #2
0
ファイル: locallib.php プロジェクト: EmmanuelYupit/educursos
 /**
  * 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();
             }
         }
     }
 }