Merge branch 'release/22.0.beta' of https://gitfox.zcorp.cc/git/zentao/zentaopms into release/22.0.beta

This commit is contained in:
sunguangming
2026-01-09 08:21:15 +00:00
5 changed files with 43 additions and 11 deletions
+20
View File
@@ -1799,6 +1799,26 @@ class actionModel extends model
}
}
if($action->objectType == 'projectchange')
{
$reviewID = $this->dao->select('id')->from(TABLE_REVIEW)->where('type')->eq('projectchange')->andWhere('object')->eq($action->objectID)->andWhere('deleted')->eq('1')->fetch('id');
if($reviewID)
{
$reviewActionID = $this->dao->select('id')->from(TABLE_ACTION)->where('action')->eq('deleted')->andWhere('objectType')->eq('review')->andWhere('objectID')->eq($reviewID)->andWhere('extra')->eq(self::CAN_UNDELETED)->fetch('id');
if($reviewActionID) $this->undelete($reviewActionID);
}
}
if($action->objectType == 'review')
{
$review = $this->dao->select('*')->from(TABLE_REVIEW)->where('id')->eq($action->objectID)->fetch();
if($review->type == 'projectchange')
{
$projectchangeActionID = $this->dao->select('id')->from(TABLE_ACTION)->where('action')->eq('deleted')->andWhere('objectType')->eq('projectchange')->andWhere('objectID')->eq($review->object)->andWhere('extra')->eq(self::CAN_UNDELETED)->fetch('id');
if($projectchangeActionID) $this->undelete($projectchangeActionID);
}
}
if($action->objectType == 'deliverable')
{
$this->dao->update(TABLE_DELIVERABLE)->set('status')->eq('disabled')->where('id')->eq($action->objectID)->exec();
+2
View File
@@ -45,6 +45,8 @@ class devModel extends model
*/
public function getFields($table)
{
if(empty($table)) return array();
$module = substr($table, strpos($table, '_') + 1);
$aliasModule = $subLang = '';
$this->app->loadLang($module);
+2 -2
View File
@@ -31,7 +31,7 @@ r($dev->getFieldsTest('zt_product')) && p('name:type') && e('varchar'); // 步
r($dev->getFieldsTest('zt_todo')) && p('begin:name') && e('开始'); // 步骤3:字段名国际化处理测试
r($dev->getFieldsTest('zt_user')) && p('account:null') && e('NO'); // 步骤4:字段null属性检查测试
r($dev->getFieldsTest('zt_user')) && p('id:type') && e('int'); // 步骤5:int类型字段解析测试
r($dev->getFieldsTest('zt_user')) && p('account:type') && e('char'); // 步骤6:char类型字段解析测试
r($dev->getFieldsTest('zt_user')) && p('account:type') && e('varchar'); // 步骤6:char类型字段解析测试
r($dev->getFieldsTest('zt_product')) && p('name:name') && e('产品名称'); // 步骤7:产品表字段名称解析测试
r($dev->getFieldsTest('zt_nonexistent_table')) && p() && e('0'); // 步骤8:不存在表的异常处理测试
r($dev->getFieldsTest('')) && p() && e('0'); // 步骤9:空表名边界值测试
r($dev->getFieldsTest('')) && p() && e('0'); // 步骤9:空表名边界值测试
+10 -3
View File
@@ -20,10 +20,17 @@ include dirname(__FILE__, 2) . '/lib/treezen.unittest.class.php';
su('admin');
$data = zenData('workflowdatasource');
$data->id->range('1-5');
$data->name->prefix('数据源')->range('1-5');
$data->createdDate->range("20260109 130000")->type('timestamp')->format('YYYY-MM-DD');
$data->editedDate->range("20260109 130000")->type('timestamp')->format('YYYY-MM-DD');
$data->gen(5);
$treeTest = new treeTest();
r($treeTest->updateWorkflowLangTest('datasource_1')) && p('manageDatasource_1Child') && e('模块维护');
r($treeTest->updateWorkflowLangTest('workflow_1')) && p('manageWorkflow_1Child') && e('模块维护');
r($treeTest->updateWorkflowLangTest('single')) && p('manage') && e('维护模块');
r($treeTest->updateWorkflowLangTest('')) && p('manage') && e('维护模块');
r($treeTest->updateWorkflowLangTest('datasource_999')) && p('manageDatasource_999Child') && e('模块维护');
r($treeTest->updateWorkflowLangTest('datasource_1')) && p('manageDatasource_1Child') && e('数据源1');
r($treeTest->updateWorkflowLangTest('workflow_1')) && p('manageWorkflow_1Child') && e('维护分类');
r($treeTest->updateWorkflowLangTest('datasource_999')) && p('manageDatasource_999Child') && e('维护分类');
+9 -6
View File
@@ -159,7 +159,12 @@ class treeZen extends tree
if(count($params) == 2)
{
$manageChild = 'manage' . ucfirst($viewType) . 'Child';
if($viewType == 'datasource')
$this->lang->tree->common = $this->lang->workflowdatasource->category;
$this->lang->tree->name = $this->lang->tree->cate;
$this->lang->tree->$manageChild = $this->lang->tree->common;
if(strpos($viewType, 'datasource') !== false)
{
$datasourceID = $params[1];
$datasource = $this->loadModel('workflowdatasource', 'flow')->getByID($datasourceID);
@@ -167,12 +172,10 @@ class treeZen extends tree
{
$this->lang->tree->$manageChild = $datasource->name;
$this->lang->tree->manage = $datasource->name;
$this->lang->tree->common = $this->lang->workflowdatasource->category;
$this->lang->tree->name = $this->lang->tree->cate;
}
}
else
{
$this->lang->tree->$manageChild = $this->lang->tree->common;
}
}
}
@@ -213,7 +216,7 @@ class treeZen extends tree
if(strpos($viewType, '_') !== false)
{
$params = explode('_', $viewType);
if(count($params) == 2) $this->app->rawModule = $params[0];
if(count($params) == 2) $this->app->rawModule = $params[0] == 'datasource' ? 'workflowdatasource' : $params[0];
}
}
}