From a56ff99d1626a13c9bd981d429a363cd856fa275 Mon Sep 17 00:00:00 2001 From: satish <satish.dvnk@vtiger.com> Date: Fri, 24 Feb 2017 15:35:41 +0530 Subject: [PATCH] Issues FAQ - workflow Source is not 'Workflow' when record created from workflows --- layouts/v7/modules/Rss/ListViewContents.tpl | 2 +- modules/Settings/Workflows/views/EditV7Task.php | 8 ++++---- modules/Vtiger/models/Module.php | 6 +++--- modules/com_vtiger_workflow/VTWorkflowUtils.php | 14 ++++---------- .../tasks/VTCreateEntityTask.inc | 1 + .../tasks/VTCreateEventTask.inc | 3 ++- .../com_vtiger_workflow/tasks/VTCreateTodoTask.inc | 6 +++--- vtlib/Vtiger/Functions.php | 2 +- 8 files changed, 19 insertions(+), 23 deletions(-) diff --git a/layouts/v7/modules/Rss/ListViewContents.tpl b/layouts/v7/modules/Rss/ListViewContents.tpl index 49570c557..ed70b3d9e 100644 --- a/layouts/v7/modules/Rss/ListViewContents.tpl +++ b/layouts/v7/modules/Rss/ListViewContents.tpl @@ -47,7 +47,7 @@ <tr> <td> {assign var=SINGLE_MODULE value="SINGLE_$MODULE"} - {vtranslate('LBL_NO')} {vtranslate($MODULE, $MODULE)} {vtranslate('LBL_FOUND')}. {vtranslate('LBL_CREATE')} <a class="rssAddButton" href="#" data-href="{$QUICK_LINKS['SIDEBARLINK'][0]->getUrl()}"> {vtranslate($SINGLE_MODULE, $MODULE)}</a> + {vtranslate('LBL_NO')} {vtranslate($MODULE, $MODULE)} {vtranslate('LBL_FOUND')}. {vtranslate('LBL_CREATE')}<a class="rssAddButton" href="#" data-href="{$QUICK_LINKS['SIDEBARLINK'][0]->getUrl()}"> {vtranslate($SINGLE_MODULE, $MODULE)}</a> </td> </tr> </tbody> diff --git a/modules/Settings/Workflows/views/EditV7Task.php b/modules/Settings/Workflows/views/EditV7Task.php index 0d5cad697..ba6595958 100644 --- a/modules/Settings/Workflows/views/EditV7Task.php +++ b/modules/Settings/Workflows/views/EditV7Task.php @@ -136,7 +136,7 @@ class Settings_Workflows_EditV7Task_View extends Settings_Vtiger_Index_View { $templateVariables = array( $individualTaxBlockValue => $individualTaxBlockLabel, $groupTaxBlockValue => $groupTaxBlockLabel - ); + ); $viewer->assign('META_VARIABLES', $metaVariables); $viewer->assign('TEMPLATE_VARIABLES', $templateVariables); @@ -154,16 +154,16 @@ class Settings_Workflows_EditV7Task_View extends Settings_Vtiger_Index_View { $viewer->assign('MODULE', $moduleName); $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName); - - $emailFields = $recordStructureInstance->getAllEmailFields(); foreach($emailFields as $metaKey => $emailField) { $emailFieldoptions .= '<option value=",$'.$metaKey.'">'.$emailField->get('workflow_columnlabel').'</option>'; } $usersModuleModel = Vtiger_Module_Model::getInstance('Users'); - $emailFieldoptions .= '<option value=",$(general : (__VtigerMeta__) reports_to_id)"> '. + if($moduleModel->getField('assigned_user_id')) { + $emailFieldoptions .= '<option value=",$(general : (__VtigerMeta__) reports_to_id)"> '. vtranslate($moduleModel->getField('assigned_user_id')->get('label'),'Users').' : (' . vtranslate('Users','Users') . ') '. vtranslate($usersModuleModel->getField('reports_to_id')->get('label'),'Users') .'</option>'; + } $nameFields = $recordStructureInstance->getNameFields(); $fromEmailFieldOptions = '<option value="">'. vtranslate('ENTER_FROM_EMAIL_ADDRESS', $qualifiedModuleName) .'</option>'; diff --git a/modules/Vtiger/models/Module.php b/modules/Vtiger/models/Module.php index 8ce16d3f2..80af99b7a 100644 --- a/modules/Vtiger/models/Module.php +++ b/modules/Vtiger/models/Module.php @@ -631,7 +631,8 @@ class Vtiger_Module_Model extends Vtiger_Module { } public function isWorkflowSupported() { - if($this->isEntityModule()) { + vimport('~~modules/com_vtiger_workflow/VTWorkflowUtils.php'); + if($this->isEntityModule() && VTWorkflowUtils::checkModuleWorkflow($this->getName())) { return true; } return false; @@ -1303,7 +1304,6 @@ class Vtiger_Module_Model extends Vtiger_Module { if(!$this->isEntityModule() && $this->getName() !== 'Users') { return array(); } - vimport('~~modules/com_vtiger_workflow/VTWorkflowUtils.php'); $layoutEditorImagePath = Vtiger_Theme::getImagePath('LayoutEditor.gif'); $editWorkflowsImagePath = Vtiger_Theme::getImagePath('EditWorkflows.png'); @@ -1319,7 +1319,7 @@ class Vtiger_Module_Model extends Vtiger_Module { 'linkicon' => $layoutEditorImagePath ); - if(VTWorkflowUtils::checkModuleWorkflow($this->getName())) { + if($this->isWorkflowSupported()) { $settingsLinks[] = array( 'linktype' => 'LISTVIEWSETTING', 'linklabel' => 'LBL_EDIT_WORKFLOWS', diff --git a/modules/com_vtiger_workflow/VTWorkflowUtils.php b/modules/com_vtiger_workflow/VTWorkflowUtils.php index b78c6116e..2448f05bd 100644 --- a/modules/com_vtiger_workflow/VTWorkflowUtils.php +++ b/modules/com_vtiger_workflow/VTWorkflowUtils.php @@ -120,17 +120,11 @@ class VTWorkflowUtils { */ function checkModuleWorkflow($modulename) { - global $adb; - $tabid = getTabid($modulename); - $modules_not_supported = array('Calendar', 'Emails', 'Faq', 'Events', 'PBXManager', 'Users'); - $query = "SELECT name FROM vtiger_tab WHERE name not in (" . generateQuestionMarks($modules_not_supported) . ") AND isentitytype=1 AND presence = 0 AND tabid = ?"; - $result = $adb->pquery($query, array($modules_not_supported, $tabid)); - $rows = $adb->num_rows($result); - if ($rows > 0) { - return true; - } else { - return false; + $result = true; + if (in_array($modulename, array('Emails', 'Faq', 'PBXManager', 'Users')) || !getTabid($modulename)) { + $result = false; } + return $result; } function vtGetModules($adb) { diff --git a/modules/com_vtiger_workflow/tasks/VTCreateEntityTask.inc b/modules/com_vtiger_workflow/tasks/VTCreateEntityTask.inc index 44960258f..d2a2ccb37 100644 --- a/modules/com_vtiger_workflow/tasks/VTCreateEntityTask.inc +++ b/modules/com_vtiger_workflow/tasks/VTCreateEntityTask.inc @@ -183,6 +183,7 @@ class VTCreateEntityTask extends VTTask { $newEntity->column_fields[$this->reference_field] = $focus->id; // To handle cyclic process $newEntity->_from_workflow = true; + $newEntity->column_fields['source'] = 'WORKFLOW'; //If the module triggering workflow and new entity we are creating are same, Then it might end up in infinite loop. //So we need to call saveentity than save in order to avoid workflow triggering for new entity diff --git a/modules/com_vtiger_workflow/tasks/VTCreateEventTask.inc b/modules/com_vtiger_workflow/tasks/VTCreateEventTask.inc index abd3d23f2..8073b96d1 100644 --- a/modules/com_vtiger_workflow/tasks/VTCreateEventTask.inc +++ b/modules/com_vtiger_workflow/tasks/VTCreateEventTask.inc @@ -172,7 +172,8 @@ class VTCreateEventTask extends VTTask{ unset($_REQUEST['recurringtype']); unset($fields['recurringtype']); } - + + $fields['source'] = 'WORKFLOW'; $event = vtws_create('Events', $fields, $adminUser); $eventIdDetails = vtws_getIdComponents($event['id']); $entityIdDetails = vtws_getIdComponents($id); diff --git a/modules/com_vtiger_workflow/tasks/VTCreateTodoTask.inc b/modules/com_vtiger_workflow/tasks/VTCreateTodoTask.inc index 7711454ca..be456c0c3 100644 --- a/modules/com_vtiger_workflow/tasks/VTCreateTodoTask.inc +++ b/modules/com_vtiger_workflow/tasks/VTCreateTodoTask.inc @@ -109,8 +109,7 @@ class VTCreateTodoTask extends VTTask{ 'taskstatus'=>$this->status, 'assigned_user_id'=>$userId, 'time_start'=> $time, - 'sendnotification'=>($this->sendNotification!='' && $this->sendNotification!='N')? - true: false, + 'sendnotification'=>($this->sendNotification!='' && $this->sendNotification!='N') ? true: false, 'date_start'=>$startDate, 'due_date'=>$date, 'visibility'=>'Private', @@ -169,7 +168,8 @@ class VTCreateTodoTask extends VTTask{ $fields[$fieldName] = $fieldValue; } } - + + $fields['source'] = 'WORKFLOW'; $todo = vtws_create('Calendar', $fields, $adminUser); $todoIdDetails = vtws_getIdComponents($todo['id']); $entityIdDetails = vtws_getIdComponents($id); diff --git a/vtlib/Vtiger/Functions.php b/vtlib/Vtiger/Functions.php index f8da7d319..3413a8fdf 100644 --- a/vtlib/Vtiger/Functions.php +++ b/vtlib/Vtiger/Functions.php @@ -655,7 +655,7 @@ class Vtiger_Functions { $description = $emailTemplate->getProcessedDescription(); $tokenDataPair = explode('$', $description); $fields = Array(); - for ($i = 1; $i < count($token_data_pair); $i+=2) { + for ($i = 1; $i < count($token_data_pair); $i++) { $module = explode('-', $tokenDataPair[$i]); $fields[$module[0]][] = $module[1]; } -- GitLab