show daily or nightly tournaments in scheduled list
This commit is contained in:
parent
c0af5ede43
commit
6c639cf003
|
@ -20,7 +20,7 @@ object Tournament extends LilaController {
|
|||
private def tournamentNotFound(implicit ctx: Context) = NotFound(html.tournament.notFound())
|
||||
|
||||
val home = Open { implicit ctx =>
|
||||
fetchTournaments zip repo.scheduled zip UserRepo.allSortToints(10) map {
|
||||
fetchTournaments zip repo.scheduledDedup zip UserRepo.allSortToints(10) map {
|
||||
case ((((created, started), finished), scheduled), leaderboard) =>
|
||||
Ok(html.tournament.home(created, started, finished, scheduled, leaderboard))
|
||||
}
|
||||
|
|
|
@ -84,6 +84,20 @@ object TournamentRepo {
|
|||
"schedule" -> BSONDocument("$exists" -> true)
|
||||
)).sort(BSONDocument("schedule.at" -> 1)).toList[Created](none)
|
||||
|
||||
def scheduledDedup: Fu[List[Created]] = scheduled map {
|
||||
import Schedule.Freq
|
||||
_.flatMap { tour =>
|
||||
tour.schedule map (tour -> _)
|
||||
}.foldLeft(List[Created]() -> none[Freq]) {
|
||||
case ((tours, skip), (_, sched)) if skip.contains(sched.freq) => (tours, skip)
|
||||
case ((tours, skip), (tour, sched)) => (tour :: tours, sched.freq match {
|
||||
case Freq.Daily => Freq.Nightly.some
|
||||
case Freq.Nightly => Freq.Daily.some
|
||||
case _ => skip
|
||||
})
|
||||
}._1.reverse
|
||||
}
|
||||
|
||||
def lastFinishedScheduledByFreq(freq: Schedule.Freq, nb: Int): Fu[List[Finished]] = coll.find(
|
||||
finishedSelect ++ BSONDocument(
|
||||
"schedule.freq" -> freq.name,
|
||||
|
|
Loading…
Reference in a new issue