51 lines
1.8 KiB
Haskell
51 lines
1.8 KiB
Haskell
module Handler.Submission
|
|
( getSubmissionOwnR
|
|
, module Handler.Submission.New
|
|
, module Handler.Submission.Show
|
|
, module Handler.Submission.Download
|
|
, module Handler.Submission.Delete
|
|
, module Handler.Submission.Assign
|
|
, module Handler.Submission.SubmissionUserInvite
|
|
, module Handler.Submission.List
|
|
, module Handler.Submission.Correction
|
|
, module Handler.Submission.Create
|
|
, module Handler.Submission.Grade
|
|
, module Handler.Submission.Upload
|
|
) where
|
|
|
|
import Handler.Submission.New
|
|
import Handler.Submission.Show
|
|
import Handler.Submission.Download
|
|
import Handler.Submission.Delete
|
|
import Handler.Submission.Assign
|
|
import Handler.Submission.SubmissionUserInvite (getSInviteR, postSInviteR)
|
|
import Handler.Submission.List (getCorrectionsR, postCorrectionsR, getCCorrectionsR, postCCorrectionsR, getSSubsR, postSSubsR)
|
|
import Handler.Submission.Correction
|
|
import Handler.Submission.Create
|
|
import Handler.Submission.Grade
|
|
import Handler.Submission.Upload
|
|
|
|
|
|
import Import
|
|
|
|
import Handler.Utils
|
|
|
|
import qualified Database.Esqueleto as E
|
|
|
|
|
|
getSubmissionOwnR :: TermId -> SchoolId -> CourseShorthand -> SheetName -> Handler Html
|
|
getSubmissionOwnR tid ssh csh shn = do
|
|
authId <- requireAuthId
|
|
sid <- runDB $ do
|
|
shid <- fetchSheetId tid ssh csh shn
|
|
submissions <- E.select . E.from $ \(submission `E.InnerJoin` submissionUser) -> do
|
|
E.on (submission E.^. SubmissionId E.==. submissionUser E.^. SubmissionUserSubmission)
|
|
E.where_ $ submissionUser E.^. SubmissionUserUser E.==. E.val authId
|
|
E.&&. submission E.^. SubmissionSheet E.==. E.val shid
|
|
return $ submission E.^. SubmissionId
|
|
case submissions of
|
|
(E.Value sid : _) -> return sid
|
|
[] -> notFound
|
|
cID <- encrypt sid
|
|
redirect $ CSubmissionR tid ssh csh shn cID SubShowR
|