From 0daa8526c2754d1cc1671fd74b63d4630c305adb Mon Sep 17 00:00:00 2001 From: Dan Marsden Date: Fri, 9 May 2014 13:26:09 +1200 Subject: [PATCH] Update Attendance to use new events insted of add_to_log for 2.7 --- classes/event/attendance_taken.php | 104 +++++++++++++++++++ classes/event/report_viewed.php | 99 +++++++++++++++++++ classes/event/session_added.php | 102 +++++++++++++++++++ classes/event/session_deleted.php | 102 +++++++++++++++++++ classes/event/session_duration_updated.php | 102 +++++++++++++++++++ classes/event/session_updated.php | 110 +++++++++++++++++++++ classes/event/status_added.php | 99 +++++++++++++++++++ classes/event/status_updated.php | 99 +++++++++++++++++++ lang/en/attendance.php | 9 ++ locallib.php | 66 ++++++++++--- report.php | 10 +- version.php | 6 +- 12 files changed, 890 insertions(+), 18 deletions(-) create mode 100644 classes/event/attendance_taken.php create mode 100644 classes/event/report_viewed.php create mode 100644 classes/event/session_added.php create mode 100644 classes/event/session_deleted.php create mode 100644 classes/event/session_duration_updated.php create mode 100644 classes/event/session_updated.php create mode 100644 classes/event/status_added.php create mode 100644 classes/event/status_updated.php diff --git a/classes/event/attendance_taken.php b/classes/event/attendance_taken.php new file mode 100644 index 0000000..1715d0e --- /dev/null +++ b/classes/event/attendance_taken.php @@ -0,0 +1,104 @@ +. + +/** + * This file contains an event for when an attendance is taken. + * + * @package mod_attendance + * @copyright 2014 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_attendance\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when an attendance is taken. + * + * @property-read array $other { + * Extra information about event properties. + * + * @string mode Mode of the report viewed. + * } + * @package mod_attendance + * @since Moodle 2.7 + * @copyright 2013 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class attendance_taken extends \core\event\base { + + /** + * Init method. + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['edulevel'] = self::LEVEL_TEACHING; + $this->data['objecttable'] = 'attendance'; + } + + /** + * Returns non-localised description of what happened. + * + * @return string + */ + public function get_description() { + return 'User with id ' . $this->userid . ' took attendance with instanceid ' . + $this->objectid; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventtaken', 'mod_attendance'); + } + + /** + * Get URL related to the action + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/mod/attendance/take.php', array('id' => $this->contextinstanceid, + 'sessionid' => $this->other['sessionid'], + 'grouptype' => $this->other['grouptype'])); + } + + /** + * Replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + return array($this->courseid, 'attendance', 'taken', $this->get_url(), + '', $this->contextinstanceid); + } + + /** + * Custom validation. + * + * @throws \coding_exception + * @return void + */ + protected function validate_data() { + if (empty($this->other['sessionid'])) { + throw new \coding_exception('The event mod_attendance\\event\\attendance_taken must specify sessionid.'); + } + parent::validate_data(); + } +} diff --git a/classes/event/report_viewed.php b/classes/event/report_viewed.php new file mode 100644 index 0000000..e2981ba --- /dev/null +++ b/classes/event/report_viewed.php @@ -0,0 +1,99 @@ +. + +/** + * This file contains an event for when a attendance report is viewed. + * + * @package mod_attendance + * @copyright 2014 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_attendance\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when a attendance report is viewed. + * + * @property-read array $other { + * Extra information about event properties. + * + * @string mode Mode of the report viewed. + * } + * @package mod_attendance + * @since Moodle 2.7 + * @copyright 2013 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class report_viewed extends \core\event\base { + + /** + * Init method. + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['edulevel'] = self::LEVEL_TEACHING; + $this->data['objecttable'] = 'attendance'; + } + + /** + * Returns non-localised description of what happened. + * + * @return string + */ + public function get_description() { + return 'User with id ' . $this->userid . ' viewed attendance report with instanceid ' . + $this->objectid; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventreportviewed', 'mod_attendance'); + } + + /** + * Get URL related to the action + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/mod/attendance/report.php', array('id' => $this->objectid)); + } + + /** + * Replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + return array($this->courseid, 'attendance', 'report', 'report.php?id=' . $this->objectid, + $this->objectid, $this->contextinstanceid); + } + + /** + * Custom validation. + * + * @throws \coding_exception + * @return void + */ + protected function validate_data() { + parent::validate_data(); + } +} diff --git a/classes/event/session_added.php b/classes/event/session_added.php new file mode 100644 index 0000000..8fd7d87 --- /dev/null +++ b/classes/event/session_added.php @@ -0,0 +1,102 @@ +. + +/** + * This file contains an event for when an attendance session is added. + * + * @package mod_attendance + * @copyright 2014 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_attendance\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when an attendance session is added + * + * @property-read array $other { + * Extra information about event properties. + * + * @string mode Mode of the report viewed. + * } + * @package mod_attendance + * @since Moodle 2.7 + * @copyright 2013 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class session_added extends \core\event\base { + + /** + * Init method. + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['edulevel'] = self::LEVEL_TEACHING; + $this->data['objecttable'] = 'attendance'; + } + + /** + * Returns non-localised description of what happened. + * + * @return string + */ + public function get_description() { + return 'User with id ' . $this->userid . ' added a session to the instanceid ' . + $this->objectid; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventsessionadded', 'mod_attendance'); + } + + /** + * Get URL related to the action + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/mod/attendance/manage.php', array('id' => $this->contextinstanceid)); + } + + /** + * Replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + return array($this->courseid, 'attendance', 'report', 'report.php?id=' . $this->objectid, + $this->other['info'], $this->contextinstanceid); + } + + /** + * Custom validation. + * + * @throws \coding_exception + * @return void + */ + protected function validate_data() { + if (empty($this->other['info'])) { + throw new \coding_exception('The event mod_attendance\\event\\session_added must specify info.'); + } + parent::validate_data(); + } +} diff --git a/classes/event/session_deleted.php b/classes/event/session_deleted.php new file mode 100644 index 0000000..8839b0f --- /dev/null +++ b/classes/event/session_deleted.php @@ -0,0 +1,102 @@ +. + +/** + * This file contains an event for when an attendance session is deleted. + * + * @package mod_attendance + * @copyright 2014 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_attendance\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when an attendance session is deleted. + * + * @property-read array $other { + * Extra information about event properties. + * + * @string mode Mode of the report viewed. + * } + * @package mod_attendance + * @since Moodle 2.7 + * @copyright 2013 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class session_deleted extends \core\event\base { + + /** + * Init method. + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['edulevel'] = self::LEVEL_TEACHING; + $this->data['objecttable'] = 'attendance'; + } + + /** + * Returns non-localised description of what happened. + * + * @return string + */ + public function get_description() { + return 'User with id ' . $this->userid . ' deleted session with instanceid ' . + $this->objectid; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventsessiondeleted', 'mod_attendance'); + } + + /** + * Get URL related to the action + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/mod/attendance/manage.php', array('id' => $this->contextinstanceid)); + } + + /** + * Replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + return array($this->courseid, 'attendance', 'sessions deleted', $this->get_url(), + $this->other['info'], $this->contextinstanceid); + } + + /** + * Custom validation. + * + * @throws \coding_exception + * @return void + */ + protected function validate_data() { + if (empty($this->other['info'])) { + throw new \coding_exception('The event mod_attendance\\event\\session_deleted must specify info.'); + } + parent::validate_data(); + } +} diff --git a/classes/event/session_duration_updated.php b/classes/event/session_duration_updated.php new file mode 100644 index 0000000..2ff8e48 --- /dev/null +++ b/classes/event/session_duration_updated.php @@ -0,0 +1,102 @@ +. + +/** + * This file contains an event for when an attendance session duration is updated. + * + * @package mod_attendance + * @copyright 2014 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_attendance\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when an attendance session duration is updated. + * + * @property-read array $other { + * Extra information about event properties. + * + * @string mode Mode of the report viewed. + * } + * @package mod_attendance + * @since Moodle 2.7 + * @copyright 2013 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class session_duration_updated extends \core\event\base { + + /** + * Init method. + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['edulevel'] = self::LEVEL_TEACHING; + $this->data['objecttable'] = 'attendance'; + } + + /** + * Returns non-localised description of what happened. + * + * @return string + */ + public function get_description() { + return 'User with id ' . $this->userid . ' updated attendance session duration with instanceid ' . + $this->objectid; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventdurationupdated', 'mod_attendance'); + } + + /** + * Get URL related to the action + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/mod/attendance/manage.php', array('id' => $this->contextinstanceid)); + } + + /** + * Replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + return array($this->courseid, 'attendance', 'sessions duration updated', $this->get_url(), + $this->other['info'], $this->contextinstanceid); + } + + /** + * Custom validation. + * + * @throws \coding_exception + * @return void + */ + protected function validate_data() { + if (empty($this->other['info'])) { + throw new \coding_exception('The event mod_attendance\\event\\session_duration_updated must specify info.'); + } + parent::validate_data(); + } +} diff --git a/classes/event/session_updated.php b/classes/event/session_updated.php new file mode 100644 index 0000000..c954762 --- /dev/null +++ b/classes/event/session_updated.php @@ -0,0 +1,110 @@ +. + +/** + * This file contains an event for when an attendance session is updated. + * + * @package mod_attendance + * @copyright 2014 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_attendance\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when an attendance session is updated. + * + * @property-read array $other { + * Extra information about event properties. + * + * @string mode Mode of the report viewed. + * } + * @package mod_attendance + * @since Moodle 2.7 + * @copyright 2013 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class session_updated extends \core\event\base { + + /** + * Init method. + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['edulevel'] = self::LEVEL_TEACHING; + $this->data['objecttable'] = 'attendance'; + } + + /** + * Returns non-localised description of what happened. + * + * @return string + */ + public function get_description() { + return 'User with id ' . $this->userid . ' updated attendance session with instanceid ' . + $this->objectid; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventsessionupdated', 'mod_attendance'); + } + + /** + * Get URL related to the action + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/mod/attendance/sessions.php', array('id' => $this->contextinstanceid, + 'sessionid' => $this->other['sessionid'], + 'action' => $this->other['action'])); + } + + /** + * Replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + return array($this->courseid, 'attendance', 'session updated', $this->get_url(), + $this->other['info'], $this->contextinstanceid); + } + + /** + * Custom validation. + * + * @throws \coding_exception + * @return void + */ + protected function validate_data() { + if (empty($this->other['info'])) { + throw new \coding_exception('The event mod_attendance\\event\\session_updated must specify info.'); + } + if (empty($this->other['sessionid'])) { + throw new \coding_exception('The event mod_attendance\\event\\session_updated must specify sessionid.'); + } + if (empty($this->other['action'])) { + throw new \coding_exception('The event mod_attendance\\event\\session_updated must specify action.'); + } + parent::validate_data(); + } +} diff --git a/classes/event/status_added.php b/classes/event/status_added.php new file mode 100644 index 0000000..fdb5fc3 --- /dev/null +++ b/classes/event/status_added.php @@ -0,0 +1,99 @@ +. + +/** + * This file contains an event for when an attendance status is added. + * + * @package mod_attendance + * @copyright 2014 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_attendance\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when an attendance status is added. + * + * @property-read array $other { + * Extra information about event properties. + * + * @string mode Mode of the report viewed. + * } + * @package mod_attendance + * @since Moodle 2.7 + * @copyright 2013 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class status_added extends \core\event\base { + + /** + * Init method. + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['edulevel'] = self::LEVEL_TEACHING; + $this->data['objecttable'] = 'attendance'; + } + + /** + * Returns non-localised description of what happened. + * + * @return string + */ + public function get_description() { + return 'User with id ' . $this->userid . ' updated attendance status with instanceid ' . + $this->objectid; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventstatusadded', 'mod_attendance'); + } + + /** + * Get URL related to the action + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/mod/attendance/preferences.php', array('id' => $this->contextinstanceid)); + } + + /** + * Replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + return array($this->courseid, 'attendance', 'status added', $this->get_url(), + $this->other['acronym'].': '.$this->other['description'].' ('.$this->other['grade'].')', $this->contextinstanceid); + } + + /** + * Custom validation. + * + * @throws \coding_exception + * @return void + */ + protected function validate_data() { + parent::validate_data(); + } +} diff --git a/classes/event/status_updated.php b/classes/event/status_updated.php new file mode 100644 index 0000000..c622d3b --- /dev/null +++ b/classes/event/status_updated.php @@ -0,0 +1,99 @@ +. + +/** + * This file contains an event for when an attendance status is updated. + * + * @package mod_attendance + * @copyright 2014 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_attendance\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when an attendance status is updated. + * + * @property-read array $other { + * Extra information about event properties. + * + * @string mode Mode of the report viewed. + * } + * @package mod_attendance + * @since Moodle 2.7 + * @copyright 2013 onwards Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class status_updated extends \core\event\base { + + /** + * Init method. + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['edulevel'] = self::LEVEL_TEACHING; + $this->data['objecttable'] = 'attendance'; + } + + /** + * Returns non-localised description of what happened. + * + * @return string + */ + public function get_description() { + return 'User with id ' . $this->userid . ' updated attendance status with instanceid ' . + $this->objectid; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventstatusupdated', 'mod_attendance'); + } + + /** + * Get URL related to the action + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/mod/attendance/preferences.php', array('id' => $this->contextinstanceid)); + } + + /** + * Replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + return array($this->courseid, 'attendance', 'status updated', $this->get_url(), + $this->other['updated'], $this->contextinstanceid); + } + + /** + * Custom validation. + * + * @throws \coding_exception + * @return void + */ + protected function validate_data() { + parent::validate_data(); + } +} diff --git a/lang/en/attendance.php b/lang/en/attendance.php index 4c8df1f..f9cf66b 100755 --- a/lang/en/attendance.php +++ b/lang/en/attendance.php @@ -216,3 +216,12 @@ $string['viewmode'] = 'View mode'; $string['week'] = 'week(s)'; $string['weeks'] = 'Weeks'; $string['youcantdo'] = 'You can\'t do anything'; + +$string['eventreportviewed'] = 'Report viewed'; +$string['eventsessionadded'] = 'Session added'; +$string['eventsessionupdated'] = 'Session updated'; +$string['eventtaken'] = 'Attendance taken'; +$string['eventsessiondeleted'] = 'Session deleted'; +$string['eventdurationupdated'] = 'Session duration updated'; +$string['eventstatusupdated'] = 'Status updated'; +$string['eventstatusadded'] = 'Status added'; diff --git a/locallib.php b/locallib.php index 230baab..912703d 100644 --- a/locallib.php +++ b/locallib.php @@ -807,8 +807,16 @@ class attendance { } $i++; } - add_to_log($this->course->id, 'attendance', 'sessions added', $this->url_manage(), - implode(',', $info_array), $this->cm->id); + // Trigger a report viewed event. + $event = \mod_attendance\event\session_added::create(array( + 'objectid' => $this->id, + 'context' => $this->context, + 'other' => array('info' => implode(',', $info_array)) + )); + $event->add_record_snapshot('course_modules', $this->cm); + $event->add_record_snapshot('attendance', $this); + $event->trigger(); + } public function update_session_from_form_data($formdata, $sessionid) { @@ -828,9 +836,14 @@ class attendance { $sess->timemodified = time(); $DB->update_record('attendance_sessions', $sess); - $url = $this->url_sessions(array('sessionid' => $sessionid, 'action' => att_sessions_page_params::ACTION_UPDATE)); $info = construct_session_full_date_time($sess->sessdate, $sess->duration); - add_to_log($this->course->id, 'attendance', 'session updated', $url, $info, $this->cm->id); + $event = \mod_attendance\event\session_updated::create(array( + 'objectid' => $this->id, + 'context' => $this->context, + 'other' => array('info' => $info, 'sessionid' => $sessionid, 'action' => att_sessions_page_params::ACTION_UPDATE))); + $event->add_record_snapshot('course_modules', $this->cm); + $event->add_record_snapshot('attendance', $this); + $event->trigger(); } public function take_from_form_data($formdata) { @@ -883,8 +896,13 @@ class attendance { $params = array( 'sessionid' => $this->pageparams->sessionid, 'grouptype' => $this->pageparams->grouptype); - $url = $this->url_take($params); - add_to_log($this->course->id, 'attendance', 'taken', $url, '', $this->cm->id); + $event = \mod_attendance\event\attendance_taken::create(array( + 'objectid' => $this->id, + 'context' => $this->context, + 'other' => $params)); + $event->add_record_snapshot('course_modules', $this->cm); + $event->add_record_snapshot('attendance', $this); + $event->trigger(); $group = 0; if ($this->pageparams->grouptype != attendance::SESSION_COMMON) { @@ -1281,8 +1299,13 @@ class attendance { list($sql, $params) = $DB->get_in_or_equal($sessionsids); $DB->delete_records_select('attendance_log', "sessionid $sql", $params); $DB->delete_records_list('attendance_sessions', 'id', $sessionsids); - add_to_log($this->course->id, 'attendance', 'sessions deleted', $this->url_manage(), - get_string('sessionsids', 'attendance').implode(', ', $sessionsids), $this->cm->id); + $event = \mod_attendance\event\session_deleted::create(array( + 'objectid' => $this->id, + 'context' => $this->context, + 'other' => array('info' => implode(', ', $sessionsids)))); + $event->add_record_snapshot('course_modules', $this->cm); + $event->add_record_snapshot('attendance', $this); + $event->trigger(); } public function update_sessions_duration($sessionsids, $duration) { @@ -1296,8 +1319,13 @@ class attendance { $DB->update_record('attendance_sessions', $sess); } $sessions->close(); - add_to_log($this->course->id, 'attendance', 'sessions duration updated', $this->url_manage(), - get_string('sessionsids', 'attendance').implode(', ', $sessionsids), $this->cm->id); + $event = \mod_attendance\event\session_duration_updated::create(array( + 'objectid' => $this->id, + 'context' => $this->context, + 'other' => array('info' => implode(', ', $sessionsids)))); + $event->add_record_snapshot('course_modules', $this->cm); + $event->add_record_snapshot('attendance', $this); + $event->trigger(); } public function remove_status($statusid) { @@ -1318,8 +1346,13 @@ class attendance { $rec->grade = $grade; $DB->insert_record('attendance_statuses', $rec); - add_to_log($this->course->id, 'attendance', 'status added', $this->url_preferences(), - $acronym.': '.$description.' ('.$grade.')', $this->cm->id); + $event = \mod_attendance\event\status_added::create(array( + 'objectid' => $this->id, + 'context' => $this->context, + 'other' => array('acronym' => $acronym, 'description' => $description, 'grade' => $grade))); + $event->add_record_snapshot('course_modules', $this->cm); + $event->add_record_snapshot('attendance', $this); + $event->trigger(); } else { print_error('cantaddstatus', 'attendance', $this->url_preferences()); } @@ -1350,8 +1383,13 @@ class attendance { } $DB->update_record('attendance_statuses', $status); - add_to_log($this->course->id, 'attendance', 'status updated', $this->url_preferences(), - implode(' ', $updated), $this->cm->id); + $event = \mod_attendance\event\status_updated::create(array( + 'objectid' => $this->id, + 'context' => $this->context, + 'other' => array('acronym' => $acronym, 'description' => $description, 'grade' => $grade, 'updated' => implode(' ', $updated)))); + $event->add_record_snapshot('course_modules', $this->cm); + $event->add_record_snapshot('attendance', $this); + $event->trigger(); } } diff --git a/report.php b/report.php index 8a4d4cf..e556336 100644 --- a/report.php +++ b/report.php @@ -60,7 +60,15 @@ $tabs = new attendance_tabs($att, attendance_tabs::TAB_REPORT); $filtercontrols = new attendance_filter_controls($att); $reportdata = new attendance_report_data($att); -add_to_log($course->id, 'attendance', 'report viewed', '/mod/attendance/report.php?id='.$id, '', $cm->id); +// Trigger a report viewed event. +$event = \mod_attendance\event\report_viewed::create(array( + 'objectid' => $att->id, + 'context' => $PAGE->context, + 'other' => array() +)); +$event->add_record_snapshot('course_modules', $cm); +$event->add_record_snapshot('attendance', $att); +$event->trigger(); // Output starts here. diff --git a/version.php b/version.php index 70a3faa..82a5c93 100644 --- a/version.php +++ b/version.php @@ -22,9 +22,9 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -$module->version = 2014022800; -$module->requires = 2013040500; -$module->release = '2.6.0'; +$module->version = 2014050900; +$module->requires = 2014042900; +$module->release = '2.7.0'; $module->maturity = MATURITY_STABLE; $module->cron = 0; $module->component = 'mod_attendance';