]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-16785 bogus grades inserted when formulas used - credit Michael Spall and Ann...
authorskodak <skodak>
Fri, 24 Oct 2008 17:53:15 +0000 (17:53 +0000)
committerskodak <skodak>
Fri, 24 Oct 2008 17:53:15 +0000 (17:53 +0000)
lib/grade/grade_item.php

index c56331798b6d8a9be18f75eb47b4622129c93674..8c50cb2c1de4496dbc1182da49bc27b40c8e175d 100644 (file)
@@ -1636,14 +1636,14 @@ class grade_item extends grade_object {
         }
 
         // precreate grades - we need them to exist
-        $params = array($this->id);
+        $params = array($this->courseid, $this->id, $this->id);
         $sql = "SELECT DISTINCT go.userid
                   FROM {grade_grades} go
                        JOIN {grade_items} gi
-                       ON gi.id = go.itemid
+                       ON (gi.id = go.itemid AND gi.courseid = ?)
                        LEFT OUTER JOIN {grade_grades} g
                        ON (g.userid = go.userid AND g.itemid = ?)
-                 WHERE gi.id <> $this->id AND g.id IS NULL";
+                 WHERE gi.id <> ? AND g.id IS NULL";
         if ($missing = $DB->get_records_sql($sql, $params)) {
             foreach ($missing as $m) {
                 $grade = new grade_grade(array('itemid'=>$this->id, 'userid'=>$m->userid), false);