forked from filipg/gonito
69 lines
2.1 KiB
Haskell
69 lines
2.1 KiB
Haskell
module Handler.Presentation where
|
|
|
|
import Import
|
|
|
|
import Handler.ShowChallenge
|
|
import Handler.Tables
|
|
|
|
import qualified Yesod.Table as Table
|
|
import Yesod.Table (Table)
|
|
|
|
import Text.Hamlet (hamletFile)
|
|
|
|
sampleChallengeName :: Text
|
|
sampleChallengeName = "petite-difference-challenge"
|
|
|
|
sampleChallengeName' :: Text
|
|
sampleChallengeName' = "retroc"
|
|
|
|
retrocChallengeName :: Text
|
|
retrocChallengeName = "retroc"
|
|
|
|
retroc2ChallengeName :: Text
|
|
retroc2ChallengeName = "retroc2"
|
|
|
|
|
|
sampleUserIdent :: Text
|
|
sampleUserIdent = "ptlen@ceti.pl"
|
|
|
|
getPresentation4RealR :: Handler Html
|
|
getPresentation4RealR = do
|
|
readme <- challengeReadme sampleChallengeName
|
|
|
|
challengeEnt@(Entity challengeId challenge) <- runDB $ getBy404 $ UniqueName sampleChallengeName
|
|
|
|
(Just (Entity sampleUserId _)) <- runDB $ getBy $ UniqueUser sampleUserIdent
|
|
let condition = (\(Entity _ submission) -> (submissionSubmitter submission == sampleUserId))
|
|
(evaluationMaps', tests) <- getChallengeSubmissionInfos condition challengeId
|
|
let evaluationMaps = take 10 evaluationMaps'
|
|
|
|
sampleLeaderboard <- getSampleLeaderboard sampleChallengeName
|
|
sampleLeaderboard' <- getSampleLeaderboard sampleChallengeName'
|
|
|
|
presentationLayout $(widgetFile "presentation-4real")
|
|
|
|
getPresentationDATeCH2017R = do
|
|
readme <- challengeReadme retrocChallengeName
|
|
retrocLeaderboard <- getSampleLeaderboard retrocChallengeName
|
|
retroc2Leaderboard <- getSampleLeaderboard retroc2ChallengeName
|
|
presentationLayout $(widgetFile "presentation-datech-2017")
|
|
|
|
|
|
getSampleLeaderboard name = do
|
|
challengeEnt@(Entity challengeId challenge) <- runDB $ getBy404 $ UniqueName name
|
|
|
|
Just repo <- runDB $ get $ challengePublicRepo challenge
|
|
(test, leaderboard) <- getLeaderboardEntries challengeId
|
|
let leaderboardWithRanks = zip [1..] (take 10 leaderboard)
|
|
|
|
return $ Table.buildBootstrap (leaderboardTable Nothing (challengeName challenge) test) leaderboardWithRanks
|
|
|
|
presentationLayout widget = do
|
|
master <- getYesod
|
|
mmsg <- getMessage
|
|
|
|
maybeUser <- maybeAuth
|
|
|
|
pc <- widgetToPageContent widget
|
|
withUrlRenderer $(hamletFile "templates/presentation-layout.hamlet")
|