diff --git a/workflow/engine/classes/model/Groupwf.php b/workflow/engine/classes/model/Groupwf.php index aef9b50f2..7b6e17dad 100644 --- a/workflow/engine/classes/model/Groupwf.php +++ b/workflow/engine/classes/model/Groupwf.php @@ -318,7 +318,7 @@ class Groupwf extends BaseGroupwf return $result; } - public function getAllGroup($start = null, $limit = null, $search = null, $sortField = null, $sortDir = null) + public function getAllGroup($start = null, $limit = null, $search = null, $sortField = null, $sortDir = null, $countUsers = false) { require_once PATH_RBAC . "model/RbacUsers.php"; require_once 'classes/model/TaskUser.php'; @@ -336,6 +336,22 @@ class Groupwf extends BaseGroupwf $criteria->add(GroupwfPeer::GRP_TITLE, '%' . $search . '%', Criteria::LIKE); } $totalRows = GroupwfPeer::doCount($criteria); + + if ($countUsers) { + //This query must be changed in the next version from Propel + $criteria->addAsColumn("GRP_USERS", + "(SELECT + COUNT(" . UsersPeer::USR_UID . ") + FROM + " . GroupUserPeer::TABLE_NAME . " + LEFT JOIN + " . UsersPeer::TABLE_NAME . " + ON (" . GroupUserPeer::USR_UID . " = " . UsersPeer::USR_UID . ") + WHERE + " . GroupUserPeer::GRP_UID . " = " . GroupwfPeer::GRP_UID . " AND + " . UsersPeer::USR_STATUS . " <> 'CLOSED')"); + } + if (!is_null($sortDir) && trim($sortDir) != "" && strtoupper($sortDir) == "DESC") { $criteria->addDescendingOrderByColumn($sortField); } else { diff --git a/workflow/engine/methods/groups/groups_Ajax.php b/workflow/engine/methods/groups/groups_Ajax.php index 0cf55a2d4..b048b3162 100644 --- a/workflow/engine/methods/groups/groups_Ajax.php +++ b/workflow/engine/methods/groups/groups_Ajax.php @@ -83,7 +83,6 @@ switch ($_POST['action']) { case 'groupsList': require_once 'classes/model/Groupwf.php'; require_once 'classes/model/TaskUser.php'; - require_once 'classes/model/GroupUser.php'; G::LoadClass( 'configuration' ); $co = new Configurations(); $config = $co->getConfiguration( 'groupList', 'pageSize', '', $_SESSION['USER_LOGGED'] ); @@ -103,15 +102,12 @@ switch ($_POST['action']) { $tasks = new TaskUser(); $aTask = $tasks->getCountAllTaksByGroups(); - $members = new GroupUser(); - $aMembers = $members->getCountAllUsersByGroup(); - require_once PATH_CONTROLLERS . 'adminProxy.php'; $uxList = adminProxy::getUxTypesList(); $groups = new Groupwf(); - $data = $groups->getAllGroup( $start, $limit, $filter, $sortField, $sortDir); + $data = $groups->getAllGroup( $start, $limit, $filter, $sortField, $sortDir, true); $result = $data['rows']; $totalRows = 0; @@ -122,7 +118,6 @@ switch ($_POST['action']) { ), array ("<",">" ), $results['GRP_TITLE'] ); $results['GRP_TASKS'] = isset( $aTask[$results['GRP_UID']] ) ? $aTask[$results['GRP_UID']] : 0; - $results['GRP_USERS'] = isset( $aMembers[$results['GRP_UID']] ) ? $aMembers[$results['GRP_UID']] : 0; $arrData[] = $results; }