mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Fix show single review comments in the PR page (#9143)
This commit is contained in:
		
				
					committed by
					
						
						techknowlogick
					
				
			
			
				
	
			
			
			
						parent
						
							8ab35eefc4
						
					
				
				
					commit
					d779deef6e
				
			@@ -223,6 +223,11 @@ func getCurrentReview(e Engine, reviewer *User, issue *Issue) (*Review, error) {
 | 
				
			|||||||
	return reviews[0], nil
 | 
						return reviews[0], nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ReviewExists returns whether a review exists for a particular line of code in the PR
 | 
				
			||||||
 | 
					func ReviewExists(issue *Issue, treePath string, line int64) (bool, error) {
 | 
				
			||||||
 | 
						return x.Cols("id").Exist(&Comment{IssueID: issue.ID, TreePath: treePath, Line: line, Type: CommentTypeCode})
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetCurrentReview returns the current pending review of reviewer for given issue
 | 
					// GetCurrentReview returns the current pending review of reviewer for given issue
 | 
				
			||||||
func GetCurrentReview(reviewer *User, issue *Issue) (*Review, error) {
 | 
					func GetCurrentReview(reviewer *User, issue *Issue) (*Review, error) {
 | 
				
			||||||
	return getCurrentReview(x, reviewer, issue)
 | 
						return getCurrentReview(x, reviewer, issue)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,9 +19,28 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// CreateCodeComment creates a comment on the code line
 | 
					// CreateCodeComment creates a comment on the code line
 | 
				
			||||||
func CreateCodeComment(doer *models.User, issue *models.Issue, line int64, content string, treePath string, isReview bool, replyReviewID int64) (*models.Comment, error) {
 | 
					func CreateCodeComment(doer *models.User, issue *models.Issue, line int64, content string, treePath string, isReview bool, replyReviewID int64) (*models.Comment, error) {
 | 
				
			||||||
	// It's not a review, maybe a reply to a review comment or a single comment.
 | 
					
 | 
				
			||||||
 | 
						var (
 | 
				
			||||||
 | 
							existsReview bool
 | 
				
			||||||
 | 
							err          error
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// CreateCodeComment() is used for:
 | 
				
			||||||
 | 
						// - Single comments
 | 
				
			||||||
 | 
						// - Comments that are part of a review
 | 
				
			||||||
 | 
						// - Comments that reply to an existing review
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if !isReview {
 | 
						if !isReview {
 | 
				
			||||||
		if err := issue.LoadRepo(); err != nil {
 | 
							// It's not part of a review; maybe a reply to a review comment or a single comment.
 | 
				
			||||||
 | 
							// Check if there are reviews for that line already; if there are, this is a reply
 | 
				
			||||||
 | 
							if existsReview, err = models.ReviewExists(issue, treePath, line); err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Comments that are replies don't require a review header to show up in the issue view
 | 
				
			||||||
 | 
						if !isReview && existsReview {
 | 
				
			||||||
 | 
							if err = issue.LoadRepo(); err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -72,7 +91,14 @@ func CreateCodeComment(doer *models.User, issue *models.Issue, line int64, conte
 | 
				
			|||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// NOTICE: it's a pending review, so the notifications will not be fired until user submit review.
 | 
						if !isReview && !existsReview {
 | 
				
			||||||
 | 
							// Submit the review we've just created so the comment shows up in the issue view
 | 
				
			||||||
 | 
							if _, _, err = SubmitReview(doer, issue, models.ReviewTypeComment, ""); err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// NOTICE: if it's a pending review the notifications will not be fired until user submit review.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return comment, nil
 | 
						return comment, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user