From 198984fba1ccdb90d5f6c983531cb2e125cf75f2 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Sat, 26 Dec 2015 09:44:56 +0700 Subject: [PATCH] cheaper user perf stats pages (only fetch ranks) --- app/controllers/User.scala | 4 ++-- app/mashup/UserInfo.scala | 2 +- app/views/user/perfStat.scala.html | 4 ++-- app/views/user/show.scala.html | 2 +- app/views/user/side.scala.html | 4 ++-- modules/rating/src/main/package.scala | 5 ++++- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/controllers/User.scala b/app/controllers/User.scala index ca49e83f62..65af93f8c6 100644 --- a/app/controllers/User.scala +++ b/app/controllers/User.scala @@ -227,9 +227,9 @@ object User extends LilaController { if ((u.disabled || (u.lame && !ctx.is(u))) && !isGranted(_.UserSpy)) notFound else lila.rating.PerfType(perfKey).fold(notFound) { perfType => Env.perfStat.get(u, perfType).flatMap { perfStat => - Env.current.userInfo(u, ctx).map { info => + Env.user.cached.ranking.getAll(u.id).map { ranks => val data = Env.perfStat.jsonView(perfStat) - Ok(html.user.perfStat(u, info, perfStat.perfType, data)) + Ok(html.user.perfStat(u, ranks, perfStat.perfType, data)) } } } diff --git a/app/mashup/UserInfo.scala b/app/mashup/UserInfo.scala index 5b47b75647..eebc5b8ec9 100644 --- a/app/mashup/UserInfo.scala +++ b/app/mashup/UserInfo.scala @@ -14,7 +14,7 @@ import lila.user.{ User, Trophy, Trophies, TrophyApi } case class UserInfo( user: User, - ranks: Map[lila.rating.Perf.Key, Int], + ranks: lila.rating.UserRankMap, nbUsers: Int, nbPlaying: Int, hasSimul: Boolean, diff --git a/app/views/user/perfStat.scala.html b/app/views/user/perfStat.scala.html index 4620b479aa..56269c118f 100644 --- a/app/views/user/perfStat.scala.html +++ b/app/views/user/perfStat.scala.html @@ -1,4 +1,4 @@ -@(u: User, info: lila.app.mashup.UserInfo, perfType: lila.rating.PerfType, data: play.api.libs.json.JsObject)(implicit ctx: Context) +@(u: User, rankMap: lila.rating.UserRankMap, perfType: lila.rating.PerfType, data: play.api.libs.json.JsObject)(implicit ctx: Context) @moreJs = { @jsAt(s"compiled/lichess.perfStat${isProd??(".min")}.js") @@ -15,7 +15,7 @@ i18n: {} @user.layout( title = s"${u.username} ${perfType.name} stats", -side = side(u, info, perfType.some).some, +side = side(u, rankMap, perfType.some).some, robots = false, evenMoreJs = moreJs) {
diff --git a/app/views/user/show.scala.html b/app/views/user/show.scala.html index 707032a5fd..7fb6909b69 100644 --- a/app/views/user/show.scala.html +++ b/app/views/user/show.scala.html @@ -24,7 +24,7 @@ if (lichess.once('user-tournaments-tour')) setTimeout(lichess.startTournamentSta @user.layout( title = s"${u.username} : ${userGameFilterTitleNoTag(info, filters.current)}${if(games.currentPage == 1) "" else " - page " + games.currentPage}", -side = side(u, info, none).some, +side = side(u, info.ranks, none).some, robots = false, evenMoreJs = evenMoreJs, openGraph = lila.app.ui.OpenGraph( diff --git a/app/views/user/side.scala.html b/app/views/user/side.scala.html index ebab172752..8ff0a13caa 100644 --- a/app/views/user/side.scala.html +++ b/app/views/user/side.scala.html @@ -1,4 +1,4 @@ -@(u: User, info: lila.app.mashup.UserInfo, active: Option[lila.rating.PerfType])(implicit ctx: Context) +@(u: User, rankMap: lila.rating.UserRankMap, active: Option[lila.rating.PerfType])(implicit ctx: Context) @import lila.rating.PerfType @@ -16,7 +16,7 @@ @showProgress(perf.progress) - @info.ranks.get(perfType.key).map { rank => + @rankMap.get(perfType.key).map { rank => Rank: @rank.localize@nth(rank) } diff --git a/modules/rating/src/main/package.scala b/modules/rating/src/main/package.scala index 7932f28997..d68285a0f4 100644 --- a/modules/rating/src/main/package.scala +++ b/modules/rating/src/main/package.scala @@ -1,3 +1,6 @@ package lila -package object rating extends PackageObject +package object rating extends PackageObject { + + type UserRankMap = Map[lila.rating.Perf.Key, Int] +}