mirror of
https://github.com/moodle/moodle.git
synced 2025-04-23 17:34:56 +02:00
MDL-23362 backup - on restore detect missing modules / skipped activities, for gradebook.
This commit is contained in:
parent
d87b5a5da0
commit
58328ce8a6
@ -689,7 +689,7 @@ class backup_gradebook_structure_step extends backup_structure_step {
|
||||
// Define sources
|
||||
|
||||
//Include manual, category and the course grade item
|
||||
$grade_items_sql ="SELECT * FROM {grade_items}
|
||||
$grade_items_sql ="SELECT * FROM {grade_items}
|
||||
WHERE courseid = :courseid
|
||||
AND (itemtype='manual' OR itemtype='course' OR itemtype='category')";
|
||||
$grade_items_params = array('courseid'=>backup::VAR_COURSEID);
|
||||
|
@ -164,6 +164,7 @@ abstract class restore_activity_task extends restore_task {
|
||||
// Find activity_included_setting
|
||||
if (!$this->get_setting_value('included')) {
|
||||
$this->log('activity skipped by _included setting', backup::LOG_DEBUG, $this->name);
|
||||
$this->plan->set_excluding_activities(); // Inform plan we are excluding actvities
|
||||
|
||||
} else { // Setting tells us it's ok to execute
|
||||
parent::execute();
|
||||
|
@ -124,7 +124,10 @@ abstract class restore_plan_builder {
|
||||
// TODO: Debug information about block not supported
|
||||
}
|
||||
}
|
||||
} else { // Activity is missing in target site, inform plan about that
|
||||
$plan->set_missing_modules();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -87,6 +87,17 @@ class restore_gradebook_step extends restore_structure_step {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Some module present in backup file isn't available to restore
|
||||
// in this site, don't execute
|
||||
if ($this->task->is_missing_modules()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Some activity has been excluded to be restored, don't execute
|
||||
if ($this->task->is_excluding_activities()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Arrived here, execute the step
|
||||
return true;
|
||||
}
|
||||
|
@ -37,6 +37,8 @@ class restore_plan extends base_plan implements loggable {
|
||||
protected $basepath; // Fullpath to dir where backup is available
|
||||
protected $preloaded; // When executing the plan, do we have preloaded (from checks) info
|
||||
protected $decoder; // restore_decode_processor in charge of decoding all the interlinks
|
||||
protected $missingmodules; // to flag if restore has detected some missing module
|
||||
protected $excludingdactivities; // to flag if restore settings are excluding any activity
|
||||
|
||||
/**
|
||||
* Constructor - instantiates one object of this class
|
||||
@ -51,6 +53,9 @@ class restore_plan extends base_plan implements loggable {
|
||||
$this->basepath = $CFG->dataroot . '/temp/backup/' . $controller->get_tempdir();
|
||||
$this->preloaded = false;
|
||||
$this->decoder = new restore_decode_processor($this->get_restoreid(), $this->get_info()->original_wwwroot, $CFG->wwwroot);
|
||||
$this->missingmodules = false;
|
||||
$this->excludingdactivities = false;
|
||||
|
||||
parent::__construct('restore_plan');
|
||||
}
|
||||
|
||||
@ -96,6 +101,14 @@ class restore_plan extends base_plan implements loggable {
|
||||
return $this->controller->is_samesite();
|
||||
}
|
||||
|
||||
public function is_missing_modules() {
|
||||
return $this->missingmodules;
|
||||
}
|
||||
|
||||
public function is_excluding_activities() {
|
||||
return $this->excludingdactivities;
|
||||
}
|
||||
|
||||
public function set_preloaded_information() {
|
||||
$this->preloaded = true;
|
||||
}
|
||||
@ -108,6 +121,14 @@ class restore_plan extends base_plan implements loggable {
|
||||
return $this->controller->get_tempdir();
|
||||
}
|
||||
|
||||
public function set_missing_modules() {
|
||||
$this->missingmodules = true;
|
||||
}
|
||||
|
||||
public function set_excluding_activities() {
|
||||
$this->excludingdactivities = true;
|
||||
}
|
||||
|
||||
public function log($message, $level, $a = null, $depth = null, $display = false) {
|
||||
backup_helper::log($message, $level, $a, $depth, $display, $this->get_logger());
|
||||
}
|
||||
|
@ -63,6 +63,14 @@ abstract class restore_task extends base_task {
|
||||
return $this->plan->is_samesite();
|
||||
}
|
||||
|
||||
public function is_missing_modules() {
|
||||
return $this->plan->is_missing_modules();
|
||||
}
|
||||
|
||||
public function is_excluding_activities() {
|
||||
return $this->plan->is_excluding_activities();
|
||||
}
|
||||
|
||||
public function set_preloaded_information() {
|
||||
$this->plan->set_preloaded_information();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user