diff --git a/module/execution/view/storyestimate.html.php b/module/execution/view/storyestimate.html.php
index 3641a61782..fd35adfca8 100644
--- a/module/execution/view/storyestimate.html.php
+++ b/module/execution/view/storyestimate.html.php
@@ -48,7 +48,7 @@
account);?> |
account, "class='form-control'");?>
estimate)):?>
- estimate->{$user->account}->estimate;?> |
+ estimate->{$user->account}) ? $estimateInfo->estimate->{$user->account}->estimate : '';?> |
|
|
diff --git a/module/story/control.php b/module/story/control.php
index 6e75dcb859..51feca4f02 100644
--- a/module/story/control.php
+++ b/module/story/control.php
@@ -609,7 +609,7 @@ class story extends control
/* Get users. */
$users = $this->user->getPairs('pofirst|nodeleted', "$story->assignedTo,$story->openedBy,$story->closedBy");
- $reviewedBy = explode(',', trim($reviewedBy, ','));
+ $reviewedBy = explode(',', trim($story->reviewedBy, ','));
$reivewerList = '';
foreach($reviewedBy as $reviewer) $reivewerList .= zget($users, $reviewer) . ' ';
@@ -2202,7 +2202,6 @@ class story extends control
$oldStory = $this->dao->findById((int)$params['storyID'])->from(TABLE_STORY)->fetch();
$status = $oldStory->status;
if($params['result'] == 'revert') $status = 'active';
- if($params['result'] == 'reject') $status = 'closed';
}
die($status);
}
diff --git a/module/story/model.php b/module/story/model.php
index dc645bed67..4706b9d1c8 100644
--- a/module/story/model.php
+++ b/module/story/model.php
@@ -1147,18 +1147,12 @@ class storyModel extends model
$oldStory = $this->dao->findById($storyID)->from(TABLE_STORY)->fetch();
$now = helper::now();
$date = helper::today();
- $story = fixer::input('post')
+ $story = fixer::input('post')
->setDefault('reviewedDate', $date)
->setDefault('lastEditedBy', $this->app->user->account)
->setDefault('lastEditedDate', $now)
- ->setIF($this->post->result == 'reject', 'closedBy', $this->app->user->account)
- ->setIF($this->post->result == 'reject', 'closedDate', $now)
- ->setIF($this->post->result == 'reject', 'assignedTo', 'closed')
- ->setIF($this->post->result == 'reject', 'status', 'closed')
- ->setIF($this->post->result == 'reject', 'stage', 'closed')
->setIF($this->post->result == 'revert', 'version', $this->post->preVersion)
->setIF($this->post->result == 'revert', 'status', 'active')
- ->setIF($this->post->closedReason == 'done', 'stage', 'released')
->setIF(strpos($oldStory->reviewedBy, $this->app->user->account) === false, 'reviewedBy', $oldStory->reviewedBy . ',' . $this->app->user->account)
->removeIF($this->post->result != 'reject', 'closedReason, duplicateStory, childStories')
->removeIF($this->post->result == 'reject' and $this->post->closedReason != 'duplicate', 'duplicateStory')
@@ -1173,15 +1167,35 @@ class storyModel extends model
/* Update the story status by review rules. */
$passCount = 0;
+ $rejectCount = 0;
$reviewRule = $this->config->story->reviewRules;
$reviewerList = $this->dao->select('reviewer,result')->from(TABLE_STORYREVIEW)->where('story')->eq($storyID)->andWhere('version')->eq($oldStory->version)->fetchPairs('reviewer', 'result');
- foreach($reviewerList as $reviewer => $result) $passCount = $result == 'pass' ? $passCount + 1 : $passCount;
- if($reviewRule == 'allpass' and $passCount == count($reviewerList)) $story->status = 'active';
- if($reviewRule == 'halfpass' and $passCount >= floor(count($reviewerList) / 2) + 1) $story->status = 'active';
+ foreach($reviewerList as $reviewer => $result)
+ {
+ $passCount = $result == 'pass' ? $passCount + 1 : $passCount;
+ $rejectCount = $result == 'reject' ? $rejectCount + 1 : $rejectCount;
+ }
+ if($reviewRule == 'allpass')
+ {
+ if($passCount == count($reviewerList)) $story->status = 'active';
+ if($rejectCount == count($reviewerList)) $story->status = 'closed';
+ }
+ if($reviewRule == 'halfpass')
+ {
+ if($passCount >= floor(count($reviewerList) / 2) + 1) $story->status = 'active';
+ if($rejectCount >= floor(count($reviewerList) / 2) + 1) $story->status = 'closed';
+ }
+ if($story->status == 'closed')
+ {
+ $story->closedBy = $this->app->user->account;
+ $story->closedDate = $now;
+ $story->assignedTo = 'closed';
+ $story->stage = 'closed';
+ if($this->post->closedReason == 'done') $story->stage = 'released';
+ }
$this->dao->update(TABLE_STORY)->data($story)
->autoCheck()
- ->batchCheck($this->config->story->review->requiredFields, 'notempty')
->checkIF($this->post->result == 'reject', 'closedReason', 'notempty')
->checkIF($this->post->result == 'reject' and $this->post->closedReason == 'duplicate', 'duplicateStory', 'notempty')
->where('id')->eq($storyID)->exec();
diff --git a/module/story/view/edit.html.php b/module/story/view/edit.html.php
index c8bdff9d99..7c44d63ec8 100644
--- a/module/story/view/edit.html.php
+++ b/module/story/view/edit.html.php
@@ -204,7 +204,7 @@
story->assignedTo;?> |
assignedTo, 'class="form-control chosen"');?> |
- reviewedBy):?>
+
| story->reviewedBy;?> |
|