From c09b24adbd165360933c1efc0a49215212a983ba Mon Sep 17 00:00:00 2001 From: mayue Date: Tue, 22 Mar 2022 13:50:19 +0800 Subject: [PATCH 1/6] * Fix bug #20098. --- module/projectrelease/model.php | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/module/projectrelease/model.php b/module/projectrelease/model.php index 63cc678266..ea37a2d29a 100644 --- a/module/projectrelease/model.php +++ b/module/projectrelease/model.php @@ -211,6 +211,28 @@ class projectreleaseModel extends model $this->file->saveUpload('release', $releaseID); $this->loadModel('score')->create('release', 'create', $releaseID); + /* Reset story stagedBy field for auto compute stage. */ + if($release->stories) + { + $this->loadModel('story'); + $this->loadModel('action'); + + $storyIDList = explode(',', $release->stories); + $product = $this->loadModel('product')->getById($release->product); + foreach($storyIDList as $storyID) + { + if($storyID) + { + $this->dao->update(TABLE_STORY)->set('stagedBy')->eq('')->where('id')->eq($storyID)->exec(); + if($product and $product->type != 'normal') $this->dao->update(TABLE_STORYSTAGE)->set('stagedBy')->eq('')->where('story')->eq($storyID)->andWhere('branch')->eq($release->branch)->exec(); + + $this->story->setStage($storyID); + + $this->action->create('story', $storyID, 'linked2release', '', $releaseID); + } + } + } + return $releaseID; } @@ -333,13 +355,13 @@ class projectreleaseModel extends model } /** - * Judge btn is clickable or not. - * - * @param int $release - * @param string $action + * Judge btn is clickable or not. + * + * @param int $release + * @param string $action * @static * @access public - * @return bool + * @return bool */ public static function isClickable($release, $action) { From 4b4b04f19bae77739257c73dacf444288851f490 Mon Sep 17 00:00:00 2001 From: mayue Date: Tue, 22 Mar 2022 15:21:34 +0800 Subject: [PATCH 2/6] * Optimize code. --- module/release/model.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/module/release/model.php b/module/release/model.php index 9b51b940f8..93f1261a69 100644 --- a/module/release/model.php +++ b/module/release/model.php @@ -210,6 +210,28 @@ class releaseModel extends model $this->file->saveUpload('release', $releaseID); $this->loadModel('score')->create('release', 'create', $releaseID); + /* Reset story stagedBy field for auto compute stage. */ + if($release->stories) + { + $this->loadModel('story'); + $this->loadModel('action'); + + $storyIDList = explode(',', $release->stories); + $product = $this->loadModel('product')->getById($release->product); + foreach($storyIDList as $storyID) + { + if($storyID) + { + $this->dao->update(TABLE_STORY)->set('stagedBy')->eq('')->where('id')->eq($storyID)->exec(); + if($product and $product->type != 'normal') $this->dao->update(TABLE_STORYSTAGE)->set('stagedBy')->eq('')->where('story')->eq($storyID)->andWhere('branch')->eq($release->branch)->exec(); + + $this->story->setStage($storyID); + + $this->action->create('story', $storyID, 'linked2release', '', $releaseID); + } + } + } + return $releaseID; } From ceb7030aeb6cc3e9e4a2d962118121108050bb7d Mon Sep 17 00:00:00 2001 From: mayue Date: Tue, 22 Mar 2022 15:43:04 +0800 Subject: [PATCH 3/6] * Optimize code. --- module/projectrelease/model.php | 15 ++++++--------- module/release/model.php | 15 ++++++--------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/module/projectrelease/model.php b/module/projectrelease/model.php index ea37a2d29a..ec01b162c5 100644 --- a/module/projectrelease/model.php +++ b/module/projectrelease/model.php @@ -217,19 +217,16 @@ class projectreleaseModel extends model $this->loadModel('story'); $this->loadModel('action'); - $storyIDList = explode(',', $release->stories); - $product = $this->loadModel('product')->getById($release->product); + $storyIDList = array_filter(explode(',', $release->stories)); + $product = $this->loadModel('product')->getById($release->product); foreach($storyIDList as $storyID) { - if($storyID) - { - $this->dao->update(TABLE_STORY)->set('stagedBy')->eq('')->where('id')->eq($storyID)->exec(); - if($product and $product->type != 'normal') $this->dao->update(TABLE_STORYSTAGE)->set('stagedBy')->eq('')->where('story')->eq($storyID)->andWhere('branch')->eq($release->branch)->exec(); + $this->dao->update(TABLE_STORY)->set('stagedBy')->eq('')->where('id')->eq($storyID)->exec(); + if($product and $product->type != 'normal') $this->dao->update(TABLE_STORYSTAGE)->set('stagedBy')->eq('')->where('story')->eq($storyID)->andWhere('branch')->eq($release->branch)->exec(); - $this->story->setStage($storyID); + $this->story->setStage($storyID); - $this->action->create('story', $storyID, 'linked2release', '', $releaseID); - } + $this->action->create('story', $storyID, 'linked2release', '', $releaseID); } } diff --git a/module/release/model.php b/module/release/model.php index 93f1261a69..8a34c73f97 100644 --- a/module/release/model.php +++ b/module/release/model.php @@ -216,19 +216,16 @@ class releaseModel extends model $this->loadModel('story'); $this->loadModel('action'); - $storyIDList = explode(',', $release->stories); - $product = $this->loadModel('product')->getById($release->product); + $storyIDList = array_filter(explode(',', $release->stories)); + $product = $this->loadModel('product')->getById($release->product); foreach($storyIDList as $storyID) { - if($storyID) - { - $this->dao->update(TABLE_STORY)->set('stagedBy')->eq('')->where('id')->eq($storyID)->exec(); - if($product and $product->type != 'normal') $this->dao->update(TABLE_STORYSTAGE)->set('stagedBy')->eq('')->where('story')->eq($storyID)->andWhere('branch')->eq($release->branch)->exec(); + $this->dao->update(TABLE_STORY)->set('stagedBy')->eq('')->where('id')->eq($storyID)->exec(); + if($product and $product->type != 'normal') $this->dao->update(TABLE_STORYSTAGE)->set('stagedBy')->eq('')->where('story')->eq($storyID)->andWhere('branch')->eq($release->branch)->exec(); - $this->story->setStage($storyID); + $this->story->setStage($storyID); - $this->action->create('story', $storyID, 'linked2release', '', $releaseID); - } + $this->action->create('story', $storyID, 'linked2release', '', $releaseID); } } From 894cad15a27825f67de98f248a021cc25f742eb7 Mon Sep 17 00:00:00 2001 From: mayue Date: Tue, 22 Mar 2022 16:08:29 +0800 Subject: [PATCH 4/6] Optimize code. --- module/projectrelease/model.php | 4 ---- module/release/model.php | 4 ---- 2 files changed, 8 deletions(-) diff --git a/module/projectrelease/model.php b/module/projectrelease/model.php index ec01b162c5..97c4028f6e 100644 --- a/module/projectrelease/model.php +++ b/module/projectrelease/model.php @@ -218,12 +218,8 @@ class projectreleaseModel extends model $this->loadModel('action'); $storyIDList = array_filter(explode(',', $release->stories)); - $product = $this->loadModel('product')->getById($release->product); foreach($storyIDList as $storyID) { - $this->dao->update(TABLE_STORY)->set('stagedBy')->eq('')->where('id')->eq($storyID)->exec(); - if($product and $product->type != 'normal') $this->dao->update(TABLE_STORYSTAGE)->set('stagedBy')->eq('')->where('story')->eq($storyID)->andWhere('branch')->eq($release->branch)->exec(); - $this->story->setStage($storyID); $this->action->create('story', $storyID, 'linked2release', '', $releaseID); diff --git a/module/release/model.php b/module/release/model.php index 8a34c73f97..8d01810ca3 100644 --- a/module/release/model.php +++ b/module/release/model.php @@ -217,12 +217,8 @@ class releaseModel extends model $this->loadModel('action'); $storyIDList = array_filter(explode(',', $release->stories)); - $product = $this->loadModel('product')->getById($release->product); foreach($storyIDList as $storyID) { - $this->dao->update(TABLE_STORY)->set('stagedBy')->eq('')->where('id')->eq($storyID)->exec(); - if($product and $product->type != 'normal') $this->dao->update(TABLE_STORYSTAGE)->set('stagedBy')->eq('')->where('story')->eq($storyID)->andWhere('branch')->eq($release->branch)->exec(); - $this->story->setStage($storyID); $this->action->create('story', $storyID, 'linked2release', '', $releaseID); From 63300ff29eb8ac0b32da0dbacc7f66a0ef466390 Mon Sep 17 00:00:00 2001 From: mayue Date: Tue, 22 Mar 2022 16:13:52 +0800 Subject: [PATCH 5/6] Optimize code. --- module/release/model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/release/model.php b/module/release/model.php index 8d01810ca3..bc8bac51a0 100644 --- a/module/release/model.php +++ b/module/release/model.php @@ -210,7 +210,7 @@ class releaseModel extends model $this->file->saveUpload('release', $releaseID); $this->loadModel('score')->create('release', 'create', $releaseID); - /* Reset story stagedBy field for auto compute stage. */ + /* Set stage to released. */ if($release->stories) { $this->loadModel('story'); From 21b12f534f1365f7c052c3f6940cd388265acd15 Mon Sep 17 00:00:00 2001 From: mayue Date: Tue, 22 Mar 2022 16:16:39 +0800 Subject: [PATCH 6/6] Optimize code. --- module/projectrelease/model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/projectrelease/model.php b/module/projectrelease/model.php index 97c4028f6e..be3883e374 100644 --- a/module/projectrelease/model.php +++ b/module/projectrelease/model.php @@ -211,7 +211,7 @@ class projectreleaseModel extends model $this->file->saveUpload('release', $releaseID); $this->loadModel('score')->create('release', 'create', $releaseID); - /* Reset story stagedBy field for auto compute stage. */ + /* Set stage to released. */ if($release->stories) { $this->loadModel('story');