/** @var stdClass the assignment record that contains the global settings for this assign instance */
private $instance;
+ /** @var stdClass the grade_item record for this assign instance's primary grade item. */
+ private $gradeitem;
+
/** @var context the context of the course module for this assign instance
* (or just the course if we are creating a new one)
*/
return $this->instance;
}
+ /**
+ * Get the primary grade item for this assign instance.
+ *
+ * @return stdClass The grade_item record
+ */
+ public function get_grade_item() {
+ if ($this->gradeitem) {
+ return $this->gradeitem;
+ }
+ $instance = $this->get_instance();
+ $params = array('itemtype' => 'mod',
+ 'itemmodule' => 'assign',
+ 'iteminstance' => $instance->id,
+ 'courseid' => $instance->course,
+ 'itemnumber' => 0);
+ $this->gradeitem = grade_item::fetch($params);
+ if (!$this->gradeitem) {
+ throw new coding_exception('Improper use of the assignment class. ' .
+ 'Cannot load the grade item.');
+ }
+ return $this->gradeitem;
+ }
+
/**
* Get the context of the current course.
*
$o .= '<input type="hidden" name="grademodified_' . $userid . '" value="' . $modified . '"/>';
if ($grade == -1 || $grade === null) {
$o .= '-';
- return $o;
} else {
- $o .= format_float($grade, 2) .
- ' / ' .
- format_float($this->get_instance()->grade, 2);
- return $o;
+ $item = $this->get_grade_item();
+ $o .= grade_format_gradevalue($grade, $item);
+ if ($item->get_displaytype() == GRADE_DISPLAY_TYPE_REAL) {
+ // If displaying the raw grade, also display the total value.
+ $o .= ' / ' . format_float($this->get_instance()->grade, 2);
+ }
}
+ return $o;
}
} else {