diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index eea2714fe46..6997e28ac3e 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -1820,10 +1820,10 @@ class assignment_base { * * @global object * @global object - * @param $userid int The id of the user whose submission we want or 0 in which case USER->id is used - * @param $createnew boolean optional Defaults to false. If set to true a new submission object will be created in the database + * @param int $userid int The id of the user whose submission we want or 0 in which case USER->id is used + * @param bool $createnew boolean optional Defaults to false. If set to true a new submission object will be created in the database * @param bool $teachermodified student submission set if false - * @return object The submission + * @return object|bool The submission or false if $createnew is false. */ function get_submission($userid=0, $createnew=false, $teachermodified=false) { global $USER, $DB; @@ -1834,8 +1834,10 @@ class assignment_base { $submission = $DB->get_record('assignment_submissions', array('assignment'=>$this->assignment->id, 'userid'=>$userid)); - if ($submission || !$createnew) { + if ($submission) { return $submission; + } else if(!$createnew) { + return false; } $newsubmission = $this->prepare_new_submission($userid, $teachermodified); $DB->insert_record("assignment_submissions", $newsubmission); diff --git a/mod/assignment/type/upload/upload.php b/mod/assignment/type/upload/upload.php index 36bba5acad8..e0f79f4e927 100644 --- a/mod/assignment/type/upload/upload.php +++ b/mod/assignment/type/upload/upload.php @@ -59,7 +59,7 @@ $PAGE->set_title($title); $PAGE->set_heading($title); $instance = new assignment_upload($cm->id, $assignment, $cm, $course); -$submission = $instance->get_submission($formdata->userid, true); +$submission = $instance->get_submission($formdata->userid, false); $filemanager_options = array('subdirs'=>1, 'maxbytes'=>$assignment->maxbytes, 'maxfiles'=>$assignment->var1, 'accepted_types'=>'*', 'return_types'=>FILE_INTERNAL); @@ -77,8 +77,12 @@ echo $OUTPUT->header(); echo $OUTPUT->box_start('generalbox'); if ($instance->can_upload_file($submission) && ($id==null)) { $data = new stdClass(); + $submissionid = null; + if (is_object($submission) && isset($submission->id)) { + $submissionid = $submission->id; + } // move submission files to user draft area - $data = file_prepare_standard_filemanager($data, 'files', $filemanager_options, $context, 'mod_assignment', 'submission', $submission->id); + $data = file_prepare_standard_filemanager($data, 'files', $filemanager_options, $context, 'mod_assignment', 'submission', $submissionid); // set file manager itemid, so it will find the files in draft area $mform->set_data($data); $mform->display();