From 7cc6dc233bce9ecf80e3abf48d4f86b7e96e594a Mon Sep 17 00:00:00 2001 From: Peter Rotich <peter@osticket.com> Date: Thu, 31 Mar 2016 03:55:59 +0000 Subject: [PATCH] Department Membership Add ability get sorted department members. Extended members are sorted, annotated and cached. --- include/class.dept.php | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/include/class.dept.php b/include/class.dept.php index e08d73390..1165cc693 100644 --- a/include/class.dept.php +++ b/include/class.dept.php @@ -51,6 +51,9 @@ implements TemplateVariable { ); var $_members; + var $_primary_members; + var $_extended_members; + var $_groupids; var $config; @@ -197,6 +200,42 @@ implements TemplateVariable { return $this->getMembers(array('available'=>1)); } + function getPrimaryMembers() { + + if (!isset($this->_primary_members)) { + $members = clone $this->getMembers(); + $members->filter(array('dept_id' =>$this->getId())); + $members = Staff::nsort($members); + $this->_primary_members = $members->all()->asArray(); + } + + return $this->_primary_members; + } + + function getExtendedMembers() { + + if (!isset($this->_exended_members)) { + // We need a query set so we can sort the names + $members = StaffDeptAccess::objects(); + $members->filter(array('dept_id' => $this->getId())); + $members = Staff::nsort($members, 'staff__'); + $extended = array(); + foreach($members->all()->asArray() as $member) { + if (!$member->staff) continue; + // Annoted the staff model with alerts and role + $extended[] = new AnnotatedModel($member->staff, array( + 'alerts' => $member->isAlertsEnabled(), + 'role_id' => $member->role_id, + ) + ); + } + + $this->_extended_members = $extended; + } + + return $this->_extended_members; + } + // Get members eligible members only function getAssignees() { -- GitLab