Permalink
Browse files

MDL-37153 - assign: Obey grade display settings in submission status

The assignment submission status screen was ignoring the grade item's
display setting, showing scores even if it's set to display letters only.
  • Loading branch information...
1 parent 22084d5 commit 7551ada29aafbf89376079cc60c69bffdb590dd1 @pauln pauln committed Sep 9, 2013
Showing with 33 additions and 5 deletions.
  1. +33 −5 mod/assign/locallib.php
View
@@ -69,6 +69,9 @@ class assign {
/** @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)
*/
@@ -1051,6 +1054,29 @@ public function get_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.
*
* @return mixed context|null The course context
@@ -1165,13 +1191,15 @@ class="quickgrade"/>';
$o .= '<input type="hidden" name="grademodified_' . $userid . '" value="' . $modified . '"/>';
if ($grade == -1 || $grade === null) {
$o .= '-';
- return $o;
} else {
- $o .= format_float($grade, 2) .
- '&nbsp;/&nbsp;' .
- 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 .= '&nbsp;/&nbsp;' . format_float($this->get_instance()->grade, 2);
+ }
}
+ return $o;
}
} else {

0 comments on commit 7551ada

Please sign in to comment.