diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 2b5b18fc3a..9f8c74a989 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -266,6 +266,7 @@ $lang->resource->project->testtask = 'testtask'; $lang->resource->project->bug = 'bug'; $lang->resource->project->burn = 'burn'; $lang->resource->project->computeBurn = 'computeBurn'; +$lang->resource->project->fixFirst = 'fixFirst'; $lang->resource->project->burnData = 'burnData'; $lang->resource->project->team = 'team'; $lang->resource->project->doc = 'doc'; @@ -302,17 +303,18 @@ $lang->project->methodOrder[95] = 'testtask'; $lang->project->methodOrder[100] = 'bug'; $lang->project->methodOrder[105] = 'burn'; $lang->project->methodOrder[110] = 'computeBurn'; -$lang->project->methodOrder[115] = 'burnData'; -$lang->project->methodOrder[120] = 'team'; -$lang->project->methodOrder[125] = 'doc'; -$lang->project->methodOrder[130] = 'dynamic'; -$lang->project->methodOrder[135] = 'manageProducts'; -$lang->project->methodOrder[140] = 'manageMembers'; -$lang->project->methodOrder[145] = 'unlinkMember'; -$lang->project->methodOrder[150] = 'linkStory'; -$lang->project->methodOrder[155] = 'unlinkStory'; -$lang->project->methodOrder[160] = 'batchUnlinkStory'; -$lang->project->methodOrder[165] = 'updateOrder'; +$lang->project->methodOrder[115] = 'fixFirst'; +$lang->project->methodOrder[120] = 'burnData'; +$lang->project->methodOrder[125] = 'team'; +$lang->project->methodOrder[130] = 'doc'; +$lang->project->methodOrder[135] = 'dynamic'; +$lang->project->methodOrder[140] = 'manageProducts'; +$lang->project->methodOrder[145] = 'manageMembers'; +$lang->project->methodOrder[150] = 'unlinkMember'; +$lang->project->methodOrder[155] = 'linkStory'; +$lang->project->methodOrder[160] = 'unlinkStory'; +$lang->project->methodOrder[165] = 'batchUnlinkStory'; +$lang->project->methodOrder[170] = 'updateOrder'; /* Task. */ $lang->resource->task = new stdclass(); @@ -1073,3 +1075,5 @@ $lang->changelog['7.2'][] = 'custom-flow'; $lang->changelog['7.2'][] = 'group-manageView'; $lang->changelog['7.2'][] = 'product-updateOrder'; $lang->changelog['7.2'][] = 'project-updateOrder'; + +$lang->changelog['7.3'][] = 'project-fixFirst'; diff --git a/module/project/control.php b/module/project/control.php index 89bd212881..0b07c658a1 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -795,6 +795,25 @@ class project extends control $this->display(); } + /** + * Fix burn for first date. + * + * @param int $projectID + * @access public + * @return void + */ + public function fixFirst($projectID) + { + if($_POST) + { + $this->project->fixFirst($projectID); + die(js::reload('parent.parent')); + } + + $this->view->project = $this->project->getById($projectID); + $this->display(); + } + /** * Browse team of a project. * diff --git a/module/project/lang/en.php b/module/project/lang/en.php index 50b5bef781..61f6e05e88 100644 --- a/module/project/lang/en.php +++ b/module/project/lang/en.php @@ -115,6 +115,7 @@ $lang->project->burn = 'Burndown'; $lang->project->baseline = 'Base Line'; $lang->project->computeBurn = 'Update'; $lang->project->burnData = 'Burndown data'; +$lang->project->fixFirst = 'Fix first data'; $lang->project->team = 'Team'; $lang->project->doc = 'Doc'; $lang->project->manageProducts = 'Link ' . $lang->productCommon; @@ -230,7 +231,8 @@ $lang->project->charts->burn->graph->rotateNames = 1; $lang->project->charts->burn->graph->showValues = 0; $lang->project->placeholder = new stdclass(); -$lang->project->placeholder->code = "{$lang->projectCommon} code"; +$lang->project->placeholder->code = "{$lang->projectCommon} code"; +$lang->project->placeholder->totalLeft = 'Total left'; $lang->project->selectGroup = new stdclass(); $lang->project->selectGroup->doing = '(doing)'; diff --git a/module/project/lang/zh-cn.php b/module/project/lang/zh-cn.php index 2c2bb08c15..c2bef2028a 100644 --- a/module/project/lang/zh-cn.php +++ b/module/project/lang/zh-cn.php @@ -115,6 +115,7 @@ $lang->project->burn = '燃尽图'; $lang->project->baseline = '基准线'; $lang->project->computeBurn = '更新'; $lang->project->burnData = '燃尽图数据'; +$lang->project->fixFirst = '修复首天值'; $lang->project->team = '团队成员'; $lang->project->doc = '文档列表'; $lang->project->manageProducts = '关联' . $lang->productCommon; @@ -230,7 +231,8 @@ $lang->project->charts->burn->graph->rotateNames = 1; $lang->project->charts->burn->graph->showValues = 0; $lang->project->placeholder = new stdclass(); -$lang->project->placeholder->code = '团队内部的简称'; +$lang->project->placeholder->code = '团队内部的简称'; +$lang->project->placeholder->totalLeft = '总剩余工时'; $lang->project->selectGroup = new stdclass(); $lang->project->selectGroup->doing = '(进行中)'; diff --git a/module/project/model.php b/module/project/model.php index 881da5981d..5b5ae37bfd 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -1282,6 +1282,30 @@ class projectModel extends model return $burns; } + /** + * Fix burn for first day. + * + * @param int $projectID + * @access public + * @return void + */ + public function fixFirst($projectID) + { + $project = $this->getById($projectID); + $burn = $this->dao->select('*')->from(TABLE_BURN)->where('project')->eq($projectID) + ->andWhere('date')->eq($project->begin) + ->fetch(); + + $data = fixer::input('post') + ->add('project', $projectID) + ->add('date', $project->begin) + ->add('consumed', empty($burn) ? 0 : $burn->consumed) + ->get(); + if(!is_numeric($data->left)) return false; + + $this->dao->replace(TABLE_BURN)->data($data)->exec(); + } + /** * Get data of burn down chart. * diff --git a/module/project/view/burn.html.php b/module/project/view/burn.html.php index ab5f06a524..63ca451b84 100644 --- a/module/project/view/burn.html.php +++ b/module/project/view/burn.html.php @@ -26,6 +26,7 @@ createLink('project', 'burn', "projectID=$projectID&type=$weekend&interval=$interval"), $lang->project->$weekend, '', "class='btn btn-sm'"); + common::printLink('project', 'fixFirst', "project=$project->id", $lang->project->fixFirst, '', "class='btn btn-sm iframe' data-width='500'"); common::printLink('project', 'computeBurn', 'reload=yes', $lang->project->computeBurn, 'hiddenwin', "title='{$lang->project->computeBurn}{$lang->project->burn}' class='btn btn-primary btn-sm' id='computeBurn'"); echo $lang->project->howToUpdateBurn; ?>