MDL-22062 Grade item's idnumber can be added from the calculation form

Before this patch, if activity module used multiply grade items (as
workshop does), the method add_idnumber() returned false because it
required empty idnumber in course_modules. The patch makes this check
only for grade_items with itemnumber 0.
This commit is contained in:
David Mudrak
2010-06-05 19:53:29 +00:00
parent 23c9aeac40
commit f829c8d07f
+13 -7
View File
@@ -422,13 +422,19 @@ class grade_item extends grade_object {
}
if ($this->itemtype == 'mod' and !$this->is_outcome_item()) {
if (!$cm = get_coursemodule_from_instance($this->itemmodule, $this->iteminstance, $this->courseid)) {
return false;
}
if (!empty($cm->idnumber)) {
return false;
}
if ($DB->set_field('course_modules', 'idnumber', $idnumber, array('id' => $cm->id))) {
if ($this->itemnumber === 0) {
// for activity modules, itemnumber 0 is synced with the course_modules
if (!$cm = get_coursemodule_from_instance($this->itemmodule, $this->iteminstance, $this->courseid)) {
return false;
}
if (!empty($cm->idnumber)) {
return false;
}
if ($DB->set_field('course_modules', 'idnumber', $idnumber, array('id' => $cm->id))) {
$this->idnumber = $idnumber;
return $this->update();
}
} else {
$this->idnumber = $idnumber;
return $this->update();
}