From: skodak Date: Sun, 23 Sep 2007 15:51:21 +0000 (+0000) Subject: MDL-11357, MDL-11358 adding formating of numeric final grade (for now takes the setti... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=a3fbd4943d2f826bd0408d00435dbb2eed2d9664;p=moodle.git MDL-11357, MDL-11358 adding formating of numeric final grade (for now takes the setting from user report), adding usermodified field to returned grading info --- diff --git a/lib/gradelib.php b/lib/gradelib.php index 0db1e595c7..f50a9d223f 100644 --- a/lib/gradelib.php +++ b/lib/gradelib.php @@ -253,6 +253,8 @@ function grade_update_outcomes($source, $courseid, $itemtype, $itemmodule, $item * @return array of grade information objects (scaleid, name, grade and locked status, etc.) indexed with itemnumbers */ function grade_get_grades($courseid, $itemtype, $itemmodule, $iteminstance, $userid_or_ids=0) { + global $CFG; + $return = new object(); $return->items = array(); $return->outcomes = array(); @@ -268,6 +270,8 @@ function grade_get_grades($courseid, $itemtype, $itemmodule, $iteminstance, $use if ($grade_items = grade_item::fetch_all(array('itemtype'=>$itemtype, 'itemmodule'=>$itemmodule, 'iteminstance'=>$iteminstance, 'courseid'=>$courseid))) { foreach ($grade_items as $grade_item) { + $decimalpoints = null; + if (empty($grade_item->outcomeid)) { // prepare information about grade item $item = new object(); @@ -319,6 +323,7 @@ function grade_get_grades($courseid, $itemtype, $itemmodule, $iteminstance, $use $grade->overridden = $grade_grades[$userid]->overridden; $grade->feedback = $grade_grades[$userid]->feedback; $grade->feedbackformat = $grade_grades[$userid]->feedbackformat; + $grade->usermodified = $grade_grades[$userid]->usermodified; // create text representation of grade if (in_array($grade_item->id, $needsupdate)) { @@ -326,16 +331,21 @@ function grade_get_grades($courseid, $itemtype, $itemmodule, $iteminstance, $use $grade->str_grade = get_string('error'); } else if (is_null($grade->grade)) { - $grade->str_grade = get_string('nograde'); + $grade->str_grade = '-'; } else { switch ($grade_item->gradetype) { case GRADE_TYPE_VALUE: - $grade->str_grade = $grade->grade; //TODO: fix localisation and decimal places + if (!isset($decimalpoints)) { + require_once($CFG->dirroot.'/grade/report/user/lib.php');//TODO: which setting to use? + $decimalpoints = grade_report_user::get_pref('decimalpoints', $grade_item->id); + } + $grade->str_grade = format_float($grade->grade, $decimalpoints); break; case GRADE_TYPE_SCALE: $scale = $grade_item->load_scale(); + $grade->grade = (int)bounded_number($item->grademin, $grade->grade, $item->grademax); $grade->str_grade = format_string($scale->scale_items[$grade->grade-1]); break; @@ -390,6 +400,7 @@ function grade_get_grades($courseid, $itemtype, $itemmodule, $iteminstance, $use $grade->hidden = $grade_grades[$userid]->is_hidden(); $grade->feedback = $grade_grades[$userid]->feedback; $grade->feedbackformat = $grade_grades[$userid]->feedbackformat; + $grade->usermodified = $grade_grades[$userid]->usermodified; // create text representation of grade if (in_array($grade_item->id, $needsupdate)) {