From 1a65713332d7f5d997c8716eb1320ab255e0f5f3 Mon Sep 17 00:00:00 2001 From: lanzongjun Date: Thu, 1 Sep 2022 09:11:10 +0800 Subject: [PATCH] * finish task #66992 --- module/bug/model.php | 20 +++++++++++++++++--- module/story/model.php | 26 ++++++++++++++++++++++---- module/task/model.php | 25 +++++++++++++++++++++---- module/todo/model.php | 9 ++++++++- 4 files changed, 68 insertions(+), 12 deletions(-) diff --git a/module/bug/model.php b/module/bug/model.php index 44834919da..a062d22a88 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -781,7 +781,11 @@ class bugModel extends model if($bug->execution and $bug->status != $oldBug->status) $this->loadModel('kanban')->updateLane($bug->execution, 'bug'); - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldBug->feedback) $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, $bug->status, $oldBug->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldBug->feedback) + { + $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, $bug->status, $oldBug->status); + if(in_array($bug->status, array('resolved', 'closed'))) $this->loadModel('action')->create('feedback', $oldBug->feedback, 'finished', '', "bug {$bug->status}"); + } return common::createChanges($oldBug, $bug); } @@ -919,6 +923,7 @@ class bugModel extends model { $feedbacks[$oldBug->feedback] = $oldBug->feedback; $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, $bug->status, $oldBug->status); + if(in_array($bug->status, array('resolved', 'closed'))) $this->loadModel('action')->create('feedback', $oldBug->feedback, 'finished', '', "bug {$bug->status}"); } } else @@ -1216,7 +1221,11 @@ class bugModel extends model /* Link bug to build and release. */ $this->linkBugToBuild($bugID, $bug->resolvedBuild); - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldBug->feedback) $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, $bug->status, $oldBug->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldBug->feedback) + { + $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, $bug->status, $oldBug->status); + if(in_array($bug->status, array('resolved', 'closed'))) $this->loadModel('action')->create('feedback', $oldBug->feedback, 'finished', '', "bug {$bug->status}"); + } return common::createChanges($oldBug, $bug); } @@ -1395,6 +1404,7 @@ class bugModel extends model { $feedbacks[$oldBug->feedback] = $oldBug->feedback; $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, $bug->status, $oldBug->status); + $this->loadModel('action')->create('feedback', $oldBug->feedback, 'finished', '', 'bug resolved'); } } @@ -1507,7 +1517,11 @@ class bugModel extends model if(isset($output['toColID'])) $this->kanban->moveCard($bugID, $output['fromColID'], $output['toColID'], $output['fromLaneID'], $output['toLaneID']); } - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldBug->feedback) $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, $bug->status, $oldBug->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldBug->feedback) + { + $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, $bug->status, $oldBug->status); + $this->loadModel('action')->create('feedback', $oldBug->feedback, 'finished', '', 'bug closed'); + } return common::createChanges($oldBug, $bug); } diff --git a/module/story/model.php b/module/story/model.php index e37d3ad6e2..71e5a99aea 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -363,7 +363,11 @@ class storyModel extends model $this->loadModel('action')->create('bug', $bugID, 'ToStory', '', $storyID); $this->action->create('bug', $bugID, 'Closed'); - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && !dao::isError() && $oldBug->feedback) $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, 'closed', $oldBug->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && !dao::isError() && $oldBug->feedback) + { + $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, 'closed', $oldBug->status); + $this->loadModel('action')->create('feedback', $oldBug->feedback, 'finished', '', "bug closed"); + } /* add files to story from bug. */ $files = $this->dao->select('*')->from(TABLE_FILE) @@ -1011,7 +1015,11 @@ class storyModel extends model unset($oldStory->parent); unset($story->parent); - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldStory->feedback) $this->loadModel('feedback')->updateStatus('story', $oldStory->feedback, $story->status, $oldStory->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldStory->feedback) + { + $this->loadModel('feedback')->updateStatus('story', $oldStory->feedback, $story->status, $oldStory->status); + if($story->status == 'closed') $this->loadModel('action')->create('feedback', $oldStory->feedback, 'finished', '', "story {$story->status}"); + } $linkStoryField = $oldStory->type == 'story' ? 'linkStories' : 'linkRequirements'; $linkStories = explode(',', $story->{$linkStoryField}); @@ -1146,7 +1154,11 @@ class storyModel extends model $this->action->logHistory($actionID, $changes); } - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldParentStory->feedback) $this->loadModel('feedback')->updateStatus('story', $oldParentStory->feedback, $newParentStory->status, $oldParentStory->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldParentStory->feedback) + { + $this->loadModel('feedback')->updateStatus('story', $oldParentStory->feedback, $newParentStory->status, $oldParentStory->status); + if($newParentStory->status == 'closed') $this->loadModel('action')->create('feedback', $oldParentStory->feedback, 'finished', '', "story {$newParentStory->status}"); + } } } else @@ -1386,6 +1398,7 @@ class storyModel extends model { $feedbacks[$oldStory->feedback] = $oldStory->feedback; $this->loadModel('feedback')->updateStatus('story', $oldStory->feedback, $story->status, $oldStory->status); + if($story->status == 'closed') $this->loadModel('action')->create('feedback', $oldStory->feedback, 'finished', '', "story {$story->status}"); } } else @@ -1787,7 +1800,11 @@ class storyModel extends model $this->setStage($storyID); $this->loadModel('score')->create('story', 'close', $storyID); - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldStory->feedback) $this->loadModel('feedback')->updateStatus('story', $oldStory->feedback, $story->status, $oldStory->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldStory->feedback) + { + $this->loadModel('feedback')->updateStatus('story', $oldStory->feedback, $story->status, $oldStory->status); + $this->loadModel('action')->create('feedback', $oldStory->feedback, 'finished', '', "story closed"); + } } return common::createChanges($oldStory, $story); } @@ -1856,6 +1873,7 @@ class storyModel extends model { $feedbacks[$oldStory->feedback] = $oldStory->feedback; $this->loadModel('feedback')->updateStatus('story', $oldStory->feedback, $story->status, $oldStory->status); + $this->loadModel('action')->create('feedback', $oldStory->feedback, 'finished', '', "story closed"); } } else diff --git a/module/task/model.php b/module/task/model.php index e6e3499c11..17b32c4919 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -765,7 +765,11 @@ class taskModel extends model $this->action->logHistory($actionID, $changes); } - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldParentTask->feedback) $this->loadModel('feedback')->updateStatus('task', $oldParentTask->feedback, $newParentTask->status, $oldParentTask->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldParentTask->feedback) + { + $this->loadModel('feedback')->updateStatus('task', $oldParentTask->feedback, $newParentTask->status, $oldParentTask->status); + if(in_array($newParentTask->status, array('done', 'closed'))) $this->loadModel('action')->create('feedback', $oldParentTask->feedback, 'finished', '', "task {$newParentTask->status}"); + } } } else @@ -1162,7 +1166,11 @@ class taskModel extends model unset($oldTask->parent); unset($task->parent); - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldTask->feedback) $this->loadModel('feedback')->updateStatus('task', $oldTask->feedback, $task->status, $oldTask->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldTask->feedback) + { + $this->loadModel('feedback')->updateStatus('task', $oldTask->feedback, $task->status, $oldTask->status); + if(in_array($task->status, array('done', 'closed'))) $this->loadModel('action')->create('feedback', $oldTask->feedback, 'finished', '', "task {$task->status}"); + } return common::createChanges($oldTask, $task); } @@ -1440,6 +1448,7 @@ class taskModel extends model { $feedbacks[$oldTask->feedback] = $oldTask->feedback; $this->loadModel('feedback')->updateStatus('task', $oldTask->feedback, $task->status, $oldTask->status); + if(in_array($task->status, array('done', 'closed'))) $this->loadModel('action')->create('feedback', $oldTask->feedback, 'finished', '', "task {$task->status}"); } $allChanges[$taskID] = common::createChanges($oldTask, $task); } @@ -2008,7 +2017,11 @@ class taskModel extends model if(isset($output['toColID'])) $this->kanban->moveCard($taskID, $output['fromColID'], $output['toColID'], $output['fromLaneID'], $output['toLaneID']); } - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldTask->feedback) $this->loadModel('feedback')->updateStatus('task', $oldTask->feedback, $task->status, $oldTask->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldTask->feedback) + { + $this->loadModel('feedback')->updateStatus('task', $oldTask->feedback, $task->status, $oldTask->status); + $this->loadModel('action')->create('feedback', $oldTask->feedback, 'finished', '', "task done"); + } return common::createChanges($oldTask, $task); } @@ -2094,7 +2107,11 @@ class taskModel extends model if(!isset($output['toColID'])) $this->kanban->updateLane($oldTask->execution, 'task', $taskID); if(isset($output['toColID'])) $this->kanban->moveCard($taskID, $output['fromColID'], $output['toColID'], $output['fromLaneID'], $output['toLaneID']); - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldTask->feedback) $this->loadModel('feedback')->updateStatus('task', $oldTask->feedback, $task->status, $oldTask->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldTask->feedback) + { + $this->loadModel('feedback')->updateStatus('task', $oldTask->feedback, $task->status, $oldTask->status); + $this->loadModel('action')->create('feedback', $oldTask->feedback, 'finished', '', "task closed"); + } return common::createChanges($oldTask, $task); } diff --git a/module/todo/model.php b/module/todo/model.php index a251f011b2..d229b7ca87 100644 --- a/module/todo/model.php +++ b/module/todo/model.php @@ -305,7 +305,11 @@ class todoModel extends model { $this->file->updateObjectID($this->post->uid, $todoID, 'todo'); if(!empty($oldTodo->cycle)) $this->createByCycle(array($todoID => $todo)); - if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $todo->type == 'feedback' && $todo->idvalue) $this->loadModel('feedback')->updateStatus('todo', $todo->idvalue, $todo->status); + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $todo->type == 'feedback' && $todo->idvalue) + { + $this->loadModel('feedback')->updateStatus('todo', $todo->idvalue, $todo->status); + if(in_array($todo->status, array('done', 'closed'))) $this->loadModel('action')->create('feedback', $todo->idvalue, 'finished', '', "todo {$todo->status}"); + } return common::createChanges($oldTodo, $todo); } } @@ -377,6 +381,7 @@ class todoModel extends model { $feedbacks[$todo->idvalue] = $todo->idvalue; $this->loadModel('feedback')->updateStatus('todo', $todo->idvalue, $todo->status); + if(in_array($todo->status, array('done', 'closed'))) $this->loadModel('action')->create('feedback', $todo->idvalue, 'finished', '', "todo {$todo->status}"); } $allChanges[$todoID] = common::createChanges($oldTodo, $todo); @@ -429,6 +434,7 @@ class todoModel extends model { $feedbackID = $this->dao->select('idvalue')->from(TABLE_TODO)->where('id')->eq($todoID)->andWhere('type')->eq('feedback')->fetch('idvalue'); if($feedbackID) $this->loadModel('feedback')->updateStatus('todo', $feedbackID, 'done'); + $this->loadModel('action')->create('feedback', $feedbackID, 'finished', '', 'todo done'); } return true; } @@ -798,6 +804,7 @@ class todoModel extends model { $feedbackID = $this->dao->select('idvalue')->from(TABLE_TODO)->where('id')->eq($todoID)->andWhere('type')->eq('feedback')->fetch('idvalue'); if($feedbackID) $this->loadModel('feedback')->updateStatus('todo', $feedbackID, 'closed'); + $this->loadModel('action')->create('feedback', $feedbackID, 'finished', '', 'todo closed'); } return true; }