feat(course-users): allow for exam registration on CUsersR
This commit is contained in:
parent
c23becceb1
commit
b8acc9b5da
@ -116,6 +116,7 @@ CourseStudyFeatureTip: Dient ausschließlich der Information der Kursverwalter
|
|||||||
CourseStudyFeatureUpdated: Assoziiertes Studienfach geändert
|
CourseStudyFeatureUpdated: Assoziiertes Studienfach geändert
|
||||||
CourseStudyFeatureNone: Kein assoziiertes Studienfach
|
CourseStudyFeatureNone: Kein assoziiertes Studienfach
|
||||||
CourseTutorial: Tutorium
|
CourseTutorial: Tutorium
|
||||||
|
CourseExam: Prüfung
|
||||||
CourseSecretWrong: Falsches Passwort
|
CourseSecretWrong: Falsches Passwort
|
||||||
CourseSecret: Zugangspasswort
|
CourseSecret: Zugangspasswort
|
||||||
CourseEditOk tid@TermId ssh@SchoolId csh@CourseShorthand: Kurs #{tid}-#{ssh}-#{csh} wurde erfolgreich geändert.
|
CourseEditOk tid@TermId ssh@SchoolId csh@CourseShorthand: Kurs #{tid}-#{ssh}-#{csh} wurde erfolgreich geändert.
|
||||||
@ -167,7 +168,9 @@ CourseUserRegister: Zum Kurs anmelden
|
|||||||
CourseUserDeregister: Vom Kurs abmelden
|
CourseUserDeregister: Vom Kurs abmelden
|
||||||
CourseUsersDeregistered count@Int64: #{show count} Teilnehmer vom Kurs abgemeldet
|
CourseUsersDeregistered count@Int64: #{show count} Teilnehmer vom Kurs abgemeldet
|
||||||
CourseUserRegisterTutorial: Zu einem Tutorium anmelden
|
CourseUserRegisterTutorial: Zu einem Tutorium anmelden
|
||||||
|
CourseUserRegisterExam: Zu einer Prüfung anmelden
|
||||||
CourseUsersTutorialRegistered count@Int64: #{show count} Teilnehmer zum Tutorium angemeldet
|
CourseUsersTutorialRegistered count@Int64: #{show count} Teilnehmer zum Tutorium angemeldet
|
||||||
|
CourseUsersExamRegistered count@Int64: #{show count} Teilnehmer zur Prüfung angemeldet
|
||||||
CourseUserSendMail: Mitteilung verschicken
|
CourseUserSendMail: Mitteilung verschicken
|
||||||
TutorialUserDeregister: Vom Tutorium Abmelden
|
TutorialUserDeregister: Vom Tutorium Abmelden
|
||||||
TutorialUserSendMail: Mitteilung verschicken
|
TutorialUserSendMail: Mitteilung verschicken
|
||||||
|
|||||||
@ -116,6 +116,7 @@ CourseStudyFeatureTip: For information purposes only (visible to course administ
|
|||||||
CourseStudyFeatureUpdated: Successfully updated associated subject
|
CourseStudyFeatureUpdated: Successfully updated associated subject
|
||||||
CourseStudyFeatureNone: No associated subject
|
CourseStudyFeatureNone: No associated subject
|
||||||
CourseTutorial: Tutorial
|
CourseTutorial: Tutorial
|
||||||
|
CourseExam: Exam
|
||||||
CourseSecretWrong: Wrong password
|
CourseSecretWrong: Wrong password
|
||||||
CourseSecret: Access password
|
CourseSecret: Access password
|
||||||
CourseEditOk tid ssh csh: Successfully edited course #{tid}-#{ssh}-#{csh}
|
CourseEditOk tid ssh csh: Successfully edited course #{tid}-#{ssh}-#{csh}
|
||||||
@ -168,6 +169,8 @@ CourseUserDeregister: Deregister from course
|
|||||||
CourseUsersDeregistered count: Successfully deregistered #{show count} users from course
|
CourseUsersDeregistered count: Successfully deregistered #{show count} users from course
|
||||||
CourseUserRegisterTutorial: Register for a tutorial
|
CourseUserRegisterTutorial: Register for a tutorial
|
||||||
CourseUsersTutorialRegistered count: Successfully registered #{show count} users for tutorial
|
CourseUsersTutorialRegistered count: Successfully registered #{show count} users for tutorial
|
||||||
|
CourseUserRegisterExam: Register for an exam
|
||||||
|
CourseUsersExamRegistered count: Successfully registered #{show count} users for exam
|
||||||
CourseUserSendMail: Send mail
|
CourseUserSendMail: Send mail
|
||||||
TutorialUserDeregister: Deregister from tutorial
|
TutorialUserDeregister: Deregister from tutorial
|
||||||
TutorialUserSendMail: Send mail
|
TutorialUserSendMail: Send mail
|
||||||
|
|||||||
@ -255,6 +255,7 @@ userTableCsvHeader showSex UserCsvExportData{..} tuts = Csv.header $
|
|||||||
data CourseUserAction = CourseUserSendMail
|
data CourseUserAction = CourseUserSendMail
|
||||||
| CourseUserDeregister
|
| CourseUserDeregister
|
||||||
| CourseUserRegisterTutorial
|
| CourseUserRegisterTutorial
|
||||||
|
| CourseUserRegisterExam
|
||||||
deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic, Typeable)
|
deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic, Typeable)
|
||||||
|
|
||||||
instance Universe CourseUserAction
|
instance Universe CourseUserAction
|
||||||
@ -269,6 +270,9 @@ data CourseUserActionData = CourseUserSendMailData
|
|||||||
| CourseUserRegisterTutorialData
|
| CourseUserRegisterTutorialData
|
||||||
{ registerTutorial :: TutorialId
|
{ registerTutorial :: TutorialId
|
||||||
}
|
}
|
||||||
|
| CourseUserRegisterExamData
|
||||||
|
{ registerExam :: ExamId
|
||||||
|
}
|
||||||
deriving (Eq, Ord, Read, Show, Generic, Typeable)
|
deriving (Eq, Ord, Read, Show, Generic, Typeable)
|
||||||
|
|
||||||
|
|
||||||
@ -489,6 +493,10 @@ postCUsersR tid ssh csh = do
|
|||||||
apopt (selectField' Nothing . fmap (fmap entityKey) $ optionsPersistCryptoId [TutorialCourse ==. cid] [Asc TutorialName] tutorialName)
|
apopt (selectField' Nothing . fmap (fmap entityKey) $ optionsPersistCryptoId [TutorialCourse ==. cid] [Asc TutorialName] tutorialName)
|
||||||
(fslI MsgCourseTutorial)
|
(fslI MsgCourseTutorial)
|
||||||
Nothing
|
Nothing
|
||||||
|
, singletonMap CourseUserRegisterExam $ CourseUserRegisterExamData <$>
|
||||||
|
apopt (selectField' Nothing . fmap (fmap entityKey) $ optionsPersistCryptoId [ExamCourse ==. cid] [Asc ExamName] examName)
|
||||||
|
(fslI MsgCourseExam)
|
||||||
|
Nothing
|
||||||
, if
|
, if
|
||||||
| mayRegister
|
| mayRegister
|
||||||
-> singletonMap CourseUserDeregister $ courseUserDeregisterForm cid
|
-> singletonMap CourseUserDeregister $ courseUserDeregisterForm cid
|
||||||
@ -520,6 +528,20 @@ postCUsersR tid ssh csh = do
|
|||||||
void . insertUnique . TutorialParticipant registerTutorial
|
void . insertUnique . TutorialParticipant registerTutorial
|
||||||
addMessageI Success . MsgCourseUsersTutorialRegistered . fromIntegral $ Set.size selectedUsers
|
addMessageI Success . MsgCourseUsersTutorialRegistered . fromIntegral $ Set.size selectedUsers
|
||||||
redirect $ CourseR tid ssh csh CUsersR
|
redirect $ CourseR tid ssh csh CUsersR
|
||||||
|
(CourseUserRegisterExamData{..}, selectedUsers) -> do
|
||||||
|
Sum nrReg <- fmap mconcat . runDB . forM (Set.toList selectedUsers) $ \uid -> do
|
||||||
|
now <- liftIO getCurrentTime
|
||||||
|
-- TODO allow occurence
|
||||||
|
insert_ ExamRegistration
|
||||||
|
{ examRegistrationExam = registerExam
|
||||||
|
, examRegistrationUser = uid
|
||||||
|
, examRegistrationOccurrence = Nothing
|
||||||
|
, examRegistrationTime = now
|
||||||
|
}
|
||||||
|
audit $ TransactionExamRegister registerExam uid
|
||||||
|
return 1
|
||||||
|
addMessageI Success $ MsgCourseUsersExamRegistered nrReg
|
||||||
|
redirect $ CourseR tid ssh csh CUsersR
|
||||||
let headingLong = [whamlet|_{MsgMenuCourseMembers} #{courseName course} #{tid}|]
|
let headingLong = [whamlet|_{MsgMenuCourseMembers} #{courseName course} #{tid}|]
|
||||||
headingShort = prependCourseTitle tid ssh csh MsgCourseMembers
|
headingShort = prependCourseTitle tid ssh csh MsgCourseMembers
|
||||||
siteLayout headingLong $ do
|
siteLayout headingLong $ do
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user