From b3d71e552a608bfa0dcb375a14b403032e69e16a Mon Sep 17 00:00:00 2001 From: lanzongjun Date: Thu, 1 Sep 2022 17:04:27 +0800 Subject: [PATCH 1/2] add upgrade feedback --- module/upgrade/model.php | 57 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 375693aa78..a950ac4f8b 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -705,6 +705,8 @@ class upgradeModel extends model $this->addFlowActions('biz7.4'); $this->addFlowFields('biz7.4'); break; + case 'biz7_6': + $this->processFeedbackModule(); } } @@ -7241,4 +7243,59 @@ class upgradeModel extends model return true; } + + /** + * Process feedback module + * + * @access public + * @return void + */ + public function processFeedbackModule() + { + + $products = $this->dao->select('id, name')->from(TABLE_PRODUCT)->fetchAll(); + $modules = $this->dao->select('*')->from(TABLE_MODULE)->where('type')->eq('feedback')->andWhere('root')->eq(0)->fetchAll('id'); + $feedbacks = $this->dao->select('*')->from(TABLE_FEEDBACK)->fetchAll(); + + $allProductRelation = array(); + foreach($products as $product) + { + $productID = $product->id; + $relation = array(); + foreach($modules as $moduleID => $module) + { + unset($module->id); + $module->root = $productID; + $this->dao->insert(TABLE_MODULE)->data($module)->exec(); + $newModuleID = $this->dao->lastInsertID(); + $relation[$moduleID] = $newModuleID; + $allProductRelation[$productID][$moduleID] = $newModuleID; + $newPaths = array(); + foreach(explode(',', trim($module->path, ',')) as $path) + { + if(isset($relation[$path])) $newPaths[] = $relation[$path]; + } + $newPaths = join(',', $newPaths); + $parent = !empty($module->parent) and isset($relation[$module->parent]) ? $relation[$module->parent] : 0; + $this->dao->update(TABLE_MODULE)->set('path')->eq($newPaths)->set('parent')->eq($parent)->where('id')->eq($newModuleID)->exec(); + } + } + + /* Update feedback module */ + foreach($feedbacks as $feedback) + { + $moduleID = $feedback->module; + $product = $feedback->product; + if(empty($moduleID)) continue; + $newModuleID = $allProductRelation[$product][$moduleID]; + if(empty($newModuleID)) continue; + + $this->dao->update(TABLE_FEEDBACK)->set('module')->eq($newModuleID)->where('id')->eq($feedback->id)->exec(); + } + + /* Delete history module */ + $this->dao->delete()->from(TABLE_MODULE)->where('type')->eq('feedback')->andWhere('root')->eq(0)->exec(); + + return true; + } } From 91da8c65f69f089d19ceb5509ab178f5140d4f37 Mon Sep 17 00:00:00 2001 From: lanzongjun Date: Fri, 2 Sep 2022 13:17:27 +0800 Subject: [PATCH 2/2] remove feedback action --- module/bug/model.php | 20 +++----------------- module/story/model.php | 26 ++++---------------------- module/task/model.php | 25 ++++--------------------- module/todo/model.php | 9 +-------- 4 files changed, 12 insertions(+), 68 deletions(-) diff --git a/module/bug/model.php b/module/bug/model.php index 374d7b4e3e..c871af90a1 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -790,11 +790,7 @@ 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(in_array($bug->status, array('resolved', 'closed'))) $this->loadModel('action')->create('feedback', $oldBug->feedback, 'processed', '', "bug {$bug->status}"); - } + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldBug->feedback) $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, $bug->status, $oldBug->status); return common::createChanges($oldBug, $bug); } @@ -932,7 +928,6 @@ 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, 'processed', '', "bug {$bug->status}"); } } else @@ -1230,11 +1225,7 @@ 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(in_array($bug->status, array('resolved', 'closed'))) $this->loadModel('action')->create('feedback', $oldBug->feedback, 'processed', '', "bug {$bug->status}"); - } + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldBug->feedback) $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, $bug->status, $oldBug->status); return common::createChanges($oldBug, $bug); } @@ -1413,7 +1404,6 @@ 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, 'processed', '', 'bug resolved'); } } @@ -1526,11 +1516,7 @@ 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); - $this->loadModel('action')->create('feedback', $oldBug->feedback, 'processed', '', 'bug closed'); - } + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldBug->feedback) $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, $bug->status, $oldBug->status); return common::createChanges($oldBug, $bug); } diff --git a/module/story/model.php b/module/story/model.php index 3f0060323c..a3c6f4a7f1 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -363,11 +363,7 @@ 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); - $this->loadModel('action')->create('feedback', $oldBug->feedback, 'processed', '', "bug closed"); - } + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && !dao::isError() && $oldBug->feedback) $this->loadModel('feedback')->updateStatus('bug', $oldBug->feedback, 'closed', $oldBug->status); /* add files to story from bug. */ $files = $this->dao->select('*')->from(TABLE_FILE) @@ -1024,11 +1020,7 @@ 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($story->status == 'closed') $this->loadModel('action')->create('feedback', $oldStory->feedback, 'processed', '', "story {$story->status}"); - } + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldStory->feedback) $this->loadModel('feedback')->updateStatus('story', $oldStory->feedback, $story->status, $oldStory->status); $linkStoryField = $oldStory->type == 'story' ? 'linkStories' : 'linkRequirements'; $linkStories = explode(',', $story->{$linkStoryField}); @@ -1163,11 +1155,7 @@ 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($newParentStory->status == 'closed') $this->loadModel('action')->create('feedback', $oldParentStory->feedback, 'processed', '', "story {$newParentStory->status}"); - } + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldParentStory->feedback) $this->loadModel('feedback')->updateStatus('story', $oldParentStory->feedback, $newParentStory->status, $oldParentStory->status); } } else @@ -1407,7 +1395,6 @@ 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, 'processed', '', "story {$story->status}"); } } else @@ -1809,11 +1796,7 @@ 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); - $this->loadModel('action')->create('feedback', $oldStory->feedback, 'processed', '', "story closed"); - } + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldStory->feedback) $this->loadModel('feedback')->updateStatus('story', $oldStory->feedback, $story->status, $oldStory->status); } return common::createChanges($oldStory, $story); } @@ -1882,7 +1865,6 @@ 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, 'processed', '', "story closed"); } } else diff --git a/module/task/model.php b/module/task/model.php index 0605a0af01..9e065cbb2f 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -752,11 +752,7 @@ 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(in_array($newParentTask->status, array('done', 'closed'))) $this->loadModel('action')->create('feedback', $oldParentTask->feedback, 'processed', '', "task {$newParentTask->status}"); - } + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldParentTask->feedback) $this->loadModel('feedback')->updateStatus('task', $oldParentTask->feedback, $newParentTask->status, $oldParentTask->status); } } else @@ -1251,11 +1247,7 @@ 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(in_array($task->status, array('done', 'closed'))) $this->loadModel('action')->create('feedback', $oldTask->feedback, 'processed', '', "task {$task->status}"); - } + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldTask->feedback) $this->loadModel('feedback')->updateStatus('task', $oldTask->feedback, $task->status, $oldTask->status); return common::createChanges($oldTask, $task); } @@ -1533,7 +1525,6 @@ 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, 'processed', '', "task {$task->status}"); } $allChanges[$taskID] = common::createChanges($oldTask, $task); } @@ -2035,11 +2026,7 @@ 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); - $this->loadModel('action')->create('feedback', $oldTask->feedback, 'processed', '', "task done"); - } + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldTask->feedback) $this->loadModel('feedback')->updateStatus('task', $oldTask->feedback, $task->status, $oldTask->status); return common::createChanges($oldTask, $task); } @@ -2125,11 +2112,7 @@ 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); - $this->loadModel('action')->create('feedback', $oldTask->feedback, 'processed', '', "task closed"); - } + if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldTask->feedback) $this->loadModel('feedback')->updateStatus('task', $oldTask->feedback, $task->status, $oldTask->status); return common::createChanges($oldTask, $task); } diff --git a/module/todo/model.php b/module/todo/model.php index c2c2030d5a..a251f011b2 100644 --- a/module/todo/model.php +++ b/module/todo/model.php @@ -305,11 +305,7 @@ 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(in_array($todo->status, array('done', 'closed'))) $this->loadModel('action')->create('feedback', $todo->idvalue, 'processed', '', "todo {$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); return common::createChanges($oldTodo, $todo); } } @@ -381,7 +377,6 @@ 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, 'processed', '', "todo {$todo->status}"); } $allChanges[$todoID] = common::createChanges($oldTodo, $todo); @@ -434,7 +429,6 @@ 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, 'processed', '', 'todo done'); } return true; } @@ -804,7 +798,6 @@ 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, 'processed', '', 'todo closed'); } return true; }