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()) {
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()) {
*/
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
}
}