/** * Assignment submission is processed before grading. * * @param moodleform|null $mform If validation failed when submitting this form - this is the moodleform. * It can be null. * @return bool Return false if the validation fails. This affects which page is displayed next. */ protected function process_submit_for_grading($mform) { global $USER, $CFG; require_once $CFG->dirroot . '/mod/assign/submissionconfirmform.php'; require_sesskey(); if (!$this->submissions_open()) { return $this->view_student_error_message(); } $instance = $this->get_instance(); $data = new stdClass(); $adminconfig = $this->get_admin_config(); $requiresubmissionstatement = $instance->requiresubmissionstatement && !empty($adminconfig->submissionstatement); $submissionstatement = ''; if (!empty($adminconfig->submissionstatement)) { $submissionstatement = $adminconfig->submissionstatement; } if ($mform == null) { $mform = new mod_assign_confirm_submission_form(null, array($requiresubmissionstatement, $submissionstatement, $this->get_course_module()->id, $data)); } $data = $mform->get_data(); if (!$mform->is_cancelled()) { if ($mform->get_data() == false) { return false; } return $this->submit_for_grading($data); } return true; }
/** * assignment submission is processed before grading * * @param $mform If validation failed when submitting this form - this is the moodleform - it can be null * @return bool Return false if the validation fails. This affects which page is displayed next. */ private function process_submit_for_grading($mform) { global $USER, $CFG; // Need submit permission to submit an assignment require_capability('mod/assign:submit', $this->context); require_once($CFG->dirroot . '/mod/assign/submissionconfirmform.php'); require_sesskey(); $data = new stdClass(); $adminconfig = $this->get_admin_config(); $requiresubmissionstatement = (!empty($adminconfig->requiresubmissionstatement) || $this->get_instance()->requiresubmissionstatement) && !empty($adminconfig->submissionstatement); $submissionstatement = ''; if (!empty($adminconfig->submissionstatement)) { $submissionstatement = $adminconfig->submissionstatement; } if ($mform == null) { $mform = new mod_assign_confirm_submission_form(null, array($requiresubmissionstatement, $submissionstatement, $this->get_course_module()->id, $data)); } $data = $mform->get_data(); if (!$mform->is_cancelled()) { if ($mform->get_data() == false) { return false; } if ($this->get_instance()->teamsubmission) { $submission = $this->get_group_submission($USER->id, 0, true); } else { $submission = $this->get_user_submission($USER->id, true); } if ($submission->status != ASSIGN_SUBMISSION_STATUS_SUBMITTED) { // Give each submission plugin a chance to process the submission $plugins = $this->get_submission_plugins(); foreach ($plugins as $plugin) { $plugin->submit_for_grading(); } $submission->status = ASSIGN_SUBMISSION_STATUS_SUBMITTED; $this->update_submission($submission, $USER->id, true, $this->get_instance()->teamsubmission); $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_COMPLETE, $USER->id); } if (isset($data->submissionstatement)) { $this->add_to_log('submission statement accepted', get_string('submissionstatementacceptedlog', 'mod_assign', fullname($USER))); } $this->add_to_log('submit for grading', $this->format_submission_for_log($submission)); $this->notify_graders($submission); $this->notify_student_submission_receipt($submission); // Trigger assessable_content_done event to show completion $eventdata = new stdClass(); $eventdata->modulename = 'assign'; $eventdata->cmid = $this->get_course_module()->id; $eventdata->itemid = $submission->id; $eventdata->courseid = $this->get_course()->id; $eventdata->userid = $USER->id; events_trigger('assessable_content_done', $eventdata); } } return true; }
/** * Assignment submission is processed before grading. * * @param moodleform|null $mform If validation failed when submitting this form - this is the moodleform. * It can be null. * @return bool Return false if the validation fails. This affects which page is displayed next. */ protected function process_submit_for_grading($mform, $notices) { global $CFG; require_once $CFG->dirroot . '/mod/assign/submissionconfirmform.php'; require_sesskey(); if (!$this->submissions_open()) { $notices[] = get_string('submissionsclosed', 'assign'); return false; } $instance = $this->get_instance(); $data = new stdClass(); $adminconfig = $this->get_admin_config(); $requiresubmissionstatement = $instance->requiresubmissionstatement && !empty($adminconfig->submissionstatement); $submissionstatement = ''; if (!empty($adminconfig->submissionstatement)) { // Format the submission statement before its sent. We turn off para because this is going within // a form element. $options = array('context' => $this->get_context(), 'para' => false); $submissionstatement = format_text($adminconfig->submissionstatement, FORMAT_MOODLE, $options); } if ($mform == null) { $mform = new mod_assign_confirm_submission_form(null, array($requiresubmissionstatement, $submissionstatement, $this->get_course_module()->id, $data)); } $data = $mform->get_data(); if (!$mform->is_cancelled()) { if ($mform->get_data() == false) { return false; } return $this->submit_for_grading($data, $notices); } return true; }
/** * assignment submission is processed before grading * * @param $mform If validation failed when submitting this form - this is the moodleform - it can be null * @return bool Return false if the validation fails. This affects which page is displayed next. */ private function process_submit_for_grading($mform) { global $USER, $CFG; // Need submit permission to submit an assignment require_capability('mod/assign:submit', $this->context); require_once($CFG->dirroot . '/mod/assign/submissionconfirmform.php'); require_sesskey(); $data = new stdClass(); $adminconfig = $this->get_admin_config(); $requiresubmissionstatement = !empty($adminconfig->requiresubmissionstatement) || $this->get_instance()->requiresubmissionstatement; $submissionstatement = ''; if (!empty($adminconfig->submissionstatement)) { $submissionstatement = $adminconfig->submissionstatement; } if ($mform == null) { $mform = new mod_assign_confirm_submission_form(null, array($requiresubmissionstatement, $submissionstatement, $this->get_course_module()->id, $data)); } $data = $mform->get_data(); if (!$mform->is_cancelled()) { if ($mform->get_data() == false) { return false; } $submission = $this->get_user_submission($USER->id,true); if ($submission->status != ASSIGN_SUBMISSION_STATUS_SUBMITTED) { // Give each submission plugin a chance to process the submission $plugins = $this->get_submission_plugins(); foreach ($plugins as $plugin) { $plugin->submit_for_grading(); } $submission->status = ASSIGN_SUBMISSION_STATUS_SUBMITTED; $this->update_submission($submission); if (isset($data->submissionstatement)) { $this->add_to_log('submission statement accepted', get_string('submissionstatementacceptedlog', 'mod_assign', fullname($USER))); } $this->add_to_log('submit for grading', $this->format_submission_for_log($submission)); $this->notify_graders($submission); $this->notify_student_submission_receipt($submission); } } return true; }