Merge branch 'wip-MDL-44321-master' of git://github.com/marinaglancy/moodle
This commit is contained in:
@@ -40,8 +40,8 @@ class core_badges_observer {
|
||||
require_once($CFG->dirroot.'/lib/badgeslib.php');
|
||||
|
||||
$eventdata = $event->get_record_snapshot('course_modules_completion', $event->objectid);
|
||||
$userid = $event->other['relateduserid'];
|
||||
$mod = $eventdata->coursemoduleid;
|
||||
$userid = $event->relateduserid;
|
||||
$mod = $event->contextinstanceid;
|
||||
|
||||
if ($eventdata->completionstate == COMPLETION_COMPLETE
|
||||
|| $eventdata->completionstate == COMPLETION_COMPLETE_PASS
|
||||
|
||||
@@ -85,7 +85,6 @@ function cohort_update_cohort($cohort) {
|
||||
'context' => context::instance_by_id($cohort->contextid),
|
||||
'objectid' => $cohort->id,
|
||||
));
|
||||
$event->add_record_snapshot('cohort', $cohort);
|
||||
$event->trigger();
|
||||
}
|
||||
|
||||
|
||||
@@ -312,7 +312,7 @@ class core_group_external extends external_api {
|
||||
foreach ($params['groupids'] as $groupid) {
|
||||
// validate params
|
||||
$groupid = validate_param($groupid, PARAM_INT);
|
||||
if (!$group = groups_get_group($groupid, 'id, courseid', IGNORE_MISSING)) {
|
||||
if (!$group = groups_get_group($groupid, '*', IGNORE_MISSING)) {
|
||||
// silently ignore attempts to delete nonexisting groups
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1744,6 +1744,7 @@ function role_assign($roleid, $userid, $contextid, $component = '', $itemid = 0,
|
||||
$ra->itemid = $itemid;
|
||||
$ra->timemodified = $timemodified;
|
||||
$ra->modifierid = empty($USER->id) ? 0 : $USER->id;
|
||||
$ra->sortorder = 0;
|
||||
|
||||
$ra->id = $DB->insert_record('role_assignments', $ra);
|
||||
|
||||
|
||||
@@ -59,8 +59,8 @@ abstract class assessable_submitted extends \core\event\base {
|
||||
* @return void
|
||||
*/
|
||||
protected function validate_data() {
|
||||
if (!$this->contextlevel === CONTEXT_MODULE) {
|
||||
throw new \coding_exception('Content level must be CONTEXT_MODULE.');
|
||||
if ($this->contextlevel != CONTEXT_MODULE) {
|
||||
throw new \coding_exception('Context passed must be module context.');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -66,8 +66,8 @@ abstract class assessable_uploaded extends \core\event\base {
|
||||
* @return void
|
||||
*/
|
||||
protected function validate_data() {
|
||||
if (!$this->contextlevel === CONTEXT_MODULE) {
|
||||
throw new \coding_exception('Content level must be CONTEXT_MODULE.');
|
||||
if ($this->contextlevel != CONTEXT_MODULE) {
|
||||
throw new \coding_exception('Context passed must be module context.');
|
||||
} else if (!isset($this->other['pathnamehashes']) || !is_array($this->other['pathnamehashes'])) {
|
||||
throw new \coding_exception('pathnamehashes must be set in $other and must be an array.');
|
||||
} else if (!isset($this->other['content']) || !is_string($this->other['content'])) {
|
||||
|
||||
@@ -573,6 +573,13 @@ abstract class base implements \IteratorAggregate {
|
||||
if ($CFG->debugdeveloper) {
|
||||
if (!$DB->get_manager()->table_exists($tablename)) {
|
||||
debugging("Invalid table name '$tablename' specified, database table does not exist.", DEBUG_DEVELOPER);
|
||||
} else {
|
||||
$columns = $DB->get_columns($tablename);
|
||||
$missingfields = array_diff(array_keys($columns), array_keys((array)$record));
|
||||
if (!empty($missingfields)) {
|
||||
debugging("Fields list in snapshot record does not match fields list in '$tablename'. Record is missing fields: ".
|
||||
join(', ', $missingfields), DEBUG_DEVELOPER);
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->recordsnapshots[$tablename][$record->id] = $record;
|
||||
@@ -595,7 +602,7 @@ abstract class base implements \IteratorAggregate {
|
||||
}
|
||||
|
||||
if (isset($this->recordsnapshots[$tablename][$id])) {
|
||||
return $this->recordsnapshots[$tablename][$id];
|
||||
return clone($this->recordsnapshots[$tablename][$id]);
|
||||
}
|
||||
|
||||
$record = $DB->get_record($tablename, array('id'=>$id));
|
||||
|
||||
@@ -81,4 +81,18 @@ class course_module_completion_updated extends base {
|
||||
return $this->get_record_snapshot('course_modules_completion', $this->objectid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom validation.
|
||||
*
|
||||
* @throws \coding_exception in case of a problem.
|
||||
*/
|
||||
protected function validate_data() {
|
||||
// Make sure the context level is set to module.
|
||||
if ($this->contextlevel !== CONTEXT_MODULE) {
|
||||
throw new \coding_exception('Context passed must be module context.');
|
||||
}
|
||||
if (!isset($this->relateduserid)) {
|
||||
throw new \coding_exception('relateduserid must be set');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,8 +105,8 @@ abstract class course_module_instance_list_viewed extends base{
|
||||
* @return void
|
||||
*/
|
||||
protected function validate_data() {
|
||||
if ($this->contextlevel !== CONTEXT_COURSE) {
|
||||
throw new \coding_exception('The context must be a course level context.');
|
||||
if ($this->contextlevel != CONTEXT_COURSE) {
|
||||
throw new \coding_exception('Context passed must be course context.');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -96,6 +96,10 @@ abstract class course_module_viewed extends base {
|
||||
if (empty($this->objectid) || empty($this->objecttable)) {
|
||||
throw new \coding_exception('course_module_viewed event must define objectid and object table.');
|
||||
}
|
||||
// Make sure the context level is set to module.
|
||||
if ($this->contextlevel != CONTEXT_MODULE) {
|
||||
throw new \coding_exception('Context passed must be module context.');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1042,9 +1042,8 @@ class completion_info {
|
||||
// Trigger an event for course module completion changed.
|
||||
$event = \core\event\course_module_completion_updated::create(
|
||||
array('objectid' => $data->id,
|
||||
'userid' => $USER->id,
|
||||
'context' => $cmcontext,
|
||||
'courseid' => $coursecontext->instanceid,
|
||||
'relateduserid' => $data->userid,
|
||||
'other' => array('relateduserid' => $data->userid)
|
||||
)
|
||||
);
|
||||
|
||||
@@ -500,6 +500,7 @@ class core_completionlib_testcase extends advanced_testcase {
|
||||
$data->coursemoduleid = $cm->id;
|
||||
$data->completionstate = COMPLETION_COMPLETE;
|
||||
$data->timemodified = time();
|
||||
$data->viewed = COMPLETION_NOT_VIEWED;
|
||||
|
||||
$c->internal_set_data($cm, $data);
|
||||
$d1 = $DB->get_field('course_modules_completion', 'id', array('coursemoduleid' => $cm->id));
|
||||
@@ -518,6 +519,7 @@ class core_completionlib_testcase extends advanced_testcase {
|
||||
$d2->coursemoduleid = $cm2->id;
|
||||
$d2->completionstate = COMPLETION_COMPLETE;
|
||||
$d2->timemodified = time();
|
||||
$d2->viewed = COMPLETION_NOT_VIEWED;
|
||||
$c->internal_set_data($cm2, $d2);
|
||||
$this->assertFalse(isset($SESSION->completioncache));
|
||||
|
||||
@@ -533,6 +535,7 @@ class core_completionlib_testcase extends advanced_testcase {
|
||||
$d3->coursemoduleid = $cm3->id;
|
||||
$d3->completionstate = COMPLETION_COMPLETE;
|
||||
$d3->timemodified = time();
|
||||
$d3->viewed = COMPLETION_NOT_VIEWED;
|
||||
$DB->insert_record('course_modules_completion', $d3);
|
||||
$c->internal_set_data($cm, $data);
|
||||
}
|
||||
|
||||
@@ -709,8 +709,9 @@ class core_event_testcase extends advanced_testcase {
|
||||
|
||||
$event->add_record_snapshot('course', $course1);
|
||||
|
||||
$result = $event->get_record_snapshot('course', 1, $course1);
|
||||
$this->assertSame($course1, $result);
|
||||
$result = $event->get_record_snapshot('course', 1);
|
||||
// Convert to arrays because record snapshot returns a clone of the object.
|
||||
$this->assertSame((array)$course1, (array)$result);
|
||||
|
||||
$user = $event->get_record_snapshot('user', 1);
|
||||
$this->assertEquals(1, $user->id);
|
||||
|
||||
@@ -51,6 +51,7 @@ $params = array(
|
||||
'context' => context_course::instance($course->id)
|
||||
);
|
||||
$event = \mod_book\event\course_module_instance_list_viewed::create($params);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
// Get all the appropriate data
|
||||
|
||||
@@ -80,6 +80,8 @@ if ($chapterid == '0') { // Go to first chapter if no given.
|
||||
'objectid' => $book->id
|
||||
);
|
||||
$event = \mod_book\event\course_module_viewed::create($params);
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->add_record_snapshot('book', $book);
|
||||
$event->trigger();
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ $params = array(
|
||||
'context' => context_course::instance($id)
|
||||
);
|
||||
$event = \mod_chat\event\course_module_instance_list_viewed::create($params);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
/// Get all required strings
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
$eventdata = array('context' => context_course::instance($id));
|
||||
$event = \mod_choice\event\course_module_instance_list_viewed::create($eventdata);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
$strchoice = get_string("modulename", "choice");
|
||||
|
||||
+2
-1
@@ -81,9 +81,10 @@
|
||||
$eventdata = array();
|
||||
$eventdata['objectid'] = $choice->id;
|
||||
$eventdata['context'] = $context;
|
||||
$eventdata['courseid'] = $course->id;
|
||||
|
||||
$event = \mod_choice\event\course_module_viewed::create($eventdata);
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
/// Check to see if groups are being used in this choice
|
||||
|
||||
@@ -43,6 +43,7 @@ $params = array(
|
||||
'context' => context_course::instance($course->id)
|
||||
);
|
||||
$event = \mod_data\event\course_module_instance_list_viewed::create($params);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
$strname = get_string('name');
|
||||
|
||||
@@ -260,6 +260,8 @@
|
||||
'objectid' => $data->id
|
||||
);
|
||||
$event = \mod_data\event\course_module_viewed::create($params);
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->add_record_snapshot('data', $data);
|
||||
$event->trigger();
|
||||
|
||||
|
||||
@@ -92,9 +92,6 @@ class course_module_viewed extends \core\event\course_module_viewed {
|
||||
if (!isset($this->other['anonymous'])) {
|
||||
throw new \coding_exception("Field other['anonymous'] cannot be empty");
|
||||
}
|
||||
if (!isset($this->other['cmid'])) {
|
||||
throw new \coding_exception("Field other['cmid'] cannot be empty");
|
||||
}
|
||||
|
||||
// Call parent validations.
|
||||
parent::validate_data();
|
||||
|
||||
@@ -42,6 +42,7 @@ $PAGE->set_pagelayout('incourse');
|
||||
|
||||
// Trigger instances list viewed event.
|
||||
$event = \mod_feedback\event\course_module_instance_list_viewed::create(array('context' => $context));
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
/// Print the page header
|
||||
|
||||
@@ -176,39 +176,11 @@ class mod_feedback_events_testcase extends advanced_testcase {
|
||||
|
||||
$context = context_module::instance($this->eventcm->id);
|
||||
|
||||
// Test not setting instanceid.
|
||||
try {
|
||||
\mod_feedback\event\response_deleted::create(array(
|
||||
'context' => $context,
|
||||
'objectid' => $this->eventfeedbackcompleted->id,
|
||||
'other' => array('cmid' => $this->eventcm->id, 'anonymous' => 2)
|
||||
));
|
||||
$this->assertEventContextNotUsed($event);
|
||||
$this->fail("Event validation should not allow \\mod_feedback\\event\\response_deleted to be triggered without
|
||||
other['instanceid']");
|
||||
} catch (coding_exception $e) {
|
||||
$this->assertContains("Field other['instanceid'] cannot be empty", $e->getMessage());
|
||||
}
|
||||
|
||||
// Test not setting cmid.
|
||||
try {
|
||||
\mod_feedback\event\response_deleted::create(array(
|
||||
'context' => $context,
|
||||
'objectid' => $this->eventfeedbackcompleted->id,
|
||||
'other' => array('instanceid' => $this->eventfeedback->id, 'anonymous' => 2)
|
||||
));
|
||||
$this->fail("Event validation should not allow \\mod_feedback\\event\\response_deleted to be triggered without
|
||||
other['cmid']");
|
||||
} catch (coding_exception $e) {
|
||||
$this->assertContains("Field other['cmid'] cannot be empty", $e->getMessage());
|
||||
}
|
||||
|
||||
// Test not setting anonymous.
|
||||
// Test not setting other['anonymous'].
|
||||
try {
|
||||
\mod_feedback\event\response_submitted::create(array(
|
||||
'context' => $context,
|
||||
'objectid' => $this->eventfeedbackcompleted->id,
|
||||
'other' => array('cmid' => $this->eventcm->id, 'instanceid' => $this->eventfeedback->id)
|
||||
'objectid' => $this->eventfeedbackcompleted->id
|
||||
));
|
||||
$this->fail("Event validation should not allow \\mod_feedback\\event\\response_deleted to be triggered without
|
||||
other['anonymous']");
|
||||
@@ -252,8 +224,6 @@ class mod_feedback_events_testcase extends advanced_testcase {
|
||||
$this->assertEquals($USER->id, $event->userid);
|
||||
$this->assertEquals($USER->id, $event->relateduserid);
|
||||
$this->assertEquals('feedback_completed', $event->objecttable);
|
||||
$this->assertEquals($this->eventcm->id, $event->other['cmid']);
|
||||
$this->assertEquals($this->eventcm->instance, $event->other['instanceid']);
|
||||
$this->assertEquals(FEEDBACK_ANONYMOUS_YES, $event->other['anonymous']);
|
||||
$this->setUser($this->eventuser);
|
||||
$this->assertFalse($event->can_view());
|
||||
|
||||
@@ -101,11 +101,9 @@ $event = \mod_feedback\event\course_module_viewed::create(array(
|
||||
'objectid' => $feedback->id,
|
||||
'context' => $context,
|
||||
'other' => array(
|
||||
'cmid' => $cm->id,
|
||||
'instanceid' => $feedback->id,
|
||||
'anonymous' => $feedback->anonymous
|
||||
)
|
||||
));
|
||||
)
|
||||
));
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->add_record_snapshot('feedback', $feedback);
|
||||
|
||||
@@ -36,6 +36,7 @@ $params = array(
|
||||
'context' => context_course::instance($course->id)
|
||||
);
|
||||
$event = \mod_folder\event\course_module_instance_list_viewed::create($params);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
$strfolder = get_string('modulename', 'folder');
|
||||
|
||||
@@ -54,6 +54,8 @@ $params = array(
|
||||
'objectid' => $folder->id
|
||||
);
|
||||
$event = \mod_folder\event\course_module_viewed::create($params);
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->add_record_snapshot('folder', $folder);
|
||||
$event->trigger();
|
||||
|
||||
|
||||
+2
-39
@@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
|
||||
* @copyright 2014 Dan Poltawski <dan@moodle.com>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class forum_viewed extends \core\event\base {
|
||||
class course_module_viewed extends \core\event\course_module_viewed {
|
||||
|
||||
/**
|
||||
* Init method.
|
||||
@@ -46,31 +46,13 @@ class forum_viewed extends \core\event\base {
|
||||
$this->data['objecttable'] = 'forum';
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of what happened.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_description() {
|
||||
return "The user {$this->userid} has viewed the forum {$this->objectid}";
|
||||
}
|
||||
|
||||
/**
|
||||
* Return localised event name.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function get_name() {
|
||||
return get_string('eventforumviewed', 'mod_forum');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get URL related to the action
|
||||
*
|
||||
* @return \moodle_url
|
||||
*/
|
||||
public function get_url() {
|
||||
return new \moodle_url('/mod/forum/view.php', array('d' => $this->objectid));
|
||||
return new \moodle_url('/mod/forum/view.php', array('f' => $this->objectid));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -83,24 +65,5 @@ class forum_viewed extends \core\event\base {
|
||||
$this->objectid, $this->contextinstanceid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom validation.
|
||||
*
|
||||
* @throws \coding_exception
|
||||
* @return void
|
||||
*/
|
||||
protected function validate_data() {
|
||||
parent::validate_data();
|
||||
|
||||
if ($this->contextlevel != CONTEXT_MODULE) {
|
||||
throw new \coding_exception('Context passed must be module context.');
|
||||
}
|
||||
|
||||
if (!isset($this->objectid)) {
|
||||
throw new \coding_exception('objectid must be set to the forumid.');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ $params = array(
|
||||
'context' => context_course::instance($course->id)
|
||||
);
|
||||
$event = \mod_forum\event\course_module_instance_list_viewed::create($params);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
$strforums = get_string('forums', 'forum');
|
||||
|
||||
@@ -150,7 +150,6 @@ $string['eventdiscussionupdated'] = 'Discussion updated';
|
||||
$string['eventdiscussiondeleted'] = 'Discussion deleted';
|
||||
$string['eventdiscussionmoved'] = 'Discussion moved';
|
||||
$string['eventdiscussionviewed'] = 'Discussion viewed';
|
||||
$string['eventforumviewed'] = 'Forum viewed';
|
||||
$string['eventuserreportviewed'] = 'User report viewed';
|
||||
$string['eventpostcreated'] = 'Post created';
|
||||
$string['eventpostdeleted'] = 'Post deleted';
|
||||
|
||||
@@ -4342,6 +4342,12 @@ function forum_add_new_post($post, $mform, &$message) {
|
||||
$post->mailed = FORUM_MAILED_PENDING;
|
||||
$post->userid = $USER->id;
|
||||
$post->attachment = "";
|
||||
if (!isset($post->totalscore)) {
|
||||
$post->totalscore = 0;
|
||||
}
|
||||
if (!isset($post->mailnow)) {
|
||||
$post->mailnow = 0;
|
||||
}
|
||||
|
||||
$post->id = $DB->insert_record("forum_posts", $post);
|
||||
$post->message = file_save_draft_area_files($post->itemid, $context->id, 'mod_forum', 'post', $post->id,
|
||||
@@ -4469,6 +4475,7 @@ function forum_add_discussion($discussion, $mform=null, $unused=null, $userid=nu
|
||||
$discussion->timemodified = $timenow;
|
||||
$discussion->usermodified = $post->userid;
|
||||
$discussion->userid = $userid;
|
||||
$discussion->assessed = 0;
|
||||
|
||||
$post->discussion = $DB->insert_record("forum_discussions", $discussion);
|
||||
|
||||
|
||||
@@ -755,7 +755,6 @@ if ($fromform = $mform_post->get_data()) {
|
||||
}
|
||||
|
||||
$event = \mod_forum\event\post_updated::create($params);
|
||||
$event->add_record_snapshot('forum_posts', $fromform);
|
||||
$event->add_record_snapshot('forum_discussions', $discussion);
|
||||
$event->trigger();
|
||||
|
||||
|
||||
@@ -595,9 +595,9 @@ class mod_forum_events_testcase extends advanced_testcase {
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure forum_viewed event validates that the forumid is set.
|
||||
* Ensure course_module_viewed event validates that the forumid is set.
|
||||
*/
|
||||
public function test_forum_viewed_objectid_validation() {
|
||||
public function test_course_module_viewed_objectid_validation() {
|
||||
$course = $this->getDataGenerator()->create_course();
|
||||
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
|
||||
$context = context_module::instance($forum->cmid);
|
||||
@@ -606,14 +606,14 @@ class mod_forum_events_testcase extends advanced_testcase {
|
||||
'context' => $context,
|
||||
);
|
||||
|
||||
$this->setExpectedException('coding_exception', 'objectid must be set to the forumid.');
|
||||
\mod_forum\event\forum_viewed::create($params);
|
||||
$this->setExpectedException('coding_exception', 'must define objectid');
|
||||
\mod_forum\event\course_module_viewed::create($params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure forum_viewed event validates that the contextlevel is correct.
|
||||
* Ensure course_module_viewed event validates that the contextlevel is correct.
|
||||
*/
|
||||
public function test_forum_viewed_context_validation() {
|
||||
public function test_course_module_viewed_context_validation() {
|
||||
$course = $this->getDataGenerator()->create_course();
|
||||
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
|
||||
|
||||
@@ -623,13 +623,13 @@ class mod_forum_events_testcase extends advanced_testcase {
|
||||
);
|
||||
|
||||
$this->setExpectedException('coding_exception', 'Context passed must be module context.');
|
||||
\mod_forum\event\forum_viewed::create($params);
|
||||
\mod_forum\event\course_module_viewed::create($params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the forum_viewed event.
|
||||
* Test the course_module_viewed event.
|
||||
*/
|
||||
public function test_forum_viewed() {
|
||||
public function test_course_module_viewed() {
|
||||
// Setup test data.
|
||||
$course = $this->getDataGenerator()->create_course();
|
||||
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
|
||||
@@ -641,7 +641,7 @@ class mod_forum_events_testcase extends advanced_testcase {
|
||||
'objectid' => $forum->id,
|
||||
);
|
||||
|
||||
$event = \mod_forum\event\forum_viewed::create($params);
|
||||
$event = \mod_forum\event\course_module_viewed::create($params);
|
||||
|
||||
// Trigger and capture the event.
|
||||
$sink = $this->redirectEvents();
|
||||
@@ -651,7 +651,7 @@ class mod_forum_events_testcase extends advanced_testcase {
|
||||
$event = reset($events);
|
||||
|
||||
// Checking that the event contains the expected values.
|
||||
$this->assertInstanceOf('\mod_forum\event\forum_viewed', $event);
|
||||
$this->assertInstanceOf('\mod_forum\event\course_module_viewed', $event);
|
||||
$this->assertEquals($context, $event->get_context());
|
||||
$expected = array($course->id, 'forum', 'view forum', "view.php?f={$forum->id}", $forum->id, $forum->cmid);
|
||||
$this->assertEventLegacyLogData($expected, $event);
|
||||
|
||||
+3
-1
@@ -133,7 +133,9 @@
|
||||
'context' => $context,
|
||||
'objectid' => $forum->id
|
||||
);
|
||||
$event = \mod_forum\event\forum_viewed::create($params);
|
||||
$event = \mod_forum\event\course_module_viewed::create($params);
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->add_record_snapshot('forum', $forum);
|
||||
$event->trigger();
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ $params = array(
|
||||
'context' => context_course::instance($course->id)
|
||||
);
|
||||
$event = \mod_lesson\event\course_module_instance_list_viewed::create($params);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
/// Get all required strings
|
||||
|
||||
+3
-2
@@ -287,9 +287,10 @@ if ($pageid != LESSON_EOL) {
|
||||
// Trigger module viewed event.
|
||||
$event = \mod_lesson\event\course_module_viewed::create(array(
|
||||
'objectid' => $lesson->id,
|
||||
'context' => $context,
|
||||
'courseid' => $course->id
|
||||
'context' => $context
|
||||
));
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
// This is where several messages (usually warnings) are displayed
|
||||
|
||||
@@ -59,6 +59,7 @@ $params = array(
|
||||
'context' => context_course::instance($course->id)
|
||||
);
|
||||
$event = \mod_lti\event\course_module_instance_list_viewed::create($params);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
$PAGE->set_url('/mod/lti/index.php', array('id' => $course->id));
|
||||
|
||||
@@ -100,6 +100,8 @@ $params = array(
|
||||
'objectid' => $lti->id
|
||||
);
|
||||
$event = \mod_lti\event\course_module_viewed::create($params);
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->add_record_snapshot('lti', $lti);
|
||||
$event->trigger();
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ $PAGE->set_pagelayout('incourse');
|
||||
|
||||
// Trigger instances list viewed event.
|
||||
$event = \mod_page\event\course_module_instance_list_viewed::create(array('context' => context_course::instance($course->id)));
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
$strpage = get_string('modulename', 'page');
|
||||
|
||||
@@ -124,6 +124,8 @@ function quiz_create_attempt(quiz $quizobj, $attemptnumber, $lastattempt, $timen
|
||||
$attempt->timefinish = 0;
|
||||
$attempt->timemodified = $timenow;
|
||||
$attempt->state = quiz_attempt::IN_PROGRESS;
|
||||
$attempt->currentpage = 0;
|
||||
$attempt->sumgrades = null;
|
||||
|
||||
// If this is a preview, mark it as such.
|
||||
if ($ispreview) {
|
||||
|
||||
@@ -36,6 +36,7 @@ $params = array(
|
||||
'context' => context_course::instance($course->id)
|
||||
);
|
||||
$event = \mod_resource\event\course_module_instance_list_viewed::create($params);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
$strresource = get_string('modulename', 'resource');
|
||||
|
||||
@@ -57,6 +57,8 @@ $params = array(
|
||||
'objectid' => $resource->id
|
||||
);
|
||||
$event = \mod_resource\event\course_module_viewed::create($params);
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->add_record_snapshot('resource', $resource);
|
||||
$event->trigger();
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ $PAGE->set_pagelayout('incourse');
|
||||
|
||||
// Trigger instances list viewed event.
|
||||
$event = \mod_scorm\event\course_module_instance_list_viewed::create(array('context' => context_course::instance($course->id)));
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
$strscorm = get_string("modulename", "scorm");
|
||||
|
||||
@@ -118,6 +118,7 @@ $event = \mod_scorm\event\course_module_viewed::create(array(
|
||||
'objectid' => $scorm->id,
|
||||
'context' => $contextmodule,
|
||||
));
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->add_record_snapshot('scorm', $scorm);
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->trigger();
|
||||
|
||||
@@ -36,6 +36,7 @@ $params = array(
|
||||
'context' => context_course::instance($course->id)
|
||||
);
|
||||
$event = \mod_url\event\course_module_instance_list_viewed::create($params);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
$strurl = get_string('modulename', 'url');
|
||||
|
||||
+3
-2
@@ -48,10 +48,11 @@ require_capability('mod/url:view', $context);
|
||||
|
||||
$params = array(
|
||||
'context' => $context,
|
||||
'objectid' => $url->id,
|
||||
'courseid' => $course->id
|
||||
'objectid' => $url->id
|
||||
);
|
||||
$event = \mod_url\event\course_module_viewed::create($params);
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->add_record_snapshot('url', $url);
|
||||
$event->trigger();
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ $PAGE->set_pagelayout('incourse');
|
||||
$context = context_course::instance($course->id);
|
||||
|
||||
$event = \mod_wiki\event\course_module_instance_list_viewed::create(array('context' => $context));
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
/// Get all required stringswiki
|
||||
|
||||
+4
-5
@@ -296,7 +296,6 @@ if($pageid) {
|
||||
)
|
||||
);
|
||||
$event->add_record_snapshot('wiki_pages', $page);
|
||||
$event->trigger();
|
||||
} else if($id) {
|
||||
$event = \mod_wiki\event\course_module_viewed::create(
|
||||
array(
|
||||
@@ -304,8 +303,6 @@ if($pageid) {
|
||||
'objectid' => $wiki->id
|
||||
)
|
||||
);
|
||||
$event->add_record_snapshot('wiki', $wiki);
|
||||
$event->trigger();
|
||||
} else if($wid && $title) {
|
||||
$event = \mod_wiki\event\page_viewed::create(
|
||||
array(
|
||||
@@ -320,9 +317,11 @@ if($pageid) {
|
||||
)
|
||||
);
|
||||
$event->add_record_snapshot('wiki_pages', $page);
|
||||
$event->add_record_snapshot('wiki', $wiki);
|
||||
$event->trigger();
|
||||
}
|
||||
$event->add_record_snapshot('course_modules', $cm);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->add_record_snapshot('wiki', $wiki);
|
||||
$event->trigger();
|
||||
|
||||
$wikipage->print_header();
|
||||
$wikipage->print_content();
|
||||
|
||||
+1
-38
@@ -34,42 +34,5 @@ defined('MOODLE_INTERNAL') || die();
|
||||
* @copyright 2013 Adrian Greeve
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class instances_list_viewed extends \core\event\course_module_instance_list_viewed {
|
||||
|
||||
/**
|
||||
* Returns description of what happened.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_description() {
|
||||
return 'User ' . $this->userid . ' viewed the list of workshop activities in the course ' . $this->courseid . '.';
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the legacy event log data.
|
||||
*
|
||||
* @return array|null
|
||||
*/
|
||||
protected function get_legacy_logdata() {
|
||||
return array($this->courseid, 'workshop', 'view all', 'index.php?id=' . $this->courseid, '');
|
||||
}
|
||||
|
||||
/**
|
||||
* Return localised event name.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function get_name() {
|
||||
return get_string('eventinstanceslistviewed', 'mod_workshop');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get URL related to the action
|
||||
*
|
||||
* @return \moodle_url
|
||||
*/
|
||||
public function get_url() {
|
||||
return new \moodle_url('/mod/workshop/index.php', array('id' => $this->courseid));
|
||||
}
|
||||
|
||||
class course_module_instance_list_viewed extends \core\event\course_module_instance_list_viewed {
|
||||
}
|
||||
@@ -43,7 +43,8 @@ $PAGE->navbar->add(get_string('modulenameplural', 'workshop'));
|
||||
echo $OUTPUT->header();
|
||||
|
||||
$params = array('context' => context_course::instance($course->id));
|
||||
$event = \mod_workshop\event\instances_list_viewed::create($params);
|
||||
$event = \mod_workshop\event\course_module_instance_list_viewed::create($params);
|
||||
$event->add_record_snapshot('course', $course);
|
||||
$event->trigger();
|
||||
|
||||
/// Get all the appropriate data
|
||||
|
||||
@@ -108,7 +108,6 @@ $string['eventassessmentevaluationsreset'] = 'Assessment evaluations reset';
|
||||
$string['eventassessableuploaded'] = 'Assessable uploaded';
|
||||
$string['eventassessmentevaluated'] = 'Assessment evaluated';
|
||||
$string['eventassessmentreevaluated'] = 'Assessment re-evaluated';
|
||||
$string['eventinstanceslistviewed'] = 'Workshop instance list viewed';
|
||||
$string['eventsubmissionassessed'] = 'Submission assessed';
|
||||
$string['eventsubmissionassessmentsreset'] = 'Submission assessments cleared';
|
||||
$string['eventsubmissioncreated'] = 'Submission created';
|
||||
|
||||
@@ -232,7 +232,7 @@ if ($edit) {
|
||||
// store the updated values or re-save the new submission (re-saving needed because URLs are now rewritten)
|
||||
$DB->update_record('workshop_submissions', $formdata);
|
||||
$event = \mod_workshop\event\submission_updated::create($params);
|
||||
$event->add_record_snapshot('workshop_submissions', $formdata);
|
||||
$event->add_record_snapshot('workshop', $workshop);
|
||||
$event->trigger();
|
||||
|
||||
// send submitted content for plagiarism detection
|
||||
|
||||
@@ -193,7 +193,7 @@ class mod_workshop_events_testcase extends advanced_testcase {
|
||||
|
||||
$context = context_course::instance($this->course->id);
|
||||
|
||||
$event = \mod_workshop\event\instances_list_viewed::create(array('context' => $context));
|
||||
$event = \mod_workshop\event\course_module_instance_list_viewed::create(array('context' => $context));
|
||||
|
||||
// Trigger and capture the event.
|
||||
$sink = $this->redirectEvents();
|
||||
|
||||
@@ -61,7 +61,6 @@ $completion->set_module_viewed($cm);
|
||||
$eventdata = array();
|
||||
$eventdata['objectid'] = $workshop->id;
|
||||
$eventdata['context'] = $workshop->context;
|
||||
$eventdata['courseid'] = $course->id;
|
||||
|
||||
$PAGE->set_url($workshop->view_url());
|
||||
$event = \mod_workshop\event\course_module_viewed::create($eventdata);
|
||||
|
||||
Reference in New Issue
Block a user