]> git.mjollnir.org Git - moodle.git/commitdiff
First rough cut at a grade_handler for Yu to continue with
authormoodler <moodler>
Mon, 14 May 2007 09:38:41 +0000 (09:38 +0000)
committermoodler <moodler>
Mon, 14 May 2007 09:38:41 +0000 (09:38 +0000)
lib/gradelib.php

index e3d0f49796bf6503024dc8eb3c584ad07bdbc997..f2179d0018a8c791b7d821b3a77763362c704f23 100644 (file)
@@ -237,4 +237,48 @@ function standardise_score($gradevalue, $source_min, $source_max, $target_min, $
     }
     return $standardised_value; 
 }
+
+
+/*
+ * Handles all grade_added and grade_updated events
+ *
+ * INCOMPLETE
+ *
+ * @param object $eventdata contains all the data for the event
+ * @return boolean success
+ *
+ */
+function grade_handler($eventdata) {
+
+/// First let's make sure a grade_item exists for this grade
+    $gradeitem = new grade_item($eventdata);
+    if (empty($gradeitem->id)) {                      // Doesn't exist yet
+        if (!$gradeitem->id = $gradeitem->insert()) { // Try to create a new item...
+            debugging('Could not create a grade_item!');
+            return false;
+        }
+    }
+
+    $eventdata->itemid = $gradeitem->id;
+
+
+/// Grade_item exists, now we can insert the new raw grade
+
+    $rawgrade = new grade_grade_raw($eventdata); 
+
+    if ($rawgrade->id) {
+        $rawgrade->update($eventdata->gradevalue, 'event');
+    } else {
+        $rawgrade->insert();
+    }
+    
+    // Check how it went
+
+/// Are there other checks to do?
+
+    return true;
+
+}
+
+
 ?>