MDL-19142 assignment/backup: reverting earlier patch while I figure out a better way to deal with course_modules during restore
This commit is contained in:
@@ -73,13 +73,10 @@
|
||||
fwrite ($bf,full_tag("TIMEAVAILABLE",4,false,$assignment->timeavailable));
|
||||
fwrite ($bf,full_tag("GRADE",4,false,$assignment->grade));
|
||||
fwrite ($bf,full_tag("TIMEMODIFIED",4,false,$assignment->timemodified));
|
||||
|
||||
assignment_ensure_backup_subtype($assignment, $preferences->backup_course);
|
||||
$assignment->atypeobj->backup_one_mod($bf, $preferences);
|
||||
//if we've selected to backup users info, then execute backup_assignment_submisions and
|
||||
//backup_assignment_files_instance
|
||||
if (backup_userdata_selected($preferences,'assignment',$assignment->id)) {
|
||||
$status = backup_assignment_submissions($bf,$preferences,$assignment);
|
||||
$status = backup_assignment_submissions($bf,$preferences,$assignment->id);
|
||||
if ($status) {
|
||||
$status = backup_assignment_files_instance($bf,$preferences,$assignment->id);
|
||||
}
|
||||
@@ -97,7 +94,7 @@
|
||||
|
||||
$status = true;
|
||||
|
||||
$assignment_submissions = get_records("assignment_submissions","assignment",$assignment->id,"id");
|
||||
$assignment_submissions = get_records("assignment_submissions","assignment",$assignment,"id");
|
||||
//If there is submissions
|
||||
if ($assignment_submissions) {
|
||||
//Write start tag
|
||||
@@ -120,9 +117,6 @@
|
||||
fwrite ($bf,full_tag("TEACHER",6,false,$ass_sub->teacher));
|
||||
fwrite ($bf,full_tag("TIMEMARKED",6,false,$ass_sub->timemarked));
|
||||
fwrite ($bf,full_tag("MAILED",6,false,$ass_sub->mailed));
|
||||
|
||||
assignment_ensure_backup_subtype($assignment, $preferences->backup_course);
|
||||
$assignment->atypeobj->backup_one_submission($bf, $preferences, $ass_sub);
|
||||
//End submission
|
||||
$status =fwrite ($bf,end_tag("SUBMISSION",5,true));
|
||||
}
|
||||
@@ -275,28 +269,4 @@
|
||||
FROM {$CFG->prefix}assignment_submissions s
|
||||
WHERE s.assignment = $instanceid");
|
||||
}
|
||||
|
||||
/**
|
||||
* small helper function to take the current assignment record
|
||||
* and create the appropriate subtype object and store it
|
||||
*
|
||||
* @param $assignment the assignment db record (passed by reference and modified)
|
||||
* @param $courseid the courseid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function assignment_ensure_backup_subtype(&$assignment, $courseid) {
|
||||
global $CFG;
|
||||
static $course;
|
||||
if (empty($course)) {
|
||||
$course = get_record('course', 'id', $courseid);
|
||||
}
|
||||
if (empty($assignment->atypeobj)) {
|
||||
$class = 'assignment_' . $assignment->assignmenttype;
|
||||
require_once($CFG->dirroot . '/mod/assignment/lib.php');
|
||||
require_once($CFG->dirroot . '/mod/assignment/type/' . $assignment->assignmenttype . '/assignment.class.php');
|
||||
$cm = get_coursemodule_from_instance('assignment', $assignment->id, $courseid);
|
||||
$assignment->atypeobj = new $class($cm->id, $assignment, $cm, $course);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -1924,61 +1924,6 @@ class assignment_base {
|
||||
|
||||
return $status;
|
||||
}
|
||||
|
||||
/**
|
||||
* base implementation for backing up subtype specific information
|
||||
* for one single module
|
||||
*
|
||||
* @param filehandle $bf file handle for xml file to write to
|
||||
* @param mixed $preferences the complete backup preference object
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
function backup_one_mod($bf, $preferences) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* base implementation for backing up subtype specific information
|
||||
* for one single submission
|
||||
*
|
||||
* @param filehandle $bf file handle for xml file to write to
|
||||
* @param mixed $preferences the complete backup preference object
|
||||
* @param object $submission the assignment submission db record
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
function backup_one_submission($bf, $preferences, $submission) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* base implementation for restoring subtype specific information
|
||||
* for one single module
|
||||
*
|
||||
* @param array $info the array representing the xml
|
||||
* @param object $restore the restore preferences
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
function restore_one_mod($info, $restore) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* base implementation for restoring subtype specific information
|
||||
* for one single submission
|
||||
*
|
||||
* @param object $submission the newly created submission
|
||||
* @param array $info the array representing the xml
|
||||
* @param object $restore the restore preferences
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
function restore_one_submission($submission, $info, $restore) {
|
||||
return true;
|
||||
}
|
||||
|
||||
} ////// End of the assignment_base class
|
||||
|
||||
|
||||
|
||||
@@ -105,22 +105,11 @@
|
||||
//We have the newid, update backup_ids
|
||||
backup_putid($restore->backup_unique_code,$mod->modtype,
|
||||
$mod->id, $newid);
|
||||
// load up the subtype and see if it wants anything further restored.
|
||||
$class = 'assignment_' . $assignment->assignmenttype;
|
||||
require_once($CFG->dirroot . '/mod/assignment/lib.php');
|
||||
require_once($CFG->dirroot . '/mod/assignment/type/' . $assignment->assignmenttype . '/assignment.class.php');
|
||||
$cmid = backup_getid($restore->backup_unique_code, 'course_modules', $mod->id);
|
||||
$cm = get_record('course_modules', 'id', $cmid->new_id);
|
||||
$cm->instance = $newid;
|
||||
$subtype = new $class($cmid->id, $assignment, $cm);
|
||||
$assignment->id = $newid;
|
||||
|
||||
$subtype->restore_one_mod($info, $restore);
|
||||
|
||||
//Now check if want to restore user data and do it.
|
||||
if (restore_userdata_selected($restore,'assignment',$mod->id)) {
|
||||
//Restore assignmet_submissions
|
||||
$status = assignment_submissions_restore_mods($mod->id, $newid,$info,$restore, $subtype) && $status;
|
||||
$status = assignment_submissions_restore_mods($mod->id, $newid,$info,$restore) && $status;
|
||||
}
|
||||
} else {
|
||||
$status = false;
|
||||
@@ -133,7 +122,7 @@
|
||||
}
|
||||
|
||||
//This function restores the assignment_submissions
|
||||
function assignment_submissions_restore_mods($old_assignment_id, $new_assignment_id,$info,$restore, $subtype) {
|
||||
function assignment_submissions_restore_mods($old_assignment_id, $new_assignment_id,$info,$restore) {
|
||||
|
||||
global $CFG;
|
||||
|
||||
@@ -211,8 +200,6 @@
|
||||
$status = assignment_restore_files ($old_assignment_id, $new_assignment_id,
|
||||
$olduserid, $submission->userid, $restore);
|
||||
|
||||
$submission->id = $newid;
|
||||
$status = $subtype->restore_one_submission($submission, $info, $restore);
|
||||
} else {
|
||||
$status = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user