From 9c24b069d60930596e00da9d392008c16185ff48 Mon Sep 17 00:00:00 2001 From: Yagami <976204163@qq.com> Date: Fri, 21 Aug 2020 10:56:19 +0800 Subject: [PATCH] * Add new block. --- db/update20.0.sql | 2 + module/block/control.php | 23 ++++++++++++ module/block/lang/zh-cn.php | 17 ++++++--- module/block/view/programblock.html.php | 49 +++++++++++++++++++++++++ module/program/lang/zh-cn.php | 4 ++ module/program/model.php | 14 +++++++ 6 files changed, 104 insertions(+), 5 deletions(-) create mode 100644 module/block/view/programblock.html.php diff --git a/db/update20.0.sql b/db/update20.0.sql index db8621b521..34f3049c5c 100644 --- a/db/update20.0.sql +++ b/db/update20.0.sql @@ -288,3 +288,5 @@ CREATE TABLE `zt_weeklyreport`( ALTER TABLE `zt_project` ADD `path` varchar(255) NOT NULL AFTER `parent`; ALTER TABLE `zt_project` ADD `grade` tinyint unsigned NOT NULL AFTER `path`; + +INSERT INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system','custom','','URAndSR','1'),('system','custom','','URSRName','{\"urCommon\":{\"zh-cn\":\"\\u7528\\u6237\\u9700\\u6c42\"},\"srCommon\":{\"zh-cn\":\"\\u8f6f\\u4ef6\\u9700\\u6c42\"}}'),('system','custom','','storyPoint','1'); diff --git a/module/block/control.php b/module/block/control.php index b8f6bb7c34..8f6d3db45c 100644 --- a/module/block/control.php +++ b/module/block/control.php @@ -699,6 +699,29 @@ class block extends control ->fetchAll(); } + 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('status')->ne('cancel')->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) : 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->users = $this->loadModel('user')->getPairs('noletter'); + } + /** * Print product block. * diff --git a/module/block/lang/zh-cn.php b/module/block/lang/zh-cn.php index 248f032da5..236fd4280a 100644 --- a/module/block/lang/zh-cn.php +++ b/module/block/lang/zh-cn.php @@ -256,9 +256,16 @@ $lang->block->default['full']['my']['7']['params']['orderBy'] = 'id_desc'; $lang->block->default['full']['my']['7']['params']['num'] = '15'; $lang->block->default['full']['my']['7']['params']['type'] = 'assignedTo'; -$lang->block->default['full']['my']['8']['title'] = '项目人力投入'; -$lang->block->default['full']['my']['8']['block'] = 'programteam'; -$lang->block->default['full']['my']['8']['grid'] = 8; +$lang->block->default['full']['my']['8']['title'] = '项目人力投入'; +$lang->block->default['full']['my']['8']['block'] = 'programteam'; +$lang->block->default['full']['my']['8']['grid'] = 8; + +$lang->block->default['full']['my']['8']['title'] = '项目列表'; +$lang->block->default['full']['my']['8']['block'] = 'program'; +$lang->block->default['full']['my']['8']['grid'] = 8; + +$lang->block->default['full']['my']['8']['params']['orderBy'] = 'id_desc'; +$lang->block->default['full']['my']['8']['params']['num'] = '15'; $lang->block->num = '数量'; $lang->block->type = '类型'; @@ -278,15 +285,15 @@ $lang->block->availableBlocks->release = '发布列表'; $lang->block->availableBlocks->build = '版本列表'; $lang->block->availableBlocks->testtask = '测试版本列表'; +$lang->block->moduleList['program'] = '项目'; $lang->block->moduleList['product'] = $lang->productCommon; $lang->block->moduleList['project'] = $lang->projectCommon; $lang->block->moduleList['qa'] = '测试'; $lang->block->moduleList['todo'] = '待办'; -$lang->block->moduleList['program'] = '项目'; - $lang->block->modules['program'] = new stdclass(); $lang->block->modules['program']->availableBlocks = new stdclass(); +$lang->block->modules['program']->availableBlocks->list = '项目列表'; $lang->block->modules['program']->availableBlocks->scrumoverall = '项目整体情况'; $lang->block->modules['program']->availableBlocks->scrumprogress = '进行中的迭代'; $lang->block->modules['program']->availableBlocks->scrumproject = '迭代总览'; diff --git a/module/block/view/programblock.html.php b/module/block/view/programblock.html.php new file mode 100644 index 0000000000..7d741e602e --- /dev/null +++ b/module/block/view/programblock.html.php @@ -0,0 +1,49 @@ + +
block->emptyTip;?>
+ + +
+ '> + + + + + + + + + + + + + + + + + + createLink('program', 'index', "programID={$program->id}"); + ?> + + + + + + + + + + + + + + + +
program->name;?> program->PM;?>program->status;?>program->countMembers;?>task->consumed;?>program->budget;?>program->leftStories;?>program->leftTasks;?>program->leftBugs;?>
name);?>PM, $program->PM)?> + project->statusList, $program->status);?> + countMembers;?>consumed;?>budget . ' ' . zget($lang->program->unitList, $program->budgetUnit);?>leftStories;?>leftTasks;?>leftBugs;?>
+
+ diff --git a/module/program/lang/zh-cn.php b/module/program/lang/zh-cn.php index eabbc0158e..eeb12de7bd 100644 --- a/module/program/lang/zh-cn.php +++ b/module/program/lang/zh-cn.php @@ -47,6 +47,10 @@ $lang->program->setPlanduration = '设置工期'; $lang->program->privway = '权限控制'; $lang->program->durationEstimation = '工作量估算'; $lang->program->progress = '项目进度'; +$lang->program->countMembers = '投入人数'; +$lang->program->leftStories = '剩余需求'; +$lang->program->leftTasks = '剩余任务'; +$lang->program->leftBugs = '剩余Bug'; $lang->program->unitList[''] = ''; $lang->program->unitList['yuan'] = '元'; diff --git a/module/program/model.php b/module/program/model.php index 3df689e5ce..ac9be89715 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -41,6 +41,20 @@ class programModel extends model ->fetchPairs(); } + public function getUserPrograms($status = 'all', $orderBy = 'id_desc', $limit = 15) + { + return $this->dao->select('*')->from(TABLE_PROJECT) + ->where('iscat')->eq(0) + ->andWhere('template')->ne('') + ->andWhere('program')->eq(0) + ->andWhere('deleted')->eq(0) + ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->programs)->fi() + ->beginIF($status != 'all')->andWhere('status')->eq($status)->fi() + ->orderBy($orderBy) + ->limit($limit) + ->fetchAll('id'); + } + /** * Show accessDenied response. *