diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php
index ccb1b3f7972..b9279772973 100644
--- a/grade/report/grader/lib.php
+++ b/grade/report/grader/lib.php
@@ -710,6 +710,11 @@ class grade_report_grader extends grade_report {
$hidden = ' hidden ';
}
+ $gradepass = ' gradefail ';
+ if ($grade->is_passed($item)) {
+ $gradepass = ' gradepass ';
+ }
+
// if in editting mode, we need to print either a text box
// or a drop down (for scales)
// grades in item of type grade category or course are not directly editable
@@ -750,10 +755,10 @@ class grade_report_grader extends grade_report {
// invalid grade if gradeval < 1
if ((int) $gradeval < 1) {
- $studentshtml .= '-';
+ $studentshtml .= '-';
} else {
$gradeval = (int)bounded_number($grade->grade_item->grademin, $gradeval, $grade->grade_item->grademax); //just in case somebody changes scale
- $studentshtml .= ''.$scales[$gradeval-1].'';
+ $studentshtml .= ''.$scales[$gradeval-1].'';
}
} else {
// no such scale, throw error?
@@ -767,7 +772,7 @@ class grade_report_grader extends grade_report {
. '" type="text" title="'. $strgrade .'" name="grade_'
.$userid.'_' .$item->id.'" value="'.$value.'" />';
} else {
- $studentshtml .= ''.format_float($gradeval, $decimalpoints).'';
+ $studentshtml .= ''.format_float($gradeval, $decimalpoints).'';
}
}
@@ -797,10 +802,10 @@ class grade_report_grader extends grade_report {
}
if ($item->needsupdate) {
- $studentshtml .= ''.get_string('error').'';
+ $studentshtml .= ''.get_string('error').'';
} else {
- $studentshtml .= ''.grade_format_gradevalue($gradeval, $item, true, $gradedisplaytype, null).'';
+ $studentshtml .= ''.grade_format_gradevalue($gradeval, $item, true, $gradedisplaytype, null).'';
}
// Close feedback span
diff --git a/lib/grade/grade_grade.php b/lib/grade/grade_grade.php
index c9c0bb96d31..4edca649b04 100644
--- a/lib/grade/grade_grade.php
+++ b/lib/grade/grade_grade.php
@@ -675,5 +675,22 @@ class grade_grade extends grade_object {
return array('unknown'=>$unknown, 'altered'=>$altered);
}
+
+ /**
+ * Returns true if the grade's value is superior or equal to the grade item's gradepass value, false otherwise.
+ * @param object $grade_item An optional grade_item of which gradepass value we can use, saves having to load the grade_grade's grade_item
+ * @return boolean
+ */
+ function is_passed($grade_item = null) {
+ if (empty($grade_item)) {
+ if (!isset($this->grade_item)) {
+ $this->load_grade_item();
+ }
+ } else {
+ $this->grade_item = $grade_item;
+ $this->itemid = $grade_item->id;
+ }
+ return $this->finalgrade >= $this->grade_item->gradepass;
+ }
}
?>