From 988ee74fa8994aeb4ca058bcab846aafb7cc6831 Mon Sep 17 00:00:00 2001 From: SJost Date: Thu, 26 Apr 2018 11:57:28 +0200 Subject: [PATCH] Bugfix: edit submission buddies --- src/Handler/Submission.hs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/Handler/Submission.hs b/src/Handler/Submission.hs index 0a78a8458..1f1a15e15 100644 --- a/src/Handler/Submission.hs +++ b/src/Handler/Submission.hs @@ -124,7 +124,7 @@ postSubmissionR tid csh shn (SubmissionMode mcid) = do E.on (user E.^. UserId E.==. submissionEdit E.^. SubmissionEditUser) E.where_ $ submissionEdit E.^. SubmissionEditSubmission E.==. E.val smid E.orderBy [E.desc $ submissionEdit E.^. SubmissionEditTime] - E.limit 1 + E.limit 10 return $ (user E.^. UserDisplayName, submissionEdit E.^. SubmissionEditTime) let lastEdits = map (bimap E.unValue E.unValue) lastEditValues return (sheet,buddies,oldfiles,lastEdits) @@ -174,10 +174,6 @@ postSubmissionR tid csh shn (SubmissionMode mcid) = do now <- liftIO $ getCurrentTime smid <- do smid <- runConduit $ transPipe lift files .| Conduit.map Left .| sinkSubmission shid uid ((,False) <$> msmid) - - insertUnique $ SubmissionUser uid smid - -- insert $ SubmissionEdit uid now smid -- sinkSubmission already does this - -- Determine members of pre-registered group groupUids <- fmap (setFromList . map E.unValue) . E.select . E.from $ \(submissionGroupUser `E.InnerJoin` submissionGroup `E.InnerJoin` submissionGroupUser') -> do E.on $ submissionGroup E.^. SubmissionGroupId E.==. submissionGroupUser' E.^. SubmissionGroupUserSubmissionGroup @@ -185,10 +181,12 @@ postSubmissionR tid csh shn (SubmissionMode mcid) = do E.where_ $ submissionGroupUser E.^. SubmissionGroupUserUser E.==. E.val uid E.&&. submissionGroup E.^. SubmissionGroupCourse E.==. E.val sheetCourse return $ submissionGroupUser' E.^. SubmissionGroupUserUser - -- SubmissionUser for all group members (pre-registered & ad-hoc) - forM_ (groupUids `Set.union` adhocIds) $ \uid' -> void . insertUnique $ SubmissionUser uid' smid - + let subUsers = Set.insert uid $ groupUids `Set.union` adhocIds + -- remove obsolete old entries + deleteWhere [SubmissionUserSubmission ==. smid, SubmissionUserUser /<-. setToList subUsers] + -- maybe add current users + forM_ subUsers $ \uid' -> void . insertUnique $ SubmissionUser uid' smid return smid cID <- encrypt smid return $ Just cID @@ -214,7 +212,7 @@ postSubmissionR tid csh shn (SubmissionMode mcid) = do

Archiv $forall (name,time) <- lastEdits -
last edited by #{name} at #{formatTimeGerWDT time} +
last edited by #{name} at #{formatTimeGerDTlong time} $maybe cid <- mcid

Enthaltene Dateien: $forall (Entity _ File{..}) <- oldfiles