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);
 }
Пример #2
0
 /**
  * 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);
 }