From 8fd59d9009c2594e3fea68da57b58a2f7971e9b0 Mon Sep 17 00:00:00 2001 From: Daniel Kristian Steffensen Date: Tue, 15 Dec 2020 15:43:18 +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 6a66e3f7e93..5fc907af9af 100644 --- a/backup/moodle2/backup_stepslib.php +++ b/backup/moodle2/backup_stepslib.php @@ -835,6 +835,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. @@ -886,7 +889,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));