From: moodler Date: Mon, 14 May 2007 09:38:41 +0000 (+0000) Subject: First rough cut at a grade_handler for Yu to continue with X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=bfe7297e478b6f5bb56a31144690580b50b67069;p=moodle.git First rough cut at a grade_handler for Yu to continue with --- diff --git a/lib/gradelib.php b/lib/gradelib.php index e3d0f49796..f2179d0018 100644 --- a/lib/gradelib.php +++ b/lib/gradelib.php @@ -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; + +} + + ?>