* Refactor transfer model: getRows method.
This commit is contained in:
@@ -151,17 +151,17 @@ $config->task->dtable->fieldList['story']['type'] = 'desc';
|
||||
$config->task->dtable->fieldList['story']['sortType'] = true;
|
||||
$config->task->dtable->fieldList['story']['show'] = true;
|
||||
$config->task->dtable->fieldList['story']['group'] = 9;
|
||||
$config->task->dtable->fieldList['story']['dataSource'] = array('module' => 'story', 'method' => 'getExecutionStoryPairs', 'params' => '$executionID&0&all&&&active');
|
||||
$config->task->dtable->fieldList['story']['dataSource'] = array('module' => 'story', 'method' => 'getExecutionStoryPairs', 'params' => ['executionID' => (int)'$executionID', 'productID' => 0, 'branch' => 'all', 'moduleIdList' => '', 'type' => '', 'status' => 'active']);
|
||||
|
||||
$config->task->dtable->fieldList['module']['title'] = 'module';
|
||||
$config->task->dtable->fieldList['module']['control'] = 'select';
|
||||
$config->task->dtable->fieldList['module']['dataSource'] = array('module' => 'tree', 'method' => 'getTaskOptionMenu', 'params' => '$executionID');
|
||||
$config->task->dtable->fieldList['module']['dataSource'] = array('module' => 'tree', 'method' => 'getTaskOptionMenu', 'params' => ['rootID' => (int)'$executionID']);
|
||||
$config->task->dtable->fieldList['module']['display'] = false;
|
||||
|
||||
$config->task->dtable->fieldList['execution']['title'] = 'execution';
|
||||
$config->task->dtable->fieldList['execution']['control'] = 'hidden';
|
||||
$config->task->dtable->fieldList['execution']['type'] = 'html';
|
||||
$config->task->dtable->fieldList['execution']['dataSource'] = array('module' => 'execution', 'method' => 'getPairs');
|
||||
$config->task->dtable->fieldList['execution']['dataSource'] = array('module' => 'execution', 'method' => 'getPairs', 'params' => ['projectID' => 0]);
|
||||
$config->task->dtable->fieldList['execution']['display'] = false;
|
||||
|
||||
$config->task->dtable->fieldList['project']['title'] = 'project';
|
||||
|
||||
+16
-18
@@ -532,27 +532,27 @@ class transferModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导出数据。
|
||||
* Get Rows.
|
||||
*
|
||||
* @param string $module
|
||||
* @param object|string|array $fieldList
|
||||
* @param string $module
|
||||
* @param object|array $fieldList
|
||||
* @access public
|
||||
* @return void
|
||||
* @return array
|
||||
*/
|
||||
public function getRows(string $module, object|string|array $fieldList)
|
||||
public function getRows(string $module, object|array $fieldList)
|
||||
{
|
||||
$moduleDatas = $this->getQueryDatas($module);
|
||||
$moduleDatas = $this->getQueryDatas($module); // 根据SESSION中的条件查询数据。
|
||||
|
||||
if(is_object($fieldList)) $fieldList = (array) $fieldList;
|
||||
if(isset($fieldList['files'])) $moduleDatas = $this->getFiles($module, $moduleDatas);
|
||||
if(is_object($fieldList)) $fieldList = (array) $fieldList;
|
||||
if(isset($fieldList['files'])) $moduleDatas = $this->getFiles($module, $moduleDatas); // 如果有附件字段则获取附件。
|
||||
|
||||
/* 如果存在rows则用rows中的数据覆盖查询的数据。*/
|
||||
/* If has rows, use rows data to cover query data. */
|
||||
$rows = !empty($_POST['rows']) ? $_POST['rows'] : array();
|
||||
foreach($rows as $id => $row) $moduleDatas[$id] = (object) array_merge((array)$moduleDatas[$id], (array)$row);
|
||||
|
||||
foreach($rows as $id => $row)
|
||||
{
|
||||
$moduleDatas[$id] = (object) array_merge((array)$moduleDatas[$id], (array)$row);
|
||||
}
|
||||
|
||||
/* 设置子数据。*/
|
||||
/* Deal children datas and multiple tasks. */
|
||||
if($moduleDatas) $moduleDatas = $this->updateChildDatas($moduleDatas);
|
||||
|
||||
@@ -834,16 +834,14 @@ class transferModel extends model
|
||||
$children = array();
|
||||
foreach($datas as $data)
|
||||
{
|
||||
$id = $data->id;
|
||||
if(!empty($data->mode)) $datas[$id]->name = '[' . $this->lang->task->multipleAB . '] ' . $data->name;
|
||||
if(!empty($data->parent) and isset($datas[$data->parent]))
|
||||
{
|
||||
if(!empty($data->name)) $data->name = '>' . $data->name;
|
||||
elseif(!empty($data->title)) $data->title = '>' . $data->title;
|
||||
$children[$data->parent][$data->id] = $data;
|
||||
unset($datas[$data->id]);
|
||||
}
|
||||
if(!empty($data->mode))
|
||||
{
|
||||
$datas[$data->id]->name = '[' . $this->lang->task->multipleAB . '] ' . $data->name;
|
||||
$children[$data->parent][$id] = $data;
|
||||
unset($datas[$id]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/transfer.class.php';
|
||||
zdTable('story')->gen(20);
|
||||
$file = zdTable('file');
|
||||
$file->objectType->range('task');
|
||||
$file->gen(10);
|
||||
|
||||
$task = zdTable('task');
|
||||
$task->project->range('11');
|
||||
$task->parent->range('0{3},3{7}');
|
||||
$task->mode->range('linear{1},multi{1},0{8}');
|
||||
$task->execution->range('101');
|
||||
$task->gen(10);
|
||||
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 transfer->getRows();
|
||||
timeout=0
|
||||
cid=1
|
||||
|
||||
- 测试导出多人并行任务第0条的name属性 @[多人] 开发任务11
|
||||
- 测试导出多人串行任务第1条的name属性 @[多人] 开发任务12
|
||||
- 测试导出正常任务第2条的name属性 @开发任务13
|
||||
- 测试导出子任务第3条的name属性 @>开发任务14
|
||||
|
||||
*/
|
||||
$transfer = new transferTest();
|
||||
|
||||
//a($transfer->getRowsTest('task'));die;
|
||||
/* 测试导出任务。*/
|
||||
r($transfer->getRowsTest('task')) && p('0:name') && e('[多人] 开发任务11'); // 测试导出多人并行任务
|
||||
r($transfer->getRowsTest('task')) && p('1:name') && e('[多人] 开发任务12'); // 测试导出多人串行任务
|
||||
r($transfer->getRowsTest('task')) && p('2:name') && e('开发任务13'); // 测试导出正常任务
|
||||
r($transfer->getRowsTest('task')) && p('3:name') && e('>开发任务14'); // 测试导出子任务
|
||||
r(isset($transfer->getRowsTest('task')[8]->files)) && p('') && e('1'); // 测试导出附件是否存在
|
||||
|
||||
$task = new stdclass();
|
||||
$task->name = '追加任务1';
|
||||
$_POST['rows']['2'] = $task;
|
||||
r($transfer->getRowsTest('task')) && p('1:name') && e('[多人] 追加任务1'); // 测试当有数据需要单独处理时
|
||||
@@ -154,4 +154,34 @@ class transferTest
|
||||
|
||||
return $this->objectModel->getQueryDatas($module);
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试getRows。
|
||||
* Get query datas.
|
||||
*
|
||||
* @param string $module
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getRowsTest(string $module = '', string $checkedItem = '')
|
||||
{
|
||||
global $tester, $app;
|
||||
$app->methodName = 'export';
|
||||
|
||||
$object = $tester->loadModel($module);
|
||||
$fields = isset($object->config->$module->exportFields) ? $object->config->$module->exportFields : '';
|
||||
|
||||
$_SESSION[$module . 'TransferParams']['executionID'] = 101;
|
||||
if($module == 'testcase')
|
||||
{
|
||||
$app->config->testcase->cascade = array('story' => 'module');
|
||||
$app->config->testcase->listFields = 'module,type,stage,pri,story,status,branch,results';
|
||||
}
|
||||
|
||||
$fields = explode(',', $fields);
|
||||
$fieldList = $this->objectModel->initFieldList($module, $fields);
|
||||
|
||||
$this->getQueryDatasTest($module);
|
||||
return $this->objectModel->getRows($module, $fieldList);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user