Ejemplo n.º 1
0
 /**
  * Revert to draft.
  *
  * @param int $userid
  * @return boolean
  */
 public function revert_to_draft($userid)
 {
     global $DB, $USER;
     // Need grade permission.
     require_capability('mod/assign:grade', $this->context);
     if ($this->get_instance()->teamsubmission) {
         $submission = $this->get_group_submission($userid, 0, false);
     } else {
         $submission = $this->get_user_submission($userid, false);
     }
     if (!$submission) {
         return false;
     }
     $submission->status = ASSIGN_SUBMISSION_STATUS_DRAFT;
     $this->update_submission($submission, $userid, true, $this->get_instance()->teamsubmission);
     // Give each submission plugin a chance to process the reverting to draft.
     $plugins = $this->get_submission_plugins();
     foreach ($plugins as $plugin) {
         if ($plugin->is_enabled() && $plugin->is_visible()) {
             $plugin->revert_to_draft($submission);
         }
     }
     // Update the modified time on the grade (grader modified).
     $grade = $this->get_user_grade($userid, true);
     $grade->grader = $USER->id;
     $this->update_grade($grade);
     $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST);
     $completion = new completion_info($this->get_course());
     if ($completion->is_enabled($this->get_course_module()) && $this->get_instance()->completionsubmit) {
         $completion->update_state($this->get_course_module(), COMPLETION_INCOMPLETE, $userid);
     }
     $logmessage = get_string('reverttodraftforstudent', 'assign', array('id' => $user->id, 'fullname' => fullname($user)));
     $addtolog = $this->add_to_log('revert submission to draft', $logmessage, '', true);
     $params = array('context' => $this->context, 'objectid' => $submission->id, 'relateduserid' => $this->get_instance()->teamsubmission ? null : $userid, 'other' => array('newstatus' => $submission->status));
     $event = \mod_assign\event\submission_status_updated::create($params);
     $event->set_legacy_logdata($addtolog);
     $event->trigger();
     return true;
 }
Ejemplo n.º 2
0
 /**
  * Revert to draft.
  *
  * @param int $userid
  * @return boolean
  */
 public function revert_to_draft($userid)
 {
     global $DB, $USER;
     // Need grade permission.
     require_capability('mod/assign:grade', $this->context);
     if ($this->get_instance()->teamsubmission) {
         $submission = $this->get_group_submission($userid, 0, false);
     } else {
         $submission = $this->get_user_submission($userid, false);
     }
     if (!$submission) {
         return false;
     }
     $submission->status = ASSIGN_SUBMISSION_STATUS_DRAFT;
     $this->update_submission($submission, $userid, true, $this->get_instance()->teamsubmission);
     // Give each submission plugin a chance to process the reverting to draft.
     $plugins = $this->get_submission_plugins();
     foreach ($plugins as $plugin) {
         if ($plugin->is_enabled() && $plugin->is_visible()) {
             $plugin->revert_to_draft($submission);
         }
     }
     // Update the modified time on the grade (grader modified).
     $grade = $this->get_user_grade($userid, true);
     $grade->grader = $USER->id;
     $this->update_grade($grade);
     $completion = new completion_info($this->get_course());
     if ($completion->is_enabled($this->get_course_module()) && $this->get_instance()->completionsubmit) {
         $completion->update_state($this->get_course_module(), COMPLETION_INCOMPLETE, $userid);
     }
     \mod_assign\event\submission_status_updated::create_from_submission($this, $submission)->trigger();
     return true;
 }