From 94f2284bdb72b2b52709e2387fad595752b6311e Mon Sep 17 00:00:00 2001 From: Daniel Kristian Steffensen Date: Tue, 15 Dec 2020 15:46:35 +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 4178d887429..963f55c9021 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));