From 2935cb508de27a1787a8ef1c513bf67456e78826 Mon Sep 17 00:00:00 2001 From: Dongsheng Cai Date: Tue, 27 Apr 2021 17:52:01 +1000 Subject: [PATCH] MDL-71455 core_backup: fix course completion options when backup/restore --- backup/moodle2/backup_stepslib.php | 2 ++ backup/moodle2/restore_stepslib.php | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/backup/moodle2/backup_stepslib.php b/backup/moodle2/backup_stepslib.php index 9f87ba4bdef..d17b0da0ddb 100644 --- a/backup/moodle2/backup_stepslib.php +++ b/backup/moodle2/backup_stepslib.php @@ -391,6 +391,8 @@ class backup_course_structure_step extends backup_structure_step { 'defaultgroupingid', 'lang', 'theme', 'timecreated', 'timemodified', 'requested', + 'showactivitydates', + 'showcompletionconditions', 'enablecompletion', 'completionstartonenrol', 'completionnotify')); $category = new backup_nested_element('category', array('id'), array( diff --git a/backup/moodle2/restore_stepslib.php b/backup/moodle2/restore_stepslib.php index 7e51a1f9d85..494ce192ead 100644 --- a/backup/moodle2/restore_stepslib.php +++ b/backup/moodle2/restore_stepslib.php @@ -1914,11 +1914,23 @@ class restore_course_structure_step extends restore_structure_step { if ($data->defaultgroupingid) { $data->defaultgroupingid = $this->get_mappingid('grouping', $data->defaultgroupingid); } + + $courseconfig = get_config('moodlecourse'); + if (empty($CFG->enablecompletion)) { + // Completion is disabled globally. $data->enablecompletion = 0; $data->completionstartonenrol = 0; $data->completionnotify = 0; + $data->showcompletionconditions = null; + } else { + $showcompletionconditionsdefault = ($courseconfig->showcompletionconditions ?? null); + $data->showcompletionconditions = $data->showcompletionconditions ?? $showcompletionconditionsdefault; } + + $showactivitydatesdefault = ($courseconfig->showactivitydates ?? null); + $data->showactivitydates = $data->showactivitydates ?? $showactivitydatesdefault; + $languages = get_string_manager()->get_list_of_translations(); // Get languages for quick search if (isset($data->lang) && !array_key_exists($data->lang, $languages)) { $data->lang = '';