From db473c0d5ae3de285d30890151e77206a2e57b1f Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Wed, 23 Apr 2014 10:48:45 +0800 Subject: [PATCH] MDL-45219 add report_viewed event to tool_capability --- .../capability/classes/event/report_viewed.php | 83 ++++++++++++++++++++++ admin/tool/capability/index.php | 2 +- admin/tool/capability/lang/en/tool_capability.php | 1 + admin/tool/capability/tests/events_test.php | 65 +++++++++++++++++ 4 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 admin/tool/capability/classes/event/report_viewed.php create mode 100644 admin/tool/capability/tests/events_test.php diff --git a/admin/tool/capability/classes/event/report_viewed.php b/admin/tool/capability/classes/event/report_viewed.php new file mode 100644 index 00000000000..0287dc75a13 --- /dev/null +++ b/admin/tool/capability/classes/event/report_viewed.php @@ -0,0 +1,83 @@ +. + +/** + * Event for when capability report is viewed. + * + * @package tool_capability + * @copyright 2014 Petr Skoda + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +namespace tool_capability\event; + +/** + * Event triggered, when capability report is viewed. + * + * @package tool_capability + * @since Moodle 2.7 + * @copyright 2014 Petr Skoda + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class report_viewed extends \core\event\base { + + /** + * Init method. + * + * @return void + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['edulevel'] = self::LEVEL_OTHER; + $this->context = \context_system::instance(); + } + + /** + * Return localised event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventreportviewed', 'tool_capability'); + } + + /** + * Returns description of what happened. + * + * @return string + */ + public function get_description() { + return "The user with id " . $this->userid . " viewed capability overview report"; + } + + /** + * Return the legacy event log data. + * + * @return array + */ + protected function get_legacy_logdata() { + return array(SITEID, 'admin', 'tool capability', 'tool/capability/index.php'); + } + + /** + * Returns relevant URL. + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/admin/tool/capability/index.php'); + } +} + diff --git a/admin/tool/capability/index.php b/admin/tool/capability/index.php index d1707d21132..45f90020d02 100644 --- a/admin/tool/capability/index.php +++ b/admin/tool/capability/index.php @@ -92,7 +92,7 @@ if ($data = $form->get_data()) { } } -add_to_log(SITEID, "admin", "tool capability", "tool/capability/index.php", count($capabilities)); +\tool_capability\event\report_viewed::create()->trigger(); $renderer = $PAGE->get_renderer('tool_capability'); diff --git a/admin/tool/capability/lang/en/tool_capability.php b/admin/tool/capability/lang/en/tool_capability.php index 38620069336..bb477eed010 100644 --- a/admin/tool/capability/lang/en/tool_capability.php +++ b/admin/tool/capability/lang/en/tool_capability.php @@ -24,6 +24,7 @@ $string['capabilitylabel'] = 'Capability:'; $string['capabilityreport'] = 'Capability overview'; +$string['eventreportviewed'] = 'Report viewed'; $string['forroles'] = 'For roles {$a}'; $string['getreport'] = 'Get the overview'; $string['changeoverrides'] = 'Change overrides in this context'; diff --git a/admin/tool/capability/tests/events_test.php b/admin/tool/capability/tests/events_test.php new file mode 100644 index 00000000000..30942ca4b3d --- /dev/null +++ b/admin/tool/capability/tests/events_test.php @@ -0,0 +1,65 @@ +. + +/** + * Tests for capability overview events. + * + * @package tool_capability + * @copyright 2014 Petr Skoda + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. + */ + +defined('MOODLE_INTERNAL') || die(); + +/** + * Class for capability overview events. + * + * @package tool_capability + * @copyright 2014 Petr Skoda + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. + */ +class tool_capability_events_testcase extends advanced_testcase { + + /** + * Setup testcase. + */ + public function setUp() { + $this->setAdminUser(); + $this->resetAfterTest(); + } + + /** + * Test the report viewed event. + */ + public function test_report_viewed() { + $event = \tool_capability\event\report_viewed::create(); + + // Trigger and capture the event. + $sink = $this->redirectEvents(); + $event->trigger(); + $events = $sink->get_events(); + $event = reset($events); + + $this->assertInstanceOf('\tool_capability\event\report_viewed', $event); + $this->assertEquals(context_system::instance(), $event->get_context()); + $expected = array(SITEID, "admin", "tool capability", "tool/capability/index.php"); + $this->assertEventLegacyLogData($expected, $event); + $this->assertEventContextNotUsed($event); + $url = new moodle_url('/admin/tool/capability/index.php'); + $this->assertEquals($url, $event->get_url()); + $event->get_name(); + } +} -- 2.11.4.GIT