diff --git a/src/main/scala/app/MilestonesController.scala b/src/main/scala/app/MilestonesController.scala index 647a2b3..9bbb093 100644 --- a/src/main/scala/app/MilestonesController.scala +++ b/src/main/scala/app/MilestonesController.scala @@ -28,8 +28,7 @@ getRepository(owner, repository, baseUrl).map { repositoryInfo => issues.html.milestones(state, - getMilestones(owner, repository), - getMilestoneIssueCounts(owner, repository), + getMilestonesWithIssueCount(owner, repository), repositoryInfo, isWritable(owner, repository, context.loginAccount)) } getOrElse NotFound diff --git a/src/main/scala/service/MilestonesService.scala b/src/main/scala/service/MilestonesService.scala index 3ae6b62..70862b5 100644 --- a/src/main/scala/service/MilestonesService.scala +++ b/src/main/scala/service/MilestonesService.scala @@ -61,8 +61,8 @@ .sortBy(_.milestoneId desc) .firstOption - def getMilestoneIssueCounts(owner: String, repository: String): Map[(Int, Boolean), Int] = - Issues + def getMilestonesWithIssueCount(owner: String, repository: String): List[(Milestone, Int, Int)] = { + val counts = Issues .filter { t => (t.userName is owner.bind) && (t.repositoryName is repository.bind) && @@ -80,6 +80,11 @@ } .toMap + getMilestones(owner, repository).map { milestone => + (milestone, counts.getOrElse((milestone.milestoneId, false), 0), counts.getOrElse((milestone.milestoneId, true), 0)) + } + } + def getMilestones(owner: String, repository: String): List[Milestone] = Query(Milestones) .filter { t => diff --git a/src/main/twirl/issues/milestones.scala.html b/src/main/twirl/issues/milestones.scala.html index 00c3f68..9293ca0 100644 --- a/src/main/twirl/issues/milestones.scala.html +++ b/src/main/twirl/issues/milestones.scala.html @@ -1,4 +1,4 @@ -@(state: String, milestones: List[model.Milestone], counts: Map[(Int, Boolean), Int], repository: service.RepositoryService.RepositoryInfo, isWritable: Boolean)(implicit context: app.Context) +@(state: String, milestones: List[(model.Milestone, Int, Int)], repository: service.RepositoryService.RepositoryInfo, isWritable: Boolean)(implicit context: app.Context) @import context._ @import view.helpers @html.main("Milestones - " + repository.owner + "/" + repository.name){ @@ -9,13 +9,13 @@