From 55f3a510ed33d9a489ae2f1d45bf4d290ad98c63 Mon Sep 17 00:00:00 2001
From: Damyon Wiese <damyon@moodle.com>
Date: Thu, 17 Apr 2014 13:25:45 +0800
Subject: [PATCH] MDL-41101 assign: Add relateduserid to some events

When events are acting on another users submission, it makes
sense to put the submission->userid in the relateduserid field.
---
 mod/assign/classes/event/assessable_submitted.php | 5 +++++
 mod/assign/submission/file/locallib.php           | 3 +++
 mod/assign/submission/onlinetext/locallib.php     | 3 +++
 3 files changed, 11 insertions(+)

diff --git a/mod/assign/classes/event/assessable_submitted.php b/mod/assign/classes/event/assessable_submitted.php
index cb04214..2ea5a23 100644
--- a/mod/assign/classes/event/assessable_submitted.php
+++ b/mod/assign/classes/event/assessable_submitted.php
@@ -52,6 +52,8 @@ class assessable_submitted extends base {
      * @return assessable_submitted
      */
     public static function create_from_submission(\assign $assign, \stdClass $submission, $editable) {
+        global $USER;
+
         $data = array(
             'context' => $assign->get_context(),
             'objectid' => $submission->id,
@@ -59,6 +61,9 @@ class assessable_submitted extends base {
                 'submission_editable' => $editable,
             ),
         );
+        if (!empty($submission->userid) && ($submission->userid != $USER->id)) {
+            $data['relateduserid'] = $submission->userid;
+        }
         /** @var assessable_submitted $event */
         $event = self::create($data);
         $event->set_assign($assign);
diff --git a/mod/assign/submission/file/locallib.php b/mod/assign/submission/file/locallib.php
index 981d5ea..2c1b5c5 100644
--- a/mod/assign/submission/file/locallib.php
+++ b/mod/assign/submission/file/locallib.php
@@ -227,6 +227,9 @@ class assign_submission_file extends assign_submission_plugin {
                 'pathnamehashes' => array_keys($files)
             )
         );
+        if (!empty($submission->userid) && ($submission->userid != $USER->id)) {
+            $params->relateduserid = $submission->userid;
+        }
         $event = \assignsubmission_file\event\assessable_uploaded::create($params);
         $event->set_legacy_files($files);
         $event->trigger();
diff --git a/mod/assign/submission/onlinetext/locallib.php b/mod/assign/submission/onlinetext/locallib.php
index 47ee159..627c6a1 100644
--- a/mod/assign/submission/onlinetext/locallib.php
+++ b/mod/assign/submission/onlinetext/locallib.php
@@ -228,6 +228,9 @@ class assign_submission_onlinetext extends assign_submission_plugin {
                 'format' => $data->onlinetext_editor['format']
             )
         );
+        if (!empty($submission->userid) && ($submission->userid != $USER->id)) {
+            $params['relateduserid'] = $submission->userid;
+        }
         $event = \assignsubmission_onlinetext\event\assessable_uploaded::create($params);
         $event->trigger();
 
-- 
1.8.3.2

