From: skodak Date: Sat, 22 Sep 2007 18:46:51 +0000 (+0000) Subject: MDL-11363 fixing defaults of new optional fields of grade classes - now properly... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=3ab3dfd562c6c1a11aaf1c186dad7c808e53bfae;p=moodle.git MDL-11363 fixing defaults of new optional fields of grade classes - now properly applied when creating new instances too --- diff --git a/lib/grade/grade_item.php b/lib/grade/grade_item.php index 35486532fc..525555420a 100644 --- a/lib/grade/grade_item.php +++ b/lib/grade/grade_item.php @@ -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()) { diff --git a/lib/grade/grade_object.php b/lib/grade/grade_object.php index e7f8df2820..99f2371f5f 100644 --- a/lib/grade/grade_object.php +++ b/lib/grade/grade_object.php @@ -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 } }