|
|
@ -349,14 +349,21 @@ func applyReviewRequestedCondition(sess *xorm.Session, reviewRequestedID int64) |
|
|
|
From("team_user"). |
|
|
|
From("team_user"). |
|
|
|
Where(builder.Eq{"team_user.uid": reviewRequestedID}) |
|
|
|
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"). |
|
|
|
subQuery := builder.Select("review.issue_id"). |
|
|
|
From("review"). |
|
|
|
From("review"). |
|
|
|
Where(builder.And( |
|
|
|
Where(builder.And( |
|
|
|
builder.In("review.type", []ReviewType{ReviewTypeRequest, ReviewTypeReject, ReviewTypeApprove}), |
|
|
|
builder.Eq{"review.type": ReviewTypeRequest}, |
|
|
|
builder.Or( |
|
|
|
builder.Or( |
|
|
|
builder.Eq{"review.reviewer_id": reviewRequestedID}, |
|
|
|
builder.Eq{"review.reviewer_id": reviewRequestedID}, |
|
|
|
builder.In("review.reviewer_team_id", existInTeamQuery), |
|
|
|
builder.In("review.reviewer_team_id", existInTeamQuery), |
|
|
|
), |
|
|
|
), |
|
|
|
|
|
|
|
builder.In("review.id", maxReview), |
|
|
|
)) |
|
|
|
)) |
|
|
|
return sess.Where("issue.poster_id <> ?", reviewRequestedID). |
|
|
|
return sess.Where("issue.poster_id <> ?", reviewRequestedID). |
|
|
|
And(builder.In("issue.id", subQuery)) |
|
|
|
And(builder.In("issue.id", subQuery)) |
|
|
|