From 8b16724fef176cbac46f8e5d7823428c419edfa1 Mon Sep 17 00:00:00 2001 From: Daniel Kristian Steffensen Date: Mon, 7 Dec 2020 13:22:23 +0100 Subject: [PATCH] MDL-43697 backup: Archived badges are restored during course restore --- backup/moodle2/backup_stepslib.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/backup/moodle2/backup_stepslib.php b/backup/moodle2/backup_stepslib.php index c1372cc4d90..e8ba6f9927b 100644 --- a/backup/moodle2/backup_stepslib.php +++ b/backup/moodle2/backup_stepslib.php @@ -832,6 +832,9 @@ class backup_badges_structure_step extends backup_structure_step { } protected function define_structure() { + global $CFG; + + require_once($CFG->libdir . '/badgeslib.php'); // Define each element separated. @@ -883,7 +886,15 @@ class backup_badges_structure_step extends backup_structure_step { // Define sources. - $badge->set_source_table('badge', array('courseid' => backup::VAR_COURSEID)); + $parametersql = ' + SELECT * + FROM {badge} + WHERE courseid = :courseid + AND status != ' . BADGE_STATUS_ARCHIVED; + $parameterparams = [ + 'courseid' => backup::VAR_COURSEID + ]; + $badge->set_source_sql($parametersql, $parameterparams); $criterion->set_source_table('badge_criteria', array('badgeid' => backup::VAR_PARENTID)); $endorsement->set_source_table('badge_endorsement', array('badgeid' => backup::VAR_PARENTID));