From 28304c4045b044529bf9e943f07f31e749429bc9 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Thu, 31 Aug 2023 15:12:45 +0100 Subject: [PATCH] MDL-79191 grade: correct column type for the grade column (float). --- course/classes/reportbuilder/local/entities/completion.php | 6 +++--- course/tests/reportbuilder/datasource/participants_test.php | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/course/classes/reportbuilder/local/entities/completion.php b/course/classes/reportbuilder/local/entities/completion.php index 52dedaf820c..0c21c4ab70d 100644 --- a/course/classes/reportbuilder/local/entities/completion.php +++ b/course/classes/reportbuilder/local/entities/completion.php @@ -273,11 +273,11 @@ class completion extends base { LEFT JOIN {grade_grades} {$grade} ON ({$user}.id = {$grade}.userid AND {$gradeitem}.id = {$grade}.itemid) ") - ->set_type(column::TYPE_INTEGER) + ->set_type(column::TYPE_FLOAT) ->add_fields("{$grade}.finalgrade") ->set_is_sortable(true) - ->add_callback(function ($value) { - if (!$value) { + ->add_callback(function(?float $value): string { + if ($value === null) { return ''; } return format_float($value, 2); diff --git a/course/tests/reportbuilder/datasource/participants_test.php b/course/tests/reportbuilder/datasource/participants_test.php index 8bbdb09e563..4b3a760394b 100644 --- a/course/tests/reportbuilder/datasource/participants_test.php +++ b/course/tests/reportbuilder/datasource/participants_test.php @@ -139,7 +139,7 @@ class participants_test extends core_reportbuilder_testcase { // Update final grade for the user. $courseitem = grade_item::fetch_course_item($course->id); - $courseitem->update_final_grade($user1->id, 80); + $courseitem->update_final_grade($user1->id, 42.5); // Set some last access value for the user in the course. $DB->insert_record('user_lastaccess', @@ -233,7 +233,7 @@ class participants_test extends core_reportbuilder_testcase { '', // Reagreggate. 2, // Days taking course. 2, // Days until completion. - '80.00', // Grade. + '42.50', // Grade. ], array_values($content[0])); }