From b25d542f6bef6c693b465c2457cb38c9f5c1b0a2 Mon Sep 17 00:00:00 2001 From: SJost Date: Wed, 16 Jan 2019 10:25:52 +0100 Subject: [PATCH] Corrector can always see sheet list. SheetList shows VisibleFrom --- routes | 2 +- src/Handler/Course.hs | 1 + src/Handler/Sheet.hs | 10 ++++++++++ src/Handler/Utils/Submission.hs | 4 +--- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/routes b/routes index f2b1d870c..53ff400b2 100644 --- a/routes +++ b/routes @@ -70,7 +70,7 @@ /users/#CryptoUUIDUser CUserR GET !lecturerANDparticipant /correctors CHiWisR GET /subs CCorrectionsR GET POST - /ex SheetListR GET !registered !materials + /ex SheetListR GET !registered !materials !corrector !/ex/new SheetNewR GET POST /ex/#SheetName SheetR: / SShowR GET !timeANDregistered !timeANDmaterials !corrector diff --git a/src/Handler/Course.hs b/src/Handler/Course.hs index cd9a82f96..22cf1bf77 100644 --- a/src/Handler/Course.hs +++ b/src/Handler/Course.hs @@ -611,6 +611,7 @@ getCUserR _tid _ssh _csh uCId = do -- - User is a lecturer for course uid <- decrypt uCId User{..} <- runDB $ get404 uid + -- USE src/utils/Form.formResult defaultLayout -- TODO [whamlet|

^{nameWidget userDisplayName userSurname} diff --git a/src/Handler/Sheet.hs b/src/Handler/Sheet.hs index 1b0af8650..ff5d712ac 100644 --- a/src/Handler/Sheet.hs +++ b/src/Handler/Sheet.hs @@ -164,6 +164,8 @@ getSheetListR tid ssh csh = do $ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, _)} -> anchorCell (CSheetR tid ssh csh sheetName SShowR) (toWidget sheetName) , sortable (Just "last-edit") (i18nCell MsgLastEdit) $ \DBRow{dbrOutput=(_, E.Value mEditTime, _)} -> maybe mempty timeCell mEditTime + , sortable (Just "visible-from") (i18nCell MsgSheetVisibleFrom) + $ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, _)} -> maybe mempty timeCell sheetVisibleFrom , sortable (Just "submission-since") (i18nCell MsgSheetActiveFrom) $ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, _)} -> timeCell sheetActiveFrom , sortable (Just "submission-until") (i18nCell MsgSheetActiveTo) @@ -219,6 +221,9 @@ getSheetListR tid ssh csh = do , ( "last-edit" , SortColumn $ \(sheet `E.LeftOuterJoin` _) -> lastSheetEdit sheet ) + , ( "visible-from" + , SortColumn $ \(sheet `E.LeftOuterJoin` _) -> sheet E.^. SheetVisibleFrom + ) , ( "submission-since" , SortColumn $ \(sheet `E.LeftOuterJoin` _) -> sheet E.^. SheetActiveFrom ) @@ -409,6 +414,11 @@ getSheetNewR tid ssh csh = do E.where_ $ course E.^. CourseTerm E.==. E.val tid E.&&. course E.^. CourseSchool E.==. E.val ssh E.&&. course E.^. CourseShorthand E.==. E.val csh + -- let lastSheetEdit = E.sub_select . E.from $ \sheetEdit -> do + -- E.where_ $ sheetEdit E.^. SheetEditSheet E.==. sheet E.^. SheetId + -- return . E.max_ $ sheetEdit E.^. SheetEditTime + -- Preferring last edited sheet may lead to suggesting duplicated sheet name numbers + -- E.orderBy [E.desc lastSheetEdit, E.desc (sheet E.^. SheetActiveFrom)] E.orderBy [E.desc (sheet E.^. SheetActiveFrom)] E.limit 1 return sheet diff --git a/src/Handler/Utils/Submission.hs b/src/Handler/Utils/Submission.hs index d5fed11ba..98bbd12ac 100644 --- a/src/Handler/Utils/Submission.hs +++ b/src/Handler/Utils/Submission.hs @@ -613,9 +613,7 @@ submissionDeleteRoute drRecords = DeleteRoute E.on $ sheet E.^. SheetId E.==. submission E.^. SubmissionSheet let lastEdit = E.sub_select . E.from $ \submissionEdit -> do E.where_ $ submissionEdit E.^. SubmissionEditSubmission E.==. submission E.^. SubmissionId - E.orderBy [E.desc $ submissionEdit E.^. SubmissionEditTime] - E.limit 1 - return $ submissionEdit E.^. SubmissionEditTime + return . E.max_ $ submissionEdit E.^. SubmissionEditTime E.orderBy [E.desc lastEdit] return (submission E.^. SubmissionId, sheet E.^. SheetName, course E.^. CourseShorthand, course E.^. CourseName, school E.^. SchoolShorthand, school E.^. SchoolName, course E.^. CourseTerm) , drRenderRecord = \(E.Value subId', E.Value shn', _, E.Value cName, _, E.Value sName, E.Value tid') -> do