}
}
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;