]> source.dussan.org Git - gitea.git/commitdiff
Fix bug of review request number (#27406)
authorLunny Xiao <xiaolunwen@gmail.com>
Tue, 3 Oct 2023 08:08:12 +0000 (16:08 +0800)
committerGitHub <noreply@github.com>
Tue, 3 Oct 2023 08:08:12 +0000 (08:08 +0000)
Manually backport #27104 without tests because too many conflicted files
to backport it completely.

models/issues/issue_search.go

index 4fe8b4755cbd1ab16e96d135a5ff8f23c25b5f82..8bc68497e0cdd319c8f179c270ff90b4eb760322 100644 (file)
@@ -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))