link challenges in achievements

This commit is contained in:
Filip Gralinski 2017-03-18 19:53:32 +01:00
parent 8bda241416
commit 28c3b231e8

View File

@ -18,6 +18,7 @@ import qualified Yesod.Table as Table
data AchievementInfo = AchievementInfo { data AchievementInfo = AchievementInfo {
achievementInfoName :: Text, achievementInfoName :: Text,
achievementInfoChallenge :: Entity Challenge,
achievementInfoDescription :: Maybe Text, achievementInfoDescription :: Maybe Text,
achievementInfoPoints :: Int, achievementInfoPoints :: Int,
achievementInfoDeadline :: UTCTime, achievementInfoDeadline :: UTCTime,
@ -73,8 +74,12 @@ getAchievementInfo mUser (Entity achievementId achievement) = do
tags <- getAchievementTags achievementId tags <- getAchievementTags achievementId
let challengeId = achievementChallenge achievement
challenge <- get404 challengeId
return $ AchievementInfo { return $ AchievementInfo {
achievementInfoName = achievementName achievement, achievementInfoName = achievementName achievement,
achievementInfoChallenge = Entity challengeId challenge,
achievementInfoDescription = achievementDescription achievement, achievementInfoDescription = achievementDescription achievement,
achievementInfoPoints = achievementPoints achievement, achievementInfoPoints = achievementPoints achievement,
achievementInfoDeadline = achievementDeadline achievement, achievementInfoDeadline = achievementDeadline achievement,
@ -93,6 +98,7 @@ getAchievementTags achievementId = do
achievementsTable :: Table.Table App (AchievementInfo) achievementsTable :: Table.Table App (AchievementInfo)
achievementsTable = mempty achievementsTable = mempty
++ Table.text "achievement" achievementInfoName ++ Table.text "achievement" achievementInfoName
++ Table.linked "challenge" (challengeTitle . entityVal . achievementInfoChallenge) (ShowChallengeR . challengeName . entityVal . achievementInfoChallenge)
++ achievementDescriptionCell ++ achievementDescriptionCell
++ Table.int "points" achievementInfoPoints ++ Table.int "points" achievementInfoPoints
++ timestampCell "deadline" achievementInfoDeadline ++ timestampCell "deadline" achievementInfoDeadline