Example #1
0
 /**
  * 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;
 }
Example #2
0
    /**
     * 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;
    }
Example #3
0
 /**
  * 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;
 }
Example #4
0
    /**
     * 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;
    }