diff --git a/include/class.dept.php b/include/class.dept.php index e08d7339085935d2efae08d9008725b9a148f3a2..1165cc6931f58e0b264585575e7701f9fcd433fa 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() {