Cleanup
This commit is contained in:
parent
64c45c515e
commit
b40096db8a
@ -1,3 +1,9 @@
|
||||
* Version 29.04.2019
|
||||
|
||||
Tutorien
|
||||
|
||||
Anzeige von Korrektoren auf den Kursseiten
|
||||
|
||||
* Version 20.04.2019
|
||||
|
||||
Versand von Benachrichtigungen an Kursteilnehmer
|
||||
|
||||
@ -999,7 +999,7 @@ makeCourseUserTable cid restrict colChoices psValidator = do
|
||||
E.on $ tutorial E.^. TutorialId E.==. tutorialParticipant E.^. TutorialParticipantTutorial
|
||||
E.where_ $ tutorial E.^. TutorialCourse E.==. E.val cid
|
||||
E.&&. E.hasInfix (tutorial E.^. TutorialName) criterion
|
||||
E.&&. tutorialParticipant E.^. TutorialParticipantUser E.==. (queryUser row) E.^. UserId
|
||||
E.&&. tutorialParticipant E.^. TutorialParticipantUser E.==. queryUser row E.^. UserId
|
||||
)
|
||||
-- , ("course-registration", error "TODO") -- TODO
|
||||
-- , ("course-user-note", error "TODO") -- TODO
|
||||
@ -1051,7 +1051,7 @@ postCUsersR tid ssh csh = do
|
||||
psValidator = def & defaultSortingByName
|
||||
ent@(Entity cid _) <- getBy404 $ TermSchoolCourseShort tid ssh csh
|
||||
numParticipants <- count [CourseParticipantCourse ==. cid]
|
||||
table <- makeCourseUserTable cid (const $ E.true) colChoices psValidator
|
||||
table <- makeCourseUserTable cid (const E.true) colChoices psValidator
|
||||
return (ent, numParticipants, table)
|
||||
formResult participantRes $ \case
|
||||
(CourseUserSendMail, selectedUsers) -> do
|
||||
@ -1089,8 +1089,8 @@ postTUsersR tid ssh csh tutn = do
|
||||
psValidator = def
|
||||
& defaultSortingByName
|
||||
& restrictSorting (\name _ -> none (== name) ["note"]) -- We need to be careful to restrict allowed sorting/filter to not expose sensitive information
|
||||
isInTut q = E.exists . E.from $ \tutorialParticipant -> do
|
||||
E.where_ $ tutorialParticipant E.^. TutorialParticipantUser E.==. (queryUser q) E.^. UserId
|
||||
isInTut q = E.exists . E.from $ \tutorialParticipant ->
|
||||
E.where_ $ tutorialParticipant E.^. TutorialParticipantUser E.==. queryUser q E.^. UserId
|
||||
E.&&. tutorialParticipant E.^. TutorialParticipantTutorial E.==. E.val tutid
|
||||
cid <- getKeyBy404 $ TermSchoolCourseShort tid ssh csh
|
||||
table <- makeCourseUserTable cid isInTut colChoices psValidator
|
||||
|
||||
@ -18,8 +18,12 @@ import qualified Data.Set as Set
|
||||
|
||||
import qualified Data.CaseInsensitive as CI
|
||||
|
||||
import qualified Data.Text as Text
|
||||
|
||||
import Utils.Lens
|
||||
|
||||
{-# ANN module ("Hlint: ignore Redundant void" :: String) #-}
|
||||
|
||||
|
||||
getCTutorialListR :: TermId -> SchoolId -> CourseShorthand -> Handler Html
|
||||
getCTutorialListR tid ssh csh = do
|
||||
@ -241,7 +245,7 @@ tutorialForm cid template html = do
|
||||
<*> aopt (natFieldI MsgTutorialCapacityNonPositive) (fslpI MsgTutorialCapacity (mr MsgTutorialCapacity) & setTooltip MsgTutorialCapacityTip) (tfCapacity <$> template)
|
||||
<*> areq textField (fslpI MsgTutorialRoom $ mr MsgTutorialRoomPlaceholder) (tfRoom <$> template)
|
||||
<*> occurencesAForm (tfTime <$> template)
|
||||
<*> aopt ciField (fslI MsgTutorialRegGroup & setTooltip MsgTutorialRegGroupTip) ((tfRegGroup <$> template) <|> Just (Just "tutorial"))
|
||||
<*> fmap (assertM (not . Text.null . CI.original) . fmap (CI.map Text.strip)) (aopt ciField (fslI MsgTutorialRegGroup & setTooltip MsgTutorialRegGroupTip) ((tfRegGroup <$> template) <|> Just (Just "tutorial")))
|
||||
<*> aopt utcTimeField (fslpI MsgRegisterFrom (mr MsgDate)
|
||||
& setTooltip MsgCourseRegisterFromTip
|
||||
) (tfRegisterFrom <$> template)
|
||||
|
||||
@ -182,6 +182,54 @@ $newline text
|
||||
in Uni2work Abgaben angelegt,
|
||||
welche wie üblich korrigiert werden können.
|
||||
|
||||
<section>
|
||||
<h2>Tutorien
|
||||
|
||||
<dl .deflist>
|
||||
<dt .deflist__dt> Termine
|
||||
<dd .deflist__dd>
|
||||
Tutorien können beliebig viele reguläre Termine haben, die sich wöchentlich wiederholen.
|
||||
<br />
|
||||
Zusätzlich können beliebig viele <i>Ausnahmen</i> angelegt werden.
|
||||
<br />
|
||||
Hierbei überschreibt eine Ausnahme, dass ein Termin nicht stattfindet, die reguläre Terminplanung (man gibt hierbei einen beliebigen Zeitpunkt innerhalb des regulären Termins an).
|
||||
<br />
|
||||
Eine Ausnahme, dass ein Termin außerplanmäßig stattfindet, überschreibt wiederrum Ausnahmen, die Termine ausfallen lassen.
|
||||
<br />
|
||||
Dieses Verhalten kann genutzt werden um einzelne Termine zeitlich zu verschieben, indem der reguläre Termin ausfällt und stattdessen ein außerplanmäßiger mit versetzter Zeit stattfindet.
|
||||
|
||||
<dt .deflist__dt> Tutoren
|
||||
<dd .deflist__dd>
|
||||
<p>
|
||||
Tutoren werden ad hoc pro Tutoriumsgruppe festgelegt.
|
||||
<br />
|
||||
Eine Tutoriumsgruppe kann beliebig viele Tutoren haben und ein Tutor kann beliebig viele Tutoriengruppen betreuen.
|
||||
|
||||
<p>
|
||||
Tutoren haben Zugriff auf die Namen und Studiendaten ihrer Tutoriums-Teilnehmer und können auch Mitteilungen an sie verschicken (analog zu Kursmitteilungen).
|
||||
|
||||
<dt .deflist__dt> Anmeldung
|
||||
<dd .deflist__dd>
|
||||
<p>
|
||||
Studenten können sich auf der Kursseite selbst zu Tutorien anmelden.
|
||||
<br />
|
||||
Die Anmeldung erfolgt momentan noch auf <i>first come, first served</i>-Basis
|
||||
<br />
|
||||
Eine vorherige Anmeldung zum Kurs ist Voraussetzung
|
||||
<p>
|
||||
Die Anmeldung kann pro Tutoriumsgruppe zeitlich beschränkt werden.
|
||||
<p>
|
||||
Tutoriumsgruppen können mit einer <i>Registrierungs-Gruppe</i> versehen werden.
|
||||
<br />
|
||||
Es handelt sich hierbei um einen beliebig wählbaren Text der ansonsten keine Bedeutung hat.
|
||||
<br />
|
||||
Studenten wird die Anmeldung nur in einem Tutorium pro Registrierungs-Gruppe erlaubt.
|
||||
|
||||
Leere Registrierungs-Gruppen zählen hierbei als <i>verschieden</i>.
|
||||
<p>
|
||||
Um die Anmeldung in beliebig viele Tutoriumsgruppen zuzulassen können alle Registrierungs-Gruppen leer gelassen werden.
|
||||
|
||||
|
||||
<section>
|
||||
<h2>Klausuren
|
||||
Das Verwalten von Klausuren und Notenmeldungen
|
||||
|
||||
Loading…
Reference in New Issue
Block a user