mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
MDL-29350 Prevent duplication of groupings when copying activities
This patch also includes a database upgrade to correct data produced as a result of this bug.
This commit is contained in:
parent
6be90ce05f
commit
6336bd914a
3 changed files with 24 additions and 2 deletions
|
@ -802,7 +802,14 @@ class restore_groups_structure_step extends restore_structure_step {
|
||||||
|
|
||||||
$data->groupingid = $this->get_new_parentid('grouping'); // Use new parentid
|
$data->groupingid = $this->get_new_parentid('grouping'); // Use new parentid
|
||||||
$data->groupid = $this->get_mappingid('group', $data->groupid); // Get from mappings
|
$data->groupid = $this->get_mappingid('group', $data->groupid); // Get from mappings
|
||||||
$DB->insert_record('groupings_groups', $data); // No need to set this mapping (no child info nor files)
|
|
||||||
|
$params = array();
|
||||||
|
$params['groupingid'] = $data->groupingid;
|
||||||
|
$params['groupid'] = $data->groupid;
|
||||||
|
|
||||||
|
if (!$DB->record_exists('groupings_groups', $params)) {
|
||||||
|
$DB->insert_record('groupings_groups', $data); // No need to set this mapping (no child info nor files)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function after_execute() {
|
protected function after_execute() {
|
||||||
|
|
|
@ -6916,6 +6916,21 @@ FROM
|
||||||
upgrade_main_savepoint(true, 2011110200.02);
|
upgrade_main_savepoint(true, 2011110200.02);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($oldversion < 2011111500.01) {
|
||||||
|
// Remove duplicate entries from groupings_groups table
|
||||||
|
$sql = 'SELECT MIN(id) AS firstid, groupingid, groupid FROM {groupings_groups} '.
|
||||||
|
'GROUP BY groupingid, groupid HAVING COUNT(id)>1';
|
||||||
|
$badrecs = $DB->get_records_sql($sql);
|
||||||
|
foreach ($badrecs as $badrec) {
|
||||||
|
$where = 'groupingid = ? and groupid = ? and id > ?';
|
||||||
|
$params = array($badrec->groupingid, $badrec->groupid, $badrec->firstid);
|
||||||
|
$DB->delete_records_select('groupings_groups', $where, $params);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main savepoint reached
|
||||||
|
upgrade_main_savepoint(true, 2011111500.01);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
defined('MOODLE_INTERNAL') || die();
|
defined('MOODLE_INTERNAL') || die();
|
||||||
|
|
||||||
|
|
||||||
$version = 2011111500.00; // YYYYMMDD = weekly release date of this DEV branch
|
$version = 2011111500.01; // YYYYMMDD = weekly release date of this DEV branch
|
||||||
// RR = release increments - 00 in DEV branches
|
// RR = release increments - 00 in DEV branches
|
||||||
// .XX = incremental changes
|
// .XX = incremental changes
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue