From 13b92708d28b1f4da63ff977765b93cb39e138e4 Mon Sep 17 00:00:00 2001 From: mark-nielsen Date: Fri, 6 Mar 2009 19:03:46 +0000 Subject: [PATCH] lesson grading: MDL-17101 The lesson module was sending the incorrect raw grade values. Correcting the values by calculating the actual raw grade before sending to gradebook. Merged from MOODLE_19_STABLE and updated for trunk. --- mod/lesson/db/upgrade.php | 12 +++++++++++- mod/lesson/lib.php | 13 +++++++++++++ mod/lesson/version.php | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/mod/lesson/db/upgrade.php b/mod/lesson/db/upgrade.php index cf44533725..4aaf389b0a 100644 --- a/mod/lesson/db/upgrade.php +++ b/mod/lesson/db/upgrade.php @@ -44,7 +44,17 @@ function xmldb_lesson_upgrade($oldversion) { upgrade_mod_savepoint($result, 2007072201, 'lesson'); } - + + if ($result && $oldversion < 2008112601) { + require_once($CFG->dirroot.'/mod/lesson/lib.php'); + // too much debug output + $DB->set_debug(false); + lesson_update_grades(); + $DB->set_debug(true); + + upgrade_mod_savepoint($result, 2008112601, 'lesson'); + } + return $result; } diff --git a/mod/lesson/lib.php b/mod/lesson/lib.php index f1b6f349a6..4b216b6d17 100644 --- a/mod/lesson/lib.php +++ b/mod/lesson/lib.php @@ -459,6 +459,19 @@ function lesson_grade_item_update($lesson, $grades=NULL) { if ($grades === 'reset') { $params['reset'] = true; $grades = NULL; + } else if (!empty($grades)) { + // Need to calculate raw grade (Note: $grades has many forms) + if (is_object($grades)) { + $grades = array($grades->userid => $grades); + } else if (array_key_exists('userid', $grades)) { + $grades = array($grades['userid'] => $grades); + } + foreach ($grades as $key => $grade) { + if (!is_array($grade)) { + $grades[$key] = $grade = (array) $grade; + } + $grades[$key]['rawgrade'] = ($grade['rawgrade'] * $lesson->grade / 100); + } } return grade_update('mod/lesson', $lesson->course, 'mod', 'lesson', $lesson->id, 0, $grades, $params); diff --git a/mod/lesson/version.php b/mod/lesson/version.php index b62e89f945..2712f2686a 100644 --- a/mod/lesson/version.php +++ b/mod/lesson/version.php @@ -8,7 +8,7 @@ * @package lesson **/ -$module->version = 2008112600; // The current module version (Date: YYYYMMDDXX) +$module->version = 2008112601; // The current module version (Date: YYYYMMDDXX) $module->requires = 2008072401; // Requires this Moodle version $module->cron = 0; // Period for cron to check this module (secs) -- 2.39.5