diff --git a/calendar/event.php b/calendar/event.php index 04e7d7e7f15..1fb060c1120 100644 --- a/calendar/event.php +++ b/calendar/event.php @@ -596,8 +596,13 @@ function calendar_get_allowed_types(&$allowed) { $allowed->site = isteacher(SITEID); if(!empty($SESSION->cal_course_referer) && $SESSION->cal_course_referer != SITEID && isteacher($SESSION->cal_course_referer, $USER->id)) { - $allowed->courses = array($SESSION->cal_course_referer => 1); - $allowed->groups = get_groups($SESSION->cal_course_referer); + $course = get_record('course', 'id', $SESSION->cal_course_referer); + + $allowed->courses = array($course->id => 1); + + if($course->groupmode != NOGROUPS || !$course->groupmodeforce) { + $allowed->groups = get_groups($SESSION->cal_course_referer); + } } } diff --git a/calendar/lib.php b/calendar/lib.php index 93c04f3a491..1610b449606 100644 --- a/calendar/lib.php +++ b/calendar/lib.php @@ -642,7 +642,7 @@ function calendar_filter_controls($type, $vars = NULL, $course = NULL) { } else { $getvars = '&from=course'; } - if (isset($course->groupmode) and !$course->groupmode and $course->groupmodeforce) { + if (isset($course->groupmode) and $course->groupmode == NOGROUPS and $course->groupmodeforce) { $groupevents = false; } break; @@ -1055,11 +1055,11 @@ function calendar_set_filters(&$courses, &$group, &$user, $courseeventsfrom = NU // The first time we get in here, retrieve all groupmodes at once if($groupmodes === NULL) { - $groupmodes = get_records_list('course', 'id', implode(',', $groupcourses), '', 'id, groupmode'); + $groupmodes = get_records_list('course', 'id', implode(',', $groupcourses), '', 'id, groupmode, groupmodeforce'); } // If this course has groups, show events from all of them - if(isset($groupmodes[$courseid]) && $groupmodes[$courseid]->groupmode != NOGROUPS && ($grouprecords = get_groups($courseid)) !== false) { + if(isset($groupmodes[$courseid]) && ($groupmodes[$courseid]->groupmode != NOGROUPS || !$groupmodes[$courseid]->groupmodeforce) && ($grouprecords = get_groups($courseid)) !== false) { $grouparray = array_merge($grouparray, array_keys($grouprecords)); } }