chore(audit): audit auto submission corrector assignment + refactor

This commit is contained in:
Sarah Vaupel 2019-08-29 12:10:13 +02:00
parent 50915a6296
commit 9136d9a352
4 changed files with 10 additions and 13 deletions

View File

@ -48,17 +48,13 @@ data Transaction
, transactionUser :: UserId , transactionUser :: UserId
, transactionCourseApplication :: CourseApplicationId , transactionCourseApplication :: CourseApplicationId
} }
| TransactionSubmissionsCorrectorAssigned | TransactionSubmissionCorrectorAssigned
{ transactionSubmissions :: [SubmissionId]
, transactionUser :: UserId
}
| TransactionSubmissionsCorrectionsDeleted
{ transactionSubmissions :: [SubmissionId]
}
| TransactionSubmissionCorrectorUpdated
{ transactionSubmission :: SubmissionId { transactionSubmission :: SubmissionId
, transactionMbUser :: Maybe UserId , transactionMbUser :: Maybe UserId
} }
| TransactionSubmissionCorrectionDeleted
{ transactionSubmission :: SubmissionId
}
deriving (Eq, Ord, Read, Show, Generic, Typeable) deriving (Eq, Ord, Read, Show, Generic, Typeable)
deriveJSON defaultOptions deriveJSON defaultOptions

View File

@ -465,7 +465,7 @@ correctionsR whereClause displayColumns dbtFilterUI psValidator actions = do
, SubmissionRatingAssigned =. Just now -- save, since only applies to unassigned , SubmissionRatingAssigned =. Just now -- save, since only applies to unassigned
] ]
addMessageI Success $ MsgUpdatedAssignedCorrectorSingle num 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.Value selfCorrectors:_) <- E.select . E.from $ \(submission `E.InnerJoin` subuser) -> do
E.on $ submission E.^. SubmissionId E.==. subuser E.^. SubmissionUserSubmission E.on $ submission E.^. SubmissionId E.==. subuser E.^. SubmissionUserSubmission
E.where_ $ submission E.^. SubmissionId `E.in_` E.valList subs 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 -- , SubmissionRatingComment =. Nothing -- Kept for easy reassignment by 2nd corrector
] ]
addMessageI Success $ MsgRemovedCorrections num addMessageI Success $ MsgRemovedCorrections num
audit $ TransactionSubmissionsCorrectionsDeleted subs mapM_ (audit . TransactionSubmissionCorrectionDeleted) subs
redirect currentRoute redirect currentRoute
FormSuccess (CorrAutoSetCorrectorData shid, subs') -> do FormSuccess (CorrAutoSetCorrectorData shid, subs') -> do
subs <- mapM decrypt $ Set.toList subs' subs <- mapM decrypt $ Set.toList subs'

View File

@ -622,7 +622,7 @@ postSubAssignR tid ssh csh shn cID = do
, SubmissionRatingAssigned =. (now <$ mbUserId) , SubmissionRatingAssigned =. (now <$ mbUserId)
] ]
addMessageI Success MsgCorrectorUpdated addMessageI Success MsgCorrectorUpdated
audit $ TransactionSubmissionCorrectorUpdated sId mbUserId audit $ TransactionSubmissionCorrectorAssigned sId mbUserId
redirect actionUrl redirect actionUrl
let corrForm = wrapForm' BtnSave corrForm' def let corrForm = wrapForm' BtnSave corrForm' def
{ formAction = Just $ SomeRoute actionUrl { formAction = Just $ SomeRoute actionUrl

View File

@ -77,10 +77,11 @@ writeSubmissionPlan :: Map SubmissionId (Maybe UserId)
writeSubmissionPlan newSubmissionData = do writeSubmissionPlan newSubmissionData = do
now <- liftIO getCurrentTime now <- liftIO getCurrentTime
execWriterT . forM_ (Map.toList newSubmissionData) $ \(subId, mCorrector) -> case mCorrector of execWriterT . forM_ (Map.toList newSubmissionData) $ \(subId, mCorrector) -> case mCorrector of
Just corrector -> do Just _ -> do
lift $ update subId [ SubmissionRatingBy =. Just corrector lift $ update subId [ SubmissionRatingBy =. mCorrector
, SubmissionRatingAssigned =. Just now , SubmissionRatingAssigned =. Just now
] ]
lift $ audit $ TransactionSubmissionCorrectorAssigned subId mCorrector
tell (Set.singleton subId, mempty) tell (Set.singleton subId, mempty)
Nothing -> Nothing ->
tell (mempty, Set.singleton subId) tell (mempty, Set.singleton subId)