]> git.mjollnir.org Git - moodle.git/commitdiff
lesson grading: MDL-17101 The lesson module was sending the incorrect raw grade value...
authormark-nielsen <mark-nielsen>
Fri, 6 Mar 2009 19:03:46 +0000 (19:03 +0000)
committermark-nielsen <mark-nielsen>
Fri, 6 Mar 2009 19:03:46 +0000 (19:03 +0000)
mod/lesson/db/upgrade.php
mod/lesson/lib.php
mod/lesson/version.php

index cf44533725d8b0a2fa697dbf2737f33841938528..4aaf389b0ae0a05ee8d43b21f7633cda97fc28a1 100644 (file)
@@ -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;
 }
 
index f1b6f349a6f421edf18aba61b715a9a568f76086..4b216b6d17488e0b661e38ab2147d0d12fbc29f1 100644 (file)
@@ -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);
index b62e89f9456e12c82a1ce1abf09b2ae82a23a88c..2712f2686adbe31b45213c59b817a3f8e1e64277 100644 (file)
@@ -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)