$mform->addElement('header', 'gradeitems', get_string('gradeitemsinc', 'grades'));
- if ($grade_items = grade_item::fetch_all(array('courseid'=>$COURSE->id))) {
+ if ($all_grade_items = grade_item::fetch_all(array('courseid'=>$COURSE->id))) {
+ // follow proper sort order, MDL-11715
+ $grade_items = array();
+ foreach ($all_grade_items as $item) {
+ $grade_items[$item->sortorder] = $item;
+ }
+ unset($all_grade_items);
+ ksort($grade_items);
+
+ // Put course total at the end
+ $total = $grade_items[1];
+ unset($grade_items[1]);
+ $grade_items[] = $total;
+
foreach ($grade_items as $grade_item) {
if (!empty($features['idnumberrequired']) and empty($grade_item->idnumber)) {
$mform->addElement('advcheckbox', 'itemids['.$grade_item->id.']', $grade_item->get_name(), get_string('noidnumber', 'grades'));