From 74588eecc426e50b09b0844380eb78d897828b0e Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 20 Mar 2017 16:59:39 +0800 Subject: [PATCH] MDL-57878 core_calendar: extended bailout callback Do not display completion related events if completion is disabled. Part of MDL-55611 epic. --- calendar/classes/local/event/core_container.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/calendar/classes/local/event/core_container.php b/calendar/classes/local/event/core_container.php index 312eec08833..9563c12f8f3 100644 --- a/calendar/classes/local/event/core_container.php +++ b/calendar/classes/local/event/core_container.php @@ -125,7 +125,21 @@ class core_container { $cm = $instances[$dbrow->modulename][$dbrow->instance]; - return !(bool)$cm->uservisible; + if (!$cm->uservisible) { + return true; + } + + // Ok, now check if we are looking at a completion event. + if ($dbrow->eventtype === \core_completion\api::COMPLETION_EVENT_TYPE_DATE_COMPLETION_EXPECTED) { + // Need to have completion enabled before displaying these events. + $course = new \stdClass(); + $course->id = $dbrow->courseid; + $completion = new \completion_info($course); + + return (bool) !$completion->is_enabled($cm); + } + + return false; }, self::$coursecache, self::$modulecache