From a9a02e9170fda0b9913527cf710b421326fa50aa Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Wed, 3 Sep 2014 11:39:21 +0800 Subject: [PATCH] MDL-20367 Grades: Allow real numbers as grade boundaries Patch by Huy Hoang (I just git-ified it). --- grade/edit/letter/edit_form.php | 30 +++++++++++++----------------- grade/edit/letter/index.php | 3 ++- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/grade/edit/letter/edit_form.php b/grade/edit/letter/edit_form.php index baa4087db52..ae103fbce34 100644 --- a/grade/edit/letter/edit_form.php +++ b/grade/edit/letter/edit_form.php @@ -46,38 +46,34 @@ class edit_letter_form extends moodleform { $gradeletter = get_string('gradeletter', 'grades'); $gradeboundary = get_string('gradeboundary', 'grades'); - $percentages = array(-1 => get_string('unused', 'grades')); - for ($i=100; $i > -1; $i--) { - $percentages[$i] = "$i %"; - } - - for($i=1; $i<$num+1; $i++) { + for ($i=1; $i<$num+1; $i++) { $gradelettername = 'gradeletter'.$i; $gradeboundaryname = 'gradeboundary'.$i; - $mform->addElement('text', $gradelettername, $gradeletter." $i"); - if ($i == 1) { - $mform->addHelpButton($gradelettername, 'gradeletter', 'grades'); - } + $entry = array(); + $entry[] = $mform->createElement('text', $gradelettername, $gradeletter . " $i"); $mform->setType($gradelettername, PARAM_TEXT); if (!$admin) { $mform->disabledIf($gradelettername, 'override', 'notchecked'); - $mform->disabledIf($gradelettername, $gradeboundaryname, 'eq', -1); } - $mform->addElement('select', $gradeboundaryname, $gradeboundary." $i", $percentages); - if ($i == 1) { - $mform->addHelpButton($gradeboundaryname, 'gradeboundary', 'grades'); - } - $mform->setDefault($gradeboundaryname, -1); - $mform->setType($gradeboundaryname, PARAM_INT); + $entry[] = $mform->createElement('static', '', '', '≥'); + $entry[] = $mform->createElement('text', $gradeboundaryname, $gradeboundary." $i"); + $entry[] = $mform->createElement('static', '', '', '%'); + $mform->addGroup($entry, 'gradeentry'.$i, $gradeletter." $i", array(' '), false); + + $mform->setType($gradeboundaryname, PARAM_FLOAT); if (!$admin) { $mform->disabledIf($gradeboundaryname, 'override', 'notchecked'); } } + if ($num > 0) { + $mform->addHelpButton('gradeentry1', 'gradeletter', 'grades'); + } + // hidden params $mform->addElement('hidden', 'id'); $mform->setType('id', PARAM_INT); diff --git a/grade/edit/letter/index.php b/grade/edit/letter/index.php index d0dc35a3d34..19743672f9d 100644 --- a/grade/edit/letter/index.php +++ b/grade/edit/letter/index.php @@ -146,7 +146,8 @@ if (!$edit) { if ($letter == '') { continue; } - $letters[$data->$gradeboundaryname] = $letter; + // The keys need to be strings so floats are not truncated. + $letters[strval($data->$gradeboundaryname)] = $letter; } } krsort($letters, SORT_NUMERIC); -- 2.43.0