From 4b23f118647948ed433074b41fc811e435688f58 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Tue, 3 Oct 2023 16:08:12 +0800 Subject: [PATCH] Fix bug of review request number (#27406) Manually backport #27104 without tests because too many conflicted files to backport it completely. (cherry picked from commit 5c96a2be872cd610915461fe40675e400d94bf68) --- models/issues/issue_search.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/models/issues/issue_search.go b/models/issues/issue_search.go index 4fe8b4755c..8bc68497e0 100644 --- a/models/issues/issue_search.go +++ b/models/issues/issue_search.go @@ -349,14 +349,21 @@ func applyReviewRequestedCondition(sess *xorm.Session, reviewRequestedID int64) From("team_user"). Where(builder.Eq{"team_user.uid": reviewRequestedID}) + // if the review is approved or rejected, it should not be shown in the review requested list + maxReview := builder.Select("MAX(r.id)"). + From("review as r"). + Where(builder.In("r.type", []ReviewType{ReviewTypeApprove, ReviewTypeReject, ReviewTypeRequest})). + GroupBy("r.issue_id, r.reviewer_id, r.reviewer_team_id") + subQuery := builder.Select("review.issue_id"). From("review"). Where(builder.And( - builder.In("review.type", []ReviewType{ReviewTypeRequest, ReviewTypeReject, ReviewTypeApprove}), + builder.Eq{"review.type": ReviewTypeRequest}, builder.Or( builder.Eq{"review.reviewer_id": reviewRequestedID}, builder.In("review.reviewer_team_id", existInTeamQuery), ), + builder.In("review.id", maxReview), )) return sess.Where("issue.poster_id <> ?", reviewRequestedID). And(builder.In("issue.id", subQuery))