Show the number of milestones on the sidebar menu (#2500)

This commit is contained in:
SIkebe
2020-08-03 00:48:47 +09:00
committed by GitHub
parent 72e40a0b12
commit 36643bcdd0
3 changed files with 30 additions and 4 deletions

View File

@@ -342,6 +342,10 @@ trait RepositoryService {
repository.originUserName.getOrElse(repository.userName),
repository.originRepositoryName.getOrElse(repository.repositoryName)
),
getOpenMilestones(
repository.originUserName.getOrElse(repository.userName),
repository.originRepositoryName.getOrElse(repository.repositoryName)
),
getRepositoryManagers(repository.userName, repository.repositoryName)
)
}
@@ -697,6 +701,14 @@ trait RepositoryService {
(t.originUserName === userName.bind) && (t.originRepositoryName === repositoryName.bind)
}.length).first
private def getOpenMilestones(userName: String, repositoryName: String)(implicit s: Session): Int =
Query(
Milestones
.filter(_.byRepository(userName, repositoryName))
.filter(_.closedDate.isEmpty)
.length
).first
def getForkedRepositories(userName: String, repositoryName: String)(implicit s: Session): List[Repository] =
Repositories
.filter { t =>
@@ -749,6 +761,7 @@ object RepositoryService {
issueCount: Int,
pullCount: Int,
forkedCount: Int,
milestoneCount: Int,
branchList: Seq[String],
tags: Seq[JGitUtil.TagInfo],
managers: Seq[String]
@@ -763,15 +776,27 @@ object RepositoryService {
issueCount: Int,
pullCount: Int,
forkedCount: Int,
milestoneCount: Int,
managers: Seq[String]
) =
this(repo.owner, repo.name, model, issueCount, pullCount, forkedCount, repo.branchList, repo.tags, managers)
this(
repo.owner,
repo.name,
model,
issueCount,
pullCount,
forkedCount,
milestoneCount,
repo.branchList,
repo.tags,
managers
)
/**
* Creates instance without issue and pull request count.
* Creates instance without issue, pull request, and milestone count.
*/
def this(repo: JGitUtil.RepositoryInfo, model: Repository, forkedCount: Int, managers: Seq[String]) =
this(repo.owner, repo.name, model, 0, 0, forkedCount, repo.branchList, repo.tags, managers)
this(repo.owner, repo.name, model, 0, 0, forkedCount, 0, repo.branchList, repo.tags, managers)
def httpUrl(implicit context: Context): String = RepositoryService.httpUrl(owner, name)
def sshUrl(implicit context: Context): Option[String] = RepositoryService.sshUrl(owner, name)

View File

@@ -40,7 +40,7 @@
@menuitem("/pulls", "pulls", "Pull requests", "git-pull-request", repository.pullCount)
@menuitem("/issues/labels", "labels", "Labels", "tag")
@menuitem("/issues/priorities", "priorities", "Priorities", "flame")
@menuitem("/issues/milestones", "milestones", "Milestones", "milestone")
@menuitem("/issues/milestones", "milestones", "Milestones", "milestone", repository.milestoneCount)
} else {
@repository.repository.options.externalIssuesUrl.map { externalIssuesUrl =>
@menuitem(externalIssuesUrl, "issues", "Issues", "issue-opened")

View File

@@ -79,6 +79,7 @@ object ApiSpecModels {
issueCount = 1,
pullCount = 1,
forkedCount = 1,
milestoneCount = 1,
branchList = Seq("master", "develop"),
tags = Seq(
TagInfo(name = "v1.0", time = date("2015-05-05T23:40:27Z"), id = "id1", message = "1.0 released"),