mirror of
https://github.com/moodle/moodle.git
synced 2025-04-19 23:42:11 +02:00
MDL-27233 add new options to keep enrols and groups purging existing course in restore
This commit is contained in:
parent
16ef46e7b6
commit
d53e3298c0
@ -133,6 +133,26 @@ class restore_course_task extends restore_task {
|
||||
$startdate->set_ui(new backup_setting_ui_dateselector($startdate, get_string('setting_course_startdate', 'backup')));
|
||||
$this->add_setting($startdate);
|
||||
|
||||
$purge_enrols = new restore_course_generic_setting('keep_roles_and_enrolments', base_setting::IS_BOOLEAN, false);
|
||||
$purge_enrols->set_ui(new backup_setting_ui_select($purge_enrols, $purge_enrols->get_name(), array(1=>get_string('yes'), 0=>get_string('no'))));
|
||||
$purge_enrols->get_ui()->set_label(get_string('setting_keep_roles_and_enrolments', 'backup'));
|
||||
if ($this->get_target() != backup::TARGET_CURRENT_DELETING and $this->get_target() != backup::TARGET_EXISTING_DELETING) {
|
||||
$purge_enrols->set_value(false);
|
||||
$purge_enrols->set_status(backup_setting::LOCKED_BY_CONFIG);
|
||||
$purge_enrols->set_visibility(backup_setting::HIDDEN);
|
||||
}
|
||||
$this->add_setting($purge_enrols);
|
||||
|
||||
$purge_groups = new restore_course_generic_setting('keep_groups_and_groupings', base_setting::IS_BOOLEAN, false);
|
||||
$purge_groups->set_ui(new backup_setting_ui_select($purge_groups, $purge_groups->get_name(), array(1=>get_string('yes'), 0=>get_string('no'))));
|
||||
$purge_groups->get_ui()->set_label(get_string('setting_keep_groups_and_groupings', 'backup'));
|
||||
if ($this->get_target() != backup::TARGET_CURRENT_DELETING and $this->get_target() != backup::TARGET_EXISTING_DELETING) {
|
||||
$purge_groups->set_value(false);
|
||||
$purge_groups->set_status(backup_setting::LOCKED_BY_CONFIG);
|
||||
$purge_groups->set_visibility(backup_setting::HIDDEN);
|
||||
}
|
||||
$this->add_setting($purge_groups);
|
||||
|
||||
// Define overwrite_conf to decide if course configuration will be restored over existing one
|
||||
$overwrite = new restore_course_overwrite_conf_setting('overwrite_conf', base_setting::IS_BOOLEAN, false);
|
||||
$overwrite->set_ui(new backup_setting_ui_select($overwrite, $overwrite->get_name(), array(1=>get_string('yes'), 0=>get_string('no'))));
|
||||
|
@ -1354,10 +1354,11 @@ abstract class restore_dbops {
|
||||
/**
|
||||
* Deletes all of the content associated with the given course (courseid)
|
||||
* @param int $courseid
|
||||
* @param array $options
|
||||
* @return bool True for success
|
||||
*/
|
||||
public static function delete_course_content($courseid) {
|
||||
return remove_course_contents($courseid, false);
|
||||
public static function delete_course_content($courseid, array $options = null) {
|
||||
return remove_course_contents($courseid, false, $options);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -139,7 +139,10 @@ class restore_ui extends base_ui {
|
||||
throw new restore_ui_exception('restoreuifinalisedbeforeexecute');
|
||||
}
|
||||
if ($this->controller->get_target() == backup::TARGET_CURRENT_DELETING || $this->controller->get_target() == backup::TARGET_EXISTING_DELETING) {
|
||||
restore_dbops::delete_course_content($this->controller->get_courseid());
|
||||
$options = array();
|
||||
$options['keep_roles_and_enrolments'] = $this->get_setting_value('keep_roles_and_enrolments');
|
||||
$options['keep_groups_and_groupings'] = $this->get_setting_value('keep_groups_and_groupings');
|
||||
restore_dbops::delete_course_content($this->controller->get_courseid(), $options);
|
||||
}
|
||||
$this->controller->execute_plan();
|
||||
$this->progress = self::PROGRESS_EXECUTED;
|
||||
|
@ -220,5 +220,7 @@ $string['setting_overwriteconf'] = 'Overwrite course configuration';
|
||||
$string['setting_course_fullname'] = 'Course name';
|
||||
$string['setting_course_shortname'] = 'Course short name';
|
||||
$string['setting_course_startdate'] = 'Course startdate';
|
||||
$string['setting_keep_roles_and_enrolments'] = 'Keep current roles and enrolments';
|
||||
$string['setting_keep_groups_and_groupings'] = 'Keep current groups and groupings';
|
||||
$string['totalcategorysearchresults'] = 'Total categories: {$a}';
|
||||
$string['totalcoursesearchresults'] = 'Total courses: {$a}';
|
||||
|
Loading…
x
Reference in New Issue
Block a user