MDL-56251 format_weeks: do not use caches in event observers
[moodle.git] / course / format / weeks / classes / observer.php
index d359580..7be6b63 100644 (file)
@@ -39,11 +39,10 @@ class format_weeks_observer {
      * @param \core\event\course_updated $event
      */
     public static function course_updated(\core\event\course_updated $event) {
-        $format = course_get_format($event->courseid);
-
-        // Only want to update the end date if the course format has been set as weeks.
-        if ($format->get_format() == 'weeks') {
-            $format->update_end_date();
+        if (class_exists('format_weeks', false)) {
+            // If class format_weeks was never loaded, this is definitely not a course in 'weeks' format.
+            // Course may still be in another format but format_weeks::update_end_date() will check it.
+            format_weeks::update_end_date($event->courseid);
         }
     }
 
@@ -53,11 +52,10 @@ class format_weeks_observer {
      * @param \core\event\course_section_created $event
      */
     public static function course_section_created(\core\event\course_section_created $event) {
-        $format = course_get_format($event->courseid);
-
-        // Only want to update the end date if the course format has been set as weeks.
-        if ($format->get_format() == 'weeks') {
-            $format->update_end_date();
+        if (class_exists('format_weeks', false)) {
+            // If class format_weeks was never loaded, this is definitely not a course in 'weeks' format.
+            // Course may still be in another format but format_weeks::update_end_date() will check it.
+            format_weeks::update_end_date($event->courseid);
         }
     }
 
@@ -67,11 +65,10 @@ class format_weeks_observer {
      * @param \core\event\course_section_deleted $event
      */
     public static function course_section_deleted(\core\event\course_section_deleted $event) {
-        $format = course_get_format($event->courseid);
-
-        // Only want to update the end date if the course format has been set as weeks.
-        if ($format->get_format() == 'weeks') {
-            $format->update_end_date();
+        if (class_exists('format_weeks', false)) {
+            // If class format_weeks was never loaded, this is definitely not a course in 'weeks' format.
+            // Course may still be in another format but format_weeks::update_end_date() will check it.
+            format_weeks::update_end_date($event->courseid);
         }
     }
 }