MDL-43071 assign: Fix offline grades import for scale grading.
This commit is contained in:
@@ -67,9 +67,8 @@ class assignfeedback_offline_import_grades_form extends moodleform implements re
|
||||
|
||||
$scaleoptions = null;
|
||||
if ($assignment->get_instance()->grade < 0) {
|
||||
$scale = $DB->get_record('scale', array('id'=>-($assignment->get_instance()->grade)));
|
||||
if ($scale) {
|
||||
$scaleoptions = explode(',', $scale->scale);
|
||||
if ($scale = $DB->get_record('scale', array('id'=>-($assignment->get_instance()->grade)))) {
|
||||
$scaleoptions = make_menu_from_list($scale->scale);
|
||||
}
|
||||
}
|
||||
if (!$gradeimporter->init()) {
|
||||
@@ -104,7 +103,7 @@ class assignfeedback_offline_import_grades_form extends moodleform implements re
|
||||
// This is a scale - we need to convert any grades to indexes in the scale.
|
||||
$scaleindex = array_search($grade, $scaleoptions);
|
||||
if ($scaleindex !== false) {
|
||||
$grade = $scaleindex + 1;
|
||||
$grade = $scaleindex;
|
||||
} else {
|
||||
$grade = '';
|
||||
}
|
||||
@@ -132,8 +131,13 @@ class assignfeedback_offline_import_grades_form extends moodleform implements re
|
||||
|
||||
if (!$skip) {
|
||||
$update = true;
|
||||
if (!empty($scaleoptions)) {
|
||||
$formattedgrade = $scaleoptions[$grade];
|
||||
} else {
|
||||
$formattedgrade = format_float($grade, 2);
|
||||
}
|
||||
$updates[] = get_string('gradeupdate', 'assignfeedback_offline',
|
||||
array('grade'=>format_float($grade, 2), 'student'=>$userdesc));
|
||||
array('grade'=>$formattedgrade, 'student'=>$userdesc));
|
||||
}
|
||||
|
||||
if ($ignoremodified || !$stalemodificationdate) {
|
||||
|
||||
@@ -107,9 +107,8 @@ class assign_feedback_offline extends assign_feedback_plugin {
|
||||
// Does this assignment use a scale?
|
||||
$scaleoptions = null;
|
||||
if ($this->assignment->get_instance()->grade < 0) {
|
||||
$scale = $DB->get_record('scale', array('id'=>-($this->assignment->get_instance()->grade)));
|
||||
if ($scale) {
|
||||
$scaleoptions = explode(',', $scale->scale);
|
||||
if ($scale = $DB->get_record('scale', array('id'=>-($this->assignment->get_instance()->grade)))) {
|
||||
$scaleoptions = make_menu_from_list($scale->scale);
|
||||
}
|
||||
}
|
||||
// We may need to upgrade the gradebook comments after this update.
|
||||
@@ -127,7 +126,7 @@ class assign_feedback_offline extends assign_feedback_plugin {
|
||||
// This is a scale - we need to convert any grades to indexes in the scale.
|
||||
$scaleindex = array_search($record->grade, $scaleoptions);
|
||||
if ($scaleindex !== false) {
|
||||
$record->grade = $scaleindex + 1;
|
||||
$record->grade = $scaleindex;
|
||||
} else {
|
||||
$record->grade = '';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user