MDL-64702 badges: Add missing data to backup
Backup and restore of badges is missing data: * related badges * alignments * endorsement Also added to "clone" (duplicate a badge).
This commit is contained in:
+23
-1
@@ -315,6 +315,28 @@ class badge {
|
||||
$crit->make_clone($new);
|
||||
}
|
||||
|
||||
// Copy endorsement.
|
||||
$endorsement = $this->get_endorsement();
|
||||
if ($endorsement) {
|
||||
unset($endorsement->id);
|
||||
$endorsement->badgeid = $new;
|
||||
$newbadge->save_endorsement($endorsement);
|
||||
}
|
||||
|
||||
// Copy alignments.
|
||||
$alignments = $this->get_alignments();
|
||||
foreach ($alignments as $alignment) {
|
||||
unset($alignment->id);
|
||||
$alignment->badgeid = $new;
|
||||
$newbadge->save_alignment($alignment);
|
||||
}
|
||||
|
||||
// Copy related badges.
|
||||
$related = $this->get_related_badges(true);
|
||||
if (!empty($related)) {
|
||||
$newbadge->add_related_badges(array_keys($related));
|
||||
}
|
||||
|
||||
// Trigger event, badge duplicated.
|
||||
$eventparams = array('objectid' => $new, 'context' => $PAGE->context);
|
||||
$event = \core\event\badge_duplicated::create($eventparams);
|
||||
@@ -838,7 +860,7 @@ class badge {
|
||||
*
|
||||
* @return array List content competencies.
|
||||
*/
|
||||
public function get_alignment() {
|
||||
public function get_alignments() {
|
||||
global $DB;
|
||||
return $DB->get_records('badge_competencies', array('badgeid' => $this->id));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user