From b7b4f8bdc4976fb5b8e38432afeea6e12a23c5af Mon Sep 17 00:00:00 2001 From: tjhunt Date: Tue, 18 Dec 2007 18:20:25 +0000 Subject: [PATCH] Improve the quiz_rescale_grade function, and call it from one other place, instead of duplicating code. Merged from MOODLE_19_STABLE. --- mod/quiz/locallib.php | 12 ++++++++---- mod/quiz/report/overview/report.php | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/mod/quiz/locallib.php b/mod/quiz/locallib.php index 2561b5f659..0e0123a582 100644 --- a/mod/quiz/locallib.php +++ b/mod/quiz/locallib.php @@ -303,7 +303,7 @@ function quiz_get_best_grade($quiz, $userid) { // Need to detect errors/no result, without catching 0 scores. if (is_numeric($grade)) { - return round($grade,$quiz->decimalpoints); + return round($grade, $quiz->decimalpoints); } else { return NULL; } @@ -317,12 +317,16 @@ function quiz_get_best_grade($quiz, $userid) { * @param object $quiz the quiz object. Only the fields grade, sumgrades and decimalpoints are used. * @return float the rescaled grade. */ -function quiz_rescale_grade($rawgrade, $quiz) { +function quiz_rescale_grade($rawgrade, $quiz, $round = true) { if ($quiz->sumgrades) { - return round($rawgrade*$quiz->grade/$quiz->sumgrades, $quiz->decimalpoints); + $grade = $rawgrade * $quiz->grade / $quiz->sumgrades; + if ($round) { + $grade = round($grade, $quiz->decimalpoints); + } } else { - return 0; + $grade = 0; } + return $grade; } /** diff --git a/mod/quiz/report/overview/report.php b/mod/quiz/report/overview/report.php index 8906cae13f..d2c15952d4 100644 --- a/mod/quiz/report/overview/report.php +++ b/mod/quiz/report/overview/report.php @@ -492,7 +492,7 @@ class quiz_report extends quiz_default_report { // Grades columns. if ($showgrades) { if ($attempt->timefinish) { - $grade = round($attempt->sumgrades / $quiz->sumgrades * $quiz->grade,$quiz->decimalpoints); + $grade = quiz_rescale_grade($attempt->sumgrades, $quiz); if (!$download) { $row[] = ''.$grade.''; } else { -- 2.39.5