diff --git a/src/Handler/Course/ParticipantInvite.hs b/src/Handler/Course/ParticipantInvite.hs index d500c190f..fd1ad29ea 100644 --- a/src/Handler/Course/ParticipantInvite.hs +++ b/src/Handler/Course/ParticipantInvite.hs @@ -261,35 +261,38 @@ registerUser cid (_avsIdent, Just uid) = exceptT return return $ do upsertNewTutorial :: CourseId -> TutorialIdent -> Handler TutorialId upsertNewTutorial cid tutorialName = do now <- liftIO getCurrentTime - Entity tutId _ <- runDB $ upsert - Tutorial - { tutorialCourse = cid - , tutorialType = CI.mk "Schulung" - , tutorialCapacity = Nothing - , tutorialRoom = Nothing - , tutorialRoomHidden = False - , tutorialTime = Occurrences mempty mempty - , tutorialRegGroup = Nothing -- TODO: remove - , tutorialRegisterFrom = Nothing - , tutorialRegisterTo = Nothing - , tutorialDeregisterUntil = Nothing - , tutorialLastChanged = now - , tutorialTutorControlled = False - , .. - } - [ TutorialName =. tutorialName - , TutorialType =. CI.mk "Schulung" - , TutorialLastChanged =. now - ] - audit $ TransactionTutorialEdit tutId + tutId <- runDB $ do + Entity tutId _ <- upsert + Tutorial + { tutorialCourse = cid + , tutorialType = CI.mk "Schulung" + , tutorialCapacity = Nothing + , tutorialRoom = Nothing + , tutorialRoomHidden = False + , tutorialTime = Occurrences mempty mempty + , tutorialRegGroup = Nothing -- TODO: remove + , tutorialRegisterFrom = Nothing + , tutorialRegisterTo = Nothing + , tutorialDeregisterUntil = Nothing + , tutorialLastChanged = now + , tutorialTutorControlled = False + , .. + } + [ TutorialName =. tutorialName + , TutorialType =. CI.mk "Schulung" + , TutorialLastChanged =. now + ] + audit $ TransactionTutorialEdit tutId + return tutId return tutId registerTutorialMembers :: TutorialId -> Set UserId -> Handler () 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 - tutPartId <- upsert TutorialParticipant { tutorialParticipantTutorial = tutId, .. } [] + Entity tutPartId _ <- upsert TutorialParticipant { tutorialParticipantTutorial = tutId, .. } [] audit $ TransactionTutorialParticipantEdit tutId tutPartId tutorialParticipantUser + return tutPartId let newParticipants = participants Set.\\ prevParticipants unless (Set.null newParticipants) $ addMessageI Success . MsgCourseParticipantsRegisteredTutorial $ Set.size newParticipants