protected function process_assignment_submission($data) { global $DB; $data = (object) $data; $oldid = $data->id; $data->assignment = $this->get_new_parentid('assignment'); $data->timecreated = $this->apply_date_offset($data->timecreated); $data->timemodified = $this->apply_date_offset($data->timemodified); $data->timemarked = $this->apply_date_offset($data->timemarked); $data->userid = $this->get_mappingid('user', $data->userid); $data->teacher = $this->get_mappingid('user', $data->teacher); $newitemid = $DB->insert_record('assignment_submissions', $data); $this->set_mapping('assignment_submission', $oldid, $newitemid, true); // Going to have files $this->set_mapping(restore_gradingform_plugin::itemid_mapping('submission'), $oldid, $newitemid); }
/** * Processes one grading form instance element * * @param array $data element data */ protected function process_grading_instance($data) { global $DB; $data = (object) $data; // new form definition id $newformid = $this->get_new_parentid('grading_definition'); // get the name of the area we are restoring to $sql = "SELECT ga.areaname\n FROM {grading_definitions} gd\n JOIN {grading_areas} ga ON gd.areaid = ga.id\n WHERE gd.id = ?"; $areaname = $DB->get_field_sql($sql, array($newformid), MUST_EXIST); // get the mapped itemid - the activity module is expected to define the mappings // for each gradable area $newitemid = $this->get_mappingid(restore_gradingform_plugin::itemid_mapping($areaname), $data->itemid); $oldid = $data->id; $data->definitionid = $newformid; $data->raterid = $this->get_mappingid('user', $data->raterid); $data->itemid = $newitemid; $newid = $DB->insert_record('grading_instances', $data); $this->set_mapping('grading_instance', $oldid, $newid); }
/** * Process a grade restore * @param object $data The data in object form * @return void */ protected function process_assign_grade($data) { global $DB; $data = (object) $data; $oldid = $data->id; $data->assignment = $this->get_new_parentid('assign'); $data->timemodified = $this->apply_date_offset($data->timemodified); $data->timecreated = $this->apply_date_offset($data->timecreated); $data->userid = $this->get_mappingid('user', $data->userid); $data->grader = $this->get_mappingid('user', $data->grader); // Handle flags restore to a different table (for upgrade from old backups). if (!empty($data->extensionduedate) || !empty($data->mailed) || !empty($data->locked)) { $flags = new stdClass(); $flags->assignment = $this->get_new_parentid('assign'); if (!empty($data->extensionduedate)) { $flags->extensionduedate = $this->apply_date_offset($data->extensionduedate); } if (!empty($data->mailed)) { $flags->mailed = $data->mailed; } if (!empty($data->locked)) { $flags->locked = $data->locked; } $flags->userid = $this->get_mappingid('user', $data->userid); $DB->insert_record('assign_user_flags', $flags); } $newitemid = $DB->insert_record('assign_grades', $data); // Note - the old contextid is required in order to be able to restore files stored in // sub plugin file areas attached to the gradeid. $this->set_mapping('grade', $oldid, $newitemid, false, null, $this->task->get_old_contextid()); $this->set_mapping(restore_gradingform_plugin::itemid_mapping('submissions'), $oldid, $newitemid); }