12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- // This file is part of
- //
- // Moodle is free software: you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation, either version 3 of the License, or
- // (at your option) any later version.
- //
- // Moodle is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
- //
- // You should have received a copy of the GNU General Public License
- // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
- require_once('../../../../config.php');
- require_once('submission_functions.php');
- // Get Params to correctly load page
- $cmid = required_param('cmid', PARAM_INT);
- $subid = required_param('subid', PARAM_INT);
- $gradeimporterid = optional_param('id', 0, PARAM_INT);
- // Get course module and $course to check capability
- $cm = get_coursemodule_from_id('gradeimporter', $cmid, 0, false, MUST_EXIST);
- $course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
- // Gets context to check capability
- $context = context_module::instance($cm->id);
- // Sets Page URL
- $url = new moodle_url('/mod/gradeimporter/forms/submission/delete.php', array('cmid' => $cm->id, 'subid' => $subid));
- if (!empty($gradeimporterid)) {
- $url->param('id', $gradeimporterid);
- }
- $PAGE->set_url($url);
- // Check if its teacher opening the page
- require_login ($course, false, $cm);
- require_capability('mod/gradeimporter:edit', $context);
- // Get globals
- global $DB;
- // Get submission
- $submission = $DB->get_record('gradeimporter_submission', array('id' => $subid, 'gradeimporterid' => $gradeimporterid));
- // If submission doesn't exist, throw error
- if (!$submission) {
- throw new moodle_exception(get_string('submissionnotfound', 'gradeimporter', $subid));
- }
- // Get feedbacks associated with it
- $feedbacks = $DB->get_records('gradeimporter_feedback', array('submissionid' => $subid));
- // Delete its feedbacks
- foreach ($feedbacks as $feedback) {
- // Deletes feedback from gradeimporter_feedback table and removes its associated files
- delete_feedback($feedback);
- // Recalculates gradeimporter instance grade without this feedback
- gradeimporter_update_grades($submission, $feedback->studentid);
- }
- // Delete submission
- $DB->delete_records('gradeimporter_submission', array('id' => $submission->id));
- // If there are no more submission that go to the gradebook, reset it for this gradeimporter instance
- if (!$DB->get_records('gradeimporter_submission', array('gradebook' => 1))) {
- gradeimporter_grade_item_update($submission, 'reset');
- }
- // Print page and redirects to submission page after 5 seconds
- $PAGE->set_title($submission->name);
- $PAGE->set_heading($course->fullname);
- $PAGE->set_context($context);
- $viewlink = new moodle_url("/mod/gradeimporter/view.php", array('id' => $cmid, 'edit' => 1));
- echo $OUTPUT->header("refresh:5;url=$viewlink");
- echo "<p>".get_string('deletesubmissiondata', 'gradeimporter', $submission->name)."</p>";
- echo "<p>".get_string('deletefeedbacksdata', 'gradeimporter', count($feedbacks))."</p>";
- echo "<p>".get_string('redirect5s', 'gradeimporter')."<a href=\"$viewlink\"> ".get_string('here', 'gradeimporter')."</p>";
- echo $OUTPUT->footer();
|