MDL-40912 coursecat: replaced 'hide' and 'show' add_to_log calls with an event
authorMark Nelson <markn@moodle.com>
Tue, 31 Dec 2013 22:53:34 +0000 (14:53 -0800)
committerMark Nelson <markn@moodle.com>
Wed, 15 Jan 2014 03:24:15 +0000 (19:24 -0800)
lib/coursecatlib.php
lib/tests/events_test.php

index 5cbf71c..d4e30dc 100644 (file)
@@ -1998,7 +1998,13 @@ class coursecat implements renderable, cacheable_object, IteratorAggregate {
     public function hide() {
         if ($this->hide_raw(0)) {
             cache_helper::purge_by_event('changesincoursecat');
-            add_to_log(SITEID, "category", "hide", "editcategory.php?id=$this->id", $this->id);
+
+            $event = \core\event\course_category_updated::create(array(
+                'objectid' => $this->id,
+                'context' => $this->get_context()
+            ));
+            $event->set_legacy_logdata(array(SITEID, 'category', 'hide', 'editcategory.php?id=' . $this->id, $this->id));
+            $event->trigger();
         }
     }
 
@@ -2051,7 +2057,13 @@ class coursecat implements renderable, cacheable_object, IteratorAggregate {
     public function show() {
         if ($this->show_raw()) {
             cache_helper::purge_by_event('changesincoursecat');
-            add_to_log(SITEID, "category", "show", "editcategory.php?id=$this->id", $this->id);
+
+            $event = \core\event\course_category_updated::create(array(
+                'objectid' => $this->id,
+                'context' => $this->get_context()
+            ));
+            $event->set_legacy_logdata(array(SITEID, 'category', 'show', 'editcategory.php?id=' . $this->id, $this->id));
+            $event->trigger();
         }
     }
 
index 6130bc8..ee5797c 100644 (file)
@@ -115,5 +115,29 @@ class core_events_testcase extends advanced_testcase {
         $this->assertEquals(context_coursecat::instance($childcat->id), $event->get_context());
         $expected = array(SITEID, 'category', 'move', 'editcategory.php?id=' . $childcat->id, $childcat->id);
         $this->assertEventLegacyLogData($expected, $event);
+
+        // Trigger and capture the event for hiding a category.
+        $sink = $this->redirectEvents();
+        $category2->hide();
+        $events = $sink->get_events();
+        $event = reset($events);
+
+        // Check that the event data is valid.
+        $this->assertInstanceOf('\core\event\course_category_updated', $event);
+        $this->assertEquals(context_coursecat::instance($category2->id), $event->get_context());
+        $expected = array(SITEID, 'category', 'hide', 'editcategory.php?id=' . $category2->id, $category2->id);
+        $this->assertEventLegacyLogData($expected, $event);
+
+        // Trigger and capture the event for unhiding a category.
+        $sink = $this->redirectEvents();
+        $category2->show();
+        $events = $sink->get_events();
+        $event = reset($events);
+
+        // Check that the event data is valid.
+        $this->assertInstanceOf('\core\event\course_category_updated', $event);
+        $this->assertEquals(context_coursecat::instance($category2->id), $event->get_context());
+        $expected = array(SITEID, 'category', 'show', 'editcategory.php?id=' . $category2->id, $category2->id);
+        $this->assertEventLegacyLogData($expected, $event);
     }
 }