Skip to content

Commit

Permalink
MDL-53974 backup: Add option to backup course competencies
Browse files Browse the repository at this point in the history
  • Loading branch information
junpataleta authored and andrewnicols committed May 6, 2016
1 parent 11ee4f7 commit 45b9207
Show file tree
Hide file tree
Showing 7 changed files with 91 additions and 4 deletions.
5 changes: 5 additions & 0 deletions backup/moodle2/backup_root_task.class.php
Expand Up @@ -163,5 +163,10 @@ protected function define_settings() {
$groups = new backup_groups_setting('groups', base_setting::IS_BOOLEAN, true);
$groups->set_ui(new backup_setting_ui_checkbox($groups, get_string('rootsettinggroups', 'backup')));
$this->add_setting($groups);

// Define competencies inclusion setting if competencies are enabled.
$competencies = new backup_competencies_setting();
$competencies->set_ui(new backup_setting_ui_checkbox($competencies, get_string('rootsettingcompetencies', 'backup')));
$this->add_setting($competencies);
}
}
21 changes: 21 additions & 0 deletions backup/moodle2/backup_settingslib.php
Expand Up @@ -130,6 +130,27 @@ class backup_calendarevents_setting extends backup_anonymize_setting {}
*/
class backup_userscompletion_setting extends backup_anonymize_setting {}

/**
* root setting to control if backup will include competencies or not.
*/
class backup_competencies_setting extends backup_generic_setting {

/**
* backup_competencies_setting constructor.
*/
public function __construct() {
$defaultvalue = false;
$visibility = base_setting::HIDDEN;
$status = base_setting::LOCKED_BY_CONFIG;
if (\core_competency\api::is_enabled()) {
$defaultvalue = true;
$visibility = base_setting::VISIBLE;
$status = base_setting::NOT_LOCKED;
}
parent::__construct('competencies', base_setting::IS_BOOLEAN, $defaultvalue, $visibility, $status);
}
}

// Section backup settings

/**
Expand Down
30 changes: 30 additions & 0 deletions backup/moodle2/backup_stepslib.php
Expand Up @@ -1585,6 +1585,21 @@ protected function define_structure() {

return $wrapper;
}

/**
* Execute conditions.
*
* @return bool
*/
protected function execute_condition() {

// Do not execute if competencies are not included.
if (!$this->get_setting_value('competencies')) {
return false;
}

return true;
}
}

/**
Expand Down Expand Up @@ -1612,6 +1627,21 @@ protected function define_structure() {

return $wrapper;
}

/**
* Execute conditions.
*
* @return bool
*/
protected function execute_condition() {

// Do not execute if competencies are not included.
if (!$this->get_setting_value('competencies')) {
return false;
}

return true;
}
}

/**
Expand Down
6 changes: 6 additions & 0 deletions backup/moodle2/restore_root_task.class.php
Expand Up @@ -266,5 +266,11 @@ protected function define_settings() {
$groups->set_ui(new backup_setting_ui_checkbox($groups, get_string('rootsettinggroups', 'backup')));
$groups->get_ui()->set_changeable($changeable);
$this->add_setting($groups);

// Competencies restore setting. Show when competencies is enabled and the setting is available.
$hascompetencies = !empty($rootsettings['competencies']);
$competencies = new restore_competencies_setting($hascompetencies);
$competencies->set_ui(new backup_setting_ui_checkbox($competencies, get_string('rootsettingcompetencies', 'backup')));
$this->add_setting($competencies);
}
}
24 changes: 24 additions & 0 deletions backup/moodle2/restore_settingslib.php
Expand Up @@ -78,6 +78,30 @@ class restore_comments_setting extends restore_role_assignments_setting {}
*/
class restore_badges_setting extends restore_generic_setting {}

/**
* root setting to control if competencies will also be restored.
*/
class restore_competencies_setting extends restore_generic_setting {

/**
* restore_competencies_setting constructor.
* @param bool $hascompetencies Flag whether to set the restore setting as checked and unlocked.
*/
public function __construct($hascompetencies) {
$defaultvalue = false;
$visibility = base_setting::HIDDEN;
$status = base_setting::LOCKED_BY_CONFIG;
if (\core_competency\api::is_enabled()) {
$visibility = base_setting::VISIBLE;
if ($hascompetencies) {
$defaultvalue = true;
$status = base_setting::NOT_LOCKED;
}
}
parent::__construct('competencies', base_setting::IS_BOOLEAN, $defaultvalue, $visibility, $status);
}
}

/**
* root setting to control if restore will create
* events or no, depends of @restore_users_setting
Expand Down
8 changes: 4 additions & 4 deletions backup/moodle2/restore_stepslib.php
Expand Up @@ -3213,8 +3213,8 @@ public function process_user_competency_course($data) {
*/
protected function execute_condition() {

// Do not restore when competencies are disabled.
if (!\core_competency\api::is_enabled()) {
// Do not execute if competencies are not included.
if (!$this->get_setting_value('competencies')) {
return false;
}

Expand Down Expand Up @@ -3288,8 +3288,8 @@ public function process_course_module_competency($data) {
*/
protected function execute_condition() {

// Do not restore when competencies are disabled.
if (!\core_competency\api::is_enabled()) {
// Do not execute if competencies are not included.
if (!$this->get_setting_value('competencies')) {
return false;
}

Expand Down
1 change: 1 addition & 0 deletions lang/en/backup.php
Expand Up @@ -237,6 +237,7 @@
$string['rootsettingactivities'] = 'Include activities and resources';
$string['rootsettingbadges'] = 'Include badges';
$string['rootsettingblocks'] = 'Include blocks';
$string['rootsettingcompetencies'] = 'Include competencies';
$string['rootsettingfilters'] = 'Include filters';
$string['rootsettingcomments'] = 'Include comments';
$string['rootsettingcalendarevents'] = 'Include calendar events';
Expand Down

0 comments on commit 45b9207

Please sign in to comment.