Merge branch 'sprint/244_tianshujie_fixbug' into 'master'

Sprint/244 tianshujie fixbug

See merge request easycorp/zentaopms!5633
This commit is contained in:
李玉春
2022-09-30 00:58:12 +00:00
14 changed files with 35 additions and 33 deletions
+1
View File
@@ -121,3 +121,4 @@
#kanban .kanban-affixed .kanban-header-col .title.action-dbc {pointer-events: none;}
#kanban .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .text {color: #fff;}
#kanban .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .caret {display: none;}
.kanban-card a[disabled] {color: #313c52;}
+1
View File
@@ -73,3 +73,4 @@
#kanbans .kanban-affixed .kanban-header-col .title.action-dbc {pointer-events: none;}
#kanbans .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .text {color: #fff;}
#kanbans .kanban-affixed .kanban-header-col .title.action-dbc .storyColumn .caret {display: none;}
.kanban-card a[disabled] {color: #313c52;}
+1 -1
View File
@@ -13,7 +13,7 @@
</div>
</div>
<div class="btn-toolbar pull-left">
<?php echo html::a(inlink('testcase', "executionID=$executionID&productID=$productID&branchID=$branchID&type=$type&moduleID=$moduleID&orderBy=$orderBy"), "<span class='text'>{$lang->execution->featureBar['all']['all']}</span>", '', "class='btn btn-link btn-active-text'");?>
<?php echo html::a(inlink('testcase', "executionID=$executionID&productID=$productID&branchID=$branchID&type=$type&moduleID=$moduleID&orderBy=$orderBy"), "<span class='text'>{$lang->execution->featureBar['all']['all']}</span> <span class='label label-light label-badge'>{$pager->recTotal}</span>", '', "class='btn btn-link btn-active-text'");?>
</div>
<div class="btn-toolbar pull-right">
<?php if(common::canModify('execution', $execution)) echo html::a(helper::createLink('testcase', 'create', "productID=$productID&branch=0&moduleID=0&from=execution&param=$execution->id", '', '', '', true), "<i class='icon icon-plus'></i> " . $lang->testcase->create, '', "class='btn btn-primary' data-app='{$this->app->tab}'");?>
+1
View File
@@ -1446,6 +1446,7 @@ $(function()
{
initKanban($(this));
});
initRegionTabs();
if(navigator.userAgent.toLowerCase().indexOf("qqbrowser") > -1) $('.region .kanban-header-col > .actions').css('top', '30%');
+9 -9
View File
@@ -36,13 +36,13 @@
<tr>
<th class='c-id'><?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
<th><?php common::printOrderLink('name', $orderBy, $vars, $lang->project->name);?></th>
<th class='c-user'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->project->PM);?></th>
<?php if($status == 'openedbyme'):?>
<th class='c-status'><?php common::printOrderLink('status', $orderBy, $vars, $lang->project->status);?></th>
<?php endif;?>
<th class='text-right c-budget'><?php common::printOrderLink('budget', $orderBy, $vars, $lang->project->budget);?></th>
<th class='c-date c-begin'><?php common::printOrderLink('begin', $orderBy, $vars, $lang->project->begin);?></th>
<th class='c-date c-end'><?php common::printOrderLink('end', $orderBy, $vars, $lang->project->end);?></th>
<th class='text-right c-budget'><?php common::printOrderLink('budget', $orderBy, $vars, $lang->project->budget);?></th>
<th class='c-user'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->project->PM);?></th>
<th class='text-center c-actions-6'><?php echo $lang->actions;?></th>
</tr>
</thead>
@@ -53,13 +53,6 @@
<td class='c-name text-left' title='<?php echo $project->name?>'>
<?php echo html::a($this->createLink('project', 'index', "projectID=$project->id", '', '', $project->id), $project->name, '', "data-group='project' title='{$project->name} ({$this->lang->project->{$project->model}})'");?>
</td>
<?php if($status == 'openedbyme'):?>
<td class='c-status'><span class="status-project status-<?php echo $project->status?>"><?php echo zget($lang->project->statusList, $project->status, '');?></span></td>
<?php endif;?>
<td class='text-left'><?php echo $project->begin;?></td>
<td class='text-left'><?php echo $project->end == LONG_TIME ? $this->lang->project->longTime : $project->end;?></td>
<?php $projectBudget = in_array($this->app->getClientLang(), array('zh-cn','zh-tw')) ? round((float)$project->budget / 10000, 2) . $this->lang->project->tenThousand : round((float)$project->budget, 2);?>
<td class='text-right c-budget'><?php echo $project->budget != 0 ? zget($lang->project->currencySymbol, $project->budgetUnit) . ' ' . $projectBudget : $lang->project->future;?></td>
<td class='c-manager'>
<?php if(!empty($project->PM)):?>
<?php $userName = zget($users, $project->PM);?>
@@ -68,6 +61,13 @@
<?php echo html::a($this->createLink('user', 'profile', "userID=$userID", '', true), $userName, '', "title='{$userName}' data-toggle='modal' data-type='iframe' data-width='600'");?>
<?php endif;?>
</td>
<?php if($status == 'openedbyme'):?>
<td class='c-status'><span class="status-project status-<?php echo $project->status?>"><?php echo zget($lang->project->statusList, $project->status, '');?></span></td>
<?php endif;?>
<?php $projectBudget = in_array($this->app->getClientLang(), array('zh-cn','zh-tw')) ? round((float)$project->budget / 10000, 2) . $this->lang->project->tenThousand : round((float)$project->budget, 2);?>
<td class='text-right c-budget'><?php echo $project->budget != 0 ? zget($lang->project->currencySymbol, $project->budgetUnit) . ' ' . $projectBudget : $lang->project->future;?></td>
<td class='text-left'><?php echo $project->begin;?></td>
<td class='text-left'><?php echo $project->end == LONG_TIME ? $this->lang->project->longTime : $project->end;?></td>
<td class='c-actions'>
<?php if($project->status == 'wait' || $project->status == 'suspended') common::printIcon('project', 'start', "projectID=$project->id", $project, 'list', 'play', '', 'iframe', true);?>
<?php if($project->status == 'doing') common::printIcon('project', 'close', "projectID=$project->id", $project, 'list', 'off', '', 'iframe', true);?>
+1 -1
View File
@@ -11,7 +11,7 @@ $config->product->custom->batchEditFields = 'line,PO,QD,RD';
if($config->systemMode == 'new') $config->product->custom->batchEditFields .= ',program';
$config->product->list = new stdclass();
$config->product->list->exportFields = 'id,program,line,name,activeRequirements,changedRequirements,draftRequirements,closedRequirements,requireCompleteRate,activeStories,changedStories,draftStories,closedStories,storyCompleteRate,plans,releases,bugs,unResolvedBugs,assignToNullBugs,closedBugs,bugFixedRate';
$config->product->list->exportFields = 'id,program,line,name,manager,draftStories,activeStories,changedStories,reviewingStories,closedStories,storyCompleteRate,bugs,unResolvedBugs,assignToNullBugs,bugFixedRate,plans,releases';
$config->product->showBranchMethod = 'browse,project';
+6 -14
View File
@@ -1440,7 +1440,6 @@ class product extends control
$productConfig = $this->config->product;
/* Create field lists. */
if(!$this->config->URAndSR) $productConfig->list->exportFields = str_replace('activeRequirements,changedRequirements,draftRequirements,closedRequirements,requireCompleteRate,', '', $productConfig->list->exportFields);
$fields = $this->post->exportFields ? $this->post->exportFields : explode(',', $productConfig->list->exportFields);
foreach($fields as $key => $fieldName)
{
@@ -1451,28 +1450,21 @@ class product extends control
$lastProgram = $lastLine = '';
$lines = $this->product->getLinePairs();
$users = $this->user->getPairs('noletter');
$productStats = $this->product->getStats('program_desc,line_desc,' . $orderBy, null, $status);
foreach($productStats as $i => $product)
{
$product->line = zget($lines, $product->line, '');
if($this->config->URAndSR)
{
$product->activeRequirements = (int) $product->requirements['active'];
$product->changedRequirements = (int) $product->requirements['changing'];
$product->draftRequirements = (int) $product->requirements['draft'];
$product->closedRequirements = (int) $product->requirements['closed'];
$product->totalRequirements = $product->activeRequirements + $product->changedRequirements + $product->draftRequirements + $product->closedRequirements;
$product->requireCompleteRate = ($product->totalRequirements == 0 ? 0 : round($product->closedRequirements / $product->totalRequirements, 3) * 100) . '%';
}
$product->line = zget($lines, $product->line, '');
$product->manager = zget($users, $product->PO, '');
$product->draftStories = (int)$product->stories['draft'];
$product->activeStories = (int)$product->stories['active'];
$product->changedStories = (int)$product->stories['changing'];
$product->draftStories = (int)$product->stories['draft'];
$product->reviewingStories = (int)$product->stories['reviewing'];
$product->closedStories = (int)$product->stories['closed'];
$product->totalStories = $product->activeStories + $product->changedStories + $product->draftStories + $product->closedStories;
$product->totalStories = $product->activeStories + $product->changedStories + $product->draftStories + $product->closedStories + $product->reviewingStories;
$product->storyCompleteRate = ($product->totalStories == 0 ? 0 : round($product->closedStories / $product->totalStories, 3) * 100) . '%';
$product->unResolvedBugs = (int)$product->unResolved;
$product->assignToNullBugs = (int)$product->assignToNull;
$product->closedBugs = (int)$product->closedBugs;
$product->bugFixedRate = (($product->unResolved + $product->fixedBugs) == 0 ? 0 : round($product->fixedBugs / ($product->unResolved + $product->fixedBugs), 3) * 100) . '%';
$product->program = $product->programName;
+2
View File
@@ -72,6 +72,8 @@ $lang->product->changedStories = 'Geänderte [S]';
$lang->product->changedStoriesTitle = 'Changed Stories';
$lang->product->draftStories = 'Entwurf [S]';
$lang->product->draftStoriesTitle = 'Draft Stories';
$lang->product->reviewingStories = "Reviewing [S]";
$lang->product->reviewingStoriesTitle = "Reviewing Stories";
$lang->product->closedStories = 'Geschlossene [S]';
$lang->product->closedStoriesTitle = 'Closed Stories';
$lang->product->storyCompleteRate = "{$lang->SRCommon} Completion rate";
+2
View File
@@ -72,6 +72,8 @@ $lang->product->changedStories = 'Changed [S]';
$lang->product->changedStoriesTitle = 'Changed Stories';
$lang->product->draftStories = 'Draft [S]';
$lang->product->draftStoriesTitle = 'Draft Stories';
$lang->product->reviewingStories = "Reviewing [S]";
$lang->product->reviewingStoriesTitle = "Reviewing Stories";
$lang->product->closedStories = 'Closed [S]';
$lang->product->closedStoriesTitle = 'Closed Stories';
$lang->product->storyCompleteRate = "{$lang->SRCommon} Completion rate";
+2
View File
@@ -72,6 +72,8 @@ $lang->product->changedStories = 'Changées [S]';
$lang->product->changedStoriesTitle = 'Stories Modifiées';
$lang->product->draftStories = 'Brouillon [S]';
$lang->product->draftStoriesTitle = 'Stories en Analyse';
$lang->product->reviewingStories = "Reviewing [S]";
$lang->product->reviewingStoriesTitle = "Reviewing Stories";
$lang->product->closedStories = 'Fermées [S]';
$lang->product->closedStoriesTitle = 'Stories Fermées';
$lang->product->storyCompleteRate = "{$lang->SRCommon} Completion rate";
+2
View File
@@ -72,6 +72,8 @@ $lang->product->changedStories = "已变更{$lang->SRCommon}";
$lang->product->changedStoriesTitle = "已变更{$lang->SRCommon}";
$lang->product->draftStories = "草稿{$lang->SRCommon}";
$lang->product->draftStoriesTitle = "草稿{$lang->SRCommon}";
$lang->product->reviewingStories = "评审中{$lang->SRCommon}";
$lang->product->reviewingStoriesTitle = "评审中{$lang->SRCommon}";
$lang->product->closedStories = "已关闭{$lang->SRCommon}";
$lang->product->closedStoriesTitle = "已关闭{$lang->SRCommon}";
$lang->product->storyCompleteRate = "{$lang->SRCommon}完成率";
+2 -2
View File
@@ -1184,7 +1184,7 @@ class productplanModel extends model
$menu .= "<button type='button' class='btn disabled'><i class='icon-plus' title='{$this->lang->productplan->createExecution}'></i></button>";
}
if(($canStart or $canFinish or $canClose or $canCreateExec) and ($canLinkStory or $canLinkBug or $canEdit or $canCreateChild or $canDelete))
if($type == 'browse' and ($canStart or $canFinish or $canClose or $canCreateExec) and ($canLinkStory or $canLinkBug or $canEdit or $canCreateChild or $canDelete))
{
$menu .= "<div class='dividing-line'></div>";
}
@@ -1212,7 +1212,7 @@ class productplanModel extends model
$menu .= $this->buildMenu('productplan', 'create', "product={$plan->product}&branch={$plan->branch}&parent={$plan->id}", $plan, $type, 'split', '', '', '', '', $this->lang->productplan->children);
if(($canLinkStory or $canLinkBug or $canEdit or $canCreateChild) and $canDelete)
if($type == 'browse' and ($canLinkStory or $canLinkBug or $canEdit or $canCreateChild) and $canDelete)
{
$menu .= "<div class='dividing-line'></div>";
}
+4 -5
View File
@@ -52,7 +52,7 @@
</th>
<th rowspan="2"><?php common::printOrderLink('name', $orderBy, $vars, $lang->product->name);?></th>
<th class='c-PO' rowspan="2"><?php common::printOrderLink('PO', $orderBy, $vars, $lang->product->manager);?></th>
<th class='c-story' colspan="4"><?php echo $lang->story->story;?></th>
<th class='c-story' colspan="5"><?php echo $lang->story->story;?></th>
<th class='c-bug' colspan="2"><?php echo $lang->bug->common;?></th>
<th class='c-plan' rowspan="2"><?php echo $lang->product->plan;?></th>
<th class='c-release' rowspan="2"><?php echo $lang->product->release;?></th>
@@ -62,6 +62,7 @@
<th style="border-left: 1px solid #ddd;"><?php echo $lang->story->draft;?></th>
<th><?php echo $lang->story->activate;?></th>
<th><?php echo $lang->story->change;?></th>
<th><?php echo $lang->story->review;?></th>
<th><?php echo $lang->story->completeRate;?></th>
<th style="border-left: 1px solid #ddd;"><?php echo $lang->bug->activate;?></th>
<th><?php echo $lang->bug->fixedRate;?></th>
@@ -69,10 +70,7 @@
</thead>
<tbody class="sortable" id="productTableList">
<?php foreach($products as $product):?>
<?php
$totalStories = $product->stories['active'] + $product->stories['closed'] + $product->stories['draft'] + $product->stories['changing'];
$totalRequirements = $product->requirements['active'] + $product->requirements['closed'] + $product->requirements['draft'] + $product->requirements['changing'];
?>
<?php $totalStories = $product->stories['active'] + $product->stories['closed'] + $product->stories['draft'] + $product->stories['changing'] + $product->stories['reviewing'];?>
<tr class="text-center" data-id='<?php echo $product->id ?>' data-order='<?php echo $product->code;?>'>
<td class='c-id text-left'>
<?php if($canBatchEdit):?>
@@ -96,6 +94,7 @@
<td><?php echo $product->stories['draft'];?></td>
<td><?php echo $product->stories['active'];?></td>
<td><?php echo $product->stories['changing'];?></td>
<td><?php echo $product->stories['reviewing'];?></td>
<td><?php echo $totalStories == 0 ? 0 : round($product->stories['closed'] / $totalStories, 3) * 100;?>%</td>
<td><?php echo $product->unResolved;?></td>
<td><?php echo ($product->unResolved + $product->fixedBugs) == 0 ? 0 : round($product->fixedBugs / ($product->unResolved + $product->fixedBugs), 3) * 100;?>%</td>
+1 -1
View File
@@ -63,7 +63,7 @@ class project extends control
$project->PM = zget($users, $project->PM);
$project->status = $this->processStatus('project', $project);
$project->model = zget($projectLang->modelList, $project->model);
$project->budget = $project->budget . zget($projectLang->unitList, $project->budgetUnit);
$project->budget = $project->budget != 0 ? $project->budget . zget($projectLang->unitList, $project->budgetUnit) : $this->lang->project->future;
$project->parent = $project->parentName;
$linkedProducts = $this->product->getProducts($project->id, 'all', '', false);