diff --git a/src/Handler/Course/ParticipantInvite.hs b/src/Handler/Course/ParticipantInvite.hs index 25b3031d7..59de5ab53 100644 --- a/src/Handler/Course/ParticipantInvite.hs +++ b/src/Handler/Course/ParticipantInvite.hs @@ -70,17 +70,17 @@ instance Finite CourseRegisterAction data CourseRegisterActionData = CourseRegisterActionAddParticipantData { crActAddParticipantIdent :: UserSearchKey - , crActAddParticipantUser :: UserId + , crActAddParticipantUser :: (UserId, User) } | CourseRegisterActionAddTutorialMemberData { crActAddTutorialMemberIdent :: UserSearchKey - , crActAddTutorialMemberUser :: UserId + , crActAddTutorialMemberUser :: (UserId, User) , crActAddTutorialMemberTutorial :: TutorialIdent } -- | CourseRegisterActionUnknownPersonData -- pseudo-action; just for display -- { crActUnknownPersonIdent :: Text -- } - deriving (Eq, Ord, Read, Show, Generic, Typeable) + deriving (Eq, Ord, Generic, Typeable) makeLenses_ ''CourseRegisterActionData @@ -104,8 +104,8 @@ courseRegisterRenderActionClass = \case courseRegisterRenderAction :: CourseRegisterActionData -> Widget courseRegisterRenderAction = \case - CourseRegisterActionAddParticipantData{..} -> [whamlet|TODO USER (#{crActAddParticipantIdent})|] - CourseRegisterActionAddTutorialMemberData{..} -> [whamlet|TODO USER (#{crActAddTutorialMemberIdent})|] + CourseRegisterActionAddParticipantData{..} -> [whamlet|^{userWidget (view _2 crActAddParticipantUser)} (#{crActAddParticipantIdent})|] + CourseRegisterActionAddTutorialMemberData{..} -> [whamlet|^{userWidget (view _2 crActAddTutorialMemberUser)} (#{crActAddTutorialMemberIdent}), _{MsgCourseParticipantsRegisterTutorialField}: #{crActAddTutorialMemberTutorial}|] --data CourseRegisterActionClass -- = CourseRegisterActionClassNew @@ -232,9 +232,10 @@ postCAddUserR tid ssh csh = do (_, Nothing) -> error "Found user in AVS, but response is Nothing!" -- this should not be possible (ukey, Just uid) -> do -- isParticipant <- exists [CourseParticipantCourse ==. cid, CourseParticipantUser ==. uid, CourseParticipantState ==. CourseParticipantActive] + user <- liftHandler . runDBRead $ get404 uid case auReqTutorial of - Nothing -> return . Map.singleton CourseRegisterActionAddParticipant . Set.singleton $ CourseRegisterActionAddParticipantData ukey uid - Just crActAddTutorialMemberTutorial -> return . Map.singleton CourseRegisterActionAddTutorialMember . Set.singleton $ CourseRegisterActionAddTutorialMemberData ukey uid crActAddTutorialMemberTutorial + Nothing -> return . Map.singleton CourseRegisterActionAddParticipant . Set.singleton $ CourseRegisterActionAddParticipantData ukey (uid,user) + Just crActAddTutorialMemberTutorial -> return . Map.singleton CourseRegisterActionAddTutorialMember . Set.singleton $ CourseRegisterActionAddTutorialMemberData ukey (uid,user) crActAddTutorialMemberTutorial let precomputeIdents :: forall f m. (Eq (Element f), MonoFoldable f, MonadHandler m) => f -> m (Element f -> Text)