* Modify task required item.

This commit is contained in:
xieqiyu
2023-11-21 10:32:37 +08:00
parent bcebe95d17
commit 8ebcd035b6
5 changed files with 41 additions and 40 deletions
+11 -2
View File
@@ -28,7 +28,7 @@ class taskModel extends model
if(strpos($this->config->task->activate->requiredFields, 'comment') !== false && !$comment)
{
dao::$errors[] = sprintf($this->lang->error->notempty, $this->lang->comment);
dao::$errors['comment'] = sprintf($this->lang->error->notempty, $this->lang->comment);
return false;
}
@@ -331,6 +331,14 @@ class taskModel extends model
*/
public function afterUpdate(object $oldTask, object $task): void
{
/* Update children task. */
if(isset($task->execution) && $task->execution != $oldTask->execution)
{
$newExecution = $this->loadModel('execution')->getByID((int)$task->execution);
$task->project = $newExecution->project;
$this->dao->update(TABLE_TASK)->set('execution')->eq($task->execution)->set('module')->eq($task->module)->set('project')->eq($task->project)->where('parent')->eq($task->id)->exec();
}
/* Multi-task change to normal task. */
if($task->mode == 'single') $this->dao->delete()->from(TABLE_TASKTEAM)->where('task')->eq($task->id)->exec();
@@ -2720,8 +2728,9 @@ class taskModel extends model
}
$requiredFields = $this->taskTao->getRequiredFields4Edit($task);
$this->taskTao->doUpdate($task, $oldTask, $requiredFields);
if(dao::isError()) return false;
$this->taskTao->doUpdate($task, $oldTask, $requiredFields);
if(dao::isError()) return false;
$this->afterUpdate($oldTask, $task);
+2 -16
View File
@@ -548,14 +548,6 @@ class taskTao extends taskModel
$execution = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($task->execution)->fetch();
if($this->isNoStoryExecution($execution)) $task->story = 0;
/* Update children task. */
if(isset($task->execution) && $task->execution != $oldTask->execution)
{
$newExecution = $this->loadModel('execution')->getByID((int)$task->execution);
$task->project = $newExecution->project;
$this->dao->update(TABLE_TASK)->set('execution')->eq($task->execution)->set('module')->eq($task->module)->set('project')->eq($task->project)->where('parent')->eq($task->id)->exec();
}
/* Set the datetime and operator when the task is modified. */
if(empty($task->lastEditedDate) || empty($task->lastEditedBy))
{
@@ -867,22 +859,16 @@ class taskTao extends taskModel
* @access protected
* @return string
*/
protected function getRequiredFields4Edit(object $task): string
protected function getRequiredFields4Edit(object $task): string|bool
{
$execution = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($task->execution)->fetch();
$requiredFields = ',' . $this->config->task->edit->requiredFields . ',';
if($this->isNoStoryExecution($execution)) $requiredFields = str_replace(',story,', ',', $requiredFields);
if($task->status != 'cancel' && strpos($requiredFields, ',estimate,') !== false)
{
if(empty($task->estimate)) dao::$errors['estimate'] = sprintf($this->lang->error->notempty, $this->lang->task->estimate);
$requiredFields = str_replace(',estimate,', ',', $requiredFields);
}
if(strpos(',doing,pause,', $task->status) && empty($task->left))
{
dao::$errors[] = sprintf($this->lang->task->error->leftEmptyAB, $this->lang->task->statusList[$task->status]);
dao::$errors['left'] = sprintf($this->lang->task->error->leftEmptyAB, $this->lang->task->statusList[$task->status]);
return false;
}
+5 -6
View File
@@ -330,7 +330,7 @@ formPanel
(
set::width('1/2'),
set::label($lang->task->assignedTo),
set::required($isMultiple),
set::required($isMultiple || strpos(",{$this->config->task->activate->requiredFields},", ',assignedTo,')),
inputGroup
(
picker
@@ -339,6 +339,7 @@ formPanel
set::name('assignedTo'),
set::items($isMultiple ? $teamMembers : $members),
set::value($isMultiple ? '' : $task->finishedBy),
set::required(strpos(",{$this->config->task->activate->requiredFields},", ',assignedTo,') !== false),
on::change('setTeamUser')
),
$modalTeamBtn
@@ -350,11 +351,9 @@ formPanel
formGroup
(
set::label($lang->comment),
editor
(
set::name('comment'),
set::rows('5')
)
set::control('editor'),
set::name('comment'),
set::rows('5')
),
modalTrigger
(
+22 -16
View File
@@ -411,16 +411,19 @@ detailBody
(
set::name($lang->task->estimate),
set::required(strpos(",{$this->config->task->edit->requiredFields},", ",estimate,") !== false),
inputControl
formGroup
(
input
inputControl
(
set::name('estimate'),
set::value($task->estimate),
!empty($task->team) ? set::readonly(true) : null
),
to::suffix($lang->task->suffixHour),
set::suffixWidth(20)
input
(
set::name('estimate'),
set::value($task->estimate),
!empty($task->team) ? set::readonly(true) : null
),
to::suffix($lang->task->suffixHour),
set::suffixWidth(20)
)
)
),
item
@@ -448,16 +451,19 @@ detailBody
item
(
set::name($lang->task->left),
inputControl
formGroup
(
input
inputControl
(
set::name('left'),
set::value($task->left),
!empty($task->team) ? set::readonly(true) : null
),
to::suffix($lang->task->suffixHour),
set::suffixWidth(20)
input
(
set::name('left'),
set::value($task->left),
!empty($task->team) ? set::readonly(true) : null
),
to::suffix($lang->task->suffixHour),
set::suffixWidth(20)
)
)
)
),
+1
View File
@@ -765,6 +765,7 @@ class taskZen extends task
->setDefault('assignedTo', $oldTask->openedBy)
->get();
if(strpos(",{$this->config->task->finish->requiredFields},", ',comment,') !== false && empty($_POST['comment'])) dao::$errors['comment'] = sprintf($this->lang->error->notempty, $this->lang->comment);
if(!$this->post->currentConsumed && $oldTask->consumed == '0') dao::$errors['currentConsumed'][] = $this->lang->task->error->consumedEmpty;
if($task->realStarted > $task->finishedDate) dao::$errors['finishedDate'][] = $this->lang->task->error->finishedDateSmall;