From bdbdd72cdbd23d6f7cf42cd378542774bd59891f Mon Sep 17 00:00:00 2001 From: Rajesh Taneja Date: Fri, 17 Aug 2012 15:46:09 +0800 Subject: [PATCH] MDL-30121 Assignment 2.2: Draft submission files will not be included in zip, if activity is open --- mod/assignment/type/upload/assignment.class.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mod/assignment/type/upload/assignment.class.php b/mod/assignment/type/upload/assignment.class.php index 83afeb41e21..91c5f5fe870 100644 --- a/mod/assignment/type/upload/assignment.class.php +++ b/mod/assignment/type/upload/assignment.class.php @@ -1150,7 +1150,7 @@ class assignment_upload extends assignment_base { require_once($CFG->libdir.'/filelib.php'); $submissions = $this->get_submissions('',''); if (empty($submissions)) { - print_error('errornosubmissions', 'assignment'); + print_error('errornosubmissions', 'assignment', new moodle_url('/mod/assignment/submissions.php', array('id'=>$this->cm->id))); } $filesforzipping = array(); $fs = get_file_storage(); @@ -1164,6 +1164,11 @@ class assignment_upload extends assignment_base { } $filename = str_replace(' ', '_', clean_filename($this->course->shortname.'-'.$this->assignment->name.'-'.$groupname.$this->assignment->id.".zip")); //name of new zip file. foreach ($submissions as $submission) { + // If assignment is open and submission is not finalized then don't add it to zip. + $submissionstatus = $this->is_finalized($submission); + if ($this->isopen() && empty($submissionstatus)) { + continue; + } $a_userid = $submission->userid; //get userid if ((groups_is_member($groupid,$a_userid)or !$groupmode or !$groupid)) { $a_assignid = $submission->assignment; //get name of this assignment for use in the file names. @@ -1180,6 +1185,12 @@ class assignment_upload extends assignment_base { } } } // end of foreach loop + + // Throw error if no files are added. + if (empty($filesforzipping)) { + print_error('errornosubmissions', 'assignment', new moodle_url('/mod/assignment/submissions.php', array('id'=>$this->cm->id))); + } + if ($zipfile = assignment_pack_files($filesforzipping)) { send_temp_file($zipfile, $filename); //send file and delete after sending. }