MDL-28180 backup - on restore always prevent completion_aggr_methd dupes

This covers the last case where dupes could be happening in the
completion_aggr_methd table: Restoring one complete course into
an existing one, adding information. Now we always check if the
aggr_method exists before inserting it.
This commit is contained in:
Eloy Lafuente (stronk7)
2011-12-11 23:03:51 +01:00
parent 9de951556f
commit ed9c60fed7
+13 -8
View File
@@ -1805,15 +1805,20 @@ class restore_course_completion_structure_step extends restore_structure_step {
$data->course = $this->get_courseid();
$params = array(
'course' => $data->course,
'criteriatype' => $data->criteriatype,
'method' => $data->method,
'value' => $data->value,
);
$DB->insert_record('course_completion_aggr_methd', $params);
// Only create the course_completion_aggr_methd records if
// the target course has not them defined. MDL-28180
if (!$DB->record_exists('course_completion_aggr_methd', array(
'course' => $data->course,
'criteriatype' => $data->criteriatype))) {
$params = array(
'course' => $data->course,
'criteriatype' => $data->criteriatype,
'method' => $data->method,
'value' => $data->value,
);
$DB->insert_record('course_completion_aggr_methd', $params);
}
}
}