* Finish task #7473.

This commit is contained in:
chenfei
2020-07-22 16:28:09 +08:00
parent 5a96e8a5a5
commit 893a672c5a
9 changed files with 70 additions and 26 deletions
+14 -11
View File
@@ -482,6 +482,8 @@ class project extends control
*/
public function importBug($projectID = 0, $browseType = 'all', $param = 0, $recTotal = 0, $recPerPage = 30, $pageID = 1)
{
$this->app->loadConfig('task');
if(!empty($_POST))
{
$mails = $this->project->importBug($projectID);
@@ -605,17 +607,18 @@ class project extends control
$this->loadModel('search')->setSearchParams($this->config->bug->search);
/* Assign. */
$this->view->title = $title;
$this->view->position = $position;
$this->view->pager = $pager;
$this->view->bugs = $bugs;
$this->view->recTotal = $pager->recTotal;
$this->view->recPerPage = $pager->recPerPage;
$this->view->browseType = $browseType;
$this->view->param = $param;
$this->view->users = $users;
$this->view->project = $this->project->getByID($projectID);
$this->view->projectID = $projectID;
$this->view->title = $title;
$this->view->position = $position;
$this->view->pager = $pager;
$this->view->bugs = $bugs;
$this->view->recTotal = $pager->recTotal;
$this->view->recPerPage = $pager->recPerPage;
$this->view->browseType = $browseType;
$this->view->param = $param;
$this->view->users = $users;
$this->view->project = $this->project->getByID($projectID);
$this->view->projectID = $projectID;
$this->view->requiredFields = explode(',', $this->config->task->create->requiredFields);
$this->display();
}
+43 -7
View File
@@ -1468,12 +1468,20 @@ class projectModel extends model
$showAllModule = isset($this->config->project->task->allModule) ? $this->config->project->task->allModule : '';
$modules = $this->loadModel('tree')->getTaskOptionMenu($projectID, 0, 0, $showAllModule ? 'allModule' : '');
$project = $this->getByID($projectID);
$requiredFields = ',' . $this->config->task->create->requiredFields . ',';
if($project->type == 'ops') $requiredFields = str_replace(',story,', ',', $requiredFields);
$requiredFields = trim($requiredFields, ',');
$bugToTasks = fixer::input('post')->get();
$bugs = $this->bug->getByList(array_keys($bugToTasks->import));
foreach($bugToTasks->import as $key => $value)
{
$bug = $bugs[$key];
$bug = zget($bugs, $key, '');
if(empty($bug)) continue;
$task = new stdClass();
$task->bug = $bug;
$task->project = $projectID;
$task->story = $bug->story;
$task->storyVersion = $bug->storyVersion;
@@ -1483,22 +1491,50 @@ class projectModel extends model
$task->type = 'devel';
$task->pri = $bugToTasks->pri[$key];
$task->deadline = $bugToTasks->deadline[$key];
$task->estimate = $bugToTasks->estimate[$key];
$task->consumed = 0;
$task->assignedTo = '';
$task->status = 'wait';
$task->openedDate = $now;
$task->openedBy = $this->app->user->account;
if(!empty($bugToTasks->estimate[$key]))
{
$task->estimate = $bugToTasks->estimate[$key];
$task->left = $task->estimate;
}
if($task->estimate !== '') $task->left = $task->estimate;
if(strpos($requiredFields, 'deadline') !== false and $task->deadline == '0000-00-00') $task->deadline = '';
if(!empty($bugToTasks->assignedTo[$key]))
{
$task->assignedTo = $bugToTasks->assignedTo[$key];
$task->assignedDate = $now;
}
/* Check task required fields. */
foreach(explode(',', $requiredFields) as $field)
{
if(empty($field)) continue;
if(!isset($task->$field)) continue;
if(!empty($task->$field)) continue;
if($field == 'estimate' and strlen(trim($task->estimate)) != 0) continue;
dao::$errors['message'][] = sprintf($this->lang->error->notempty, $this->lang->task->$field);
return false;
}
if(!preg_match("/^[0-9]+(.[0-9]{1,3})?$/", $task->estimate))
{
dao::$errors['message'][] = $this->lang->task->error->estimateNumber;
return false;
}
$tasks[$key] = $task;
}
foreach($tasks as $key => $task)
{
$bug = $task->bug;
unset($task->bug);
if(!$bug->confirmed) $this->dao->update(TABLE_BUG)->set('confirmed')->eq(1)->where('id')->eq($bug->id)->exec();
$this->dao->insert(TABLE_TASK)->data($task)->checkIF($bugToTasks->estimate[$key] != '', 'estimate', 'float')->exec();
$this->dao->insert(TABLE_TASK)->data($task)->checkIF($task->estimate != '', 'estimate', 'float')->exec();
if(dao::isError())
{
+5 -5
View File
@@ -27,7 +27,7 @@ var browseType = '<?php echo $browseType;?>';
<div id='queryBox' data-module='importBug' class='show'></div>
</div>
<form class='main-table' method='post' target='hiddenwin' id='importBugForm' data-ride='table'>
<table class='table has-sort-head table-fixed'>
<table class='table table-form has-sort-head table-fixed'>
<thead>
<tr>
<th class='c-id'>
@@ -40,10 +40,10 @@ var browseType = '<?php echo $browseType;?>';
<th class='w-pri'> <?php echo $lang->priAB;?></th>
<th><?php echo $lang->bug->title;?></th>
<th class='w-80px'><?php echo $lang->bug->statusAB;?></th>
<th class='w-100px'><?php echo $lang->task->pri;?></th>
<th class='w-150px'><?php echo $lang->task->assignedTo;?></th>
<th class='w-80px'><?php echo $lang->task->estimate;?></th>
<th class='w-120px'><?php echo $lang->task->deadline;?></th>
<th class='w-100px <?php echo in_array('pri', $requiredFields) ? 'required' : ''?>'><?php echo $lang->task->pri;?></th>
<th class='w-150px <?php echo in_array('assignedTo', $requiredFields) ? 'required' : ''?>'><?php echo $lang->task->assignedTo;?></th>
<th class='w-80px <?php echo in_array('estimate', $requiredFields) ? 'required' : ''?>'><?php echo $lang->task->estimate;?></th>
<th class='w-120px <?php echo in_array('deadline', $requiredFields) ? 'required' : ''?>'><?php echo $lang->task->deadline;?></th>
</tr>
</thead>
<tbody>
+1
View File
@@ -201,6 +201,7 @@ $lang->task->error = new stdclass();
$lang->task->error->totalNumber = '"Total Cost" must be numbers.';
$lang->task->error->consumedNumber = '"Verbraucht" muss eine Zahl sein.';
$lang->task->error->estimateNumber = '"Stunden" müss eine Zahl sein.';
$lang->task->error->leftNumber = '"Left" must be numbers.';
$lang->task->error->recordMinus = 'Work hours should not be negative number.';
$lang->task->error->consumedSmall = '"Genutzt" muss larger than before.';
$lang->task->error->consumedThisTime = 'Bitte geben Sie die Stunden an';
+1
View File
@@ -201,6 +201,7 @@ $lang->task->error = new stdclass();
$lang->task->error->totalNumber = '"Total Cost" must be numbers.';
$lang->task->error->consumedNumber = '"Current Cost" must be numbers.';
$lang->task->error->estimateNumber = '"Estimates" must be numbers.';
$lang->task->error->leftNumber = '"Left" must be numbers.';
$lang->task->error->recordMinus = 'Work hours should not be negative number.';
$lang->task->error->consumedSmall = '"Total Cost" must be > the last number.';
$lang->task->error->consumedThisTime = 'Please enter "Hours Cost"';
+1
View File
@@ -201,6 +201,7 @@ $lang->task->error = new stdclass();
$lang->task->error->totalNumber = '"Total Cost" must be numbers.';
$lang->task->error->consumedNumber = '"Coût" doit être numérique.';
$lang->task->error->estimateNumber = '"Estimé" doit être numérique.';
$lang->task->error->leftNumber = '"Entrez" doit être numérique.';
$lang->task->error->recordMinus = 'Work hours should not be negative number.';
$lang->task->error->consumedSmall = '"Coût Total" doit être > au dernier chiffre.';
$lang->task->error->consumedThisTime = 'Entrez le "Coût en Heures"';
+1
View File
@@ -201,6 +201,7 @@ $lang->task->error = new stdclass();
$lang->task->error->totalNumber = '"Total Cost" must be numbers.';
$lang->task->error->consumedNumber = '"Giờ làm" phải là số.';
$lang->task->error->estimateNumber = '"Dự tính" phải là số.';
$lang->task->error->leftNumber = '"Left" must be numbers.';
$lang->task->error->recordMinus = 'Giờ làm không nên là số âm';
$lang->task->error->consumedSmall = '"Tổng giờ làm" phải là > số cuối cùng.';
$lang->task->error->consumedThisTime = 'Vui lòng nhập "Số giờ làm"';
+2 -1
View File
@@ -200,7 +200,8 @@ $lang->task->cannotDeleteParent = '不能删除父任务。';
$lang->task->error = new stdclass();
$lang->task->error->totalNumber = '"总计消耗"必须为数字';
$lang->task->error->consumedNumber = '"本次消耗"必须为数字';
$lang->task->error->estimateNumber = '"预计剩余"必须为数字';
$lang->task->error->estimateNumber = '"最初预计"必须为数字';
$lang->task->error->leftNumber = '"预计剩余"必须为数字';
$lang->task->error->recordMinus = '工时不能为负数';
$lang->task->error->consumedSmall = '"总计消耗"必须大于之前消耗';
$lang->task->error->consumedThisTime = '请填写"工时"';
+2 -2
View File
@@ -1296,7 +1296,7 @@ class taskModel extends model
foreach($record->consumed as $id => $item) $record->consumed[$id] = trim($item);
foreach($record->left as $id => $item) $record->left[$id] = trim($item);
foreach($record->consumed as $id => $item) if(!is_numeric($item) and !empty($item)) dao::$errors[] = 'ID #' . $id . ' ' . $this->lang->task->error->totalNumber;
foreach($record->left as $id => $item) if(!is_numeric($item) and !empty($item)) dao::$errors[] = 'ID #' . $id . ' ' . $this->lang->task->error->estimateNumber;
foreach($record->left as $id => $item) if(!is_numeric($item) and !empty($item)) dao::$errors[] = 'ID #' . $id . ' ' . $this->lang->task->error->leftNumber;
if(dao::isError()) return false;
$estimates = array();
@@ -1647,7 +1647,7 @@ class taskModel extends model
if(!is_numeric($task->left))
{
dao::$errors[] = $this->lang->task->error->estimateNumber;
dao::$errors[] = $this->lang->task->error->leftNumber;
return false;
}