submissions can be sent to review now

This commit is contained in:
Filip Gralinski 2017-04-03 12:22:52 +02:00
parent d63223837e
commit e2c5ae179c
4 changed files with 34 additions and 0 deletions

View File

@ -121,6 +121,21 @@ $if canGiveUpWorkingOn
canStartWorkingOn = determineWhetherCanStartWorkingOn (achievementInfoCurrentUser ainfo) (achievementInfoWorkingOn ainfo) (achievementInfoMaxWinners ainfo)
canGiveUpWorkingOn = determineWhetherCanGiveUpWorkingOn (achievementInfoCurrentUser ainfo) (achievementInfoWorkingOn ainfo)
getSubmissionForAchievementR :: SubmissionId -> WorkingOnId -> Handler Html
getSubmissionForAchievementR submissionId workingOnId = do
(Entity userId user) <- requireAuth
submission <- runDB $ get404 submissionId
workingOn <- runDB $ get404 workingOnId
if submissionSubmitter submission == userId && workingOnUser workingOn == userId
then
do
runDB $ update workingOnId [WorkingOnFinalSubmission =. Just submissionId]
setMessage $ toHtml ("OK! Your submission now awaits being accepted by a human reviewer" :: Text)
else
do
setMessage $ toHtml ("Not your submission" :: Text)
redirect $ EditSubmissionR submissionId
getStartWorkingOnR :: AchievementId -> Handler Html
getStartWorkingOnR achievementId = do
(Entity userId user) <- requireAuth

View File

@ -45,6 +45,14 @@ postEditSubmissionR submissionId = do
getEditSubmissionR submissionId
getPossibleAchievements userId submissionId = do
(Just submission) <- get submissionId
let challengeId = submissionChallenge submission
achievements <- selectList [AchievementChallenge ==. challengeId] []
workingOns <- mapM (\a -> getBy $ UniqueWorkingOnAchievementUser (entityKey a) userId) achievements
let rets = Import.zip achievements workingOns
return $ Import.map (\(a, (Just w)) -> (a, entityKey w)) $ Import.filter (\(_, mw) -> isJust mw) $ rets
addTags submissionId tagsAsText existingOnes = do
tids <- tagsAsTextToTagIds tagsAsText
@ -62,6 +70,10 @@ doEditSubmission formWidget formEnctype submissionId = do
tagsAvailableAsJSON <- runDB $ getAvailableTagsAsJSON
(Entity userId user) <- requireAuth
achievements <- runDB $ getPossibleAchievements userId submissionId
defaultLayout $ do
setTitle "Edit a submission"
$(widgetFile "edit-submission")

View File

@ -35,6 +35,7 @@
/achievements AchievementsR GET POST
/start-working-on/#AchievementId StartWorkingOnR GET
/give-up-working-on/#AchievementId GiveUpWorkingOnR GET
/submission-for-achievement/#SubmissionId/#WorkingOnId SubmissionForAchievementR GET
/edit-submission/#SubmissionId EditSubmissionR GET POST

View File

@ -4,3 +4,9 @@
^{formWidget}
<button .btn .btn-primary type="submit">
_{MsgSubmit} <span class="glyphicon glyphicon-upload"></span>
<hr>
<ul>
$forall (achievement, workingOnId) <- achievements
<li><a href=@{SubmissionForAchievementR submissionId workingOnId}>send to review for #{achievementName $ entityVal achievement} achievement