Attempt to get reporting on replay working (WIP)
This commit is contained in:
parent
6fc2e8fa2e
commit
10a064a662
|
@ -16,6 +16,8 @@ import lila.hub.actorApi.map.Tell
|
|||
import lila.round.actorApi.AnalysisAvailable
|
||||
import views._
|
||||
|
||||
import chess.Color
|
||||
|
||||
object Analyse extends LilaController {
|
||||
|
||||
private def env = Env.analyse
|
||||
|
@ -54,7 +56,7 @@ object Analyse extends LilaController {
|
|||
}
|
||||
|
||||
def replay(pov: Pov, userTv: Option[lila.user.User])(implicit ctx: Context) =
|
||||
GameRepo initialFen pov.game flatMap { initialFen =>
|
||||
GameRepo initialFen pov.game.id flatMap { initialFen =>
|
||||
(env.analyser get pov.game.id) zip
|
||||
(pov.game.tournamentId ?? lila.tournament.TournamentRepo.byId) zip
|
||||
Env.game.crosstableApi(pov.game) flatMap {
|
||||
|
@ -63,20 +65,28 @@ object Analyse extends LilaController {
|
|||
if (HTTPRequest.isBot(ctx.req)) divider.empty
|
||||
else divider(pov.game, initialFen)
|
||||
val pgn = Env.game.pgnDump(pov.game, initialFen)
|
||||
Env.api.roundApi.watcher(pov, Env.api.version, tv = none, analysis.map(pgn -> _), initialFen = initialFen.some) map { data => {
|
||||
Ok(html.analyse.replay(
|
||||
pov,
|
||||
data,
|
||||
Env.analyse.annotator(pgn, analysis, pov.game.opening, pov.game.winnerColor, pov.game.status, pov.game.clock).toString,
|
||||
analysis,
|
||||
analysis filter (_.done) map { a => AdvantageChart(a.infoAdvices, pov.game.pgnMoves) },
|
||||
tour,
|
||||
new TimeChart(pov.game, pov.game.pgnMoves),
|
||||
crosstable,
|
||||
userTv,
|
||||
division))
|
||||
}
|
||||
for {
|
||||
whiteResult <- Env.mod.assessApi.getResultsByGameIdAndColor(pov.game.id, Color.White)
|
||||
blackResult <- Env.mod.assessApi.getResultsByGameIdAndColor(pov.game.id, Color.White)
|
||||
} yield {
|
||||
Env.api.roundApi.watcher(pov, Env.api.version, tv = none, analysis.map(pgn -> _), initialFen = initialFen.some) map { data => {
|
||||
Ok(html.analyse.replay(
|
||||
pov,
|
||||
data,
|
||||
Env.analyse.annotator(pgn, analysis, pov.game.opening, pov.game.winnerColor, pov.game.status, pov.game.clock).toString,
|
||||
analysis,
|
||||
analysis filter (_.done) map { a => AdvantageChart(a.infoAdvices, pov.game.pgnMoves) },
|
||||
tour,
|
||||
new TimeChart(pov.game, pov.game.pgnMoves),
|
||||
crosstable,
|
||||
userTv,
|
||||
division,
|
||||
whiteResult,
|
||||
blackResult))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
@(pov: Pov, data: play.api.libs.json.JsObject, pgn: String, analysis: Option[lila.analyse.Analysis], advantageChart: Option[String], tour: Option[lila.tournament.Tournament], timeChart: lila.analyse.TimeChart, cross: Option[lila.game.Crosstable], userTv: Option[User], division: chess.Division)(implicit ctx: Context)
|
||||
@import lila.evaluation.GameGroupResult
|
||||
|
||||
@(pov: Pov, data: play.api.libs.json.JsObject, pgn: String, analysis: Option[lila.analyse.Analysis], advantageChart: Option[String], tour: Option[lila.tournament.Tournament], timeChart: lila.analyse.TimeChart, cross: Option[lila.game.Crosstable], userTv: Option[User], division: chess.Division, whiteResult: Option[GameGroupResult], blackResult: Option[GameGroupResult])(implicit ctx: Context)
|
||||
|
||||
@import pov._
|
||||
|
||||
|
@ -27,24 +29,7 @@ i18n: @round.jsI18n()
|
|||
@views.html.game.watchers()
|
||||
@round.blurs(game)
|
||||
@round.holdAlerts(game)
|
||||
<br/>
|
||||
White:
|
||||
<select id="whiteAssessment">
|
||||
<option value="1">Not cheating</option>
|
||||
<option value="2">Unlikely cheating</option>
|
||||
<option value="3">Unclear</option>
|
||||
<option value="4">Likely cheating</option>
|
||||
<option value="5">Cheating</option>
|
||||
</select>
|
||||
<br/>
|
||||
Black:
|
||||
<select id="blackAssessment">
|
||||
<option value="1">Not cheating</option>
|
||||
<option value="2">Unlikely cheating</option>
|
||||
<option value="3">Unclear</option>
|
||||
<option value="4">Likely cheating</option>
|
||||
<option value="5">Cheating</option>
|
||||
</select>
|
||||
@round.assessment(game)
|
||||
<div class="shortcuts">
|
||||
<p class="title" data-icon="u"> Keyboard Shortcuts</p>
|
||||
<div class="inner">
|
||||
|
|
20
app/views/round/assessment.scala.html
Normal file
20
app/views/round/assessment.scala.html
Normal file
|
@ -0,0 +1,20 @@
|
|||
@(game: Game)(implicit ctx: Context)
|
||||
|
||||
@import lila.app._
|
||||
|
||||
@if(isGranted(_.MarkEngine)) {
|
||||
@game.players.map { p =>
|
||||
@if(game.turns > 40) {
|
||||
<br />
|
||||
@playerLink(p, cssClass = s"is color-icon ${p.color.name}".some, withOnline = false, mod = true)
|
||||
<select id="@(p.color.name)Assessment">
|
||||
<option value="1">Not cheating</option>
|
||||
<option value="2">Unlikely cheating</option>
|
||||
<option value="3">Unclear</option>
|
||||
<option value="4">Likely cheating</option>
|
||||
<option value="5">Cheating</option>
|
||||
</select>
|
||||
<br />
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
package lila.mod
|
||||
|
||||
import lila.analyse.Analysis
|
||||
import lila.analyse.{ Analysis, AnalysisRepo }
|
||||
import lila.db.Types.Coll
|
||||
import lila.evaluation.{ PlayerAssessment, GameGroupResult, GameGroup, Analysed }
|
||||
|
|
Loading…
Reference in a new issue