From 5c7ec9f6f885b2712223935929533e7bf6e040c5 Mon Sep 17 00:00:00 2001 From: Ankit Agarwal Date: Tue, 1 Oct 2013 14:12:20 +0800 Subject: [PATCH] MDL-40962 assign: Fix alternate name field warnings in assign --- mod/assign/lib.php | 8 +++++--- mod/assign/tests/lib_test.php | 12 ++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/mod/assign/lib.php b/mod/assign/lib.php index 99bd42569a8..67b2ffd3c60 100644 --- a/mod/assign/lib.php +++ b/mod/assign/lib.php @@ -490,6 +490,7 @@ function assign_print_overview($courses, &$htmlarray) { * @param mixed $course the course to print activity for * @param bool $viewfullnames boolean to determine whether to show full names or not * @param int $timestart the time the rendering started + * @return bool true if activity was printed, false otherwise. */ function assign_print_recent_activity($course, $viewfullnames, $timestart) { global $CFG, $USER, $DB, $OUTPUT; @@ -497,8 +498,9 @@ function assign_print_recent_activity($course, $viewfullnames, $timestart) { // Do not use log table if possible, it may be huge. $dbparams = array($timestart, $course->id, 'assign'); - if (!$submissions = $DB->get_records_sql('SELECT asb.id, asb.timemodified, cm.id AS cmid, asb.userid, - u.firstname, u.lastname, u.email, u.picture + $namefields = user_picture::fields('u', null, 'userid'); + if (!$submissions = $DB->get_records_sql("SELECT asb.id, asb.timemodified, cm.id AS cmid, + $namefields FROM {assign_submission} asb JOIN {assign} a ON a.id = asb.assignment JOIN {course_modules} cm ON cm.instance = a.id @@ -507,7 +509,7 @@ function assign_print_recent_activity($course, $viewfullnames, $timestart) { WHERE asb.timemodified > ? AND a.course = ? AND md.name = ? - ORDER BY asb.timemodified ASC', $dbparams)) { + ORDER BY asb.timemodified ASC", $dbparams)) { return false; } diff --git a/mod/assign/tests/lib_test.php b/mod/assign/tests/lib_test.php index 304adc2f0dd..290191cd743 100644 --- a/mod/assign/tests/lib_test.php +++ b/mod/assign/tests/lib_test.php @@ -73,6 +73,18 @@ class mod_assign_lib_testcase extends mod_assign_base_testcase { assign_print_recent_activity($this->course, true, time() - 3600); } + /** Make sure fullname dosn't trigger any warnings when assign_print_recent_activity is triggered. */ + public function test_print_recent_activity_fullname() { + $this->setUser($this->editingteachers[0]); + $assign = $this->create_instance(); + + $assign->get_user_submission($this->students[0]->id, true); + + $this->expectOutputRegex('/submitted:/'); + set_config('fullnamedisplay', 'firstname, lastnamephonetic'); + assign_print_recent_activity($this->course, false, time() - 3600); + } + public function test_assign_get_recent_mod_activity() { $this->setUser($this->editingteachers[0]); $assign = $this->create_instance();