MDL-37543 Assignment upgrade: convert advanced upload files "Send for marking" setting
authorDamyon Wiese <damyon@moodle.com>
Thu, 17 Jan 2013 03:05:31 +0000 (11:05 +0800)
committerDamyon Wiese <damyon@moodle.com>
Thu, 17 Jan 2013 03:05:31 +0000 (11:05 +0800)
Advanced upload files assignment type has "Enable send for marking" setting instead
of "Allow resubmissions". Needs special handling in upgrade code to convert to
"Require students click submit button".

mod/assign/submission/file/locallib.php

index 39c3561..ad61326 100644 (file)
@@ -342,13 +342,21 @@ class assign_submission_file extends assign_submission_plugin {
      * @return bool Was it a success? (false will trigger rollback)
      */
     public function upgrade_settings(context $oldcontext, stdClass $oldassignment, & $log) {
+        global $DB;
+
         if ($oldassignment->assignmenttype == 'uploadsingle') {
             $this->set_config('maxfilesubmissions', 1);
             $this->set_config('maxsubmissionsizebytes', $oldassignment->maxbytes);
             return true;
-        } else {
+        } else if ($oldassignment->assignmenttype == 'upload') {
             $this->set_config('maxfilesubmissions', $oldassignment->var1);
             $this->set_config('maxsubmissionsizebytes', $oldassignment->maxbytes);
+
+            // Advanced file upload uses a different setting to do the same thing.
+            $DB->set_field('assign',
+                           'submissiondrafts',
+                           $oldassignment->var4,
+                           array('id'=>$this->assignment->get_instance()->id));
             return true;
         }
     }