From 62854f6420fe08cd748dc72c23f7fb995ba089a9 Mon Sep 17 00:00:00 2001 From: Peter Rotich <peter@osticket.com> Date: Thu, 31 Mar 2016 03:51:19 +0000 Subject: [PATCH] Unify Agent sorting Consolidate agents name sorting in Staff::nsort. The routing expects a query set. --- include/class.dept.php | 12 ++---------- include/class.staff.php | 28 ++++++++++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/include/class.dept.php b/include/class.dept.php index 0d26f12a0..e08d73390 100644 --- a/include/class.dept.php +++ b/include/class.dept.php @@ -182,16 +182,8 @@ implements TemplateVariable { 'onvacation' => 0, )); } - switch ($cfg->getAgentNameFormat()) { - case 'last': - case 'lastfirst': - case 'legal': - $members->order_by('lastname', 'firstname'); - break; - - default: - $members->order_by('firstname', 'lastname'); - } + + $members = Staff::nsort($members); if ($criteria) return $members; diff --git a/include/class.staff.php b/include/class.staff.php index 6709bac0d..0cd796053 100644 --- a/include/class.staff.php +++ b/include/class.staff.php @@ -782,16 +782,7 @@ implements AuthenticatedUser, EmailContact, TemplateVariable { )); } - switch ($cfg->getAgentNameFormat()) { - case 'last': - case 'lastfirst': - case 'legal': - $members->order_by('lastname', 'firstname'); - break; - - default: - $members->order_by('firstname', 'lastname'); - } + $members = self::nsort($members); $users=array(); foreach ($members as $M) { @@ -805,6 +796,23 @@ implements AuthenticatedUser, EmailContact, TemplateVariable { return self::getStaffMembers(array('available'=>true)); } + static function nsort(QuerySet $qs, $path='', $format=null) { + global $cfg; + + $format = $format ?: $cfg->getAgentNameFormat(); + switch ($format) { + case 'last': + case 'lastfirst': + case 'legal': + $qs->order_by("{$path}lastname", "{$path}firstname"); + break; + default: + $qs->order_by("${path}firstname", "${path}lastname"); + } + + return $qs; + } + static function getIdByUsername($username) { $row = static::objects()->filter(array('username' => $username)) ->values_flat('staff_id')->first(); -- GitLab