mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-06 05:25:50 +01:00
(refs #498) Correct pull request counts
This commit is contained in:
@@ -97,7 +97,7 @@ trait DashboardControllerBase extends ControllerBase {
|
||||
condition,
|
||||
None,
|
||||
false),
|
||||
getPullRequestCountGroupByUser(condition.state == "closed", None, None),
|
||||
getAllPullRequestCountGroupByUser(condition.state == "closed", userName),
|
||||
userRepos.map { case (userName, repoName) =>
|
||||
(userName, repoName, counts.find { x => x._1 == userName && x._2 == repoName }.map(_._3).getOrElse(0))
|
||||
}.sortBy(_._3).reverse,
|
||||
|
||||
@@ -36,6 +36,23 @@ trait PullRequestService { self: IssuesService =>
|
||||
.list
|
||||
.map { x => PullRequestCount(x._1, x._2) }
|
||||
|
||||
def getAllPullRequestCountGroupByUser(closed: Boolean, userName: String)(implicit s: Session): List[PullRequestCount] =
|
||||
PullRequests
|
||||
.innerJoin(Issues).on { (t1, t2) => t1.byPrimaryKey(t2.userName, t2.repositoryName, t2.issueId) }
|
||||
.innerJoin(Repositories).on { (t, t3) => t._2.byRepository(t3.userName, t3.repositoryName) }
|
||||
.filter { case (t, t3) =>
|
||||
(t._2.closed === closed.bind) && (
|
||||
(t3.isPrivate === false.bind) ||
|
||||
(t3.userName === userName.bind) ||
|
||||
(Collaborators.filter { t4 => t4.byRepository(t3.userName, t3.repositoryName) && (t4.collaboratorName === userName.bind)} exists)
|
||||
)
|
||||
}
|
||||
.groupBy { case (t, t3) => t._2.openedUserName }
|
||||
.map { case (userName, t) => userName -> t.length }
|
||||
.sortBy(_._2 desc)
|
||||
.list
|
||||
.map { x => PullRequestCount(x._1, x._2) }
|
||||
|
||||
def createPullRequest(originUserName: String, originRepositoryName: String, issueId: Int,
|
||||
originBranch: String, requestUserName: String, requestRepositoryName: String, requestBranch: String,
|
||||
commitIdFrom: String, commitIdTo: String)(implicit s: Session): Unit =
|
||||
|
||||
Reference in New Issue
Block a user