From c97df9a255ef88005720e248e54b468362d82331 Mon Sep 17 00:00:00 2001 From: daitingting Date: Wed, 24 Dec 2025 14:48:30 +0800 Subject: [PATCH] * [bug#67980,done,2h] Process project change review. --- module/my/js/audit.ui.js | 6 +++--- module/my/model.php | 11 ++++++++--- module/my/ui/audit.html.php | 5 +++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/module/my/js/audit.ui.js b/module/my/js/audit.ui.js index 86e960dabf..7f0266c735 100644 --- a/module/my/js/audit.ui.js +++ b/module/my/js/audit.ui.js @@ -5,7 +5,7 @@ window.onRenderCell = function(result, {row, col}) if(row.data.module == 'review') { result[0].props.items[0]['disabled'] = projectPriv ? false: true; - result[0].props.items[0]['url'] = 'javascript:checkReview("' + row.data.id + '")'; + result[0].props.items[0]['url'] = 'javascript:checkReview("' + row.data.typeKey + '", "' + row.data.id + '")'; delete result[0].props.items[0]['data-toggle']; } else if(reviewPrivs[row.data.module]) @@ -56,9 +56,9 @@ window.onRenderCell = function(result, {row, col}) return result; } -window.checkReview = function(id) +window.checkReview = function(objectType, id) { - $.get($.createLink('review', 'ajaxCheckReviewInfo', 'reviewID=' + id), function(data) + $.get($.createLink('review', 'ajaxCheckReviewInfo', 'objectType=' + objectType + 'reviewID=' + id), function(data) { if(!data) { diff --git a/module/my/model.php b/module/my/model.php index 24fa46216e..0b4ac7199a 100644 --- a/module/my/model.php +++ b/module/my/model.php @@ -1271,7 +1271,12 @@ class myModel extends model { if($this->config->edition != 'max' and $this->config->edition != 'ipd') return array(); - $pendingList = $this->loadModel('approval')->getPendingReviews('review'); + $projectchangePendingList = $this->loadModel('approval')->getPendingReviews('projectchange'); + $projectchangeReviewingList = $this->dao->select('id')->from(TABLE_REVIEW)->where('type')->eq('projectchange')->andWhere('object')->in($projectchangePendingList)->fetchPairs(); + + $pendingList = $this->loadModel('approval')->getPendingReviews('review'); + $pendingList = arrayUnion($pendingList, $projectchangeReviewingList); + $projectReviews = $this->loadModel('review')->getByList(0, $pendingList, $orderBy); if($checkExists) return !empty($projectReviews); @@ -1287,7 +1292,7 @@ class myModel extends model $data = new stdclass(); $data->id = $review->id; $data->title = $review->title; - $data->type = 'projectreview'; + $data->type = $review->type == 'projectchange' ? 'projectchange' : 'projectreview'; $data->time = date('Y-m-d H:i:s', strtotime($review->createdDate)); $data->status = $review->status; $data->product = $review->product; @@ -1312,12 +1317,12 @@ class myModel extends model $dataList = $this->dao->select('t2.objectType,t2.objectID')->from(TABLE_APPROVALNODE)->alias('t1') ->leftJoin(TABLE_APPROVALOBJECT)->alias('t2')->on('t2.approval = t1.approval') ->where('t2.objectType')->ne('review') + ->andWhere('objectType')->ne('projectchange') ->beginIF($objectType != 'all')->andWhere('t2.objectType')->eq($objectType)->fi() ->andWhere('t1.account')->eq($this->app->user->account) ->andWhere('t1.status')->eq('doing') ->andWhere('t1.type')->eq('review') ->beginIF(!helper::hasFeature('project_cm'))->andWhere('objectType')->ne('baseline')->fi() - ->beginIF(!helper::hasFeature('project_change'))->andWhere('objectType')->ne('projectchange')->fi() ->beginIF(!helper::hasFeature('project_risk'))->andWhere('objectType')->ne('risk')->fi() ->beginIF(!helper::hasFeature('project_issue'))->andWhere('objectType')->ne('issue')->fi() ->beginIF(!helper::hasFeature('project_opportunity'))->andWhere('objectType')->ne('opportunity')->fi() diff --git a/module/my/ui/audit.html.php b/module/my/ui/audit.html.php index 31ed26147e..8cf736db99 100644 --- a/module/my/ui/audit.html.php +++ b/module/my/ui/audit.html.php @@ -66,11 +66,12 @@ if($rawMethod != 'contribute' || $browseType != 'reviewedbyme') unset($config->m foreach($reviewList as $review) { - $type = $review->type == 'projectreview' ? 'review' : $review->type; + $type = $review->type == 'projectreview' || $review->type == 'projectchange' ? 'review' : $review->type; $isOAObject = strpos(",{$config->my->oaObjectType},", ",$type,") !== false ? true : false; $this->app->loadLang($type); - $review->module = $type; + $review->module = $type; + $review->typeKey = $review->type; if(isset($lang->{$review->type}->common)) $typeName = $lang->{$review->type}->common; if($review->type == 'projectreview') $typeName = $lang->project->common;