* Add story reviewer for edit story.

This commit is contained in:
qiyu-xie
2021-05-20 15:58:08 +08:00
parent 3eeb136b1e
commit ec1935b516
3 changed files with 19 additions and 8 deletions
+2 -4
View File
@@ -609,9 +609,7 @@ class story extends control
/* Get users. */
$users = $this->user->getPairs('pofirst|nodeleted', "$story->assignedTo,$story->openedBy,$story->closedBy");
$reviewedBy = explode(',', trim($story->reviewedBy, ','));
$reivewerList = '';
foreach($reviewedBy as $reviewer) $reivewerList .= zget($users, $reviewer) . ' ';
$reviewerList = $this->dao->select('reviewer')->from(TABLE_STORYREVIEW)->where('story')->eq($story->id)->andWhere('version')->eq($story->version)->fetchPairs('reviewer');
$this->story->replaceURLang($story->type);
@@ -623,7 +621,7 @@ class story extends control
$this->view->product = $product;
$this->view->products = $myProducts + $othersProducts;
$this->view->branches = $product->type == 'normal' ? array() : $this->loadModel('branch')->getPairs($story->product);
$this->view->reviewers = $reivewerList;
$this->view->reviewers = implode(',', $reviewerList);
$this->display();
}
+16 -1
View File
@@ -670,7 +670,7 @@ class storyModel extends model
->join('mailto', ',')
->join('linkStories', ',')
->join('childStories', ',')
->remove('files,labels,comment,contactListMenu,stages')
->remove('files,labels,comment,contactListMenu,stages,reviewer')
->get();
if(isset($story->plan) and is_array($story->plan)) $story->plan = trim(join(',', $story->plan), ',');
@@ -785,6 +785,21 @@ class storyModel extends model
if(empty($oldStory->plan) or empty($story->plan)) $this->setStage($storyID); // Set new stage for this story.
}
/* Update story reviewer. */
$_POST['reviewer'] = array_filter($_POST['reviewer']);
$this->dao->delete()->from(TABLE_STORYREVIEW)->where('story')->eq($storyID)->andWhere('version')->eq($oldStory->version)->andWhere('reviewer')->notin(implode(',', $_POST['reviewer']))->exec();
$oldReviewerList = $this->dao->select('reviewer')->from(TABLE_STORYREVIEW)->where('story')->eq($storyID)->andWhere('version')->eq($oldStory->version)->fetchPairs('reviewer');
foreach($_POST['reviewer'] as $reviewer)
{
if(in_array($reviewer, $oldReviewerList)) continue;
$reviewData = new stdclass();
$reviewData->story = $storyID;
$reviewData->version = $oldStory->version;
$reviewData->reviewer = $reviewer;
$this->dao->insert(TABLE_STORYREVIEW)->data($reviewData)->exec();
}
unset($oldStory->parent);
unset($story->parent);
return common::createChanges($oldStory, $story);
+1 -3
View File
@@ -204,12 +204,10 @@
<th><?php echo $lang->story->assignedTo;?></th>
<td><?php echo html::select('assignedTo', $users, $story->assignedTo, 'class="form-control chosen"');?></td>
</tr>
<?php if($reviewers):?>
<tr>
<th><?php echo $lang->story->reviewedBy;?></th>
<td><?php echo $reviewers;?></td>
<td><?php echo html::select('reviewer[]', $users, $reviewers, 'class="form-control chosen" multiple')?></td>
</tr>
<?php endif;?>
<?php if($story->status == 'closed'):?>
<tr>
<th><?php echo $lang->story->closedBy;?></th>