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 0000000000000..0287dc75a1301 --- /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 d1707d2113291..45f90020d024c 100644 --- a/admin/tool/capability/index.php +++ b/admin/tool/capability/index.php @@ -92,7 +92,7 @@ } } -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 3862006933660..bb477eed010f5 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 0000000000000..30942ca4b3d63 --- /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(); + } +}