Finish task #46674.
This commit is contained in:
@@ -129,3 +129,37 @@ $config->project->removePriv['project'] = array('index', 'browse', 'kanban', '
|
||||
$config->project->removePriv['bug'] = array('batchChangePlan');
|
||||
$config->project->removePriv['doc'] = array('catalog', 'index');
|
||||
$config->project->removePriv['auditplan'] = array('delete');
|
||||
|
||||
$config->project->checkList = new stdclass();
|
||||
|
||||
$config->project->checkList->scrum = new stdclass();
|
||||
$config->project->checkList->scrum->execution = defined('TABLE_EXECUTION') ? TABLE_EXECUTION : '';
|
||||
$config->project->checkList->scrum->bug = defined('TABLE_BUG') ? TABLE_BUG : '';
|
||||
$config->project->checkList->scrum->case = defined('TABLE_CASE') ? TABLE_CASE : '';
|
||||
$config->project->checkList->scrum->issue = defined('TABLE_ISSUE') ? TABLE_ISSUE : '';
|
||||
$config->project->checkList->scrum->risk = defined('TABLE_RISK') ? TABLE_RISK : '';
|
||||
$config->project->checkList->scrum->testtask = defined('TABLE_TESTTASK') ? TABLE_TESTTASK : '';
|
||||
$config->project->checkList->scrum->doc = defined('TABLE_DOC') ? TABLE_DOC : '';
|
||||
$config->project->checkList->scrum->build = defined('TABLE_BUILD') ? TABLE_BUILD : '';
|
||||
$config->project->checkList->scrum->projectrelease = defined('TABLE_RELEASE') ? TABLE_RELEASE : '';
|
||||
$config->project->checkList->scrum->meeting = defined('TABLE_MEETING') ? TABLE_MEETING : '';
|
||||
|
||||
$config->project->checkList->waterfall = new stdclass();
|
||||
$config->project->checkList->waterfall->stage = defined('TABLE_EXECUTION') ? TABLE_EXECUTION : '';
|
||||
$config->project->checkList->waterfall->design = defined('TABLE_DESIGN') ? TABLE_DESIGN : '';
|
||||
$config->project->checkList->waterfall->doc = defined('TABLE_DOC') ? TABLE_DOC : '';
|
||||
$config->project->checkList->waterfall->bug = defined('TABLE_BUG') ? TABLE_BUG : '';
|
||||
$config->project->checkList->waterfall->case = defined('TABLE_CASE') ? TABLE_CASE : '';
|
||||
$config->project->checkList->waterfall->build = defined('TABLE_BUILD') ? TABLE_BUILD : '';
|
||||
$config->project->checkList->waterfall->projectrelease = defined('TABLE_RELEASE') ? TABLE_RELEASE : '';
|
||||
$config->project->checkList->waterfall->testtask = defined('TABLE_TESTTASK') ? TABLE_TESTTASK : '';
|
||||
|
||||
$config->project->checkList->waterfall->review = defined('TABLE_REVIEW') ? TABLE_REVIEW : '';
|
||||
$config->project->checkList->waterfall->build = defined('TABLE_BUILD') ? TABLE_BUILD : '';
|
||||
$config->project->checkList->waterfall->researchplan = defined('TABLE_RESEARCHPLAN') ? TABLE_RESEARCHPLAN : '';
|
||||
$config->project->checkList->waterfall->issue = defined('TABLE_ISSUE') ? TABLE_ISSUE : '';
|
||||
$config->project->checkList->waterfall->risk = defined('TABLE_RISK') ? TABLE_RISK : '';
|
||||
$config->project->checkList->waterfall->opportunity = defined('TABLE_OPPORTUNITY') ? TABLE_OPPORTUNITY : '';
|
||||
$config->project->checkList->waterfall->auditplan = defined('TABLE_AUDITPLAN') ? TABLE_AUDITPLAN : '';
|
||||
$config->project->checkList->waterfall->gapanalysis = defined('TABLE_GAPANALYSIS') ? TABLE_GAPANALYSIS : '';
|
||||
$config->project->checkList->waterfall->meeting = defined('TABLE_MEETING') ? TABLE_MEETING : '';
|
||||
|
||||
@@ -593,6 +593,9 @@ class project extends control
|
||||
}
|
||||
}
|
||||
|
||||
$canChangeModel = $this->project->checkCanChangeModel($projectID, $project->model);
|
||||
$disableModel = $canChangeModel == true ? '' : 'disabled';
|
||||
|
||||
$this->view->title = $this->lang->project->edit;
|
||||
$this->view->position[] = $this->lang->project->edit;
|
||||
|
||||
@@ -617,6 +620,8 @@ class project extends control
|
||||
$this->view->parentProgram = $this->program->getByID($project->parent);
|
||||
$this->view->availableBudget = $this->program->getBudgetLeft($parentProject) + (float)$project->budget;
|
||||
$this->view->budgetUnitList = $this->project->getBudgetUnitList();
|
||||
$this->view->model = $project->model;
|
||||
$this->view->disableModel = $disableModel;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -271,6 +271,8 @@ $lang->project->childLongTime = "子项目中有长期项目,父项
|
||||
$lang->project->readjustTime = '重新调整项目起止时间';
|
||||
$lang->project->notAllowRemoveProducts = "该产品中的需求与项目进行了关联或者项目下的{$lang->execution->common}关联了该产品,请取消关联后再操作。";
|
||||
$lang->project->ge = "『%s』应当不小于实际开始时间『%s』。";
|
||||
$lang->project->kanban = "看板";
|
||||
$lang->project->kanbanTitle = "看板项目管理";
|
||||
|
||||
$lang->project->programTitle['0'] = '不显示';
|
||||
$lang->project->programTitle['base'] = '只显示一级项目集';
|
||||
|
||||
@@ -271,6 +271,8 @@ $lang->project->childLongTime = "子項目中有長期項目,父項
|
||||
$lang->project->readjustTime = '重新調整項目起止時間';
|
||||
$lang->project->notAllowRemoveProducts = "該產品中的需求與項目進行了關聯或者項目下的{$lang->execution->common}關聯了該產品,請取消關聯後再操作。";
|
||||
$lang->project->ge = "『%s』應當不小於實際開始時間『%s』。";
|
||||
$lang->project->kanban = "看板";
|
||||
$lang->project->kanbanTitle = "看板项目管理";
|
||||
|
||||
$lang->project->programTitle['0'] = '不顯示';
|
||||
$lang->project->programTitle['base'] = '只顯示一級項目集';
|
||||
|
||||
@@ -2086,4 +2086,54 @@ class projectModel extends model
|
||||
if(!$this->common->isOpenMethod($moduleName, $methodName) and !commonModel::hasPriv($moduleName, $methodName)) $this->common->deny($moduleName, $methodName, false);
|
||||
common::setMenuVars('project', $objectID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the project model can be changed.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $model
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function checkCanChangeModel($projectID, $model)
|
||||
{
|
||||
$checkList = $this->config->project->checkList->$model;
|
||||
foreach($checkList as $table)
|
||||
{
|
||||
$object = '';
|
||||
if($table == '') continue;
|
||||
if($table == TABLE_EXECUTION and $model == 'scrum')
|
||||
{
|
||||
$object = $this->fetchByProject($table, $projectID, 'sprint');
|
||||
}
|
||||
elseif($table == TABLE_EXECUTION and $model == 'waterfall')
|
||||
{
|
||||
$object = $this->fetchByProject($table, $projectID, 'stage');
|
||||
}
|
||||
else
|
||||
{
|
||||
$object = $this->fetchByProject($table, $projectID);
|
||||
}
|
||||
if(!empty($object)) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the objects under the project.
|
||||
*
|
||||
* @param constant $table
|
||||
* @param int $projectID
|
||||
* @param string $type
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function fetchByProject($table, $projectID, $type = '')
|
||||
{
|
||||
$result = $this->dao->select('*')->from($table)
|
||||
->where('project')->eq($projectID)
|
||||
->beginIF(!empty($type))->andWhere('type')->eq($type)->fi()
|
||||
->fetch();
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,13 @@
|
||||
<p><?php echo $lang->project->waterfallTitle; ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-xs-6'>
|
||||
<div class='project-type text-center'>
|
||||
<?php echo html::a($this->createLink("project", "create", "model=kanban&programID=$programID©ProjectID=0&extra=productID=$productID,branchID=$branchID"), "<img class='project-type-img' data-type='waterfall' src='{$config->webRoot}theme/default/images/main/waterfall.png'>", '', "data-app='project' class='createButton'")?>
|
||||
<h3><?php echo $lang->project->kanban; ?></h3>
|
||||
<p><?php echo $lang->project->kanbanTitle; ?></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -34,6 +34,10 @@
|
||||
</div>
|
||||
<form class='form-indicator main-form form-ajax' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->model;?></th>
|
||||
<td><?php echo html::select('model', $lang->project->modelList, $model, "class='form-control chosen' required $disableModel");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->program->parent;?></th>
|
||||
<?php
|
||||
@@ -183,7 +187,6 @@
|
||||
<tr>
|
||||
<td colspan='4' class='text-center form-actions'>
|
||||
<?php
|
||||
echo html::hidden('model', $project->model);
|
||||
echo html::submitButton();
|
||||
if(!isonlybody()) echo html::backButton();
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user