diff --git a/src/Audit/Types.hs b/src/Audit/Types.hs index 40ae64d3f..dec21cdea 100644 --- a/src/Audit/Types.hs +++ b/src/Audit/Types.hs @@ -71,7 +71,6 @@ data Transaction , transactionUser :: UserId } - -- TODO: not yet audited | TransactionSubmissionFileEdit { transactionSubmissionFile :: SubmissionFileId , transactionSubmission :: SubmissionId diff --git a/src/Handler/Utils/Submission.hs b/src/Handler/Utils/Submission.hs index 6cc14a327..b8f20c4de 100644 --- a/src/Handler/Utils/Submission.hs +++ b/src/Handler/Utils/Submission.hs @@ -404,6 +404,7 @@ sinkSubmission userId mExists isUpdate = do submissionRatingTime = Nothing sId <- insert Submission{..} + audit $ TransactionSubmissionEdit sId sheetId -- now <- liftIO getCurrentTime -- insert $ SubmissionEdit userId now sId -- This is done automatically during 'sinkSubmission'' iff the given submission is nonempty return sId @@ -472,15 +473,17 @@ sinkSubmission userId mExists isUpdate = do -> return () _ -> do fileId <- insert file - insert_ $ SubmissionFile + subFileId <- insert $ SubmissionFile { submissionFileSubmission = submissionId , submissionFileFile = fileId , submissionFileIsUpdate = isUpdate , submissionFileIsDeletion = False } + audit $ TransactionSubmissionFileEdit subFileId submissionId fileId when undoneDeletion $ do touchSubmission lift $ deleteWhere [ SubmissionFileId <-. [ sfId | (_, Entity sfId sf) <- collidingFiles, submissionFileIsDeletion sf ] ] + -- audit $ TransactionSubmissionFileDelete sfId submissionId fId -- TODO: get sfId, fId Right (submissionId', r) -> do $logDebugS "sinkSubmission" $ tshow submissionId' @@ -531,6 +534,7 @@ sinkSubmission userId mExists isUpdate = do when (submissionRatingDone submission' && not (submissionRatingDone submission)) $ tellSt mempty { sinkSubmissionNotifyRating = Any True } lift $ replace submissionId submission' + -- audit $ TransactionSubmissionEdit submissionId sheetId -- TODO: get sheetId where a /~ b = not $ a ~~ b @@ -587,24 +591,24 @@ sinkSubmission userId mExists isUpdate = do case (shadowing, submissionFileIsUpdate) of ([], _) -> deleteCascade fileId (E.Value f:_, False) -> do - insert_ $ SubmissionFile + sfId' <- insert $ SubmissionFile { submissionFileSubmission = submissionId , submissionFileFile = f , submissionFileIsUpdate = True , submissionFileIsDeletion = True } + audit $ TransactionSubmissionFileEdit sfId' submissionId f (E.Value f:_, True) -> do update sfId [ SubmissionFileFile =. f, SubmissionFileIsDeletion =. True ] deleteCascade fileId + audit $ TransactionSubmissionFileDelete sfId submissionId f if | isUpdate , isn't (_Wrapped . _Just) sinkSeenRating - -> update submissionId - [ SubmissionRatingTime =. Nothing - , SubmissionRatingPoints =. Nothing - , SubmissionRatingComment =. Nothing - ] + -> do + update submissionId [ SubmissionRatingTime =. Nothing, SubmissionRatingPoints =. Nothing, SubmissionRatingComment =. Nothing] + -- audit $ TransactionSubmissionEdit submissionId sheetId -- TODO: get sheetId | isUpdate , getAny sinkSubmissionNotifyRating -> queueDBJob . JobQueueNotification $ NotificationSubmissionRated submissionId