diff --git a/features/backend/adhoc_assignee/main_tests_adhoc_assignee.feature b/features/backend/adhoc_assignee/main_tests_adhoc_assignee.feature index d2495a967..2c90ef890 100644 --- a/features/backend/adhoc_assignee/main_tests_adhoc_assignee.feature +++ b/features/backend/adhoc_assignee/main_tests_adhoc_assignee.feature @@ -66,7 +66,7 @@ Feature: Project Properties -Adhoc Assignee Resources Examples: | test_description | project | activity | records | ada_uid | ada_type | - | Verify that the activity has expected quantity of asignees | 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 5 | 54731929352d56741de9d42002704749 | group | + | Verify that the activity has expected quantity of asignees | 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 4 | 54731929352d56741de9d42002704749 | group | | Verify that the activity has expected quantity of asignees | 4224292655297723eb98691001100052 | 68911670852a22d93c22c06005808422 | 1 | 36775342552d5674146d9c2078497230 | group | @@ -119,7 +119,7 @@ Feature: Project Properties -Adhoc Assignee Resources And the response charset is "UTF-8" And the content type is "application/json" And the type is "array" - And the response has 2 records + And the response has 1 records diff --git a/features/backend/assignee/activity_assignee.feature b/features/backend/assignee/activity_assignee.feature index 272221a2b..5d4ca2bce 100644 --- a/features/backend/assignee/activity_assignee.feature +++ b/features/backend/assignee/activity_assignee.feature @@ -19,7 +19,7 @@ Feature: Assignee Resources Examples: | test_description | project | activity | records | aas_uid | aas_type | - | check if the list of possible users and groups to be assigned is correct | 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 82 | 54731929352d56741de9d42002704749 | group | + | check if the list of possible users and groups to be assigned is correct | 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 81 | 54731929352d56741de9d42002704749 | group | Scenario Outline: Get the list of available users and groups to be assigned to an activity using filter Given I request "project/4224292655297723eb98691001100052/activity/65496814252977243d57684076211485/available-assignee?filter=&start=&limit=" diff --git a/features/backend/assignee/main_tests_assignee.feature b/features/backend/assignee/main_tests_assignee.feature index ff07db5aa..af9eaf4f3 100644 --- a/features/backend/assignee/main_tests_assignee.feature +++ b/features/backend/assignee/main_tests_assignee.feature @@ -19,7 +19,7 @@ Feature: Assignee Resources Examples: | test_description | project | activity | records | aas_uid | aas_type | - | check if the list of possible users and groups to be assigned is correct | 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 82 | 54731929352d56741de9d42002704749 | group | + | check if the list of possible users and groups to be assigned is correct | 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 81 | 54731929352d56741de9d42002704749 | group | Scenario Outline: Get the list of available users and groups to be assigned to an activity using filter Given I request "project//activity//available-assignee?filter=&start=&limit=" diff --git a/features/backend/process_supervisor/main_tests_supervisor.feature b/features/backend/process_supervisor/main_tests_supervisor.feature index f8dd0ce62..a77648a25 100644 --- a/features/backend/process_supervisor/main_tests_supervisor.feature +++ b/features/backend/process_supervisor/main_tests_supervisor.feature @@ -39,7 +39,7 @@ Feature: Process supervisor Resources Examples: | test_description | project | records | - | List users and groups available to be supervisors | 85794888452ceeef3675164057928956 | 24 | + | List users and groups available to be supervisors | 85794888452ceeef3675164057928956 | 23 | Scenario Outline: Get a List of available groups process supervisor of a project @@ -52,7 +52,7 @@ Feature: Process supervisor Resources Examples: | test_description | project | records | - | List the 23 groups available to be supervisors | 85794888452ceeef3675164057928956 | 23 | + | List the 23 groups available to be supervisors | 85794888452ceeef3675164057928956 | 22 | Scenario Outline: Get a List of available users elegible as process supervisor diff --git a/workflow/engine/src/BusinessModel/Task.php b/workflow/engine/src/BusinessModel/Task.php index 556c249de..f59716f86 100644 --- a/workflow/engine/src/BusinessModel/Task.php +++ b/workflow/engine/src/BusinessModel/Task.php @@ -656,6 +656,9 @@ class Task public function getTaskAssignees($sProcessUID, $sTaskUID, $filter, $start, $limit) { try { + require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php"); + require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "TaskUser.php"); + require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "GroupUser.php"); $oProcess = \ProcessPeer::retrieveByPK( $sProcessUID ); if (is_null($oProcess)) { throw (new \Exception( 'This id for `prj_uid`: '. $sProcessUID .' do not correspond to a registered process')); @@ -697,7 +700,42 @@ class Task return $aUsers; } } - $result = $groups->getAllGroup($start, $limit, $filter); + $totalCount = 0; + $criteria = new \Criteria( 'workflow' ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UID ); + $criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN ); + $criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' ); + $criteria->add( \ContentPeer::CON_LANG, SYS_LANG ); + $criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE ); + $totalRows = \GroupwfPeer::doCount( $criteria ); + $criteria = new \Criteria( 'workflow' ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UID ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_STATUS ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UX ); + $criteria->addAsColumn( 'GRP_TITLE', \ContentPeer::CON_VALUE ); + $criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN ); + $criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' ); + $criteria->add( \ContentPeer::CON_LANG, SYS_LANG ); + $criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE ); + if ($start != '') { + $criteria->setOffset( $start ); + } + if ($limit != '') { + $criteria->setLimit( $limit ); + } + if ($filter != '') { + $criteria->add( \ContentPeer::CON_VALUE, '%' . $filter . '%', \Criteria::LIKE ); + } + $oDataset = \GroupwfPeer::doSelectRS( $criteria ); + $oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); + $processes = Array (); + $uids = array (); + $groups = array (); + $aGroups = array (); + while ($oDataset->next()) { + $groups[] = $oDataset->getRow(); + } + $result = array ('rows' => $groups,'totalCount' => $totalRows); foreach ($result['rows'] as $results) { if (in_array($results['GRP_UID'], $aUIDS1)) { $c++; @@ -785,6 +823,9 @@ class Task public function getTaskAvailableAssignee($sProcessUID, $sTaskUID, $filter, $start, $limit) { try { + require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php"); + require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "TaskUser.php"); + require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "GroupUser.php"); $oProcess = \ProcessPeer::retrieveByPK( $sProcessUID ); if (is_null($oProcess)) { throw (new \Exception( 'This id for `prj_uid`: '. $sProcessUID .' do not correspond to a registered process')); @@ -823,7 +864,42 @@ class Task return $aUsers; } } - $result = $groups->getAllGroup($start, $limit, $filter); + $totalCount = 0; + $criteria = new \Criteria( 'workflow' ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UID ); + $criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN ); + $criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' ); + $criteria->add( \ContentPeer::CON_LANG, SYS_LANG ); + $criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE ); + $totalRows = \GroupwfPeer::doCount( $criteria ); + $criteria = new \Criteria( 'workflow' ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UID ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_STATUS ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UX ); + $criteria->addAsColumn( 'GRP_TITLE', \ContentPeer::CON_VALUE ); + $criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN ); + $criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' ); + $criteria->add( \ContentPeer::CON_LANG, SYS_LANG ); + $criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE ); + if ($start != '') { + $criteria->setOffset( $start ); + } + if ($limit != '') { + $criteria->setLimit( $limit ); + } + if ($filter != '') { + $criteria->add( \ContentPeer::CON_VALUE, '%' . $filter . '%', \Criteria::LIKE ); + } + $oDataset = \GroupwfPeer::doSelectRS( $criteria ); + $oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); + $processes = Array (); + $uids = array (); + $groups = array (); + $aGroups = array (); + while ($oDataset->next()) { + $groups[] = $oDataset->getRow(); + } + $result = array ('rows' => $groups,'totalCount' => $totalRows); foreach ($result['rows'] as $results) { if (! in_array($results['GRP_UID'], $aUIDS1)) { $c++; @@ -1129,6 +1205,9 @@ class Task public function getTaskAdhocAssignees($sProcessUID, $sTaskUID, $filter, $start, $limit) { try { + require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php"); + require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "TaskUser.php"); + require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "GroupUser.php"); $oProcess = \ProcessPeer::retrieveByPK( $sProcessUID ); if (is_null($oProcess)) { throw (new \Exception( 'This id for `prj_uid`: '. $sProcessUID .' do not correspond to a registered process')); @@ -1170,7 +1249,42 @@ class Task return $aUsers; } } - $result = $groups->getAllGroup($start, $limit, $filter); + $totalCount = 0; + $criteria = new \Criteria( 'workflow' ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UID ); + $criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN ); + $criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' ); + $criteria->add( \ContentPeer::CON_LANG, SYS_LANG ); + $criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE ); + $totalRows = \GroupwfPeer::doCount( $criteria ); + $criteria = new \Criteria( 'workflow' ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UID ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_STATUS ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UX ); + $criteria->addAsColumn( 'GRP_TITLE', \ContentPeer::CON_VALUE ); + $criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN ); + $criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' ); + $criteria->add( \ContentPeer::CON_LANG, SYS_LANG ); + $criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE ); + if ($start != '') { + $criteria->setOffset( $start ); + } + if ($limit != '') { + $criteria->setLimit( $limit ); + } + if ($filter != '') { + $criteria->add( \ContentPeer::CON_VALUE, '%' . $filter . '%', \Criteria::LIKE ); + } + $oDataset = \GroupwfPeer::doSelectRS( $criteria ); + $oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); + $processes = Array (); + $uids = array (); + $groups = array (); + $aGroups = array (); + while ($oDataset->next()) { + $groups[] = $oDataset->getRow(); + } + $result = array ('rows' => $groups,'totalCount' => $totalRows); foreach ($result['rows'] as $results) { if (in_array($results['GRP_UID'], $aUIDS1)) { $c++; @@ -1255,6 +1369,9 @@ class Task public function getTaskAvailableAdhocAssignee($sProcessUID, $sTaskUID, $filter, $start, $limit) { try { + require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php"); + require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "TaskUser.php"); + require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "GroupUser.php"); $oProcess = \ProcessPeer::retrieveByPK( $sProcessUID ); if (is_null($oProcess)) { throw (new \Exception( 'This id for `prj_uid`: '. $sProcessUID .' do not correspond to a registered process')); @@ -1293,7 +1410,42 @@ class Task return $aUsers; } } - $result = $groups->getAllGroup($start, $limit, $filter); + $totalCount = 0; + $criteria = new \Criteria( 'workflow' ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UID ); + $criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN ); + $criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' ); + $criteria->add( \ContentPeer::CON_LANG, SYS_LANG ); + $criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE ); + $totalRows = \GroupwfPeer::doCount( $criteria ); + $criteria = new \Criteria( 'workflow' ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UID ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_STATUS ); + $criteria->addSelectColumn( \GroupwfPeer::GRP_UX ); + $criteria->addAsColumn( 'GRP_TITLE', \ContentPeer::CON_VALUE ); + $criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN ); + $criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' ); + $criteria->add( \ContentPeer::CON_LANG, SYS_LANG ); + $criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE ); + if ($start != '') { + $criteria->setOffset( $start ); + } + if ($limit != '') { + $criteria->setLimit( $limit ); + } + if ($filter != '') { + $criteria->add( \ContentPeer::CON_VALUE, '%' . $filter . '%', \Criteria::LIKE ); + } + $oDataset = \GroupwfPeer::doSelectRS( $criteria ); + $oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); + $processes = Array (); + $uids = array (); + $groups = array (); + $aGroups = array (); + while ($oDataset->next()) { + $groups[] = $oDataset->getRow(); + } + $result = array ('rows' => $groups,'totalCount' => $totalRows); foreach ($result['rows'] as $results) { if (! in_array($results['GRP_UID'], $aUIDS1)) { $c++;