]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-12154 used proper cast to float before !== comparison merged from MOODLE_19_STABLE
authorskodak <skodak>
Tue, 13 Nov 2007 16:47:33 +0000 (16:47 +0000)
committerskodak <skodak>
Tue, 13 Nov 2007 16:47:33 +0000 (16:47 +0000)
lib/grade/grade_item.php

index f2f1f001efa863119df8b82a977afcf7cff07e2d..6a64222418b903c056c9392f493f79819b62f0b1 100644 (file)
@@ -1350,6 +1350,11 @@ class grade_item extends grade_object {
             return false;
         }
 
+        // we need proper floats here for !== comparison later
+        if (!is_null($grade->finalgrade)) {
+            $grade->finalgrade = (float)$grade->finalgrade;
+        }
+
         $oldgrade = new object();
         $oldgrade->finalgrade     = $grade->finalgrade;
         $oldgrade->overridden     = $grade->overridden;
@@ -1364,12 +1369,11 @@ class grade_item extends grade_object {
                 $grade->overridden = 0;
             }
 
-            if (!is_null($finalgrade)) {
-                $finalgrade = bounded_number($this->grademin, $finalgrade, $this->grademax);
+            if (is_null($finalgrade)) {
+                $grade->finalgrade = null;
             } else {
-                $finalgrade = $finalgrade;
+                $grade->finalgrade = (float)bounded_number($this->grademin, $finalgrade, $this->grademax);
             }
-            $grade->finalgrade = $finalgrade;
         }
 
         // do we have comment from teacher?
@@ -1463,9 +1467,9 @@ class grade_item extends grade_object {
         $grade->timecreated  = $datesubmitted;
 
         if (empty($dategraded)) {
-            $grade->dategraded = time();
+            $grade->timemodified = time();
         } else {
-            $grade->dategraded = $dategraded;
+            $grade->timemodified = $dategraded;
         }
 
         if ($grade->is_locked()) {
@@ -1480,6 +1484,11 @@ class grade_item extends grade_object {
             return false;
         }
 
+        // we need proper floats here for !== comparison later
+        if (!is_null($grade->rawgrade)) {
+            $grade->rawgrade = (float)$grade->rawgrade;
+        }
+
         $oldgrade = new object();
         $oldgrade->finalgrade     = $grade->finalgrade;
         $oldgrade->rawgrade       = $grade->rawgrade;
@@ -1505,10 +1514,11 @@ class grade_item extends grade_object {
             $grade->feedbackformat = $feedbackformat;
         }
 
+        if (is_null($grade->rawgrade)) {
+            $grade->timemodified = null; // dategraded hack - not graded if no grade present, comments do not count here as grading
+        }
+
         if (empty($grade->id)) {
-            if (is_null($grade->rawgrade)) {
-                $grade->dategraded = null;
-            }
             $result = (boolean)$grade->insert($source);
 
         } else if ($grade->finalgrade     !== $oldgrade->finalgrade
@@ -1518,9 +1528,6 @@ class grade_item extends grade_object {
                 or $grade->rawscaleid     !== $oldgrade->rawscaleid
                 or $grade->feedback       !== $oldgrade->feedback
                 or $grade->feedbackformat !== $oldgrade->feedbackformat) {
-            if (is_null($grade->rawgrade)) {
-                $grade->dategraded = null;
-            }
             $result = $grade->update($source);
         }