MDL-11363 fixing defaults of new optional fields of grade classes - now properly applied when creating new instances too

This commit is contained in:
skodak
2007-09-22 18:46:51 +00:00
parent 3f2b0c8aba
commit 3ab3dfd562
2 changed files with 12 additions and 8 deletions
+2 -6
View 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()) {
+10 -2
View 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
}
}