# This patch file was generated by NetBeans IDE
# This patch can be applied using context Tools: Apply Diff Patch action on respective folder.
# It uses platform neutral UTF-8 encoding.
# Above lines and this line are ignored by the patching process.
Index: moodle/mod/assignment/db/upgrade.php
--- moodle/mod/assignment/db/upgrade.php Base (1.33)
+++ moodle/mod/assignment/db/upgrade.php Locally Modified (Based On 1.33)
@@ -68,15 +68,18 @@
                 $context = get_context_instance(CONTEXT_MODULE, $submission->cmid);
 
                 // migrate submitted files first
-                $path = $basepath;
+                $newpath = "$CFG->dataroot/$submission->course/$CFG->moddata/assignment/$submission->assignment/$submission->id/";
+                if (!file_exists($newpath)) {
+                    mkdir($newpath);
+                }
                 $filearea = 'assignment_submission';
-                $items = new DirectoryIterator($path);
+                $items = new DirectoryIterator($basepath);
                 foreach ($items as $item) {
                     if (!$item->isFile()) {
                         continue;
                     }
                     if (!$item->isReadable()) {
-                        echo $OUTPUT->notification(" File not readable, skipping: ".$path.$item->getFilename());
+                        echo $OUTPUT->notification(" File not readable, skipping: ".$basepath.$item->getFilename());
                         continue;
                     }
                     $filename = clean_param($item->getFilename(), PARAM_FILE);
@@ -84,19 +87,20 @@
                         continue;
                     }
                     if (!$fs->file_exists($context->id, $filearea, $submission->userid, '/', $filename)) {
-                        $file_record = array('contextid'=>$context->id, 'filearea'=>$filearea, 'itemid'=>$submission->userid, 'filepath'=>'/', 'filename'=>$filename, 'userid'=>$submission->userid);
-                        if ($fs->create_file_from_pathname($file_record, $path.$item->getFilename())) {
-                            unlink($path.$item->getFilename());
+                        $file_record = array('contextid'=>$context->id, 'filearea'=>$filearea, 'itemid'=>$submission->id, 'filepath'=>'/', 'filename'=>$filename, 'userid'=>$submission->userid);
+                        if ($fs->create_file_from_pathname($file_record, $basepath.$item->getFilename())) {
+                            unlink($basepath.$item->getFilename());
                         }
                     }
                 }
                 unset($items); //release file handles
 
                 // migrate teacher response files
-                $path = $basepath.'responses/';
-                if (file_exists($path)) {
+                $basepath = $basepath.'responses/';
+                $newpath = $newpath.'responses/';
+                if (file_exists($basepath)) {
                     $filearea = 'assignment_response';
-                    $items = new DirectoryIterator($path);
+                    $items = new DirectoryIterator($basepath);
                     foreach ($items as $item) {
                         if (!$item->isFile()) {
                             continue;
@@ -106,13 +110,13 @@
                             continue;
                         }
                         if (!$fs->file_exists($context->id, $filearea, $submission->userid, '/', $filename)) {
-                            $file_record = array('contextid'=>$context->id, 'filearea'=>$filearea, 'itemid'=>$submission->userid, 'filepath'=>'/', 'filename'=>$filename,
+                            $file_record = array('contextid'=>$context->id, 'filearea'=>$filearea, 'itemid'=>$submission->id, 'filepath'=>'/', 'filename'=>$filename,
                                                  'timecreated'=>$item->getCTime(), 'timemodified'=>$item->getMTime());
                             if ($submission->teacher) {
                                 $file_record['userid'] = $submission->teacher;
                             }
-                            if ($fs->create_file_from_pathname($file_record, $path.$item->getFilename())) {
-                                unlink($path.$item->getFilename());
+                            if ($fs->create_file_from_pathname($file_record, $basepath.$item->getFilename())) {
+                                unlink($basepath.$item->getFilename());
                             }
                         }
                     }
Index: moodle/mod/assignment/type/uploadsingle/assignment.class.php
--- moodle/mod/assignment/type/uploadsingle/assignment.class.php Base (1.63)
+++ moodle/mod/assignment/type/uploadsingle/assignment.class.php Locally Modified (Based On 1.63)
@@ -50,14 +50,15 @@
 
         $this->view_dates();
 
-        $filecount = $this->count_user_files($USER->id);
+        $submission = $this->get_submission($USER->id);
+        $filecount = $this->count_user_files($submission->id);
 
         if ($submission = $this->get_submission()) {
             if ($submission->timemarked) {
                 $this->view_feedback();
             }
             if ($filecount) {
-                echo $OUTPUT->box($this->print_user_files($USER->id, true), 'generalbox boxaligncenter');
+                echo $OUTPUT->box($this->print_user_files($submission->id, true), 'generalbox boxaligncenter');
             }
         }
 
@@ -100,8 +101,13 @@
                 $filename = $mform->get_new_filename('newfile');
                 if ($filename !== false) {
                     $fs->delete_area_files($this->context->id, 'assignment_submission', $USER->id);
-                    if ($file = $mform->save_stored_file('newfile', $this->context->id, 'assignment_submission', $USER->id, '/', $filename, false, $USER->id)) {
+
+                    if (empty($submission->id)) {
                         $submission = $this->get_submission($USER->id, true); //create new submission if needed
+                    }
+
+                    if ($file = $mform->save_stored_file('newfile', $this->context->id, 'assignment_submission', $submission->id, '/', $filename, false, $USER->id)) {
+                        $submission = $this->get_submission($USER->id, true); //create new submission if needed
                         $submission->timemodified = time();
                         $submission->numfiles     = 1;
                         if ($DB->update_record('assignment_submissions', $submission)) {
