From e824cd502d4b82b64ebeedf07bf311ebd9081f34 Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Sat, 25 Jun 2016 06:57:58 -0700 Subject: [PATCH] MDL-54997 competencies: Fix random unit test fail Sorting on timecreated is not unique enough to guarantee a predictable ordering. --- competency/classes/api.php | 2 +- competency/classes/evidence.php | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/competency/classes/api.php b/competency/classes/api.php index 043111e5bd9..a440bc25964 100644 --- a/competency/classes/api.php +++ b/competency/classes/api.php @@ -4152,7 +4152,7 @@ class api { * @param int $limit Number of records to return. * @return \core_competency\evidence[] */ - public static function list_evidence_in_course($userid = 0, $courseid = 0, $competencyid = 0, $sort = 'timecreated', + public static function list_evidence_in_course($userid = 0, $courseid = 0, $competencyid = 0, $sort = 'timecreated, id', $order = 'DESC', $skip = 0, $limit = 0) { static::require_enabled(); diff --git a/competency/classes/evidence.php b/competency/classes/evidence.php index e292df7e502..cc8ec05686a 100644 --- a/competency/classes/evidence.php +++ b/competency/classes/evidence.php @@ -296,7 +296,12 @@ class evidence extends persistent { * * @return \core_competency\persistent[] */ - public static function get_records_for_usercompetency($usercompetencyid, \context $context, $sort = '', $order = 'ASC', $skip = 0, $limit = 0) { + public static function get_records_for_usercompetency($usercompetencyid, + \context $context, + $sort = '', + $order = 'ASC', + $skip = 0, + $limit = 0) { global $DB; $params = array( @@ -306,7 +311,9 @@ class evidence extends persistent { ); if (!empty($sort)) { - $sort = ' ORDER BY e.' . $sort . ' ' . $order; + $sortcolumns = explode(',', $sort); + $sortcolumns = array_map('trim', $sortcolumns); + $sort = ' ORDER BY e.' . implode(', e.', $sortcolumns) . ' ' . $order; } $sql = 'SELECT e.*