Permalink
Browse files

MDL-27438 backup - on course backups add course gropus and groupings

  • Loading branch information...
1 parent a938306 commit 130fcbd6494f964bb62ccf29ca2bb48dac3fc160 @stronk7 stronk7 committed Jul 9, 2011
Showing with 35 additions and 2 deletions.
  1. +9 −2 backup/moodle2/backup_course_task.class.php
  2. +26 −0 backup/moodle2/backup_stepslib.php
@@ -75,8 +75,15 @@ public function build() {
// Generate the enrolment file
$this->add_step(new backup_enrolments_structure_step('course_enrolments', 'enrolments.xml'));
- // Annotate the groups used in already annotated groupings
- $this->add_step(new backup_annotate_groups_from_groupings('annotate_groups'));
+ // Annotate all the groups and groupings belonging to the course
+ $this->add_step(new backup_annotate_course_groups_and_groupings('annotate_course_groups'));
+
+ // Annotate the groups used in already annotated groupings (note this may be
+ // unnecessary now that we are annotating all the course groups and groupings in the
+ // step above. But we keep it working in case we decide, someday, to introduce one
+ // setting to transform the step above into an optional one. This is here to support
+ // course->defaultgroupingid
+ $this->add_step(new backup_annotate_groups_from_groupings('annotate_groups_from_groupings'));
// Annotate the question_categories belonging to the course context
$this->add_step(new backup_calculate_question_categories('course_question_categories'));
@@ -1563,6 +1563,32 @@ protected function define_execution() {
}
/**
+ * This step will annotate all the groups and groupings belonging to the course
+ */
+class backup_annotate_course_groups_and_groupings extends backup_execution_step {
+
+ protected function define_execution() {
+ global $DB;
+
+ // Get all the course groups
+ if ($groups = $DB->get_records('groups', array(
+ 'courseid' => $this->task->get_courseid()))) {
+ foreach ($groups as $group) {
+ backup_structure_dbops::insert_backup_ids_record($this->get_backupid(), 'group', $group->id);
+ }
+ }
+
+ // Get all the course groupings
+ if ($groupings = $DB->get_records('groupings', array(
+ 'courseid' => $this->task->get_courseid()))) {
+ foreach ($groupings as $grouping) {
+ backup_structure_dbops::insert_backup_ids_record($this->get_backupid(), 'grouping', $grouping->id);
+ }
+ }
+ }
+}
+
+/**
* This step will annotate all the groups belonging to already annotated groupings
*/
class backup_annotate_groups_from_groupings extends backup_execution_step {

0 comments on commit 130fcbd

Please sign in to comment.