]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-11363 fixing defaults of new optional fields of grade classes - now properly...
authorskodak <skodak>
Sat, 22 Sep 2007 18:46:51 +0000 (18:46 +0000)
committerskodak <skodak>
Sat, 22 Sep 2007 18:46:51 +0000 (18:46 +0000)
lib/grade/grade_item.php
lib/grade/grade_object.php

index 35486532fccc01de5f43323ae34219a278454917..525555420afeb5dfecf885867acb4818d6489789 100644 (file)
@@ -1269,9 +1269,7 @@ class grade_item extends grade_object {
             return false;
         }
 
-        if (!$grade = grade_grade::fetch(array('itemid'=>$this->id, 'userid'=>$userid))) {
-            $grade = new grade_grade(array('itemid'=>$this->id, 'userid'=>$userid), false);
-        }
+        $grade = new grade_grade(array('itemid'=>$this->id, 'userid'=>$userid));
         $grade->grade_item =& $this; // prevent db fetching of this grade_item
 
         if ($grade->is_locked()) {
@@ -1381,9 +1379,7 @@ class grade_item extends grade_object {
             return false;
         }
 
-        if (!$grade = grade_grade::fetch(array('itemid'=>$this->id, 'userid'=>$userid))) {
-            $grade = new grade_grade(array('itemid'=>$this->id, 'userid'=>$userid), false);
-        }
+        $grade = new grade_grade(array('itemid'=>$this->id, 'userid'=>$userid));
         $grade->grade_item =& $this; // prevent db fetching of this grade_item
 
         if ($grade->is_locked()) {
index e7f8df282071c711a3bc25bb5c39332682e8cc94..99f2371f5fdfe98b9f1e9fafdbbaf7522cb6353e 100644 (file)
@@ -66,12 +66,20 @@ class grade_object {
      */
     function grade_object($params=NULL, $fetch=true) {
         if (!empty($params) and (is_array($params) or is_object($params))) {
-            if ($fetch and $data = $this->fetch($params)) {
-                grade_object::set_properties($this, $data);
+            if ($fetch) {
+                if ($data = $this->fetch($params)) {
+                    grade_object::set_properties($this, $data);
+                } else {
+                    grade_object::set_properties($this, $this->optional_fields);//apply defaults for optional fields
+                    grade_object::set_properties($this, $params);
+                }
 
             } else {
                 grade_object::set_properties($this, $params);
             }
+
+        } else {
+            grade_object::set_properties($this, $this->optional_fields);//apply defaults for optional fields
         }
     }