diff --git a/backup/moodle2/restore_stepslib.php b/backup/moodle2/restore_stepslib.php index 740c2028a42..d2b1c3a7292 100644 --- a/backup/moodle2/restore_stepslib.php +++ b/backup/moodle2/restore_stepslib.php @@ -843,20 +843,12 @@ class restore_groups_structure_step extends restore_structure_step { } public function process_grouping_group($data) { - global $DB; + global $CFG; + + require_once($CFG->dirroot.'/group/lib.php'); $data = (object)$data; - - $data->groupingid = $this->get_new_parentid('grouping'); // Use new parentid - $data->groupid = $this->get_mappingid('group', $data->groupid); // Get from mappings - - $params = array(); - $params['groupingid'] = $data->groupingid; - $params['groupid'] = $data->groupid; - - if (!$DB->record_exists('groupings_groups', $params)) { - $DB->insert_record('groupings_groups', $data); // No need to set this mapping (no child info nor files) - } + groups_assign_grouping($this->get_new_parentid('grouping'), $this->get_mappingid('group', $data->groupid), $data->timeadded); } protected function after_execute() { diff --git a/group/lib.php b/group/lib.php index 024e81b0ed8..c9e2cc00a3d 100644 --- a/group/lib.php +++ b/group/lib.php @@ -634,9 +634,10 @@ function groups_parse_name($format, $groupnumber) { * * @param int groupingid * @param int groupid + * @param int $timeadded The time the group was added to the grouping. * @return bool true or exception */ -function groups_assign_grouping($groupingid, $groupid) { +function groups_assign_grouping($groupingid, $groupid, $timeadded = null) { global $DB; if ($DB->record_exists('groupings_groups', array('groupingid'=>$groupingid, 'groupid'=>$groupid))) { @@ -645,7 +646,11 @@ function groups_assign_grouping($groupingid, $groupid) { $assign = new stdClass(); $assign->groupingid = $groupingid; $assign->groupid = $groupid; - $assign->timeadded = time(); + if ($timeadded != null) { + $assign->timeadded = (integer)$timeadded; + } else { + $assign->timeadded = time(); + } $DB->insert_record('groupings_groups', $assign); return true;