mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-08 14:35:52 +01:00
(refs #444)Fix pull request count in dashboard
This commit is contained in:
@@ -49,21 +49,21 @@ trait DashboardControllerBase extends ControllerBase {
|
|||||||
)
|
)
|
||||||
|
|
||||||
val userName = context.loginAccount.get.userName
|
val userName = context.loginAccount.get.userName
|
||||||
val repositories = getUserRepositories(userName, context.baseUrl).map(repo => repo.owner -> repo.name)
|
val userRepos = getUserRepositories(userName, context.baseUrl, true).map(repo => repo.owner -> repo.name)
|
||||||
val filterUser = Map(filter -> userName)
|
val filterUser = Map(filter -> userName)
|
||||||
val page = IssueSearchCondition.page(request)
|
val page = IssueSearchCondition.page(request)
|
||||||
//
|
|
||||||
dashboard.html.issues(
|
dashboard.html.issues(
|
||||||
issues.html.listparts(
|
issues.html.listparts(
|
||||||
searchIssue(condition, filterUser, false, (page - 1) * IssueLimit, IssueLimit, repositories: _*),
|
searchIssue(condition, filterUser, false, (page - 1) * IssueLimit, IssueLimit, userRepos: _*),
|
||||||
page,
|
page,
|
||||||
countIssue(condition.copy(state = "open"), filterUser, false, repositories: _*),
|
countIssue(condition.copy(state = "open" ), filterUser, false, userRepos: _*),
|
||||||
countIssue(condition.copy(state = "closed"), filterUser, false, repositories: _*),
|
countIssue(condition.copy(state = "closed"), filterUser, false, userRepos: _*),
|
||||||
condition),
|
condition),
|
||||||
countIssue(condition, Map.empty, false, repositories: _*),
|
countIssue(condition, Map.empty, false, userRepos: _*),
|
||||||
countIssue(condition, Map("assigned" -> userName), false, repositories: _*),
|
countIssue(condition, Map("assigned" -> userName), false, userRepos: _*),
|
||||||
countIssue(condition, Map("created_by" -> userName), false, repositories: _*),
|
countIssue(condition, Map("created_by" -> userName), false, userRepos: _*),
|
||||||
countIssueGroupByRepository(condition, filterUser, false, repositories: _*),
|
countIssueGroupByRepository(condition, filterUser, false, userRepos: _*),
|
||||||
condition,
|
condition,
|
||||||
filter)
|
filter)
|
||||||
|
|
||||||
@@ -80,25 +80,26 @@ trait DashboardControllerBase extends ControllerBase {
|
|||||||
}.copy(repo = repository))
|
}.copy(repo = repository))
|
||||||
|
|
||||||
val userName = context.loginAccount.get.userName
|
val userName = context.loginAccount.get.userName
|
||||||
val repositories = getUserRepositories(userName, context.baseUrl).map(repo => repo.owner -> repo.name)
|
val allRepos = getAllRepositories()
|
||||||
|
val userRepos = getUserRepositories(userName, context.baseUrl, true).map(repo => repo.owner -> repo.name)
|
||||||
val filterUser = Map(filter -> userName)
|
val filterUser = Map(filter -> userName)
|
||||||
val page = IssueSearchCondition.page(request)
|
val page = IssueSearchCondition.page(request)
|
||||||
|
|
||||||
val counts = countIssueGroupByRepository(
|
val counts = countIssueGroupByRepository(
|
||||||
IssueSearchCondition().copy(state = condition.state), Map.empty, true, repositories: _*)
|
IssueSearchCondition().copy(state = condition.state), Map.empty, true, userRepos: _*)
|
||||||
|
|
||||||
dashboard.html.pulls(
|
dashboard.html.pulls(
|
||||||
pulls.html.listparts(
|
pulls.html.listparts(
|
||||||
searchIssue(condition, filterUser, true, (page - 1) * PullRequestLimit, PullRequestLimit, repositories: _*),
|
searchIssue(condition, filterUser, true, (page - 1) * PullRequestLimit, PullRequestLimit, allRepos: _*),
|
||||||
page,
|
page,
|
||||||
countIssue(condition.copy(state = "open"), filterUser, true, repositories: _*),
|
countIssue(condition.copy(state = "open" ), filterUser, true, allRepos: _*),
|
||||||
countIssue(condition.copy(state = "closed"), filterUser, true, repositories: _*),
|
countIssue(condition.copy(state = "closed"), filterUser, true, allRepos: _*),
|
||||||
condition,
|
condition,
|
||||||
None,
|
None,
|
||||||
false),
|
false),
|
||||||
getPullRequestCountGroupByUser(condition.state == "closed", None, None),
|
getPullRequestCountGroupByUser(condition.state == "closed", None, None),
|
||||||
getRepositoryNamesOfUser(userName).map { RepoName =>
|
userRepos.map { case (userName, repoName) =>
|
||||||
(userName, RepoName, counts.collectFirst { case (_, RepoName, count) => count }.getOrElse(0))
|
(userName, repoName, counts.find { x => x._1 == userName && x._2 == repoName }.map(_._3).getOrElse(0))
|
||||||
}.sortBy(_._3).reverse,
|
}.sortBy(_._3).reverse,
|
||||||
condition,
|
condition,
|
||||||
filter)
|
filter)
|
||||||
|
|||||||
@@ -165,6 +165,12 @@ trait RepositoryService { self: AccountService =>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def getAllRepositories()(implicit s: Session): List[(String, String)] = {
|
||||||
|
Repositories.sortBy(_.lastActivityDate desc).map{ t =>
|
||||||
|
(t.userName, t.repositoryName)
|
||||||
|
}.list
|
||||||
|
}
|
||||||
|
|
||||||
def getUserRepositories(userName: String, baseUrl: String, withoutPhysicalInfo: Boolean = false)
|
def getUserRepositories(userName: String, baseUrl: String, withoutPhysicalInfo: Boolean = false)
|
||||||
(implicit s: Session): List[RepositoryInfo] = {
|
(implicit s: Session): List[RepositoryInfo] = {
|
||||||
Repositories.filter { t1 =>
|
Repositories.filter { t1 =>
|
||||||
|
|||||||
Reference in New Issue
Block a user