feat(eeusersr): audit external exam result delete
This commit is contained in:
parent
d4b784afba
commit
baa3fd82e1
@ -19,16 +19,16 @@ postEEGradesR tid ssh coursen examn = do
|
|||||||
(usersResult, examUsersTable) <- makeExternalExamUsersTable EEUMGrades eExam
|
(usersResult, examUsersTable) <- makeExternalExamUsersTable EEUMGrades eExam
|
||||||
|
|
||||||
usersResult' <- formResultMaybe usersResult $ \case
|
usersResult' <- formResultMaybe usersResult $ \case
|
||||||
(ExternalExamUserMarkSynchronisedData, selectedUsers) -> do
|
(ExternalExamUserMarkSynchronisedData, selectedResults) -> do
|
||||||
forM_ selectedUsers externalExamResultMarkSynchronised
|
forM_ selectedResults externalExamResultMarkSynchronised
|
||||||
return . Just $ do
|
return . Just $ do
|
||||||
addMessageI Success $ MsgExamUserMarkedSynchronised $ length selectedUsers
|
addMessageI Success $ MsgExamUserMarkedSynchronised $ length selectedResults
|
||||||
redirect $ EExamR tid ssh coursen examn EEGradesR
|
redirect $ EExamR tid ssh coursen examn EEGradesR
|
||||||
|
|
||||||
(ExternalExamUserEditOccurrenceData occ, selectedUsers) -> do
|
(ExternalExamUserEditOccurrenceData occ, selectedResults) -> do
|
||||||
nrEdited <- do
|
nrEdited <- do
|
||||||
now <- liftIO getCurrentTime
|
now <- liftIO getCurrentTime
|
||||||
updateWhereCount [ ExternalExamResultId <-. Set.toList selectedUsers ]
|
updateWhereCount [ ExternalExamResultId <-. Set.toList selectedResults ]
|
||||||
[ ExternalExamResultTime =. occ
|
[ ExternalExamResultTime =. occ
|
||||||
, ExternalExamResultLastChanged =. now
|
, ExternalExamResultLastChanged =. now
|
||||||
]
|
]
|
||||||
@ -36,10 +36,10 @@ postEEGradesR tid ssh coursen examn = do
|
|||||||
addMessageI Success $ MsgExternalExamOccurrenceEdited nrEdited
|
addMessageI Success $ MsgExternalExamOccurrenceEdited nrEdited
|
||||||
redirect $ EExamR tid ssh coursen examn EEGradesR
|
redirect $ EExamR tid ssh coursen examn EEGradesR
|
||||||
|
|
||||||
(ExternalExamUserEditResultData examResult, selectedUsers) -> do
|
(ExternalExamUserEditResultData examResult, selectedResults) -> do
|
||||||
nrEdited <- do
|
nrEdited <- do
|
||||||
now <- liftIO getCurrentTime
|
now <- liftIO getCurrentTime
|
||||||
updateWhereCount [ ExternalExamResultId <-. Set.toList selectedUsers ]
|
updateWhereCount [ ExternalExamResultId <-. Set.toList selectedResults ]
|
||||||
[ ExternalExamResultResult =. examResult
|
[ ExternalExamResultResult =. examResult
|
||||||
, ExternalExamResultLastChanged =. now
|
, ExternalExamResultLastChanged =. now
|
||||||
]
|
]
|
||||||
@ -47,8 +47,15 @@ postEEGradesR tid ssh coursen examn = do
|
|||||||
addMessageI Success $ MsgExternalExamResultEdited nrEdited
|
addMessageI Success $ MsgExternalExamResultEdited nrEdited
|
||||||
redirect $ EExamR tid ssh coursen examn EEGradesR
|
redirect $ EExamR tid ssh coursen examn EEGradesR
|
||||||
|
|
||||||
(ExternalExamUserDeleteData, selectedUsers) -> do
|
(ExternalExamUserDeleteData, selectedResults) -> do
|
||||||
nrDeleted <- deleteWhereCount [ ExternalExamResultId <-. Set.toList selectedUsers ]
|
nrDeleted <- fmap getSum . flip foldMapM selectedResults $ \selectedResult -> do
|
||||||
|
mExtExamRes <- get selectedResult
|
||||||
|
nrDel <- deleteWhereCount [ ExternalExamResultId ==. selectedResult ]
|
||||||
|
if
|
||||||
|
| Just ExternalExamResult{..} <- mExtExamRes -> do
|
||||||
|
forM_ [1..nrDel] $ const $ audit $ TransactionExternalExamResultDelete externalExamResultExam externalExamResultUser
|
||||||
|
return $ Sum nrDel
|
||||||
|
| otherwise -> return mempty
|
||||||
return . Just $ do
|
return . Just $ do
|
||||||
addMessageI Success $ MsgExternalExamUserDeleted nrDeleted
|
addMessageI Success $ MsgExternalExamUserDeleted nrDeleted
|
||||||
redirect $ EExamR tid ssh coursen examn EEGradesR
|
redirect $ EExamR tid ssh coursen examn EEGradesR
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user