|
@@ -17,156 +17,80 @@
|
|
require_once('../../config.php');
|
|
require_once('../../config.php');
|
|
require_once('locallib.php');
|
|
require_once('locallib.php');
|
|
require_once('lib.php');
|
|
require_once('lib.php');
|
|
-require_once('submission_form.php');
|
|
|
|
|
|
|
|
|
|
+require_once('forms/submission_form.php'); // Requires Form class File
|
|
|
|
+require_once('forms/submission_form_functions.php'); // Require functions file for submission form
|
|
|
|
|
|
$cmid = required_param('cmid', PARAM_INT); // Course Module ID.
|
|
$cmid = required_param('cmid', PARAM_INT); // Course Module ID.
|
|
$id = optional_param('id', 0, PARAM_INT); // Gradeimporter id.
|
|
$id = optional_param('id', 0, PARAM_INT); // Gradeimporter id.
|
|
-$subid = optional_param('subid', 1, PARAM_INT); // Submission id.
|
|
|
|
-$update = optional_param('update', 0, PARAM_INT); // If 1 the submission is beign updated.
|
|
|
|
|
|
+$subid = optional_param('subid', -1, PARAM_INT); // Submission id.
|
|
|
|
+// $update = optional_param('update', 0, PARAM_INT); // If 1 the submission is beign updated.
|
|
|
|
|
|
|
|
+// Checks if everything is correct
|
|
|
|
+// If any of the queries fail, throw error because of MUST_EXIST clause
|
|
|
|
+$cm = get_coursemodule_from_id('gradeimporter', $cmid, 0, false, MUST_EXIST);
|
|
|
|
+$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
|
|
|
|
+$gradeimporter = $DB->get_record('gradeimporter', array('id' => $cm->instance), '*', MUST_EXIST);
|
|
|
|
|
|
-if (!$cm = get_coursemodule_from_id('gradeimporter', $cmid)) {
|
|
|
|
- throw new moodle_exception('invalidcoursemodule');
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-if (!$course = $DB->get_record('course', array('id' => $cm->course))) {
|
|
|
|
- throw new moodle_exception('coursemisconf');
|
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
+// Gets context for File API
|
|
$context = context_module::instance($cm->id);
|
|
$context = context_module::instance($cm->id);
|
|
|
|
|
|
-require_capability('mod/gradeimporter:edit', $context);
|
|
|
|
-
|
|
|
|
-if (!$gradeimporter = $DB->get_record('gradeimporter', array('id' => $cm->instance))) {
|
|
|
|
- throw new moodle_exception(get_string('invalidid', 'gradeimporter'));
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
|
|
+// Sets URL
|
|
$url = new moodle_url('/mod/gradeimporter/submission.php', array('cmid' => $cm->id));
|
|
$url = new moodle_url('/mod/gradeimporter/submission.php', array('cmid' => $cm->id));
|
|
if (!empty($id)) {
|
|
if (!empty($id)) {
|
|
$url->param('id', $id);
|
|
$url->param('id', $id);
|
|
}
|
|
}
|
|
$PAGE->set_url($url);
|
|
$PAGE->set_url($url);
|
|
|
|
|
|
|
|
+// Requires capabilities
|
|
require_login($course, false, $cm);
|
|
require_login($course, false, $cm);
|
|
|
|
+require_capability('mod/gradeimporter:edit', $context);
|
|
|
|
|
|
|
|
+// Prepare data for submission form
|
|
|
|
|
|
-if (isset($submission)) {
|
|
|
|
- if (isguestuser()) {
|
|
|
|
- throw new moodle_exception(get_string('guestnoedit', 'gradeimporter').
|
|
|
|
- " $CFG->wwwroot/mod/gradeimporter/view.php?id=$cmid");
|
|
|
|
- }
|
|
|
|
-} else {
|
|
|
|
|
|
+if (!isset($submission)) {
|
|
|
|
+ // If its creating new submission
|
|
$submission = new stdClass();
|
|
$submission = new stdClass();
|
|
$submission->id = null;
|
|
$submission->id = null;
|
|
}
|
|
}
|
|
|
|
|
|
-$maxfiles = 50;
|
|
|
|
-$maxbytes = $course->maxbytes;
|
|
|
|
-
|
|
|
|
-$descriptionoptions = array('trusttext' => true, 'maxfiles' => $maxfiles,
|
|
|
|
- 'maxbytes' => $maxbytes, 'context' => $context,
|
|
|
|
- 'subdirs' => file_area_contains_subdirs($context, 'mod_gradeimporter', 'submission', $submission->id));
|
|
|
|
-
|
|
|
|
-$submissionoptions = array('subdirs' => false, 'maxfiles' => $maxfiles, 'maxbytes' => $maxbytes);
|
|
|
|
-
|
|
|
|
-$submission = file_prepare_standard_editor($submission, 'description', $descriptionoptions, $context,
|
|
|
|
- 'mod_gradeimporter', 'description', $submission->id);
|
|
|
|
-$submission = file_prepare_standard_filemanager($submission, 'submission', $submissionoptions, $context,
|
|
|
|
- 'mod_gradeimporter', 'submission', $submission->id);
|
|
|
|
-
|
|
|
|
|
|
+// Set parameters to sendo to the form
|
|
$submission->cmid = $cm->id;
|
|
$submission->cmid = $cm->id;
|
|
|
|
+$maxbytes = $course->maxbytes;
|
|
|
|
|
|
$mform = new mod_gradeimporter_submission_form(null, array('submission' => $submission,
|
|
$mform = new mod_gradeimporter_submission_form(null, array('submission' => $submission,
|
|
- 'cm' => $cm, 'descriptionoptions' => $descriptionoptions,
|
|
|
|
- 'submissionoptions' => $submissionoptions,
|
|
|
|
- 'gradeimporterid' => $gradeimporter->id
|
|
|
|
- ));
|
|
|
|
-
|
|
|
|
-if ($update == 1) {
|
|
|
|
- $subtoupdate = $DB->get_record('gradeimporter_submission', array('id' => $subid));
|
|
|
|
- $array = (array) $subtoupdate;
|
|
|
|
- echo 'aaaa'.$array['description'];
|
|
|
|
- $mform->set_data($subtoupdate);
|
|
|
|
-}
|
|
|
|
|
|
+ 'maxbytes' => $maxbytes
|
|
|
|
+ )
|
|
|
|
+ );
|
|
|
|
|
|
if ($mform->is_cancelled()) {
|
|
if ($mform->is_cancelled()) {
|
|
- if ($id) {
|
|
|
|
- redirect("view.php?id=$cm->id&mode=entry&hook=$id");
|
|
|
|
- } else {
|
|
|
|
- redirect("view.php?id=$cm->id");
|
|
|
|
- }
|
|
|
|
-} else if ($submission = $mform->get_data()) {
|
|
|
|
- $timenow = time();
|
|
|
|
-
|
|
|
|
- if (empty($submission->id)) {
|
|
|
|
- $submission->gradeimporterid = $gradeimporter->id;
|
|
|
|
- $submission->userid = $USER->id;
|
|
|
|
- $submission->timecreated = $timenow;
|
|
|
|
-
|
|
|
|
- $isnewentry = true;
|
|
|
|
- } else {
|
|
|
|
- $isnewentry = false;
|
|
|
|
- }
|
|
|
|
- $submission->description = ''; // Updated later.
|
|
|
|
- $submission->descriptionformat = FORMAT_HTML; // Updated later.
|
|
|
|
- $submission->definitiontrust = 0;
|
|
|
|
- $submission->timemodified = $timenow;
|
|
|
|
- $submission->position = -1;
|
|
|
|
-
|
|
|
|
- if ($isnewentry) {
|
|
|
|
- // Add new entry.
|
|
|
|
- $submission->id = $DB->insert_record('gradeimporter_submission', $submission);
|
|
|
|
- } else {
|
|
|
|
- // Update existing entry.
|
|
|
|
- $DB->update_record('gradeimporter', $submission);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- $submission = file_postupdate_standard_editor($submission, 'description',
|
|
|
|
- $descriptionoptions, $context, 'mod_gradeimporter',
|
|
|
|
- 'description', $submission->id);
|
|
|
|
-
|
|
|
|
- $submission = file_postupdate_standard_filemanager($submission, 'submission',
|
|
|
|
- $submissionoptions, $context, 'mod_gradeimporter',
|
|
|
|
- 'submission', $submission->id);
|
|
|
|
-
|
|
|
|
- gradeimporter_check_for_zips($context, $cm, $submission);
|
|
|
|
-
|
|
|
|
- // Store updated values.
|
|
|
|
- // Error: write to database invalid.
|
|
|
|
- $DB->update_record('gradeimporter_submission', $submission);
|
|
|
|
-
|
|
|
|
- // Refetch complete entry.
|
|
|
|
- $submission = $DB->get_record('gradeimporter_submission', array('id' => $submission->id));
|
|
|
|
-
|
|
|
|
- // Trigger event and update completion (if entry was created).
|
|
|
|
- $eventparams = array(
|
|
|
|
- 'context' => $context,
|
|
|
|
- 'objectid' => $submission->id,
|
|
|
|
- );
|
|
|
|
- if ($isnewentry) {
|
|
|
|
- // Update completion state.
|
|
|
|
- $completion = new completion_info($course);
|
|
|
|
- if ($completion->is_enabled($cm) == COMPLETION_TRACKING_AUTOMATIC && $gradeimporter->completionentries) {
|
|
|
|
- $completion->update_state($cm, COMPLETION_COMPLETE);
|
|
|
|
- }
|
|
|
|
|
|
+ // Handle form cancel operation, if cancel button is present on form
|
|
|
|
+ echo("form is cancelled");
|
|
|
|
+} else if ($formdata = $mform->get_data()) {
|
|
|
|
+ create_submission($formdata, $gradeimporter->id, $USER->id);
|
|
|
|
+ // When complete redirect to view.php
|
|
|
|
+ redirect("view.php?id=$cm->id&edit=1");
|
|
|
|
+ // In this case you process validated data. $mform->get_data() returns data posted in form.
|
|
|
|
+} else {
|
|
|
|
+ // This branch is executed if the form is submitted but the data doesn't validate and the form should be redisplayed
|
|
|
|
+ // ...or on the first display of the form.
|
|
|
|
+ if ($subid != -1) {
|
|
|
|
+ // If its updating an existing submission
|
|
|
|
+ // Get data from db and insert into form
|
|
|
|
+ $subdata = $DB->get_record('gradeimporter_submission', array('id' => $subid));
|
|
|
|
+ $subdata->description = array('text' => $subdata->description,
|
|
|
|
+ 'format' => $subdata->descriptionformat
|
|
|
|
+ );
|
|
|
|
+ $mform->set_data($subdata);
|
|
}
|
|
}
|
|
|
|
|
|
- redirect("view.php?id=$cm->id&edit=1");
|
|
|
|
-}
|
|
|
|
|
|
+ $PAGE->set_title($gradeimporter->name);
|
|
|
|
+ $PAGE->set_heading($course->fullname);
|
|
|
|
+ echo $OUTPUT->header();
|
|
|
|
+ echo $OUTPUT->heading(format_string($gradeimporter->name), 2);
|
|
|
|
|
|
-if (!empty($id)) {
|
|
|
|
- $PAGE->navbar->add(get_string('edit'));
|
|
|
|
-}
|
|
|
|
|
|
+ $mform->display();
|
|
|
|
|
|
-$PAGE->set_title($gradeimporter->name);
|
|
|
|
-$PAGE->set_heading($course->fullname);
|
|
|
|
-echo $OUTPUT->header();
|
|
|
|
-echo $OUTPUT->heading(format_string($gradeimporter->name), 2);
|
|
|
|
-if ($gradeimporter->intro) {
|
|
|
|
- echo $OUTPUT->box(format_module_intro('gradeimporter', $gradeimporter, $cm->id), 'generalbox', 'intro');
|
|
|
|
|
|
+ echo $OUTPUT->footer();
|
|
}
|
|
}
|
|
-
|
|
|
|
-$mform->display();
|
|
|
|
-
|
|
|
|
-echo $OUTPUT->footer();
|
|
|