MDL-79912 backup: Create Course reuse index page

The backup/view.php page has been created to display the list of
course reuse actions available for users.
That way, the "Course reuse" option in the secondary navigation
will display this page instead of redirecting to the first action
available.

Apart from that, the headers for all the Course reuse actions have
been homogenised and the tertiary navigation selector has been included,
to replace headers and make it easier navigate between actions.
This commit is contained in:
Sara Arjona
2023-11-22 18:11:43 +01:00
parent b58d1fd4e2
commit 424c9cb1bd
17 changed files with 269 additions and 86 deletions
+78 -42
View File
@@ -4747,36 +4747,6 @@ class settings_navigation extends navigation_node {
badges_add_course_navigation($coursenode, $course);
}
// Import data from other courses.
if ($adminoptions->import) {
$url = new moodle_url('/backup/import.php', array('id' => $course->id));
$coursenode->add(get_string('import'), $url, self::TYPE_SETTING, null, 'import', new pix_icon('i/import', ''));
}
// Backup this course
if ($adminoptions->backup) {
$url = new moodle_url('/backup/backup.php', array('id'=>$course->id));
$coursenode->add(get_string('backup'), $url, self::TYPE_SETTING, null, 'backup', new pix_icon('i/backup', ''));
}
// Restore to this course
if ($adminoptions->restore) {
$url = new moodle_url('/backup/restorefile.php', array('contextid'=>$coursecontext->id));
$coursenode->add(get_string('restore'), $url, self::TYPE_SETTING, null, 'restore', new pix_icon('i/restore', ''));
}
// Copy this course.
if ($adminoptions->copy) {
$url = new moodle_url('/backup/copy.php', array('id' => $course->id));
$coursenode->add(get_string('copycourse'), $url, self::TYPE_SETTING, null, 'copy', new pix_icon('t/copy', ''));
}
// Reset this course
if ($adminoptions->reset) {
$url = new moodle_url('/course/reset.php', array('id'=>$course->id));
$coursenode->add(get_string('reset'), $url, self::TYPE_SETTING, null, 'reset', new pix_icon('i/return', ''));
}
// Questions
require_once($CFG->libdir . '/questionlib.php');
question_extend_settings_navigation($coursenode, $coursecontext)->trim_if_empty();
@@ -4828,6 +4798,56 @@ class settings_navigation extends navigation_node {
$coursenode->get('download')->set_force_into_more_menu(true);
}
// Course reuse options.
if ($adminoptions->import
|| $adminoptions->backup
|| $adminoptions->restore
|| $adminoptions->copy
|| $adminoptions->reset) {
$coursereusenav = $coursenode->add(
get_string('coursereuse'),
new moodle_url('/backup/view.php', ['id' => $course->id]),
self::TYPE_CONTAINER, null, 'coursereuse', new pix_icon('t/edit', ''),
);
// Import data from other courses.
if ($adminoptions->import) {
$url = new moodle_url('/backup/import.php', ['id' => $course->id]);
$coursereusenav->add(get_string('import'), $url, self::TYPE_SETTING, null, 'import', new pix_icon('i/import', ''));
}
// Backup this course.
if ($adminoptions->backup) {
$url = new moodle_url('/backup/backup.php', ['id' => $course->id]);
$coursereusenav->add(get_string('backup'), $url, self::TYPE_SETTING, null, 'backup', new pix_icon('i/backup', ''));
}
// Restore to this course.
if ($adminoptions->restore) {
$url = new moodle_url('/backup/restorefile.php', ['contextid' => $coursecontext->id]);
$coursereusenav->add(
get_string('restore'),
$url,
self::TYPE_SETTING,
null,
'restore',
new pix_icon('i/restore', ''),
);
}
// Copy this course.
if ($adminoptions->copy) {
$url = new moodle_url('/backup/copy.php', ['id' => $course->id]);
$coursereusenav->add(get_string('copycourse'), $url, self::TYPE_SETTING, null, 'copy', new pix_icon('t/copy', ''));
}
// Reset this course.
if ($adminoptions->reset) {
$url = new moodle_url('/course/reset.php', ['id' => $course->id]);
$coursereusenav->add(get_string('reset'), $url, self::TYPE_SETTING, null, 'reset', new pix_icon('i/return', ''));
}
}
// Return we are done
return $coursenode;
}
@@ -5721,18 +5741,6 @@ class settings_navigation extends navigation_node {
}
}
// Backup this course
if ($adminoptions->backup) {
$url = new moodle_url('/backup/backup.php', array('id'=>$course->id));
$frontpage->add(get_string('backup'), $url, self::TYPE_SETTING, null, 'backup', new pix_icon('i/backup', ''));
}
// Restore to this course
if ($adminoptions->restore) {
$url = new moodle_url('/backup/restorefile.php', array('contextid'=>$coursecontext->id));
$frontpage->add(get_string('restore'), $url, self::TYPE_SETTING, null, 'restore', new pix_icon('i/restore', ''));
}
// Questions
require_once($CFG->libdir . '/questionlib.php');
question_extend_settings_navigation($frontpage, $coursecontext)->trim_if_empty();
@@ -5752,6 +5760,34 @@ class settings_navigation extends navigation_node {
}
}
// Course reuse options.
if ($adminoptions->backup || $adminoptions->restore) {
$coursereusenav = $frontpage->add(
get_string('coursereuse'),
new moodle_url('/backup/view.php', ['id' => $course->id]),
self::TYPE_CONTAINER, null, 'coursereuse', new pix_icon('t/edit', ''),
);
// Backup this course.
if ($adminoptions->backup) {
$url = new moodle_url('/backup/backup.php', ['id' => $course->id]);
$coursereusenav->add(get_string('backup'), $url, self::TYPE_SETTING, null, 'backup', new pix_icon('i/backup', ''));
}
// Restore to this course.
if ($adminoptions->restore) {
$url = new moodle_url('/backup/restorefile.php', ['contextid' => $coursecontext->id]);
$coursereusenav->add(
get_string('restore'),
$url,
self::TYPE_SETTING,
null,
'restore',
new pix_icon('i/restore', ''),
);
}
}
return $frontpage;
}