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; + } } ?>