* kanban: refactor getCardGroupByExecution().

This commit is contained in:
sunguangming
2023-12-18 19:32:10 +08:00
parent 6894cf1f67
commit 088c922f42
4 changed files with 58 additions and 74 deletions
+2 -2
View File
@@ -186,8 +186,8 @@ window.renderAvatar = function(item)
}
else
{
if(assignLink != '') return '<a href="' + assignLink + '" class="avatar rounded-full size-xs ml-1 primary" title="' + item.assignedToRealName + '" data-toggle="modal">' + item.uavatar + '</a>';
return '<div class="avatar rounded-full size-xs ml-1 primary" title="' + item.assignedToRealName + '">' + item.uavatar + '</div>';
if(assignLink != '') return '<a href="' + assignLink + '" class="avatar rounded-full size-xs ml-1 primary" title="' + item.realnames + '" data-toggle="modal">' + item.avatarList[0] + '</a>';
return '<div class="avatar rounded-full size-xs ml-1 primary" title="' + item.realnames + '">' + item.avatarList[0] + '</div>';
}
}
+6 -41
View File
@@ -1328,7 +1328,7 @@ class kanbanModel extends model
* @access public
* @return array
*/
public function getCardGroupByExecution($executionID, $browseType = 'all', $orderBy = 'id_asc', $searchValue = '')
public function getCardGroupByExecution(int $executionID, string $browseType = 'all', string $orderBy = 'id_asc', string $searchValue = ''): array
{
$cards = $this->dao->select('t1.*, t2.type as columnType, t2.group')
->from(TABLE_KANBANCELL)->alias('t1')
@@ -1351,7 +1351,7 @@ class kanbanModel extends model
{
foreach($cells as $cell)
{
$cardOrder = 1;
$order = 0;
$cardIdList = array_filter(explode(',', $cell->cards));
foreach($cardIdList as $cardID)
{
@@ -1361,46 +1361,11 @@ class kanbanModel extends model
if(empty($object)) continue;
$cardData['id'] = $object->id;
$cardData['name'] = $object->id;
$cardData['order'] = $cardOrder++;
$cardData['pri'] = $object->pri ? $object->pri : '';
$cardData['estimate'] = $cell->type == 'bug' ? '' : $object->estimate;
$cardData['assignedTo'] = $object->assignedTo;
$cardData['deadline'] = $cell->type == 'story' ? '' : $object->deadline;
$cardData['severity'] = $cell->type == 'bug' ? $object->severity : '';
$cardData['acl'] = 'open';
$cardData['lane'] = $laneID;
$cardData['column'] = $cell->column;
$cardData['openedDate'] = $object->openedDate;
$cardData['closedDate'] = $object->closedDate;
$cardData['lastEditedDate'] = $object->lastEditedDate;
$cardData['status'] = $object->status;
$cardData['cardType'] = $cell->type;
$cardData['uavatar'] = '';
$cardData['assignedToRealName'] = '';
$cardData = $this->kanbanTao->initCardItem($object, $cell, $order, $avatarPairs, $users);
$cardData['acl'] = 'open';
$order ++;
if($object->assignedTo)
{
$userAvatar = zget($avatarPairs, $object->assignedTo, '');
$userAvatar = $userAvatar ? "<img src='$userAvatar'/>" : strtoupper(mb_substr($object->assignedTo, 0, 1, 'utf-8'));
$cardData['uavatar'] = $userAvatar;
$cardData['assignedToRealName'] = zget($users, $object->assignedTo, '');
}
if($cell->type == 'task')
{
if($searchValue != '' and strpos($object->name, $searchValue) === false) continue;
$cardData['title'] = $object->name;
$cardData['left'] = $object->left;
$cardData['estStarted'] = $object->estStarted;
$cardData['mode'] = $object->mode;
}
else
{
if($searchValue != '' and strpos($object->title, $searchValue) === false) continue;
$cardData['title'] = $object->title;
}
if($searchValue != '' and strpos($cardData['title'], $searchValue) === false) continue;
$cardGroup[$cell->group][$laneID][$cell->column][] = $cardData;
}
}
+18 -7
View File
@@ -526,21 +526,25 @@ class kanbanTao extends kanbanModel
$item['id'] = $card->id;
$item['name'] = $card->id;
$item['pri'] = $card->pri;
$item['begin'] = $card->begin;
$item['end'] = $card->end;
$item['group'] = $card->group;
$item['region'] = $card->region;
$item['color'] = $card->color;
$item['progress'] = $card->progress;
$item['assignedTo'] = $card->assignedTo;
$item['fromID'] = $card->fromID;
$item['fromType'] = $card->fromType;
$item['progress'] = !empty($card->progress) ? $card->progress : 0;
$item['group'] = !empty($card->group) ? $card->group : '';
$item['region'] = !empty($card->region) ? $card->region : '';
$item['begin'] = !empty($card->begin) ? $card->begin : '';
$item['end'] = !empty($card->end) ? $card->end : '';
$item['fromID'] = !empty($card->fromID) ? $card->fromID : 0;
$item['fromType'] = !empty($card->fromType) ? $card->fromType : '';
$item['desc'] = !empty($card->desc) ? $card->desc : '';
$item['delay'] = !empty($card->delay) ? $card->delay : 0;
$item['status'] = !empty($card->status) ? $card->status : '';
$item['objectStatus'] = !empty($card->objectStatus) ? $card->objectStatus : '';
$item['deleted'] = !empty($card->deleted) ? $card->deleted : 0;
$item['date'] = !empty($card->date) ? $card->date : '';
$item['estimate'] = !empty($card->estimate) ? $card->estimate : '';
$item['deadline'] = !empty($card->deadline) ? $card->deadline : '';
$item['severity'] = !empty($card->severity) ? $card->severity : '';
$item['cardType'] = $cell->type;
$item['avatarList'] = array();
$item['realnames'] = '';
$item['order'] = $order;
@@ -559,6 +563,13 @@ class kanbanTao extends kanbanModel
}
}
if($cell->type == 'task')
{
$item['left'] = $card->left;
$item['estStarted'] = $card->estStarted;
$item['mode'] = $card->mode;
}
return $item;
}
}
@@ -4,38 +4,46 @@ include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/kanban.class.php';
su('admin');
zdTable('project')->config('kanbanexecution')->gen(5);
zdTable('kanbanregion')->config('rdkanbanregion')->gen(5);
zdTable('kanbangroup')->config('rdkanbangroup')->gen(20);
zdTable('kanbancolumn')->gen(20);
zdTable('kanbanlane')->config('rdkanbanlane')->gen(10);
zdTable('kanbancell')->config('rdkanbancell')->gen(20);
zdTable('task')->config('rdkanbantask')->gen(20);
/**
title=测试 kanbanModel->getCardGroupByExecution();
timeout=0
cid=1
pid=1
测试查询execution161的卡片 >> 5
测试查询execution161的task卡片 >> 1
测试查询execution161的bug卡片 >> 3
测试查询execution161的story卡片 >> 1
测试查询execution162的卡片 >> 5
测试查询execution162的task卡片 >> 1
测试查询execution162的bug卡片 >> 3
测试查询execution162的story卡片 >> 1
测试查询execution163的卡片 >> 4
测试查询execution164的卡片 >> 4
测试查询execution165的卡片 >> 0
- 测试查询execution1的卡片数量 @2
- 测试查询execution1的task卡片数量 @2
- 测试查询execution1的bug卡片数量 @0
- 测试查询execution1的story卡片数量 @0
- 测试查询execution2的卡片数量 @2
- 测试查询execution2的task卡片数量 @2
- 测试查询execution2的bug卡片数量 @0
- 测试查询execution2的story卡片数量 @0
- 测试查询execution3的卡片数量 @2
- 测试查询execution4的卡片数量 @2
- 测试查询execution5的卡片数量 @2
*/
$executionIDList = array('161', '162', '163', '164', '165');
$executionIDList = array(1, 2, 3, 4, 5);
$browseTypeList = array('task', 'bug', 'story');
$kanban = new kanbanTest();
r($kanban->getCardGroupByExecutionTest($executionIDList[0])) && p() && e('5'); // 测试查询execution161的卡片
r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[0])) && p() && e('1'); // 测试查询execution161的task卡片
r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[1])) && p() && e('3'); // 测试查询execution161的bug卡片
r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[2])) && p() && e('1'); // 测试查询execution161的story卡片
r($kanban->getCardGroupByExecutionTest($executionIDList[1])) && p() && e('5'); // 测试查询execution162的卡片
r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[0])) && p() && e('1'); // 测试查询execution162的task卡片
r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[1])) && p() && e('3'); // 测试查询execution162的bug卡片
r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[2])) && p() && e('1'); // 测试查询execution162的story卡片
r($kanban->getCardGroupByExecutionTest($executionIDList[2])) && p() && e('4'); // 测试查询execution163的卡片
r($kanban->getCardGroupByExecutionTest($executionIDList[3])) && p() && e('4'); // 测试查询execution164的卡片
r($kanban->getCardGroupByExecutionTest($executionIDList[4])) && p() && e('0'); // 测试查询execution165的卡片
r($kanban->getCardGroupByExecutionTest($executionIDList[0])) && p() && e('2'); // 测试查询execution1的卡片数量
r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[0])) && p() && e('2'); // 测试查询execution1的task卡片数量
r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[1])) && p() && e('0'); // 测试查询execution1的bug卡片数量
r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[2])) && p() && e('0'); // 测试查询execution1的story卡片数量
r($kanban->getCardGroupByExecutionTest($executionIDList[1])) && p() && e('2'); // 测试查询execution2的卡片数量
r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[0])) && p() && e('2'); // 测试查询execution2的task卡片数量
r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[1])) && p() && e('0'); // 测试查询execution2的bug卡片数量
r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[2])) && p() && e('0'); // 测试查询execution2的story卡片数量
r($kanban->getCardGroupByExecutionTest($executionIDList[2])) && p() && e('2'); // 测试查询execution3的卡片数量
r($kanban->getCardGroupByExecutionTest($executionIDList[3])) && p() && e('2'); // 测试查询execution4的卡片数量
r($kanban->getCardGroupByExecutionTest($executionIDList[4])) && p() && e('2'); // 测试查询execution5的卡片数量