From 781ebed20c35085fa90e6374cfb0c2022dbb54aa Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Tue, 3 Jul 2012 15:50:48 +0200 Subject: [PATCH] Gradebook: Fixing ordering when showing the score --- main/gradebook/lib/fe/resulttable.class.php | 13 ++++++++----- main/gradebook/lib/results_data_generator.class.php | 8 ++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/main/gradebook/lib/fe/resulttable.class.php b/main/gradebook/lib/fe/resulttable.class.php index 00ecc1e62c..f816ae6322 100644 --- a/main/gradebook/lib/fe/resulttable.class.php +++ b/main/gradebook/lib/fe/resulttable.class.php @@ -24,7 +24,6 @@ class ResultTable extends SortableTable private $allresults; private $iscourse; - /** * Constructor */ @@ -81,9 +80,10 @@ class ResultTable extends SortableTable $scoredisplay = ScoreDisplay :: instance(); // determine sorting type - $col_adjust = ($this->iscourse == '1' ? 1 : 0); + $col_adjust = $this->iscourse == '1' ? 1 : 0; + switch ($this->column) { - // Type + // first name or last name case (0 + $col_adjust): if ($is_western_name_order) { $sorting = ResultsDataGenerator :: RDG_SORT_FIRSTNAME; @@ -91,6 +91,7 @@ class ResultTable extends SortableTable $sorting = ResultsDataGenerator :: RDG_SORT_LASTNAME; } break; + // first name or last name case (1 + $col_adjust): if ($is_western_name_order) { $sorting = ResultsDataGenerator :: RDG_SORT_LASTNAME; @@ -98,19 +99,21 @@ class ResultTable extends SortableTable $sorting = ResultsDataGenerator :: RDG_SORT_FIRSTNAME; } break; + //Score case (2 + $col_adjust): - $sorting = ResultsDataGenerator :: RDG_SORT_SCORE; + $sorting = ResultsDataGenerator :: RDG_SORT_SCORE; break; case (3 + $col_adjust): $sorting = ResultsDataGenerator :: RDG_SORT_MASK; break; } + if ($this->direction == 'DESC') { $sorting |= ResultsDataGenerator :: RDG_SORT_DESC; } else { $sorting |= ResultsDataGenerator :: RDG_SORT_ASC; } - + $data_array = $this->datagen->get_data($sorting, $from, $this->per_page); // generate the data to display diff --git a/main/gradebook/lib/results_data_generator.class.php b/main/gradebook/lib/results_data_generator.class.php index 605a0905e8..e1e196fe7a 100644 --- a/main/gradebook/lib/results_data_generator.class.php +++ b/main/gradebook/lib/results_data_generator.class.php @@ -102,7 +102,7 @@ class ResultsDataGenerator usort($table, array('ResultsDataGenerator', 'sort_by_last_name')); } elseif ($sorting & self :: RDG_SORT_FIRSTNAME) { usort($table, array('ResultsDataGenerator', 'sort_by_first_name')); - } elseif ($sorting & self :: RDG_SORT_SCORE) { + } elseif ($sorting & self :: RDG_SORT_SCORE) { usort($table, array('ResultsDataGenerator', 'sort_by_score')); } elseif ($sorting & self :: RDG_SORT_MASK) { usort($table, array('ResultsDataGenerator', 'sort_by_mask')); @@ -137,10 +137,10 @@ class ResultsDataGenerator } function sort_by_score($item1, $item2) { - if ($item1['score'] == $item2['score']) { + if ($item1['percentage_score'] == $item2['percentage_score']) { return 0; - }else { - return ($item1['score'] < $item2['score'] ? -1 : 1); + } else { + return ($item1['percentage_score'] < $item2['percentage_score'] ? -1 : 1); } }