chore(add-users): fix tutorial audits

This commit is contained in:
Sarah Vaupel 2022-12-13 20:26:52 +01:00
parent d195daadfc
commit db3d1b0f70

View File

@ -261,35 +261,38 @@ registerUser cid (_avsIdent, Just uid) = exceptT return return $ do
upsertNewTutorial :: CourseId -> TutorialIdent -> Handler TutorialId upsertNewTutorial :: CourseId -> TutorialIdent -> Handler TutorialId
upsertNewTutorial cid tutorialName = do upsertNewTutorial cid tutorialName = do
now <- liftIO getCurrentTime now <- liftIO getCurrentTime
Entity tutId _ <- runDB $ upsert tutId <- runDB $ do
Tutorial Entity tutId _ <- upsert
{ tutorialCourse = cid Tutorial
, tutorialType = CI.mk "Schulung" { tutorialCourse = cid
, tutorialCapacity = Nothing , tutorialType = CI.mk "Schulung"
, tutorialRoom = Nothing , tutorialCapacity = Nothing
, tutorialRoomHidden = False , tutorialRoom = Nothing
, tutorialTime = Occurrences mempty mempty , tutorialRoomHidden = False
, tutorialRegGroup = Nothing -- TODO: remove , tutorialTime = Occurrences mempty mempty
, tutorialRegisterFrom = Nothing , tutorialRegGroup = Nothing -- TODO: remove
, tutorialRegisterTo = Nothing , tutorialRegisterFrom = Nothing
, tutorialDeregisterUntil = Nothing , tutorialRegisterTo = Nothing
, tutorialLastChanged = now , tutorialDeregisterUntil = Nothing
, tutorialTutorControlled = False , tutorialLastChanged = now
, .. , tutorialTutorControlled = False
} , ..
[ TutorialName =. tutorialName }
, TutorialType =. CI.mk "Schulung" [ TutorialName =. tutorialName
, TutorialLastChanged =. now , TutorialType =. CI.mk "Schulung"
] , TutorialLastChanged =. now
audit $ TransactionTutorialEdit tutId ]
audit $ TransactionTutorialEdit tutId
return tutId
return tutId return tutId
registerTutorialMembers :: TutorialId -> Set UserId -> Handler () registerTutorialMembers :: TutorialId -> Set UserId -> Handler ()
registerTutorialMembers tutId (Set.toList -> users) = runDB $ do registerTutorialMembers tutId (Set.toList -> users) = runDB $ do
prevParticipants <- fmap Set.fromList $ selectList [TutorialParticipantUser <-. users, TutorialParticipantTutorial ==. tutId] [] prevParticipants <- fmap (Set.fromList . fmap entityKey) $ selectList [TutorialParticipantUser <-. users, TutorialParticipantTutorial ==. tutId] []
participants <- fmap Set.fromList . for users $ \tutorialParticipantUser -> do participants <- fmap Set.fromList . for users $ \tutorialParticipantUser -> do
tutPartId <- upsert TutorialParticipant { tutorialParticipantTutorial = tutId, .. } [] Entity tutPartId _ <- upsert TutorialParticipant { tutorialParticipantTutorial = tutId, .. } []
audit $ TransactionTutorialParticipantEdit tutId tutPartId tutorialParticipantUser audit $ TransactionTutorialParticipantEdit tutId tutPartId tutorialParticipantUser
return tutPartId
let newParticipants = participants Set.\\ prevParticipants let newParticipants = participants Set.\\ prevParticipants
unless (Set.null newParticipants) $ unless (Set.null newParticipants) $
addMessageI Success . MsgCourseParticipantsRegisteredTutorial $ Set.size newParticipants addMessageI Success . MsgCourseParticipantsRegisteredTutorial $ Set.size newParticipants