From 2c76c1893f79be4044695c38a40246102c8a0630 Mon Sep 17 00:00:00 2001 From: Shamim Rezaie Date: Thu, 16 Jan 2020 02:24:33 +1100 Subject: [PATCH 1/2] MDL-67424 report_outline: behat user report with a no-grade forum --- report/outline/tests/behat/user.feature | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/report/outline/tests/behat/user.feature b/report/outline/tests/behat/user.feature index fdc417a44fe..e9b1edff93b 100644 --- a/report/outline/tests/behat/user.feature +++ b/report/outline/tests/behat/user.feature @@ -113,3 +113,17 @@ Feature: View the user page for the outline report When I follow "Complete report" And I should see "4 views" And I should see "3 views" + + Scenario: View the user complete report page when there is a no-grade forum + Given the following "activities" exist: + | activity | name | description | course | idnumber | + | forum | forum1 | C1 first forum | C1 | forum1 | + And I am on "Course 1" course homepage + When I follow "Participants" + And I follow "Student 1" + And I follow "Outline report" + Then I should see "Outline report" + When I follow "Participants" + And I follow "Student 1" + And I follow "Complete report" + Then I should see "Complete report" From 65fcabe1326b52a170e8044427f4540621f43385 Mon Sep 17 00:00:00 2001 From: Shamim Rezaie Date: Mon, 2 Dec 2019 15:33:27 +1100 Subject: [PATCH 2/2] MDL-67424 mod_forum: error on complete report when no rating or grade --- mod/forum/lib.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mod/forum/lib.php b/mod/forum/lib.php index de8548726fb..0238ab0d6ea 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -546,8 +546,16 @@ function forum_user_complete($course, $user, $mod, $forum) { }; $grades = grade_get_grades($course->id, 'mod', 'forum', $forum->id, $user->id); - echo $getgradeinfo($grades->items[0]->grades, 'rating'); - echo $getgradeinfo($grades->items[1]->grades, 'wholeforum'); + + // Item 0 is the rating. + if (!empty($grades->items[0]->grades)) { + echo $getgradeinfo($grades->items[0]->grades, 'rating'); + } + + // Item 1 is the whole-forum grade. + if (!empty($grades->items[1]->grades)) { + echo $getgradeinfo($grades->items[1]->grades, 'wholeforum'); + } if ($posts = forum_get_user_posts($forum->id, $user->id)) { if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) {