From 499dbce85d288e80b35ef876b6eea4566d692540 Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Fri, 3 Sep 2010 08:36:58 +0000 Subject: [PATCH] gradebook MDL-23362 added a fix to deal with the course grade item already existing or not --- backup/moodle2/restore_stepslib.php | 30 +++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/backup/moodle2/restore_stepslib.php b/backup/moodle2/restore_stepslib.php index cbb429b4d2d..1a06c295471 100644 --- a/backup/moodle2/restore_stepslib.php +++ b/backup/moodle2/restore_stepslib.php @@ -193,22 +193,28 @@ class restore_gradebook_step extends restore_structure_step { $data->timecreated = $this->apply_date_offset($data->timecreated); $data->timemodified = $this->apply_date_offset($data->timemodified); - //no parent means a course level grade category. That should have been created when the course was created + $newitemid = null; + //no parent means a course level grade category. That may have been created when the course was created if(empty($data->parent)) { - //get the already created course level grade category - $category = new stdclass(); - $category->courseid = $this->get_courseid(); - - $coursecategory = $DB->get_record('grade_categories', (array)$category); - $newitemid = $coursecategory->id; - $data->id = $newitemid; - //parent was being saved as 0 when it should be null $data->parent = null; - $DB->update_record('grade_categories', $data); - } else { - $data->parent = $this->get_mappingid('grade_category', $data->parent); + //get the already created course level grade category + $category = new stdclass(); + $category->courseid = $this->get_courseid(); + + $coursecategory = $DB->get_record('grade_categories', (array)$category); + if (!empty($coursecategory)) { + $data->id = $newitemid = $coursecategory->id; + $DB->update_record('grade_categories', $data); + } + } + + //need to insert a course category + if (empty($newitemid)) { + if (!empty($data->parent)) { + $data->parent = $this->get_mappingid('grade_category', $data->parent); + } $newitemid = $DB->insert_record('grade_categories', $data); } $this->set_mapping('grade_category', $oldid, $newitemid);