diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index 4e5ae7d2b78..683b3de1697 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -400,7 +400,8 @@ class assignment_base { } else { if (isloggedin()) { if ($submission = $this->get_submission($USER->id)) { - if ($submission->timemodified) { + // If the submission has been completed + if ($this->is_submitted_with_required_data($submission)) { if ($submission->timemodified <= $this->assignment->timedue || empty($this->assignment->timedue)) { $submitted = ''.userdate($submission->timemodified).''; } else { @@ -1823,6 +1824,18 @@ class assignment_base { return $DB->get_record('assignment_submissions', array('assignment'=>$this->assignment->id, 'userid'=>$userid)); } + /** + * Check the given submission is complete. Preliminary rows are often created in the assignment_submissions + * table before a submission actually takes place. This function checks to see if the given submission has actually + * been submitted. + * + * @param stdClass $submission The submission we want to check for completion + * @return bool Indicates if the submission was found to be complete + */ + public function is_submitted_with_required_data($submission) { + return $submission->timemodified; + } + /** * Instantiates a new submission object for a given user * diff --git a/mod/assignment/type/upload/assignment.class.php b/mod/assignment/type/upload/assignment.class.php index 140ed7529b7..16818c1134d 100644 --- a/mod/assignment/type/upload/assignment.class.php +++ b/mod/assignment/type/upload/assignment.class.php @@ -1152,6 +1152,18 @@ class assignment_upload extends assignment_base { send_temp_file($zipfile, $filename); //send file and delete after sending. } } + + /** + * Check the given submission is complete. Preliminary rows are often created in the assignment_submissions + * table before a submission actually takes place. This function checks to see if the given submission has actually + * been submitted. + * + * @param stdClass $submission The submission we want to check for completion + * @return bool Indicates if the submission was found to be complete + */ + public function is_submitted_with_required_data($submission) { + return ($submission->timemodified AND $submission->data2); + } } class mod_assignment_upload_notes_form extends moodleform { diff --git a/mod/assignment/type/uploadsingle/assignment.class.php b/mod/assignment/type/uploadsingle/assignment.class.php index 03f91af07b2..bc2abe3796d 100644 --- a/mod/assignment/type/uploadsingle/assignment.class.php +++ b/mod/assignment/type/uploadsingle/assignment.class.php @@ -393,6 +393,18 @@ class assignment_uploadsingle extends assignment_base { send_temp_file($zipfile, $filename); //send file and delete after sending. } } + + /** + * Check the given submission is complete. Preliminary rows are often created in the assignment_submissions + * table before a submission actually takes place. This function checks to see if the given submission has actually + * been submitted. + * + * @param stdClass $submission The submission we want to check for completion + * @return bool Indicates if the submission was found to be complete + */ + public function is_submitted_with_required_data($submission) { + return ($submission->timemodified AND $submission->numfiles > 0); + } } class mod_assignment_uploadsingle_response_form extends moodleform {