|
- id);?>
+ id);?>
|
- code;?> |
-
- id"), $project->name);?>
+ | code;?> |
+
+ id"), $program->name);?>
|
- project->statusList, $project->status, '');?> |
- begin;?> |
- end;?> |
- budget . ' ' . zget($lang->program->unitList, $project->budgetUnit);?> |
- PM);?> |
+ project->statusList, $program->status, '');?> |
+ begin;?> |
+ end;?> |
+ budget . ' ' . zget($lang->program->unitList, $program->budgetUnit);?> |
+ PM);?> |
- id", $project, 'list', 'group');?>
- id", $project, 'list', 'persons');?>
- id", $project, 'list', '', '', 'iframe', true);?>
- id", $project, 'list', '', '', 'iframe', true);?>
- id", $project, 'list', '', '', 'iframe', true);?>
- id", $project, 'list', '', '', 'iframe', true);?>
- createLink("program", "edit", "projectID=$project->id"), "", '', "class='btn' title='{$lang->edit}'");?>
- id", '', 'list', 'treemap-alt', '', '', '', '', $this->lang->program->children);?>
- createLink("program", "delete", "projectID=$project->id"), "", 'hiddenwin', "class='btn' title='{$lang->delete}'");?>
+ id", $program, 'list', 'group');?>
+ id", $program, 'list', 'persons');?>
+ id", $program, 'list', '', '', 'iframe', true);?>
+ id", $program, 'list', '', '', 'iframe', true);?>
+ id", $program, 'list', '', '', 'iframe', true);?>
+ id", $program, 'list', '', '', 'iframe', true);?>
+ createLink("program", "edit", "programID=$program->id"), "", '', "class='btn' title='{$lang->edit}'");?>
+ id", '', 'list', 'treemap-alt', '', '', '', '', $this->lang->program->children);?>
+ createLink("program", "delete", "programID=$program->id"), "", 'hiddenwin', "class='btn' title='{$lang->delete}'");?>
|
|
diff --git a/module/project/model.php b/module/project/model.php
index 8465d934ec..a94c320846 100644
--- a/module/project/model.php
+++ b/module/project/model.php
@@ -756,8 +756,9 @@ class projectModel extends model
* @access public
* @return array
*/
- public function getList($status = 'all', $limit = 0, $productID = 0, $branch = 0)
+ public function getList($status = 'all', $limit = 0, $productID = 0, $branch = 0, $programID = 0)
{
+ $programID = $programID ? $programID : $this->session->programID;
if($status == 'involved') return $this->getInvolvedList($status, $limit, $productID, $branch);
if($productID != 0)
@@ -767,7 +768,7 @@ class projectModel extends model
->where('t1.product')->eq($productID)
->andWhere('t2.deleted')->eq(0)
->andWhere('t2.iscat')->eq(0)
- ->beginIF($this->session->program)->andWhere('t2.program')->eq($this->session->program)->fi()
+ ->beginIF($programID)->andWhere('t2.program')->eq($programID)->fi()
->andWhere('t2.template')->eq('')
->beginIF($status == 'undone')->andWhere('t2.status')->notIN('done,closed')->fi()
->beginIF($branch)->andWhere('t1.branch')->eq($branch)->fi()
@@ -784,7 +785,7 @@ class projectModel extends model
->beginIF($status != 'all' and $status != 'undone')->andWhere('status')->in($status)->fi()
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->projects)->fi()
->andWhere('deleted')->eq(0)
- ->beginIF($this->session->program)->andWhere('program')->eq($this->session->program)->fi()
+ ->beginIF($programID)->andWhere('program')->eq($programID)->fi()
->andWhere('template')->eq('')
->orderBy('order_desc')
->beginIF($limit)->limit($limit)->fi()
@@ -916,10 +917,10 @@ class projectModel extends model
* @access public
* @return void
*/
- public function getProjectStats($status = 'undone', $productID = 0, $branch = 0, $itemCounts = 30, $orderBy = 'order_desc', $pager = null)
+ public function getProjectStats($status = 'undone', $productID = 0, $branch = 0, $itemCounts = 30, $orderBy = 'order_desc', $pager = null, $programID = 0)
{
/* Init vars. */
- $projects = $this->getList($status, 0, $productID, $branch);
+ $projects = $this->getList($status, 0, $productID, $branch, $programID);
$projects = $this->dao->select('*')->from(TABLE_PROJECT)
->where('id')->in(array_keys($projects))
->orderBy($orderBy)
From ecbeb7f598192f8502eea72dc6aea3a9dcfd6801 Mon Sep 17 00:00:00 2001
From: sgm0422 <976204163@qq.com>
Date: Sun, 23 Aug 2020 15:24:16 +0800
Subject: [PATCH 4/8] * Fix code details.
---
module/block/control.php | 29 ++-------------
module/block/view/programblock.html.php | 4 +-
module/program/lang/zh-cn.php | 2 +-
module/program/model.php | 49 ++++++++++++++++++++++++-
4 files changed, 54 insertions(+), 30 deletions(-)
diff --git a/module/block/control.php b/module/block/control.php
index ba18c80ff6..b14d058819 100644
--- a/module/block/control.php
+++ b/module/block/control.php
@@ -701,23 +701,8 @@ class block extends control
public function printProgramBlock()
{
$this->loadModel('project');
- $programs = $this->loadModel('program')->getUserPrograms('all', $this->params->orderBy, $this->params->num);
- foreach($programs as $programID => $program)
- {
- $members = $this->project->getTeamMemberPairs($programID);
- $consumed = $this->dao->select('sum(consumed) as consumed')->from(TABLE_TASK)->where('program')->eq($programID)->andWhere('deleted')->eq(0)->andWhere('parent')->lt(1)->fetch('consumed');
- $leftTasks = $this->dao->select('count(*) as leftTasks')->from(TABLE_TASK)->where('program')->eq($programID)->andWhere('deleted')->eq(0)->andWhere('status')->in('wait,doing,pause')->fetch('leftTasks');
- $leftStories = $this->dao->select('count(*) as leftStories')->from(TABLE_STORY)->where('program')->eq($programID)->andWhere('deleted')->eq(0)->andWhere('status')->eq('active')->fetch('leftStories');
- $leftBugs = $this->dao->select('count(*) as leftBugs')->from(TABLE_BUG)->where('program')->eq($programID)->andWhere('deleted')->eq(0)->andWhere('status')->eq('active')->fetch('leftBugs');
- $program->countMembers = count($members) ? count($members) - 1 : 0;
- $program->consumed = $consumed ? $consumed : 0;
- $program->leftTasks = $leftTasks ? $leftTasks : 0;
- $program->leftStories = $leftStories ? $leftStories : 0;
- $program->leftBugs = $leftBugs ? $leftBugs : 0;
- }
-
- $this->view->programs = $programs;
+ $this->view->programs = $this->loadModel('program')->getUserPrograms('all', $this->params->orderBy, $this->params->num);
$this->view->users = $this->loadModel('user')->getPairs('noletter');
}
@@ -776,8 +761,8 @@ class block extends control
$this->app->loadLang('task');
$this->app->loadLang('story');
- $status = isset($this->params->type) ? $this->params->type : 'all';
- $num = isset($this->params->num) ? (int)$this->params->num : 15;
+ $status = isset($this->params->type) ? $this->params->type : 'all';
+ $num = isset($this->params->num) ? (int)$this->params->num : 15;
/* Get projects. */
$programs = $this->loadModel('program')->getUserPrograms($status, 'id_desc', $num);
@@ -790,14 +775,6 @@ class block extends control
foreach($programs as $programID => $program)
{
$program->allStories = $program->doneStories = $program->leftStories = 0;
- $program->consumed = $this->dao->select('sum(consumed) as consumed')->from(TABLE_TASK)
- ->where('program')->eq($programID)
- ->andWhere('deleted')->eq(0)
- ->andWhere('parent')->lt(1)
- ->fetch('consumed');
-
- $members = $this->project->getTeamMemberPairs($programID);
- $program->countMembers = count($members) ? count($members) - 1 : 0;
$stories = $this->dao->select('id, status')->from(TABLE_STORY)
->where('deleted')->eq(0)
diff --git a/module/block/view/programblock.html.php b/module/block/view/programblock.html.php
index 7d741e602e..3d071e1536 100644
--- a/module/block/view/programblock.html.php
+++ b/module/block/view/programblock.html.php
@@ -13,7 +13,7 @@
program->PM;?> |
program->status;?> |
- program->countMembers;?> |
+ program->teamCount;?> |
task->consumed;?> |
program->budget;?> |
program->leftStories;?> |
@@ -34,7 +34,7 @@
project->statusList, $program->status);?>
- countMembers;?> |
+ teamCount;?> |
consumed;?> |
budget . ' ' . zget($lang->program->unitList, $program->budgetUnit);?> |
leftStories;?> |
diff --git a/module/program/lang/zh-cn.php b/module/program/lang/zh-cn.php
index 008cb47435..2424e68554 100644
--- a/module/program/lang/zh-cn.php
+++ b/module/program/lang/zh-cn.php
@@ -47,7 +47,7 @@ $lang->program->setPlanduration = '设置工期';
$lang->program->privway = '权限控制';
$lang->program->durationEstimation = '工作量估算';
$lang->program->progress = '项目进度';
-$lang->program->countMembers = '投入人数';
+$lang->program->teamCount = '投入人数';
$lang->program->leftStories = '剩余需求';
$lang->program->leftTasks = '剩余任务';
$lang->program->leftBugs = '剩余Bug';
diff --git a/module/program/model.php b/module/program/model.php
index b20e5db5e1..4a8bfc9e15 100644
--- a/module/program/model.php
+++ b/module/program/model.php
@@ -43,7 +43,7 @@ class programModel extends model
public function getUserPrograms($status = 'all', $orderBy = 'id_desc', $limit = 15)
{
- return $this->dao->select('*')->from(TABLE_PROJECT)
+ $programs = $this->dao->select('*')->from(TABLE_PROJECT)
->where('iscat')->eq(0)
->andWhere('template')->ne('')
->andWhere('program')->eq(0)
@@ -53,6 +53,53 @@ class programModel extends model
->orderBy($orderBy)
->limit($limit)
->fetchAll('id');
+
+ if(empty($programs)) return array();
+ $programIdList = array_keys($programs);
+
+ $consumes = $this->dao->select('program, sum(consumed) as consumed')->from(TABLE_TASK)
+ ->where('program')->in($programIdList)
+ ->andWhere('deleted')->eq(0)
+ ->andWhere('parent')->lt(1)
+ ->groupBy('program')
+ ->fetchAll('program');
+
+ $teams = $this->dao->select('root, count(*) as count')->from(TABLE_TEAM)
+ ->where('root')->in($programIdList)
+ ->groupBy('root')
+ ->fetchAll('root');
+
+ $leftTasks = $this->dao->select('program, count(*) as leftTasks')->from(TABLE_TASK)
+ ->where('program')->in($programIdList)
+ ->andWhere('deleted')->eq(0)
+ ->andWhere('status')->in('wait,doing,pause')
+ ->groupBy('program')
+ ->fetchAll('program');
+
+ $leftStories = $this->dao->select('program, count(*) as leftStories')->from(TABLE_STORY)
+ ->where('program')->in($programIdList)
+ ->andWhere('deleted')->eq(0)
+ ->andWhere('status')->eq('active')
+ ->groupBy('program')
+ ->fetchAll('program');
+
+ $leftBugs = $this->dao->select('program, count(*) as leftBugs')->from(TABLE_BUG)
+ ->where('program')->in($programIdList)
+ ->andWhere('deleted')->eq(0)
+ ->andWhere('status')->eq('active')
+ ->groupBy('program')
+ ->fetchAll('program');
+
+ foreach($programs as $programID => $program)
+ {
+ $program->teamCount = isset($teams[$programID]) ? $teams[$programID]->count : 0;
+ $program->consumed = isset($consumes[$programID]) ? $consumes[$programID] : 0;
+ $program->leftTasks = isset($leftTasks[$programID]) ? $leftTasks[$programID] : 0;
+ $program->leftStories = isset($leftStories[$programID]) ? $leftStories[$programID] : 0;
+ $program->leftBugs = isset($leftBugs[$programID]) ? $leftBugs[$programID] : 0;
+ }
+
+ return $programs;
}
/**
From 83e0d78aef643adecb5cf331b5b3eb7bdd2d96ce Mon Sep 17 00:00:00 2001
From: leiyong <1549684884@qq.com>
Date: Mon, 24 Aug 2020 08:11:20 +0800
Subject: [PATCH 5/8] * Add issue lang file.
---
module/issue/lang/en.php | 99 +++++++++++++++++++++++++++++++
module/issue/view/browse.html.php | 2 +-
2 files changed, 100 insertions(+), 1 deletion(-)
create mode 100644 module/issue/lang/en.php
diff --git a/module/issue/lang/en.php b/module/issue/lang/en.php
new file mode 100644
index 0000000000..d24dc0f1d2
--- /dev/null
+++ b/module/issue/lang/en.php
@@ -0,0 +1,99 @@
+issue->common = 'Issue';
+$lang->issue->browse = 'List';
+$lang->issue->resolvedBy = 'Resolved By';
+$lang->issue->program = 'Linked Project';
+$lang->issue->title = 'Title';
+$lang->issue->desc = 'Description';
+$lang->issue->pri = 'Priority';
+$lang->issue->severity = 'Severity';
+$lang->issue->type = 'Type';
+$lang->issue->effectedArea = 'Impact';
+$lang->issue->activity = 'Activities';
+$lang->issue->deadline = 'Deadline';
+$lang->issue->resolution = 'Resolution';
+$lang->issue->resolutionComment = 'Comment';
+$lang->issue->resolvedDate = 'Resolved Date';
+$lang->issue->status = 'Status';
+$lang->issue->createdBy = 'CreatedBy';
+$lang->issue->createdDate = 'CreatedDate';
+$lang->issue->owner = 'Owner';
+$lang->issue->editedBy = 'EditedBy';
+$lang->issue->editedDate = 'EditedDate';
+$lang->issue->activateBy = 'ActivatedBy';
+$lang->issue->activateDate = 'ActivatedDate';
+$lang->issue->closeBy = 'ClosedBy';
+$lang->issue->closedDate = 'ClosedDate';
+$lang->issue->assignedTo = 'AssignedTo';
+$lang->issue->assignedBy = 'AssignedBy';
+$lang->issue->assignedDate = 'AssignedDate';
+$lang->issue->resolved = 'Resolved';
+$lang->issue->id = 'ID';
+
+$lang->issue->delete = 'Delete';
+$lang->issue->search = 'Search';
+$lang->issue->basicInfo = 'Basic Information';
+$lang->issue->active = 'Activate';
+$lang->issue->assign = 'Assign';
+$lang->issue->create = 'Create Issue';
+$lang->issue->edit = 'Edit';
+$lang->issue->batchCreate = 'Batch Create';
+
+$lang->issue->labelList['all'] = 'All';
+$lang->issue->labelList['open'] = 'Open';
+$lang->issue->labelList['assignto'] = 'AssignedToMe';
+$lang->issue->labelList['closed'] = 'Closed';
+$lang->issue->labelList['suspended'] = 'Suspended';
+$lang->issue->labelList['cancelled'] = 'Canceled';
+
+$lang->issue->priList[''] = '';
+$lang->issue->priList['1'] = 1;
+$lang->issue->priList['2'] = 2;
+$lang->issue->priList['3'] = 3;
+$lang->issue->priList['4'] = 4;
+
+$lang->issue->severityList[''] = '';
+$lang->issue->severityList['1'] = '1';
+$lang->issue->severityList['2'] = '2';
+$lang->issue->severityList['3'] = '3';
+$lang->issue->severityList['4'] = '4';
+
+$lang->issue->typeList[''] = '';
+$lang->issue->typeList['design'] = 'Design';
+$lang->issue->typeList['code'] = 'Code';
+$lang->issue->typeList['performance'] = 'Performance';
+$lang->issue->typeList['version'] = 'Version';
+$lang->issue->typeList['storyadd'] = 'New Story';
+$lang->issue->typeList['storychanged'] = 'Story Change';
+$lang->issue->typeList['storyremoved'] = 'Story Deleted';
+$lang->issue->typeList['data'] = 'Data';
+
+$lang->issue->resolutionList['resolved'] = 'Resolved';
+$lang->issue->resolutionList['tostory'] = 'To Story';
+$lang->issue->resolutionList['tobug'] = 'To Bug';
+$lang->issue->resolutionList['torisk'] = 'To Risk';
+$lang->issue->resolutionList['totask'] = 'To Task';
+
+$lang->issue->statusList['unconfirmed'] = 'Unconfirmed';
+$lang->issue->statusList['confirmed'] = 'Confirmed';
+$lang->issue->statusList['unresolved'] = 'Unresolved';
+$lang->issue->statusList['resolved'] = 'Resolved';
+$lang->issue->statusList['canceled'] = 'Canceled';
+$lang->issue->statusList['closed'] = 'Closed';
+$lang->issue->statusList['active'] = 'Active';
+$lang->issue->statusList['suspended'] = 'Suspended';
+
+$lang->issue->resolveMethods = array();
+$lang->issue->resolveMethods['resolved'] = 'Resolved';
+$lang->issue->resolveMethods['totask'] = 'To Task';
+$lang->issue->resolveMethods['tobug'] = 'To Bug';
+$lang->issue->resolveMethods['tostory'] = 'To Story';
+$lang->issue->resolveMethods['torisk'] = 'To Risk';
+
+$lang->issue->confirmDelete = 'Do you want to delete this issue?';
+
+$lang->issue->logComments = array();
+$lang->issue->logComments['totask'] = " created Task %s";
+$lang->issue->logComments['tostory'] = " created Story %s";
+$lang->issue->logComments['tobug'] = " created Bug %s" ;
+$lang->issue->logComments['torisk'] = " created Risk %s";
diff --git a/module/issue/view/browse.html.php b/module/issue/view/browse.html.php
index 17aa5a0853..86f6f7af26 100644
--- a/module/issue/view/browse.html.php
+++ b/module/issue/view/browse.html.php
@@ -41,7 +41,7 @@
issue->title;?> |
issue->severity;?> |
issue->pri;?> |
- issue->assignedTo;?> |
+ issue->assignedTo;?> |
issue->owner;?> |
issue->status;?> |
issue->createdDate;?> |
From 0b09a6a3fcb01845f917db157f5cb5c99148141e Mon Sep 17 00:00:00 2001
From: tianshujie98
Date: Mon, 24 Aug 2020 09:16:20 +0800
Subject: [PATCH 6/8] * Finish task #7628.
---
module/design/lang/zh-cn.php | 1 +
1 file changed, 1 insertion(+)
diff --git a/module/design/lang/zh-cn.php b/module/design/lang/zh-cn.php
index c5e250e67f..ebfebea16f 100644
--- a/module/design/lang/zh-cn.php
+++ b/module/design/lang/zh-cn.php
@@ -37,6 +37,7 @@ $lang->design->createdDate = '创建时间';
$lang->design->basicInfo = '基本信息';
$lang->design->typeList = array();
+$lang->design->typeList[''] = '';
$lang->design->typeList['HLDS'] = '概要设计';
$lang->design->typeList['DDS'] = '详细设计';
$lang->design->typeList['DBDS'] = '数据库设计';
From 9bf7cd19efaf93ff682608aa3331540729858884 Mon Sep 17 00:00:00 2001
From: tianshujie98
Date: Mon, 24 Aug 2020 09:21:49 +0800
Subject: [PATCH 7/8] * Finish task #7628.
---
module/design/control.php | 1 -
1 file changed, 1 deletion(-)
diff --git a/module/design/control.php b/module/design/control.php
index f2d10cc164..8b95ae0bd8 100644
--- a/module/design/control.php
+++ b/module/design/control.php
@@ -133,7 +133,6 @@ class design extends control
$this->view->position[] = $this->lang->design->batchCreate;
$typeList = (array)$this->lang->design->typeList;
- $typeList[''] = '';
$this->view->typeList = $typeList;
$this->view->stories = $this->loadModel('story')->getProductStoryPairs($productID);
From be6daed1e665b971fca0da6205ad644884c24404 Mon Sep 17 00:00:00 2001
From: tianshujie98
Date: Mon, 24 Aug 2020 09:37:37 +0800
Subject: [PATCH 8/8] * Finish task #7628.
---
module/design/model.php | 32 +++++++++++++++-----------------
1 file changed, 15 insertions(+), 17 deletions(-)
diff --git a/module/design/model.php b/module/design/model.php
index a7820ad541..4c78a8ffbe 100644
--- a/module/design/model.php
+++ b/module/design/model.php
@@ -264,16 +264,21 @@ class designModel extends model
*/
public function getList($productID, $type = 'all', $param = 0, $orderBy = 'id_desc', $pager = null)
{
- if($type == 'bySearch') return $this->getBySearch($param, $orderBy, $pager);
-
- $designs = $this->dao->select('*')->from(TABLE_DESIGN)
- ->where('deleted')->eq(0)
- ->beginIF($this->session->program)->andWhere('program')->eq($this->session->program)->fi()
- ->beginIF($type != 'all')->andWhere('type')->in($type)->fi()
- ->andWhere('product')->eq($productID)
- ->orderBy($orderBy)
- ->page($pager)
- ->fetchAll('id');
+ if($type == 'bySearch')
+ {
+ $designs = $this->getBySearch($param, $orderBy, $pager);
+ }
+ else
+ {
+ $designs = $this->dao->select('*')->from(TABLE_DESIGN)
+ ->where('deleted')->eq(0)
+ ->beginIF($this->session->program)->andWhere('program')->eq($this->session->program)->fi()
+ ->beginIF($type != 'all')->andWhere('type')->in($type)->fi()
+ ->andWhere('product')->eq($productID)
+ ->orderBy($orderBy)
+ ->page($pager)
+ ->fetchAll('id');
+ }
foreach($designs as $id => $design)
{
@@ -324,13 +329,6 @@ class designModel extends model
->page($pager)
->fetchAll('id');
- foreach($designs as $id => $design)
- {
- $design->commit = '';
- $relations = $this->loadModel('common')->getRelations('design', $id, 'commit');
- foreach($relations as $relation) $design->commit .= html::a(helper::createLink('design', 'revision', "repoID=$relation->BID", '', true), "#$relation->BID", '_blank');
- }
-
return $designs;
}