MDL-57607 mod_assign: Make assign_refresh_events refresh overrides

Part of MDL-55611 epic.
This commit is contained in:
Jun Pataleta
2017-04-04 11:01:54 +01:00
committed by Dan Poltawski
parent 2229368a3c
commit 3651c22b75
+16 -10
View File
@@ -118,19 +118,25 @@ function assign_refresh_events($courseid = 0) {
}
}
foreach ($assigns as $assign) {
// Use assignment's course column if courseid parameter is not given.
if (!$courseid) {
$courseid = $assign->course;
if (!$course = $DB->get_record('course', array('id' => $courseid), '*')) {
continue;
}
}
if (!$cm = get_coursemodule_from_instance('assign', $assign->id, $courseid, false)) {
continue;
}
// Get course and course module for the assignment.
list($course, $cm) = get_course_and_cm_from_instance($assign->id, 'assign', $assign->course);
// Refresh the assignment's calendar events.
$context = context_module::instance($cm->id);
$assignment = new assign($context, $cm, $course);
$assignment->update_calendar($cm->id);
// Refresh the calendar events also for the assignment overrides.
$overrides = $DB->get_records('assign_overrides', ['assignid' => $assign->id], '', 'id, groupid, userid');
foreach ($overrides as $override) {
if (empty($override->userid)) {
unset($override->userid);
}
if (empty($override->groupid)) {
unset($override->groupid);
}
assign_update_events($assignment, $override);
}
}
return true;