feat(users-add): add error message for users not found in avs
This commit is contained in:
parent
1445c8f69a
commit
e273c60a23
@ -114,9 +114,9 @@ CourseParticipantsRegisterTutorialOption: Kursteilnehmer:innen zu Übungsgruppe
|
|||||||
CourseParticipantsRegisterTutorialField: Übungsgruppe
|
CourseParticipantsRegisterTutorialField: Übungsgruppe
|
||||||
CourseParticipantsRegisterTutorialFieldTip: Ist aktuell keine Übungsgruppe mit diesem Namen vorhanden, wird eine neue erstellt. Ist bereits eine Übungsgruppe mit diesem Namen vorhanden, werden die Kursteilnehmenden dieser hinzugefügt.
|
CourseParticipantsRegisterTutorialFieldTip: Ist aktuell keine Übungsgruppe mit diesem Namen vorhanden, wird eine neue erstellt. Ist bereits eine Übungsgruppe mit diesem Namen vorhanden, werden die Kursteilnehmenden dieser hinzugefügt.
|
||||||
CourseParticipantsRegisterNoneGiven: Es wurden keine anzumeldenden Personen angegeben!
|
CourseParticipantsRegisterNoneGiven: Es wurden keine anzumeldenden Personen angegeben!
|
||||||
|
CourseParticipantsRegisterNotFoundInAvs n@Int: #{n} #{pluralDE n "Person" "Personen"} konnten nicht im AVS gefunden werden
|
||||||
|
|
||||||
CourseParticipantsInvited n@Int: #{n} #{pluralDE n "Einladung" "Einladungen"} per E-Mail verschickt
|
CourseParticipantsInvited n@Int: #{n} #{pluralDE n "Einladung" "Einladungen"} per E-Mail verschickt
|
||||||
CourseParticipantsAddedByAvs n@Int: #{n} AVS-Nutzer erfolgreich angemeldet (TODO)
|
|
||||||
CourseParticipantsAlreadyRegistered n@Int: #{n} #{pluralDE n "Teinehmer:in" "Teilnehmer:innen"} #{pluralDE n "ist" "sind"} bereits angemeldet
|
CourseParticipantsAlreadyRegistered n@Int: #{n} #{pluralDE n "Teinehmer:in" "Teilnehmer:innen"} #{pluralDE n "ist" "sind"} bereits angemeldet
|
||||||
CourseParticipantsAlreadyTutorialMember n@Int: #{n} #{pluralDE n "Teinehmer:in" "Teilnehmer:innen"} #{pluralDE n "ist" "sind"} bereits in dieser Übungsgruppe angemeldet
|
CourseParticipantsAlreadyTutorialMember n@Int: #{n} #{pluralDE n "Teinehmer:in" "Teilnehmer:innen"} #{pluralDE n "ist" "sind"} bereits in dieser Übungsgruppe angemeldet
|
||||||
CourseParticipantsRegistered n@Int: #{n} #{pluralDE n "Teinehmer:in" "Teilnehmer:innen"} erfolgreich angemeldet
|
CourseParticipantsRegistered n@Int: #{n} #{pluralDE n "Teinehmer:in" "Teilnehmer:innen"} erfolgreich angemeldet
|
||||||
|
|||||||
@ -114,9 +114,9 @@ CourseParticipantsRegisterTutorialOption: Register course participants for tutor
|
|||||||
CourseParticipantsRegisterTutorialField: Tutorial
|
CourseParticipantsRegisterTutorialField: Tutorial
|
||||||
CourseParticipantsRegisterTutorialFieldTip: If there is no tutorial with this name, a new one will be created. If there is a tutorial with this name, the course participants will be registered for it.
|
CourseParticipantsRegisterTutorialFieldTip: If there is no tutorial with this name, a new one will be created. If there is a tutorial with this name, the course participants will be registered for it.
|
||||||
CourseParticipantsRegisterNoneGiven: No persons given to register!
|
CourseParticipantsRegisterNoneGiven: No persons given to register!
|
||||||
|
CourseParticipantsRegisterNotFoundInAvs n: #{n} #{pluralEN n "person" "persons"} could not be found in AVS
|
||||||
|
|
||||||
CourseParticipantsInvited n: #{n} #{pluralEN n "invitation" "invitations"} sent via email
|
CourseParticipantsInvited n: #{n} #{pluralEN n "invitation" "invitations"} sent via email
|
||||||
CourseParticipantsAddedByAvs n: #{n} AVS users successfully registered (TODO)
|
|
||||||
CourseParticipantsAlreadyRegistered n: #{n} #{pluralEN n "participant is" "participants are"} already enrolled
|
CourseParticipantsAlreadyRegistered n: #{n} #{pluralEN n "participant is" "participants are"} already enrolled
|
||||||
CourseParticipantsAlreadyTutorialMember n: #{n} #{pluralEN n "participant is" "participants are"} already registered for this tutorial
|
CourseParticipantsAlreadyTutorialMember n: #{n} #{pluralEN n "participant is" "participants are"} already registered for this tutorial
|
||||||
CourseParticipantsRegistered n: Successfully registered #{n} #{pluralEN n "participant" "participants"}
|
CourseParticipantsRegistered n: Successfully registered #{n} #{pluralEN n "participant" "participants"}
|
||||||
|
|||||||
@ -27,7 +27,8 @@ import Generics.Deriving.Monoid (memptydefault, mappenddefault)
|
|||||||
|
|
||||||
|
|
||||||
data AddParticipantsResult = AddParticipantsResult
|
data AddParticipantsResult = AddParticipantsResult
|
||||||
{ aurAlreadyRegistered
|
{ aurNotFound :: Set Text
|
||||||
|
, aurAlreadyRegistered
|
||||||
, aurAlreadyTutorialMember
|
, aurAlreadyTutorialMember
|
||||||
, aurRegisterSuccess
|
, aurRegisterSuccess
|
||||||
, aurTutorialSuccess :: Set UserId
|
, aurTutorialSuccess :: Set UserId
|
||||||
@ -83,13 +84,18 @@ registerUsers cid usersToRegister = do
|
|||||||
-> tell . pure =<< messageI Error MsgCourseParticipantsRegisterNoneGiven
|
-> tell . pure =<< messageI Error MsgCourseParticipantsRegisterNoneGiven
|
||||||
| otherwise
|
| otherwise
|
||||||
-- register retrieved users
|
-- register retrieved users
|
||||||
-> tell <=< lift . addParticipantsResultMessages <=< lift . execWriterT $ mapM_ (registerUser cid) (catMaybes $ Map.elems avsUsers)
|
-> tell <=< lift . addParticipantsResultMessages <=< lift . execWriterT . mapM_ (registerUser cid) $ Map.toList avsUsers
|
||||||
|
|
||||||
|
|
||||||
addParticipantsResultMessages :: (MonadHandler m, HandlerSite m ~ UniWorX)
|
addParticipantsResultMessages :: (MonadHandler m, HandlerSite m ~ UniWorX)
|
||||||
=> AddParticipantsResult
|
=> AddParticipantsResult
|
||||||
-> ReaderT (YesodPersistBackend UniWorX) m [Message]
|
-> ReaderT (YesodPersistBackend UniWorX) m [Message]
|
||||||
addParticipantsResultMessages AddParticipantsResult{..} = execWriterT $ do
|
addParticipantsResultMessages AddParticipantsResult{..} = execWriterT $ do
|
||||||
|
unless (null aurNotFound) $ do
|
||||||
|
let modalTrigger = [whamlet|_{MsgCourseParticipantsRegisterNotFoundInAvs (length aurNotFound)}|]
|
||||||
|
modalContent = $(widgetFile "messages/courseInvitationNotFoundInAvs")
|
||||||
|
tell . pure <=< messageWidget Error $ msgModal modalTrigger (Right modalContent)
|
||||||
|
|
||||||
aurAlreadyRegistered' <- fmap sort (lift . mapM getJust $ Set.toList aurAlreadyRegistered)
|
aurAlreadyRegistered' <- fmap sort (lift . mapM getJust $ Set.toList aurAlreadyRegistered)
|
||||||
aurAlreadyTutorialMember' <- fmap sort (lift . mapM getJust $ Set.toList aurAlreadyTutorialMember)
|
aurAlreadyTutorialMember' <- fmap sort (lift . mapM getJust $ Set.toList aurAlreadyTutorialMember)
|
||||||
|
|
||||||
@ -109,9 +115,10 @@ addParticipantsResultMessages AddParticipantsResult{..} = execWriterT $ do
|
|||||||
|
|
||||||
|
|
||||||
registerUser :: CourseId
|
registerUser :: CourseId
|
||||||
-> UserId
|
-> (Text, Maybe UserId)
|
||||||
-> WriterT AddParticipantsResult (YesodJobDB UniWorX) ()
|
-> WriterT AddParticipantsResult (YesodJobDB UniWorX) ()
|
||||||
registerUser cid uid = exceptT tell tell $ do
|
registerUser _cid ( avsIdent, Nothing ) = tell $ mempty { aurNotFound = Set.singleton avsIdent }
|
||||||
|
registerUser cid (_avsIdent, Just uid) = exceptT tell tell $ do
|
||||||
whenM (lift . lift $ exists [CourseParticipantCourse ==. cid, CourseParticipantUser ==. uid, CourseParticipantState ==. CourseParticipantActive]) $
|
whenM (lift . lift $ exists [CourseParticipantCourse ==. cid, CourseParticipantUser ==. uid, CourseParticipantState ==. CourseParticipantActive]) $
|
||||||
throwError $ mempty { aurAlreadyRegistered = Set.singleton uid }
|
throwError $ mempty { aurAlreadyRegistered = Set.singleton uid }
|
||||||
|
|
||||||
|
|||||||
12
templates/messages/courseInvitationNotFoundInAvs.hamlet
Normal file
12
templates/messages/courseInvitationNotFoundInAvs.hamlet
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
$newline never
|
||||||
|
|
||||||
|
$# SPDX-FileCopyrightText: 2022 Sarah Vaupel <sarah.vaupel@ifi.lmu.de>
|
||||||
|
$#
|
||||||
|
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
_{MsgCourseParticipantsRegisterNotFoundInAvs (length aurNotFound)}
|
||||||
|
<ul>
|
||||||
|
$forall userNotFound <- aurNotFound
|
||||||
|
<li>
|
||||||
|
#{userNotFound}
|
||||||
Reference in New Issue
Block a user