* [task#154095] Upgrade report template objects.
This commit is contained in:
@@ -147,7 +147,7 @@ if($config->edition != 'open')
|
||||
$config->upgrade->execFlow['18_3']['functions'] .= ',processDataset,processChart,processReport,processDashboard';
|
||||
$config->upgrade->execFlow['18_4_beta1']['functions'] = 'processDeployStepAction,updateBISQL,updatePivotStage';
|
||||
$config->upgrade->execFlow['20_4']['functions'] .= ',updateTaskRelationPriv';
|
||||
$config->upgrade->execFlow['21_7_8']['functions'] .= ',modifyProjectWorkflowGroup,upgradeAuditcl,upgradeProcessAndActivity,addWorkflowGroupOtherActivity,addDefaultDeliverableModule,upgradeDesignToDeliverable,buildinTestcaseStageDeliverable,upgradeDeliverable,buildinBaselineReview,upgradeReviewclCategory,upgradeBaselineObjects,upgradeReviewToDeliverable,upgradeBaseline,addDeliverablePrivs,upgradeStageAndPoint,upgradeObjectOfDecision,upgradeClosedFeature,parseDocFetcherURL,updateWorkflowGroupPriv';
|
||||
$config->upgrade->execFlow['21_7_8']['functions'] .= ',modifyProjectWorkflowGroup,upgradeAuditcl,upgradeProcessAndActivity,addWorkflowGroupOtherActivity,addDefaultDeliverableModule,upgradeDesignToDeliverable,buildinTestcaseStageDeliverable,upgradeDeliverable,buildinBaselineReview,upgradeReviewclCategory,upgradeBaselineObjects,upgradeReviewToDeliverable,upgradeBaseline,addDeliverablePrivs,upgradeStageAndPoint,upgradeObjectOfDecision,upgradeClosedFeature,parseDocFetcherURL,updateWorkflowGroupPriv,upgradeReportTemplateObjects';
|
||||
}
|
||||
|
||||
if(in_array($this->config->edition, array('max', 'ipd'))) $config->upgrade->execFlow['18_7']['functions'] = 'processOldMetrics,processHistoryDataForMetric,metric-updateMetricDate';
|
||||
|
||||
@@ -12012,6 +12012,7 @@ class upgradeModel extends model
|
||||
|
||||
$this->loadModel('project');
|
||||
$codeWorkflowPairs = array();
|
||||
$oldNewFlowPairs = array();
|
||||
foreach($workflows as $workflow)
|
||||
{
|
||||
$projects = $projectGroup[$workflow->id];
|
||||
@@ -12050,10 +12051,32 @@ class upgradeModel extends model
|
||||
$this->project->copyWorkflow($project->workflowGroup, $newWorkflowGroupID, $table);
|
||||
}
|
||||
|
||||
if(!isset($oldNewFlowPairs[$oldWorkflowGroupID])) $oldNewFlowPairs[$oldWorkflowGroupID] = array();
|
||||
$oldNewFlowPairs[$oldWorkflowGroupID][] = $newWorkflowGroupID;
|
||||
$codeWorkflowPairs[$code][$oldWorkflowGroupID] = $newWorkflowGroupID;
|
||||
$index++;
|
||||
}
|
||||
}
|
||||
|
||||
/* 处理报告模板的适用流程。*/
|
||||
$reportTemplateList = $this->dao->select('id,objects')->from(TABLE_DOC)->where('templateType')->eq('reportTemplate')->fetchPairs('id');
|
||||
foreach($reportTemplateList as $templateID => $objects)
|
||||
{
|
||||
$newObjects = array();
|
||||
$objectIdList = array_filter(explode(',', $objects));
|
||||
foreach($objectIdList as $objectID)
|
||||
{
|
||||
$newObjects[] = $objectID;
|
||||
if(!isset($oldNewFlowPairs[$objectID])) continue;
|
||||
$newObjects = array_merge($newObjects, $oldNewFlowPairs[$objectID]);
|
||||
}
|
||||
|
||||
if(!empty($newObjects))
|
||||
{
|
||||
$newObjectList = implode(',', array_filter(array_unique($newObjects)));
|
||||
$this->dao->update(TABLE_DOC)->set('objects')->eq($newObjectList)->where('id')->eq($templateID)->exec();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13061,4 +13084,51 @@ class upgradeModel extends model
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理报告模板中内置的适用流程。
|
||||
* Upgrade report template objects.
|
||||
*
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function upgradeReportTemplateObjects(): bool
|
||||
{
|
||||
$templateList = $this->dao->select('id,objects')->from(TABLE_DOC)->where('templateType')->eq('reportTemplate')->fetchPairs('id');
|
||||
$workflowList = $this->dao->select('id,projectModel,projectType')->from(TABLE_WORKFLOWGROUP)->where('main')->eq('1')->fetchAll('id');
|
||||
|
||||
$flowGroup = array();
|
||||
foreach($workflowList as $flowID => $flow)
|
||||
{
|
||||
if(!isset($flowGroup[$flow->projectModel])) $flowGroup[$flow->projectModel] = array();
|
||||
if(!isset($flowGroup[$flow->projectModel][$flow->projectType])) $flowGroup[$flow->projectModel][$flow->projectType] = array();
|
||||
$flowGroup[$flow->projectModel][$flow->projectType][] = $flowID;
|
||||
}
|
||||
|
||||
foreach($templateList as $templateID => $objects)
|
||||
{
|
||||
$newObjects = array();
|
||||
$objectIdList = array_filter(explode(',', $objects));
|
||||
foreach($objectIdList as $objectID)
|
||||
{
|
||||
$newObjects[] = $objectID;
|
||||
if(!isset($workflowList[$objectID])) continue;
|
||||
|
||||
$projectModel = $workflowList[$objectID]->projectModel;
|
||||
$projectType = $workflowList[$objectID]->projectType;
|
||||
if($projectModel == 'scrum' && $projectType == 'product') $newObjects = array_merge($newObjects, $flowGroup['agileplus']['product']);
|
||||
if($projectModel == 'scrum' && $projectType == 'project') $newObjects = array_merge($newObjects, $flowGroup['agileplus']['project']);
|
||||
if($projectModel == 'waterfall' && $projectType == 'product') $newObjects = array_merge($newObjects, $flowGroup['waterfallplus']['product'], $flowGroup['ipd']['ipd'], $flowGroup['ipd']['tpd'], $flowGroup['ipd']['cbb'], $flowGroup['ipd']['cpdproduct']);
|
||||
if($projectModel == 'waterfall' && $projectType == 'project') $newObjects = array_merge($newObjects, $flowGroup['waterfallplus']['project'], $flowGroup['ipd']['cpdproject']);
|
||||
}
|
||||
|
||||
if(!empty($newObjects))
|
||||
{
|
||||
$newObjectList = implode(',', array_filter(array_unique($newObjects)));
|
||||
$this->dao->update(TABLE_DOC)->set('objects')->eq($newObjectList)->where('id')->eq($templateID)->exec();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -703,7 +703,7 @@ class weeklyModel extends model
|
||||
$now = helper::now();
|
||||
$cycleConfig = array('turnon' => 'on', 'frequency' => 'week', 'acl' => 'open', 'readGroups' => '', 'readUsers' => '', 'groups' => '', 'users' => '');
|
||||
|
||||
$objects = $this->dao->select('id')->from(TABLE_WORKFLOWGROUP)->where('type')->eq('project')->andWhere('projectModel')->eq('waterfall')->andWhere('status')->eq('normal')->andWhere('vision')->eq($this->config->vision)->andWhere('objectID')->eq(0)->andWhere('deleted')->eq(0)->fetchPairs('id');
|
||||
$objects = $this->dao->select('id')->from(TABLE_WORKFLOWGROUP)->where('type')->eq('project')->andWhere('projectModel')->in('waterfall,waterfallplus,ipd')->andWhere('status')->eq('normal')->andWhere('vision')->eq($this->config->vision)->andWhere('objectID')->eq(0)->andWhere('deleted')->eq(0)->fetchPairs('id');
|
||||
|
||||
$template = new stdclass();
|
||||
$template->lib = $libID;
|
||||
|
||||
Reference in New Issue
Block a user