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' <- formResultMaybe usersResult $ \case
|
||||
(ExternalExamUserMarkSynchronisedData, selectedUsers) -> do
|
||||
forM_ selectedUsers externalExamResultMarkSynchronised
|
||||
(ExternalExamUserMarkSynchronisedData, selectedResults) -> do
|
||||
forM_ selectedResults externalExamResultMarkSynchronised
|
||||
return . Just $ do
|
||||
addMessageI Success $ MsgExamUserMarkedSynchronised $ length selectedUsers
|
||||
addMessageI Success $ MsgExamUserMarkedSynchronised $ length selectedResults
|
||||
redirect $ EExamR tid ssh coursen examn EEGradesR
|
||||
|
||||
(ExternalExamUserEditOccurrenceData occ, selectedUsers) -> do
|
||||
(ExternalExamUserEditOccurrenceData occ, selectedResults) -> do
|
||||
nrEdited <- do
|
||||
now <- liftIO getCurrentTime
|
||||
updateWhereCount [ ExternalExamResultId <-. Set.toList selectedUsers ]
|
||||
updateWhereCount [ ExternalExamResultId <-. Set.toList selectedResults ]
|
||||
[ ExternalExamResultTime =. occ
|
||||
, ExternalExamResultLastChanged =. now
|
||||
]
|
||||
@ -36,10 +36,10 @@ postEEGradesR tid ssh coursen examn = do
|
||||
addMessageI Success $ MsgExternalExamOccurrenceEdited nrEdited
|
||||
redirect $ EExamR tid ssh coursen examn EEGradesR
|
||||
|
||||
(ExternalExamUserEditResultData examResult, selectedUsers) -> do
|
||||
(ExternalExamUserEditResultData examResult, selectedResults) -> do
|
||||
nrEdited <- do
|
||||
now <- liftIO getCurrentTime
|
||||
updateWhereCount [ ExternalExamResultId <-. Set.toList selectedUsers ]
|
||||
updateWhereCount [ ExternalExamResultId <-. Set.toList selectedResults ]
|
||||
[ ExternalExamResultResult =. examResult
|
||||
, ExternalExamResultLastChanged =. now
|
||||
]
|
||||
@ -47,8 +47,15 @@ postEEGradesR tid ssh coursen examn = do
|
||||
addMessageI Success $ MsgExternalExamResultEdited nrEdited
|
||||
redirect $ EExamR tid ssh coursen examn EEGradesR
|
||||
|
||||
(ExternalExamUserDeleteData, selectedUsers) -> do
|
||||
nrDeleted <- deleteWhereCount [ ExternalExamResultId <-. Set.toList selectedUsers ]
|
||||
(ExternalExamUserDeleteData, selectedResults) -> do
|
||||
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
|
||||
addMessageI Success $ MsgExternalExamUserDeleted nrDeleted
|
||||
redirect $ EExamR tid ssh coursen examn EEGradesR
|
||||
|
||||
Loading…
Reference in New Issue
Block a user