From 357445b43c15617d425bcec8115d7b02672fb29a Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Fri, 15 Mar 2024 14:10:28 +0000 Subject: [PATCH] MDL-81254 grade: ensure we always close the graded user iterator. This ensures that the recordsets contained within are also closed when we're done with them. --- grade/report/singleview/index.php | 1 + grade/report/user/index.php | 3 ++- grade/report/user/renderer.php | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/grade/report/singleview/index.php b/grade/report/singleview/index.php index 47b9f930225..f0bdeafff0e 100644 --- a/grade/report/singleview/index.php +++ b/grade/report/singleview/index.php @@ -238,6 +238,7 @@ if (($itemtype !== 'select') && ($itemtype !== 'grade_select') &&($itemtype !== $stickyfooter = new core\output\sticky_footer($footercontent); $stickyfooter = $OUTPUT->render($stickyfooter); + $gui->close(); } echo $OUTPUT->render_from_template('gradereport_singleview/report', [ diff --git a/grade/report/user/index.php b/grade/report/user/index.php index 891c3558fea..2c9aea19f5c 100644 --- a/grade/report/user/index.php +++ b/grade/report/user/index.php @@ -170,7 +170,6 @@ if (has_capability('moodle/grade:viewall', $context)) { echo $report->print_table(true); } } - $gui->close(); } else { // Show one user's report. // Store the id of the current user item in a session variable which represents the last viewed item. $SESSION->gradereport_user["useritem-{$context->id}"] = $userid; @@ -192,6 +191,8 @@ if (has_capability('moodle/grade:viewall', $context)) { $stickyfooter = new core\output\sticky_footer($userreportrenderer->user_navigation($gui, $userid, $courseid)); echo $OUTPUT->render($stickyfooter); } + + $gui->close(); } else { // Students will see just their own report. // Create a report instance. diff --git a/grade/report/user/renderer.php b/grade/report/user/renderer.php index b9c49985f81..06dde674be0 100644 --- a/grade/report/user/renderer.php +++ b/grade/report/user/renderer.php @@ -131,7 +131,6 @@ class gradereport_user_renderer extends plugin_renderer_base { while ($userdata = $gui->next_user()) { $users[$userdata->user->id] = $userdata->user; } - $gui->close(); $arraykeys = array_keys($users); $keynumber = array_search($userid, $arraykeys);