diff --git a/src/Audit/Types.hs b/src/Audit/Types.hs index 6e740d9f3..fc9fc4bf9 100644 --- a/src/Audit/Types.hs +++ b/src/Audit/Types.hs @@ -48,17 +48,13 @@ data Transaction , transactionUser :: UserId , transactionCourseApplication :: CourseApplicationId } - | TransactionSubmissionsCorrectorAssigned - { transactionSubmissions :: [SubmissionId] - , transactionUser :: UserId - } - | TransactionSubmissionsCorrectionsDeleted - { transactionSubmissions :: [SubmissionId] - } - | TransactionSubmissionCorrectorUpdated + | TransactionSubmissionCorrectorAssigned { transactionSubmission :: SubmissionId , transactionMbUser :: Maybe UserId } + | TransactionSubmissionCorrectionDeleted + { transactionSubmission :: SubmissionId + } deriving (Eq, Ord, Read, Show, Generic, Typeable) deriveJSON defaultOptions diff --git a/src/Handler/Corrections.hs b/src/Handler/Corrections.hs index 2d1cfddec..fb265caf0 100644 --- a/src/Handler/Corrections.hs +++ b/src/Handler/Corrections.hs @@ -465,7 +465,7 @@ correctionsR whereClause displayColumns dbtFilterUI psValidator actions = do , SubmissionRatingAssigned =. Just now -- save, since only applies to unassigned ] addMessageI Success $ MsgUpdatedAssignedCorrectorSingle num - audit $ TransactionSubmissionsCorrectorAssigned sIds uid + mapM_ (\sId -> audit $ TransactionSubmissionCorrectorAssigned sId $ Just uid) sIds (E.Value selfCorrectors:_) <- E.select . E.from $ \(submission `E.InnerJoin` subuser) -> do E.on $ submission E.^. SubmissionId E.==. subuser E.^. SubmissionUserSubmission E.where_ $ submission E.^. SubmissionId `E.in_` E.valList subs @@ -484,7 +484,7 @@ correctionsR whereClause displayColumns dbtFilterUI psValidator actions = do -- , SubmissionRatingComment =. Nothing -- Kept for easy reassignment by 2nd corrector ] addMessageI Success $ MsgRemovedCorrections num - audit $ TransactionSubmissionsCorrectionsDeleted subs + mapM_ (audit . TransactionSubmissionCorrectionDeleted) subs redirect currentRoute FormSuccess (CorrAutoSetCorrectorData shid, subs') -> do subs <- mapM decrypt $ Set.toList subs' diff --git a/src/Handler/Submission.hs b/src/Handler/Submission.hs index 1464734f1..9abb60dbb 100644 --- a/src/Handler/Submission.hs +++ b/src/Handler/Submission.hs @@ -622,7 +622,7 @@ postSubAssignR tid ssh csh shn cID = do , SubmissionRatingAssigned =. (now <$ mbUserId) ] addMessageI Success MsgCorrectorUpdated - audit $ TransactionSubmissionCorrectorUpdated sId mbUserId + audit $ TransactionSubmissionCorrectorAssigned sId mbUserId redirect actionUrl let corrForm = wrapForm' BtnSave corrForm' def { formAction = Just $ SomeRoute actionUrl diff --git a/src/Handler/Utils/Submission.hs b/src/Handler/Utils/Submission.hs index b048177d3..272a9793a 100644 --- a/src/Handler/Utils/Submission.hs +++ b/src/Handler/Utils/Submission.hs @@ -77,10 +77,11 @@ writeSubmissionPlan :: Map SubmissionId (Maybe UserId) writeSubmissionPlan newSubmissionData = do now <- liftIO getCurrentTime execWriterT . forM_ (Map.toList newSubmissionData) $ \(subId, mCorrector) -> case mCorrector of - Just corrector -> do - lift $ update subId [ SubmissionRatingBy =. Just corrector + Just _ -> do + lift $ update subId [ SubmissionRatingBy =. mCorrector , SubmissionRatingAssigned =. Just now ] + lift $ audit $ TransactionSubmissionCorrectorAssigned subId mCorrector tell (Set.singleton subId, mempty) Nothing -> tell (mempty, Set.singleton subId)