diff --git a/module/action/model.php b/module/action/model.php index b5d66c8a55..abf3a1fd64 100755 --- a/module/action/model.php +++ b/module/action/model.php @@ -396,6 +396,7 @@ class actionModel extends model } elseif(($actionName == 'opened' or $actionName == 'managed' or $actionName == 'edited') and ($objectType == 'execution' || $objectType == 'project')) { + $this->app->loadLang('executon'); $linkedProducts = $this->dao->select('id,name')->from(TABLE_PRODUCT)->where('id')->in($action->extra)->fetchPairs('id', 'name'); $action->extra = ''; if($linkedProducts) diff --git a/module/block/control.php b/module/block/control.php index ca5f15c683..86e867339e 100644 --- a/module/block/control.php +++ b/module/block/control.php @@ -213,17 +213,17 @@ class block extends control $blocks = $this->block->getBlockList($module, $type); $commonField = 'common'; - if($module == 'program') + if($module == 'project') { - $program = $this->loadModel('project')->getByID($this->session->project); - $commonField = $program->model . 'common'; + $project = $this->loadModel('project')->getByID($this->session->project); + $commonField = $project->model . 'common'; } /* Replace the block Title saved in the database. */ - if($module == 'project') + if($module == 'execution') { $projectBlock = array(); - foreach($this->lang->block->default['project'] as $block) $projectBlock[$block['block']] = $block['title']; + foreach($this->lang->block->default['execution'] as $block) $projectBlock[$block['block']] = $block['title']; foreach($blocks as $block) $block->title = $projectBlock[$block->block]; } @@ -245,7 +245,7 @@ class block extends control continue; } - $block->params = json_decode($block->params); + $block->params = json_decode($block->params); if(isset($block->params->num) and !isset($block->params->count)) $block->params->count = $block->params->num; $blockID = $block->block; @@ -436,17 +436,17 @@ class block extends control $dashboard = $this->get->dashboard; /* Create a project block. */ - if($dashboard == 'program') + if($dashboard == 'project') { $project = $this->loadModel('project')->getByID($this->session->project); $model = $project->model; } /* Edit a project block. */ - if($id and $block->module == 'program') + if($id and $block->module == 'project') { $model = $block->type; - $dashboard = 'program'; + $dashboard = 'project'; } $blocks = $this->block->getAvailableBlocks($module, $dashboard, $model); @@ -757,7 +757,8 @@ class block extends control { $this->session->set('buildList', $this->app->getURI(true)); $this->app->loadLang('build'); - $this->view->builds = $this->dao->select('t1.*, t2.name as productName')->from(TABLE_BUILD)->alias('t1') + + $builds = $this->dao->select('t1.*, t2.name as productName')->from(TABLE_BUILD)->alias('t1') ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product=t2.id') ->where('t1.deleted')->eq('0') ->beginIF(!$this->app->user->admin)->andWhere('t1.project')->in($this->app->user->view->projects)->fi() @@ -765,6 +766,7 @@ class block extends control ->orderBy('t1.id desc') ->beginIF($this->viewType != 'json')->limit((int)$this->params->count)->fi() ->fetchAll(); + $this->view->builds = $builds; } /** @@ -773,9 +775,9 @@ class block extends control * @access public * @return void */ - public function printProgramBlock() + public function printProjectBlock() { - $this->app->loadLang('project'); + $this->app->loadLang('execution'); $this->app->loadLang('task'); $count = isset($this->params->count) ? $this->params->count : 15; $type = isset($this->params->type) ? $this->params->type : 'all'; @@ -833,7 +835,7 @@ class block extends control * @access public * @return void */ - public function printProgramStatisticBlock() + public function printProjectStatisticBlock() { if(!empty($this->params->type) and preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die(); @@ -872,7 +874,7 @@ class block extends control if($project->model == 'scrum') { $project->progress = $project->allStories == 0 ? 0 : round($project->doneStories / $project->allStories, 3) * 100; - $project->executions = $this->loadModel('execution')->getStats($projectID, 'all', 0, 0, 30, 'id_asc'); + $project->executions = $this->project->getStats($projectID, 'all', 0, 0, 30, 'id_asc'); } elseif($project->model == 'waterfall' and isset($this->config->maxVersion)) { @@ -1034,7 +1036,7 @@ class block extends control * @access public * @return void */ - public function printProjectStatisticBlock() + public function printExecutionStatisticBlock() { if(!empty($this->params->type) and preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die(); @@ -1305,6 +1307,7 @@ class block extends control public function printScrumOverviewBlock() { $projectID = $this->session->project; + $this->app->loadLang('execution'); $totalData = $this->loadModel('project')->getOverviewList('byId', $projectID, 'id_desc', 1); $this->view->totalData = $totalData; @@ -1319,12 +1322,14 @@ class block extends control */ public function printScrumListBlock() { - $this->app->loadClass('pager', $static = true); if(!empty($this->params->type) and preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die(); $count = isset($this->params->count) ? (int)$this->params->count : 15; $type = isset($this->params->type) ? $this->params->type : 'all'; + + $this->app->loadClass('pager', $static = true); $pager = pager::init(0, $count, 1); - $this->view->executionStats = $this->loadModel('execution')->getStats($this->session->project, $type, 0, 0, 30, 'id_desc', $pager); + $this->app->loadLang('execution'); + $this->view->executionStats = $this->loadModel('project')->getStats($this->session->project, $type, 0, 0, 30, 'id_desc', $pager); } /** @@ -1394,15 +1399,15 @@ class block extends control { $projectID = $this->session->project; - $executions = $this->loadModel('project')->getExecutionPairs($projectID); + $executions = $this->loadModel('execution')->getPairs($projectID); $products = $this->loadModel('product')->getProductPairsByProject($projectID); $count = isset($this->params->count) ? (int)$this->params->count : 10; $actions = array(); $actions = $this->dao->select('*')->from(TABLE_ACTION) - ->where('project')->eq($projectID) - ->beginIF(!empty($executions))->markLeft()->orWhere('project')->in(array_keys($executions))->fi()->markRight() - ->beginIF(!empty($products))->markLeft()->orWhere('product')->in(array_keys($products))->fi()->markRight() + ->where('objectType')->eq('project') + ->andWhere('objectID')->eq($projectID) + ->beginIF(!empty($executions))->markLeft()->orWhere('execution')->in(array_keys($executions))->fi()->markRight() ->orderBy('date_desc') ->limit($count) ->fetchAll(); @@ -1585,7 +1590,7 @@ class block extends control * @access public * @return void */ - public function printProjectOverviewBlock() + public function printExecutionOverviewBlock() { $projectID = $this->view->block->module == 'my' ? 0 : (int)$this->session->project; $executions = $this->loadModel('execution')->getList($projectID); @@ -1649,7 +1654,7 @@ class block extends control * @access public * @return void */ - public function printProjectBlock() + public function printExecutionBlock() { $this->app->loadClass('pager', $static = true); if(!empty($this->params->type) and preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die(); @@ -1685,7 +1690,7 @@ class block extends control $this->app->loadClass('date'); $this->app->loadLang('todo'); $stmt = $this->dao->select('*')->from(TABLE_TODO) - ->where("(assignedTo = '{$this->app->user->account}' or (assignedTo = '' and account='{$this->app->user->account}'))") + ->where("(assignedTo = '{$this->app->user->account}' or (account='{$this->app->user->account}'))") ->andWhere('cycle')->eq(0) ->orderBy('`date`'); if(isset($params->todoNum)) $stmt->limit($params->todoNum); @@ -1708,6 +1713,7 @@ class block extends control if(isset($hasViewPriv['task'])) { $this->app->loadLang('task'); + $this->app->loadLang('execution'); $stmt = $this->dao->select('*')->from(TABLE_TASK) ->where('assignedTo')->eq($this->app->user->account) ->andWhere('deleted')->eq('0') @@ -1803,7 +1809,7 @@ class block extends control * @access public * @return void */ - public function printProgramTeamBlock() + public function printProjectTeamBlock() { $count = isset($this->params->count) ? $this->params->count : 15; $status = isset($this->params->type) ? $this->params->type : 'all'; diff --git a/module/block/lang/zh-cn.php b/module/block/lang/zh-cn.php index 15350a6230..5730ff08fc 100644 --- a/module/block/lang/zh-cn.php +++ b/module/block/lang/zh-cn.php @@ -42,7 +42,7 @@ $lang->block->leftToday = '今天剩余工作总计'; $lang->block->myTask = '我的任务'; $lang->block->myStory = "我的{$lang->SRCommon}"; $lang->block->myBug = '我的BUG'; -$lang->block->myProject = '未关闭的' . $lang->executionCommon; +$lang->block->myExecution = '未关闭的' . $lang->executionCommon; $lang->block->myProduct = '未关闭的' . $lang->productCommon; $lang->block->delayed = '已延期'; $lang->block->noData = '当前统计类型下暂无数据'; @@ -59,9 +59,9 @@ $lang->block->resolvedRisks = '解决的风险数'; $lang->block->createdIssues = '创建的问题数'; $lang->block->resolvedIssues = '解决的问题数'; $lang->block->createdDocs = '创建的文档数'; -$lang->block->allProject = '所有' . $lang->executionCommon; -$lang->block->doingProject = '进行中的' . $lang->executionCommon; -$lang->block->finishProject = '累积' . $lang->executionCommon; +$lang->block->allExecution = '所有' . $lang->executionCommon; +$lang->block->doingExecution = '进行中的' . $lang->executionCommon; +$lang->block->finishExecution = '累积' . $lang->executionCommon; $lang->block->estimatedHours = '预计'; $lang->block->consumedHours = '已消耗'; $lang->block->time = '第'; @@ -98,71 +98,71 @@ $lang->block->spent = '已花费'; $lang->block->budget = '预算'; $lang->block->left = '剩余'; -$lang->block->default['waterfall']['program']['1']['title'] = '项目周报'; -$lang->block->default['waterfall']['program']['1']['block'] = 'waterfallreport'; -$lang->block->default['waterfall']['program']['1']['source'] = 'program'; -$lang->block->default['waterfall']['program']['1']['grid'] = 8; +$lang->block->default['waterfall']['project']['1']['title'] = '项目周报'; +$lang->block->default['waterfall']['project']['1']['block'] = 'waterfallreport'; +$lang->block->default['waterfall']['project']['1']['source'] = 'project'; +$lang->block->default['waterfall']['project']['1']['grid'] = 8; -$lang->block->default['waterfall']['program']['2']['title'] = '估算'; -$lang->block->default['waterfall']['program']['2']['block'] = 'waterfallestimate'; -$lang->block->default['waterfall']['program']['2']['source'] = 'program'; -$lang->block->default['waterfall']['program']['2']['grid'] = 4; +$lang->block->default['waterfall']['project']['2']['title'] = '估算'; +$lang->block->default['waterfall']['project']['2']['block'] = 'waterfallestimate'; +$lang->block->default['waterfall']['project']['2']['source'] = 'project'; +$lang->block->default['waterfall']['project']['2']['grid'] = 4; -$lang->block->default['waterfall']['program']['3']['title'] = "项目计划"; -$lang->block->default['waterfall']['program']['3']['block'] = 'waterfallgantt'; -$lang->block->default['waterfall']['program']['3']['source'] = 'program'; -$lang->block->default['waterfall']['program']['3']['grid'] = 8; +$lang->block->default['waterfall']['project']['3']['title'] = "项目计划"; +$lang->block->default['waterfall']['project']['3']['block'] = 'waterfallgantt'; +$lang->block->default['waterfall']['project']['3']['source'] = 'project'; +$lang->block->default['waterfall']['project']['3']['grid'] = 8; -$lang->block->default['waterfall']['program']['4']['title'] = '到目前为止项目进展趋势图'; -$lang->block->default['waterfall']['program']['4']['block'] = 'waterfallprogress'; -$lang->block->default['waterfall']['program']['4']['grid'] = 4; +$lang->block->default['waterfall']['project']['4']['title'] = '到目前为止项目进展趋势图'; +$lang->block->default['waterfall']['project']['4']['block'] = 'waterfallprogress'; +$lang->block->default['waterfall']['project']['4']['grid'] = 4; -$lang->block->default['waterfall']['program']['5']['title'] = '项目问题'; -$lang->block->default['waterfall']['program']['5']['block'] = 'waterfallissue'; -$lang->block->default['waterfall']['program']['5']['source'] = 'program'; -$lang->block->default['waterfall']['program']['5']['grid'] = 8; +$lang->block->default['waterfall']['project']['5']['title'] = '项目问题'; +$lang->block->default['waterfall']['project']['5']['block'] = 'waterfallissue'; +$lang->block->default['waterfall']['project']['5']['source'] = 'project'; +$lang->block->default['waterfall']['project']['5']['grid'] = 8; -$lang->block->default['waterfall']['program']['5']['params']['type'] = 'all'; -$lang->block->default['waterfall']['program']['5']['params']['count'] = '15'; -$lang->block->default['waterfall']['program']['5']['params']['orderBy'] = 'id_desc'; +$lang->block->default['waterfall']['project']['5']['params']['type'] = 'all'; +$lang->block->default['waterfall']['project']['5']['params']['count'] = '15'; +$lang->block->default['waterfall']['project']['5']['params']['orderBy'] = 'id_desc'; -$lang->block->default['waterfall']['program']['6']['title'] = '最新动态'; -$lang->block->default['waterfall']['program']['6']['block'] = 'projectdynamic'; -$lang->block->default['waterfall']['program']['6']['grid'] = 4; -$lang->block->default['waterfall']['program']['6']['source'] = 'program'; +$lang->block->default['waterfall']['project']['6']['title'] = '最新动态'; +$lang->block->default['waterfall']['project']['6']['block'] = 'projectdynamic'; +$lang->block->default['waterfall']['project']['6']['grid'] = 4; +$lang->block->default['waterfall']['project']['6']['source'] = 'project'; -$lang->block->default['waterfall']['program']['7']['title'] = '项目风险'; -$lang->block->default['waterfall']['program']['7']['block'] = 'waterfallrisk'; -$lang->block->default['waterfall']['program']['7']['source'] = 'program'; -$lang->block->default['waterfall']['program']['7']['grid'] = 8; +$lang->block->default['waterfall']['project']['7']['title'] = '项目风险'; +$lang->block->default['waterfall']['project']['7']['block'] = 'waterfallrisk'; +$lang->block->default['waterfall']['project']['7']['source'] = 'project'; +$lang->block->default['waterfall']['project']['7']['grid'] = 8; -$lang->block->default['waterfall']['program']['7']['params']['type'] = 'all'; -$lang->block->default['waterfall']['program']['7']['params']['count'] = '15'; -$lang->block->default['waterfall']['program']['7']['params']['orderBy'] = 'id_desc'; +$lang->block->default['waterfall']['project']['7']['params']['type'] = 'all'; +$lang->block->default['waterfall']['project']['7']['params']['count'] = '15'; +$lang->block->default['waterfall']['project']['7']['params']['orderBy'] = 'id_desc'; -$lang->block->default['scrum']['program']['1']['title'] = '项目整体情况'; -$lang->block->default['scrum']['program']['1']['block'] = 'scrumoverview'; -$lang->block->default['scrum']['program']['1']['grid'] = 8; +$lang->block->default['scrum']['project']['1']['title'] = '项目整体情况'; +$lang->block->default['scrum']['project']['1']['block'] = 'scrumoverview'; +$lang->block->default['scrum']['project']['1']['grid'] = 8; -$lang->block->default['scrum']['program']['2']['title'] = $lang->executionCommon . '列表'; -$lang->block->default['scrum']['program']['2']['block'] = 'scrumlist'; -$lang->block->default['scrum']['program']['2']['grid'] = 8; +$lang->block->default['scrum']['project']['2']['title'] = $lang->executionCommon . '列表'; +$lang->block->default['scrum']['project']['2']['block'] = 'scrumlist'; +$lang->block->default['scrum']['project']['2']['grid'] = 8; -$lang->block->default['scrum']['program']['3']['title'] = '待测版本'; -$lang->block->default['scrum']['program']['3']['block'] = 'scrumtest'; -$lang->block->default['scrum']['program']['3']['grid'] = 8; +$lang->block->default['scrum']['project']['3']['title'] = '待测版本'; +$lang->block->default['scrum']['project']['3']['block'] = 'scrumtest'; +$lang->block->default['scrum']['project']['3']['grid'] = 8; -$lang->block->default['scrum']['program']['3']['params']['type'] = 'wait'; -$lang->block->default['scrum']['program']['3']['params']['count'] = '15'; -$lang->block->default['scrum']['program']['3']['params']['orderBy'] = 'id_desc'; +$lang->block->default['scrum']['project']['3']['params']['type'] = 'wait'; +$lang->block->default['scrum']['project']['3']['params']['count'] = '15'; +$lang->block->default['scrum']['project']['3']['params']['orderBy'] = 'id_desc'; -$lang->block->default['scrum']['program']['4']['title'] = $lang->executionCommon . '总览'; -$lang->block->default['scrum']['program']['4']['block'] = 'sprint'; -$lang->block->default['scrum']['program']['4']['grid'] = 4; +$lang->block->default['scrum']['project']['4']['title'] = $lang->executionCommon . '总览'; +$lang->block->default['scrum']['project']['4']['block'] = 'sprint'; +$lang->block->default['scrum']['project']['4']['grid'] = 4; -$lang->block->default['scrum']['program']['5']['title'] = '最新动态'; -$lang->block->default['scrum']['program']['5']['block'] = 'projectdynamic'; -$lang->block->default['scrum']['program']['5']['grid'] = 4; +$lang->block->default['scrum']['project']['5']['title'] = '最新动态'; +$lang->block->default['scrum']['project']['5']['block'] = 'projectdynamic'; +$lang->block->default['scrum']['project']['5']['grid'] = 4; $lang->block->default['product']['1']['title'] = $lang->productCommon . '统计'; $lang->block->default['product']['1']['block'] = 'statistic'; @@ -190,39 +190,39 @@ $lang->block->default['product']['4']['params']['count'] = 15; $lang->block->default['product']['4']['params']['orderBy'] = 'id_desc'; $lang->block->default['product']['4']['params']['type'] = 'assignedTo'; -$lang->block->default['project']['1']['title'] = $lang->executionCommon . '统计'; -$lang->block->default['project']['1']['block'] = 'statistic'; -$lang->block->default['project']['1']['grid'] = 8; +$lang->block->default['execution']['1']['title'] = $lang->executionCommon . '统计'; +$lang->block->default['execution']['1']['block'] = 'statistic'; +$lang->block->default['execution']['1']['grid'] = 8; -$lang->block->default['project']['1']['params']['type'] = 'all'; -$lang->block->default['project']['1']['params']['count'] = '20'; +$lang->block->default['execution']['1']['params']['type'] = 'all'; +$lang->block->default['execution']['1']['params']['count'] = '20'; -$lang->block->default['project']['2']['title'] = $lang->executionCommon . '总览'; -$lang->block->default['project']['2']['block'] = 'overview'; -$lang->block->default['project']['2']['grid'] = 4; +$lang->block->default['execution']['2']['title'] = $lang->executionCommon . '总览'; +$lang->block->default['execution']['2']['block'] = 'overview'; +$lang->block->default['execution']['2']['grid'] = 4; -$lang->block->default['project']['3']['title'] = '未关闭的' . $lang->executionCommon; -$lang->block->default['project']['3']['block'] = 'list'; -$lang->block->default['project']['3']['grid'] = 8; +$lang->block->default['execution']['3']['title'] = '未关闭的' . $lang->executionCommon; +$lang->block->default['execution']['3']['block'] = 'list'; +$lang->block->default['execution']['3']['grid'] = 8; -$lang->block->default['project']['3']['params']['count'] = 15; -$lang->block->default['project']['3']['params']['orderBy'] = 'id_desc'; -$lang->block->default['project']['3']['params']['type'] = 'undone'; +$lang->block->default['execution']['3']['params']['count'] = 15; +$lang->block->default['execution']['3']['params']['orderBy'] = 'id_desc'; +$lang->block->default['execution']['3']['params']['type'] = 'undone'; -$lang->block->default['project']['4']['title'] = '指派给我的任务'; -$lang->block->default['project']['4']['block'] = 'task'; -$lang->block->default['project']['4']['grid'] = 4; +$lang->block->default['execution']['4']['title'] = '指派给我的任务'; +$lang->block->default['execution']['4']['block'] = 'task'; +$lang->block->default['execution']['4']['grid'] = 4; -$lang->block->default['project']['4']['params']['count'] = 15; -$lang->block->default['project']['4']['params']['orderBy'] = 'id_desc'; -$lang->block->default['project']['4']['params']['type'] = 'assignedTo'; +$lang->block->default['execution']['4']['params']['count'] = 15; +$lang->block->default['execution']['4']['params']['orderBy'] = 'id_desc'; +$lang->block->default['execution']['4']['params']['type'] = 'assignedTo'; -$lang->block->default['project']['5']['title'] = '版本列表'; -$lang->block->default['project']['5']['block'] = 'build'; -$lang->block->default['project']['5']['grid'] = 8; +$lang->block->default['execution']['5']['title'] = '版本列表'; +$lang->block->default['execution']['5']['block'] = 'build'; +$lang->block->default['execution']['5']['grid'] = 8; -$lang->block->default['project']['5']['params']['count'] = 15; -$lang->block->default['project']['5']['params']['orderBy'] = 'id_desc'; +$lang->block->default['execution']['5']['params']['count'] = 15; +$lang->block->default['execution']['5']['params']['orderBy'] = 'id_desc'; $lang->block->default['qa']['1']['title'] = '测试统计'; $lang->block->default['qa']['1']['block'] = 'statistic'; @@ -277,7 +277,7 @@ $lang->block->default['full']['my']['3']['params']['count'] = '20'; $lang->block->default['full']['my']['4']['title'] = '项目统计'; $lang->block->default['full']['my']['4']['block'] = 'statistic'; -$lang->block->default['full']['my']['4']['source'] = 'program'; +$lang->block->default['full']['my']['4']['source'] = 'project'; $lang->block->default['full']['my']['4']['grid'] = 8; $lang->block->default['full']['my']['5']['title'] = '我的贡献'; @@ -287,7 +287,7 @@ $lang->block->default['full']['my']['5']['grid'] = 4; $lang->block->default['full']['my']['6']['title'] = '我近期参与的项目'; $lang->block->default['full']['my']['6']['block'] = 'recentproject'; -$lang->block->default['full']['my']['6']['source'] = 'program'; +$lang->block->default['full']['my']['6']['source'] = 'project'; $lang->block->default['full']['my']['6']['grid'] = 8; $lang->block->default['full']['my']['7']['title'] = '指派给我'; @@ -303,13 +303,13 @@ $lang->block->default['full']['my']['7']['params']['issueNum'] = '20'; $lang->block->default['full']['my']['7']['params']['storyNum'] = '20'; $lang->block->default['full']['my']['8']['title'] = '项目人力投入'; -$lang->block->default['full']['my']['8']['block'] = 'programteam'; -$lang->block->default['full']['my']['8']['source'] = 'program'; +$lang->block->default['full']['my']['8']['block'] = 'projectteam'; +$lang->block->default['full']['my']['8']['source'] = 'project'; $lang->block->default['full']['my']['8']['grid'] = 8; $lang->block->default['full']['my']['9']['title'] = '项目列表'; -$lang->block->default['full']['my']['9']['block'] = 'program'; -$lang->block->default['full']['my']['9']['source'] = 'program'; +$lang->block->default['full']['my']['9']['block'] = 'project'; +$lang->block->default['full']['my']['9']['source'] = 'project'; $lang->block->default['full']['my']['9']['grid'] = 8; $lang->block->default['full']['my']['9']['params']['orderBy'] = 'id_desc'; @@ -320,33 +320,32 @@ $lang->block->type = '类型'; $lang->block->orderBy = '排序'; $lang->block->availableBlocks = new stdclass(); +$lang->block->availableBlocks->todo = '我的待办'; +$lang->block->availableBlocks->task = '我的任务'; +$lang->block->availableBlocks->bug = '我的Bug'; +$lang->block->availableBlocks->case = '我的用例'; +$lang->block->availableBlocks->story = "我的{$lang->SRCommon}"; +$lang->block->availableBlocks->product = $lang->productCommon . '列表'; +$lang->block->availableBlocks->execution = $lang->executionCommon . '列表'; +$lang->block->availableBlocks->plan = "计划列表"; +$lang->block->availableBlocks->release = '发布列表'; +$lang->block->availableBlocks->build = '版本列表'; +$lang->block->availableBlocks->testtask = '测试版本列表'; +$lang->block->availableBlocks->risk = '我的风险'; +$lang->block->availableBlocks->issue = '我的问题'; -$lang->block->availableBlocks->todo = '我的待办'; -$lang->block->availableBlocks->task = '我的任务'; -$lang->block->availableBlocks->bug = '我的Bug'; -$lang->block->availableBlocks->case = '我的用例'; -$lang->block->availableBlocks->story = "我的{$lang->SRCommon}"; -$lang->block->availableBlocks->product = $lang->productCommon . '列表'; -$lang->block->availableBlocks->project = $lang->executionCommon . '列表'; -$lang->block->availableBlocks->plan = "计划列表"; -$lang->block->availableBlocks->release = '发布列表'; -$lang->block->availableBlocks->build = '版本列表'; -$lang->block->availableBlocks->testtask = '测试版本列表'; -$lang->block->availableBlocks->risk = '我的风险'; -$lang->block->availableBlocks->issue = '我的问题'; +$lang->block->moduleList['project'] = '项目'; +$lang->block->moduleList['product'] = $lang->productCommon; +$lang->block->moduleList['execution'] = $lang->executionCommon; +$lang->block->moduleList['qa'] = '测试'; +$lang->block->moduleList['todo'] = '待办'; -$lang->block->moduleList['program'] = '项目'; -$lang->block->moduleList['product'] = $lang->productCommon; -$lang->block->moduleList['project'] = $lang->executionCommon; -$lang->block->moduleList['qa'] = '测试'; -$lang->block->moduleList['todo'] = '待办'; - -$lang->block->modules['program'] = new stdclass(); -$lang->block->modules['program']->availableBlocks = new stdclass(); -$lang->block->modules['program']->availableBlocks->program = '项目列表'; -$lang->block->modules['program']->availableBlocks->recentproject = '近期项目'; -$lang->block->modules['program']->availableBlocks->statistic = '项目统计'; -$lang->block->modules['program']->availableBlocks->programteam = '项目人力投入'; +$lang->block->modules['project'] = new stdclass(); +$lang->block->modules['project']->availableBlocks = new stdclass(); +$lang->block->modules['project']->availableBlocks->project = '项目列表'; +$lang->block->modules['project']->availableBlocks->recentproject = '近期项目'; +$lang->block->modules['project']->availableBlocks->statistic = '项目统计'; +$lang->block->modules['project']->availableBlocks->projectteam = '项目人力投入'; $lang->block->modules['scrum']['index'] = new stdclass(); $lang->block->modules['scrum']['index']->availableBlocks = new stdclass(); @@ -375,13 +374,13 @@ $lang->block->modules['product']->availableBlocks->story = "{$lang->SRCommon $lang->block->modules['product']->availableBlocks->plan = "计划列表"; $lang->block->modules['product']->availableBlocks->release = '发布列表'; -$lang->block->modules['project'] = new stdclass(); -$lang->block->modules['project']->availableBlocks = new stdclass(); -$lang->block->modules['project']->availableBlocks->statistic = $lang->executionCommon . '统计'; -$lang->block->modules['project']->availableBlocks->overview = $lang->executionCommon . '总览'; -$lang->block->modules['project']->availableBlocks->list = $lang->executionCommon . '列表'; -$lang->block->modules['project']->availableBlocks->task = '任务列表'; -$lang->block->modules['project']->availableBlocks->build = '版本列表'; +$lang->block->modules['execution'] = new stdclass(); +$lang->block->modules['execution']->availableBlocks = new stdclass(); +$lang->block->modules['execution']->availableBlocks->statistic = $lang->executionCommon . '统计'; +$lang->block->modules['execution']->availableBlocks->overview = $lang->executionCommon . '总览'; +$lang->block->modules['execution']->availableBlocks->list = $lang->executionCommon . '列表'; +$lang->block->modules['execution']->availableBlocks->task = '任务列表'; +$lang->block->modules['execution']->availableBlocks->build = '版本列表'; $lang->block->modules['qa'] = new stdclass(); $lang->block->modules['qa']->availableBlocks = new stdclass(); @@ -403,11 +402,11 @@ $lang->block->orderByList->product['id_desc'] = 'ID 递减'; $lang->block->orderByList->product['status_asc'] = '状态正序'; $lang->block->orderByList->product['status_desc'] = '状态倒序'; -$lang->block->orderByList->project = array(); -$lang->block->orderByList->project['id_asc'] = 'ID 递增'; -$lang->block->orderByList->project['id_desc'] = 'ID 递减'; -$lang->block->orderByList->project['status_asc'] = '状态正序'; -$lang->block->orderByList->project['status_desc'] = '状态倒序'; +$lang->block->orderByList->execution = array(); +$lang->block->orderByList->execution['id_asc'] = 'ID 递增'; +$lang->block->orderByList->execution['id_desc'] = 'ID 递减'; +$lang->block->orderByList->execution['status_asc'] = '状态正序'; +$lang->block->orderByList->execution['status_desc'] = '状态倒序'; $lang->block->orderByList->task = array(); $lang->block->orderByList->task['id_asc'] = 'ID 递增'; @@ -478,15 +477,15 @@ $lang->block->typeList->product['closed'] = '已关闭'; $lang->block->typeList->product['all'] = '全部'; $lang->block->typeList->product['involved'] = '我参与'; -$lang->block->typeList->program['undone'] = '未完成'; -$lang->block->typeList->program['doing'] = '进行中'; -$lang->block->typeList->program['all'] = '全部'; -$lang->block->typeList->program['involved'] = '我参与的'; - $lang->block->typeList->project['undone'] = '未完成'; $lang->block->typeList->project['doing'] = '进行中'; $lang->block->typeList->project['all'] = '全部'; -$lang->block->typeList->project['involved'] = '我参与'; +$lang->block->typeList->project['involved'] = '我参与的'; + +$lang->block->typeList->execution['undone'] = '未完成'; +$lang->block->typeList->execution['doing'] = '进行中'; +$lang->block->typeList->execution['all'] = '全部'; +$lang->block->typeList->execution['involved'] = '我参与'; $lang->block->typeList->scrum['undone'] = '未完成'; $lang->block->typeList->scrum['doing'] = '进行中'; @@ -499,27 +498,27 @@ $lang->block->typeList->testtask['blocked'] = '阻塞版本'; $lang->block->typeList->testtask['done'] = '已测版本'; $lang->block->typeList->testtask['all'] = '全部'; -$lang->block->modules['program']->moreLinkList = new stdclass(); -$lang->block->modules['program']->moreLinkList->recentproject = 'program|prjbrowse|'; -$lang->block->modules['program']->moreLinkList->statistic = 'program|prjbrowse|'; -$lang->block->modules['program']->moreLinkList->project = 'program|prjbrowse|'; -$lang->block->modules['program']->moreLinkList->cmmireport = 'weekly|index|'; -$lang->block->modules['program']->moreLinkList->cmmiestimate = 'workestimation|index|'; -$lang->block->modules['program']->moreLinkList->cmmiissue = 'issue|browse|'; -$lang->block->modules['program']->moreLinkList->cmmirisk = 'risk|browse|'; -$lang->block->modules['program']->moreLinkList->scrumlist = 'project|all|'; -$lang->block->modules['program']->moreLinkList->scrumtest = 'testtask|browse|'; -$lang->block->modules['program']->moreLinkList->scrumproduct = 'product|all|'; -$lang->block->modules['program']->moreLinkList->sprint = 'project|all|'; -$lang->block->modules['program']->moreLinkList->projectdynamic = 'company|dynamic|'; +$lang->block->modules['project']->moreLinkList = new stdclass(); +$lang->block->modules['project']->moreLinkList->recentproject = 'project|browse|'; +$lang->block->modules['project']->moreLinkList->statistic = 'project|browse|'; +$lang->block->modules['project']->moreLinkList->project = 'project|browse|'; +$lang->block->modules['project']->moreLinkList->cmmireport = 'weekly|index|'; +$lang->block->modules['project']->moreLinkList->cmmiestimate = 'workestimation|index|'; +$lang->block->modules['project']->moreLinkList->cmmiissue = 'issue|browse|'; +$lang->block->modules['project']->moreLinkList->cmmirisk = 'risk|browse|'; +$lang->block->modules['project']->moreLinkList->scrumlist = 'project|all|'; +$lang->block->modules['project']->moreLinkList->scrumtest = 'testtask|browse|'; +$lang->block->modules['project']->moreLinkList->scrumproduct = 'product|all|'; +$lang->block->modules['project']->moreLinkList->sprint = 'project|all|'; +$lang->block->modules['project']->moreLinkList->projectdynamic = 'company|dynamic|'; $lang->block->modules['product']->moreLinkList = new stdclass(); $lang->block->modules['product']->moreLinkList->list = 'product|all|'; $lang->block->modules['product']->moreLinkList->story = 'my|story|type=%s'; -$lang->block->modules['project']->moreLinkList = new stdclass(); -$lang->block->modules['project']->moreLinkList->list = 'project|all|status=%s&project='; -$lang->block->modules['project']->moreLinkList->task = 'my|task|type=%s'; +$lang->block->modules['execution']->moreLinkList = new stdclass(); +$lang->block->modules['execution']->moreLinkList->list = 'execution|all|status=%s&executionID='; +$lang->block->modules['execution']->moreLinkList->task = 'my|task|type=%s'; $lang->block->modules['qa']->moreLinkList = new stdclass(); $lang->block->modules['qa']->moreLinkList->bug = 'my|bug|type=%s'; @@ -541,9 +540,9 @@ $lang->block->welcomeList['19:00'] = '%s,晚上好!'; $lang->block->gridOptions[8] = '左侧'; $lang->block->gridOptions[4] = '右侧'; -$lang->block->flowchart = array(); -$lang->block->flowchart['admin'] = array('管理员', '维护公司', '添加用户', '维护权限'); -$lang->block->flowchart['product'] = array($lang->productCommon . '经理', '创建' . $lang->productCommon, '维护模块', "维护计划", "维护{$lang->SRCommon}", '创建发布'); -$lang->block->flowchart['project'] = array($lang->executionCommon . '经理', '创建' . $lang->executionCommon, '维护团队', '关联' . $lang->productCommon, "关联{$lang->SRCommon}", '分解任务'); -$lang->block->flowchart['dev'] = array('研发人员', '领取任务和Bug', '更新状态', '完成任务和Bug'); -$lang->block->flowchart['tester'] = array('测试人员', '撰写用例', '执行用例', '提交Bug', '验证Bug', '关闭Bug'); +$lang->block->flowchart = array(); +$lang->block->flowchart['admin'] = array('管理员', '维护公司', '添加用户', '维护权限'); +$lang->block->flowchart['product'] = array($lang->productCommon . '经理', '创建' . $lang->productCommon, '维护模块', "维护计划", "维护{$lang->SRCommon}", '创建发布'); +$lang->block->flowchart['execution'] = array($lang->executionCommon . '经理', '创建' . $lang->executionCommon, '维护团队', '关联' . $lang->productCommon, "关联{$lang->SRCommon}", '分解任务'); +$lang->block->flowchart['dev'] = array('研发人员', '领取任务和Bug', '更新状态', '完成任务和Bug'); +$lang->block->flowchart['tester'] = array('测试人员', '撰写用例', '执行用例', '提交Bug', '验证Bug', '关闭Bug'); diff --git a/module/block/model.php b/module/block/model.php index 0a74b0391c..a40e6f3bc5 100644 --- a/module/block/model.php +++ b/module/block/model.php @@ -220,16 +220,14 @@ class blockModel extends model { $flow = isset($this->config->global->flow) ? $this->config->global->flow : 'full'; $account = $this->app->user->account; - if($module == 'program') + if($module == 'project') { - $blocks = $this->lang->block->default[$type]['program']; - $projectID = $this->session->PRJ; - $project = $this->loadModel('program')->getPRJByID($projectID); + $blocks = $this->lang->block->default[$type]['project']; /* Mark project block has init. */ - $this->loadModel('setting')->setItem("$account.$module.{$project->model}common.blockInited", true); + $this->loadModel('setting')->setItem("$account.$module.{$type}common.blockInited", true); } - else + else { $blocks = $module == 'my' ? $this->lang->block->default[$flow][$module] : $this->lang->block->default[$module]; diff --git a/module/block/view/bugblock.html.php b/module/block/view/bugblock.html.php index e924d32762..4756d776a9 100644 --- a/module/block/view/bugblock.html.php +++ b/module/block/view/bugblock.html.php @@ -53,7 +53,7 @@ ?> id);?> - createLink('bug', 'view', "bugID=$bug->id", '', '', $bug->PRJ), $bug->title)?> + createLink('bug', 'view', "bugID=$bug->id", '', '', $bug->project), $bug->title)?> diff --git a/module/block/view/executionblock.html.php b/module/block/view/executionblock.html.php new file mode 100644 index 0000000000..a86a0de19d --- /dev/null +++ b/module/block/view/executionblock.html.php @@ -0,0 +1,73 @@ + + * @package block + * @version $Id$ + * @link http://www.zentao.net + */ +?> + +
" . $lang->project->create, '', "class='btn btn-primary'")?>
+ +
+ + + + + + + + + + + + + + + + + + + + + + get->entry}'" : "class='text-center'"; + $viewLink = $this->createLink('execution', 'task', 'executionID=' . $execution->id); + ?> + > + + + + + + + + + + + + + + + +
execution->name;?>execution->end;?>statusAB;?>execution->totalEstimate;?>execution->totalConsumed;?>execution->totalLeft;?>execution->progress;?>execution->burn;?>
name, '', "title='$execution->name'");?>end;?> + delay)):?> + execution->delayed;?> + + processStatus('project', $execution);?> + + + hours->totalEstimate . ' ' . $lang->execution->workHourUnit;?>hours->totalConsumed . ' ' . $lang->execution->workHourUnit;?>hours->totalLeft . ' ' . $lang->execution->workHourUnit;?> +
+
+ hours->progress;?>% +
+
+
burns);?>'>
+
+ diff --git a/module/block/view/projectoverviewblock.html.php b/module/block/view/executionoverviewblock.html.php similarity index 86% rename from module/block/view/projectoverviewblock.html.php rename to module/block/view/executionoverviewblock.html.php index 1db462e865..c8c65340ee 100644 --- a/module/block/view/projectoverviewblock.html.php +++ b/module/block/view/executionoverviewblock.html.php @@ -16,9 +16,9 @@
-
project->allProject;?>
+
execution->allExecution;?>
- project->viewAll;?> + execution->viewAll;?>
diff --git a/module/block/view/programstatisticblock.html.php b/module/block/view/executionstatisticblock.html.php similarity index 52% rename from module/block/view/programstatisticblock.html.php rename to module/block/view/executionstatisticblock.html.php index f3ff2ebd49..4eb5a0dad9 100644 --- a/module/block/view/programstatisticblock.html.php +++ b/module/block/view/executionstatisticblock.html.php @@ -55,21 +55,9 @@ html[lang="en"] .product-info .type-info {color: #A6AAB8; text-align: center; po .block-statistic.block-sm .nav-secondary > li.active > a.btn-view {width: auto; left: 0; right: 0;} .block-statistic.block-sm .nav-secondary > li.active > a.btn-view > i {display: none;} .block-statistic.block-sm .nav-secondary > li.active > a.btn-view:hover {cursor: pointer; background: rgba(0,0,0,.1)} -.block-statistic .program-info .info span+span{margin-left: 15px} -.block-statistic .project-info{margin-top: 25px} -.block-statistic .project-info .col-xs-5, .block-statistic .project-info .col-xs-7{margin-top: 8px} -.block-statistic .project-info .col-xs-5{padding-left: 0px;} .status-count{margin:auto} .status-count tr:first-child td:last-child{color:#000;font-weight:bold} - -.block-statistic .progress-group{margin-top: 20px; margin-bottom: 10px; height: 65px;} -.block-statistic .weekly-title{font-weight: bold; font-size:14px; color: #3C4253;} -.block-statistic .weekly-small{font-size:12px; color: #838A9D;} -.block-statistic .weekly-progress {font-weight: bold; font-size:24px;} -.block-statistic .weekly-name{font-size:14px; color: #838A9D;} -.block-statistic .weekly-value{font-size:14px;} -.block-statistic .col-6 .stage{margin-left: 10px}
- +

block->noData;?>

@@ -104,139 +92,110 @@ $(function()
- -
+ +
- model == 'scrum'):?>
-
+
- story->common . $lang->project->doneStories;?> - doneStories;?> + task->statusList['done'];?> + progress;?>percent;?>
-
project->allStories;?>
-
allStories;?>
+
execution->totalEstimate;?>
+
totalEstimate;?> task->hour;?>
-
project->doneStories;?>
-
doneStories;?>
+
execution->totalConsumed;?>
+
totalConsumed;?> task->hour;?>
-
project->leftStories;?>
-
leftStories;?>
+
execution->totalLeft;?>
+
totalLeft;?> task->hour;?>
-
-

project->allInput;?>

-
- project->membersUnit, $project->teamCount);?> - project->hoursUnit, $project->estimate);?> - budget . ' ' . zget($lang->project->unitList, $project->budgetUnit);?> -
-
-
- -

project->lastIteration;?>

- executions as $execution):?> - - 3) break;?> -
name;?>
-
-
-
- hours->progress . '%';?> -
+
+
task->yesterdayFinished;?> yesterdayFinished;?>
+
+
- -
-
- -
-
- project->weekly;?> - current;?> -
-
-
-
project->PRJProgress;?>
-
progress . '%';?>
-
-
-
+
+
+ + + + + + + + + +
task->allTasks;?> :totalTasks) ? 0 : html::a($this->createLink('project', 'task', "executionID={$execution->id}&status=all"), $execution->totalTasks);?>
task->noFinished;?> :undoneTasks) ? 0 : html::a($this->createLink('project', 'task', "executionID={$execution->id}&status=undone"), $execution->undoneTasks);?>
+
-
-
-
project->pv;?>
-
pv;?>
+
+
story->released;?> releasedStories;?>
+
+
-
-
project->ev;?>
-
ev;?>
+
+
+ + + + + + + + + +
story->total;?> :totalStories) ? 0 : html::a($this->createLink('project', 'story', "executionID={$execution->id}&orderBy=order_desc&type=all"), $execution->totalStories);?>
story->unclosed;?> :unclosedStories) ? 0 : html::a($this->createLink('project', 'story', "executionID={$execution->id}&orderBy=order_desc&type=unclosed"), $execution->unclosedStories);?>
+
-
-
project->sv;?>
-
sv;?>
+
+
+
bug->yesterdayResolved;?> yesterdayResolved;?>
+
+
+
+
+
+
+ + + + + + + + + +
bug->allBugs;?> :totalBugs) ? 0 : html::a($this->createLink('project', 'bug', "executionID={$execution->id}&orderBy=status,id_desc&build=0&type=all"), $execution->totalBugs);?>
bug->unResolved;?> :activeBugs) ? 0 : html::a($this->createLink('project', 'bug', "executionID={$execution->id}&orderBy=status,id_desc&build=0&type=unresolved"), $execution->activeBugs);?>
+
-
-
-
- project->allInput;?> -
-
-
-
-
-
-
project->PRJPM;?>
-
PM ? zget($users, $project->PM) : $lang->project->emptyPM;?>
-
-
-
project->teamCount;?>
-
teamCount;?>
-
-
-
project->PRJBudget;?>
-
budget;?>
-
-
-
-
-
-
project->ac;?>
-
ac;?>
-
-
-
project->cv;?>
-
cv;?>
-
-
-
-
-
-
diff --git a/module/block/view/programteamblock.html.php b/module/block/view/executionteamblock.html.php similarity index 80% rename from module/block/view/programteamblock.html.php rename to module/block/view/executionteamblock.html.php index 7e4fff2426..20cea8dba9 100644 --- a/module/block/view/programteamblock.html.php +++ b/module/block/view/executionteamblock.html.php @@ -8,13 +8,12 @@ $maxConsumed = 0;
-
project->name;?>
teamCount); $maxConsumed = max($maxConsumed, $project->consumed); ?> -
name;?>
+
name;?>
@@ -37,7 +36,7 @@ $maxConsumed = 0;
-
consumed . $lang->execution->workHourUnit;?>
+
consumed;?>
@@ -48,7 +47,7 @@ $maxConsumed = 0;
-
- '> - - - - - - - - - - - - - - - - - - createLink('program', 'index', "programID={$project->id}"); - ?> - - - - - - - - app->getClientLang(), ['zh-cn','zh-tw']) && $project->budget >= 10000 ? number_format($project->budget / 10000, 1) . $this->lang->program->tenThousand : number_format((float)$project->budget, 1);?> - - - - - - - - -
project->name;?>program->PM;?>program->status;?>program->teamCount;?>task->consumed;?>program->budget;?>project->leftStories;?>project->leftTasks;?>project->leftBugs;?>
name);?>PM, $project->PM)?> - project->statusList, $project->status);?> - teamCount;?>consumed . ' ' . $lang->execution->workHourUnit;?>budget != 0 ? zget($lang->project->currencySymbol, $project->budgetUnit) . ' ' . $programBudget : $lang->project->future;?>leftStories;?>leftTasks;?>leftBugs;?>
-
- diff --git a/module/block/view/projectblock.html.php b/module/block/view/projectblock.html.php index 6ab7f38894..5af4c1331f 100644 --- a/module/block/view/projectblock.html.php +++ b/module/block/view/projectblock.html.php @@ -1,72 +1,49 @@ - - * @package block - * @version $Id$ - * @link http://www.zentao.net - */ -?> - -
" . $lang->project->create, '', "class='btn btn-primary'")?>
+ +
block->emptyTip;?>
-
- + +
+
'> - - - + + + + - - - - - - - - - + + + + + + - - - + + get->entry}'" : "class='text-center'"; - $viewLink = $this->createLink('execution', 'task', 'execution=' . $execution->id); + $viewLink = $this->createLink('program', 'index', "programID={$project->id}"); ?> - > - - - - - - - - - + + + - + + + app->getClientLang(), ['zh-cn','zh-tw']) && $project->budget >= 10000 ? number_format($project->budget / 10000, 1) . $this->lang->program->tenThousand : number_format((float)$project->budget, 1);?> + + + + - - + +
project->name;?>project->end;?>
project->name;?>program->PM;?>program->status;?> statusAB;?>execution->totalEstimate;?>execution->totalConsumed;?>execution->totalLeft;?>project->progress;?>execution->burn;?>program->teamCount;?>task->consumed;?>program->budget;?>project->leftStories;?>project->leftTasks;?>project->leftBugs;?>
createLink('execution', 'task', 'execution=' . $execution->id), $execution->name, '', "title='$execution->name'");?>end;?> - delay)):?> - execution->delayed;?> - - processStatus('project', $execution);?> - - - hours->totalEstimate . ' ' . $lang->execution->workHourUnit;?>hours->totalConsumed . ' ' . $lang->execution->workHourUnit;?>hours->totalLeft . ' ' . $lang->execution->workHourUnit;?> -
-
- hours->progress;?>% -
-
+
name);?>PM, $project->PM)?> + project->statusList, $project->status);?> burns);?>'>teamCount;?>consumed . ' ' . $lang->execution->workHourUnit;?>budget != 0 ? zget($lang->project->currencySymbol, $project->budgetUnit) . ' ' . $programBudget : $lang->project->future;?>leftStories;?>leftTasks;?>leftBugs;?>
diff --git a/module/block/view/projectstatisticblock.html.php b/module/block/view/projectstatisticblock.html.php index d6da2a5acc..4fe90823c0 100644 --- a/module/block/view/projectstatisticblock.html.php +++ b/module/block/view/projectstatisticblock.html.php @@ -55,9 +55,21 @@ html[lang="en"] .product-info .type-info {color: #A6AAB8; text-align: center; po .block-statistic.block-sm .nav-secondary > li.active > a.btn-view {width: auto; left: 0; right: 0;} .block-statistic.block-sm .nav-secondary > li.active > a.btn-view > i {display: none;} .block-statistic.block-sm .nav-secondary > li.active > a.btn-view:hover {cursor: pointer; background: rgba(0,0,0,.1)} +.block-statistic .program-info .info span+span{margin-left: 15px} +.block-statistic .project-info{margin-top: 25px} +.block-statistic .project-info .col-xs-5, .block-statistic .project-info .col-xs-7{margin-top: 8px} +.block-statistic .project-info .col-xs-5{padding-left: 0px;} .status-count{margin:auto} .status-count tr:first-child td:last-child{color:#000;font-weight:bold} + +.block-statistic .progress-group{margin-top: 20px; margin-bottom: 10px; height: 65px;} +.block-statistic .weekly-title{font-weight: bold; font-size:14px; color: #3C4253;} +.block-statistic .weekly-small{font-size:12px; color: #838A9D;} +.block-statistic .weekly-progress {font-weight: bold; font-size:24px;} +.block-statistic .weekly-name{font-size:14px; color: #838A9D;} +.block-statistic .weekly-value{font-size:14px;} +.block-statistic .col-6 .stage{margin-left: 10px}
- +

block->noData;?>

@@ -92,110 +104,139 @@ $(function()
- -
+ +
+ model == 'scrum'):?>
-
+
- task->statusList['done'];?> - progress;?>percent;?> + story->common . $lang->project->doneStories;?> + doneStories;?>
-
project->totalEstimate;?>
-
totalEstimate;?> task->hour;?>
+
project->allStories;?>
+
allStories;?>
-
project->totalConsumed;?>
-
totalConsumed;?> task->hour;?>
+
project->doneStories;?>
+
doneStories;?>
-
project->totalLeft;?>
-
totalLeft;?> task->hour;?>
+
project->leftStories;?>
+
leftStories;?>
-
-
task->yesterdayFinished;?> yesterdayFinished;?>
-
-
-
-
-
-
- - - - - - - - - -
task->allTasks;?> :totalTasks) ? 0 : html::a($this->createLink('project', 'task', "executionID={$execution->id}&status=all"), $execution->totalTasks);?>
task->noFinished;?> :undoneTasks) ? 0 : html::a($this->createLink('project', 'task', "executionID={$execution->id}&status=undone"), $execution->undoneTasks);?>
-
+
+

project->allInput;?>

+
+ project->membersUnit, $project->teamCount);?> + project->hoursUnit, $project->estimate);?> + budget . ' ' . zget($lang->project->unitList, $project->budgetUnit);?>
-
-
story->released;?> releasedStories;?>
-
-
-
-
-
- - - - - - - - - -
story->total;?> :totalStories) ? 0 : html::a($this->createLink('project', 'story', "executionID={$execution->id}&orderBy=order_desc&type=all"), $execution->totalStories);?>
story->unclosed;?> :unclosedStories) ? 0 : html::a($this->createLink('project', 'story', "executionID={$execution->id}&orderBy=order_desc&type=unclosed"), $execution->unclosedStories);?>
+
+ +

project->lastIteration;?>

+ executions as $execution):?> + + 3) break;?> +
name;?>
+
+
+
+ hours->progress . '%';?> +
+ +
+
+ +
+
+ project->weekly;?> + current;?> +
+
+
+
project->progress;?>
+
progress . '%';?>
+
+
+
+
-
-
bug->yesterdayResolved;?> yesterdayResolved;?>
-
-
-
+
+
+
project->pv;?>
+
pv;?>
-
-
- - - - - - - - - -
bug->allBugs;?> :totalBugs) ? 0 : html::a($this->createLink('project', 'bug', "executionID={$execution->id}&orderBy=status,id_desc&build=0&type=all"), $execution->totalBugs);?>
bug->unResolved;?> :activeBugs) ? 0 : html::a($this->createLink('project', 'bug', "executionID={$execution->id}&orderBy=status,id_desc&build=0&type=unresolved"), $execution->activeBugs);?>
-
+
+
project->ev;?>
+
ev;?>
+
+
+
project->sv;?>
+
sv;?>
+
+
+
+ project->allInput;?> +
+
+
+
+
+
+
project->PM;?>
+
PM ? zget($users, $project->PM) : $lang->project->emptyPM;?>
+
+
+
project->teamCount;?>
+
teamCount;?>
+
+
+
project->budget;?>
+
budget;?>
+
+
+
+
+
+
project->ac;?>
+
ac;?>
+
+
+
project->cv;?>
+
cv;?>
+
+
+
+
+
+
diff --git a/module/block/view/projectteamblock.html.php b/module/block/view/projectteamblock.html.php index 20cea8dba9..7e4fff2426 100644 --- a/module/block/view/projectteamblock.html.php +++ b/module/block/view/projectteamblock.html.php @@ -8,12 +8,13 @@ $maxConsumed = 0;
+
project->name;?>
teamCount); $maxConsumed = max($maxConsumed, $project->consumed); ?> -
name;?>
+
name;?>
@@ -36,7 +37,7 @@ $maxConsumed = 0;
-
consumed;?>
+
consumed . $lang->execution->workHourUnit;?>
@@ -47,7 +48,7 @@ $maxConsumed = 0;