MDL-43557 fix BC issue in \core\event\course_completed and incorrect description

This commit is contained in:
Petr Skoda
2014-04-30 14:59:45 +08:00
parent 3373120f60
commit 8b233bdacd
2 changed files with 39 additions and 12 deletions
+1 -11
View File
@@ -161,17 +161,7 @@ class completion_completion extends data_object {
// Save record.
if ($result = $this->_save()) {
$data = $this->get_record_data();
$event = \core\event\course_completed::create(
array(
'objectid' => $data->id,
'userid' => $USER->id,
'relateduserid' => $data->userid,
'context' => context_course::instance($data->course),
'courseid' => $data->course
)
);
$event->add_record_snapshot('course_completions', $data);
$event->trigger();
\core\event\course_completed::create_from_completion($data)->trigger();
}
return $result;
+38 -1
View File
@@ -29,12 +29,37 @@ defined('MOODLE_INTERNAL') || die();
/**
* Course completed event class.
*
* @property-read int $relateduserid user who completed the course
* @property-read array $other {
* Extra information about event.
*
* - int relateduserid: deprecated since 2.7, please use property relateduserid
* }
*
* @package core
* @since Moodle 2.6
* @copyright 2013 Rajesh Taneja <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class course_completed extends base {
/**
* Create event from course_completion record.
* @param \stdClass $completion
* @return course_completed
*/
public static function create_from_completion(\stdClass $completion) {
$event = self::create(
array(
'objectid' => $completion->id,
'relateduserid' => $completion->userid,
'context' => \context_course::instance($completion->course),
'courseid' => $completion->course,
'other' => array('relateduserid' => $completion->userid), // Deprecated since 2.7, please use property relateduserid.
)
);
$event->add_record_snapshot('course_completions', $completion);
return $event;
}
/**
* Initialise required event data properties.
@@ -60,7 +85,7 @@ class course_completed extends base {
* @return string
*/
public function get_description() {
return "The course with the id '$this->courseid' was completed by the user with the id '$this->userid'.";
return "The course with the id '$this->courseid' was completed for the user with the id '$this->relateduserid'.";
}
/**
@@ -89,4 +114,16 @@ class course_completed extends base {
protected function get_legacy_eventdata() {
return $this->get_record_snapshot('course_completions', $this->objectid);
}
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected function validate_data() {
parent::validate_data();
// TODO: MDL-45319 add validation of relateduserid and other['relateduserid'].
}
}