Fixes #132
This commit is contained in:
parent
fdeec42d36
commit
d05ccc9c6d
@ -31,6 +31,7 @@ LectureStart: Beginn Vorlesungen
|
|||||||
|
|
||||||
Course: Kurs
|
Course: Kurs
|
||||||
CourseShort: Kürzel
|
CourseShort: Kürzel
|
||||||
|
CourseCapacity: Kapazität
|
||||||
CourseNoCapacity: In diesem Kurs sind keine Plätze mehr frei.
|
CourseNoCapacity: In diesem Kurs sind keine Plätze mehr frei.
|
||||||
CourseRegisterOk: Sie wurden angemeldet
|
CourseRegisterOk: Sie wurden angemeldet
|
||||||
CourseDeregisterOk: Sie wurden abgemeldet
|
CourseDeregisterOk: Sie wurden abgemeldet
|
||||||
@ -69,6 +70,8 @@ SheetSolutionFrom: Lösung ab
|
|||||||
SheetMarking: Hinweise für Korrektoren
|
SheetMarking: Hinweise für Korrektoren
|
||||||
SheetType: Bewertung
|
SheetType: Bewertung
|
||||||
|
|
||||||
|
SheetInvisible: Dieses Übungsblatt ist für Teilnehmer momentan unsichtbar!
|
||||||
|
SheetInvisibleUntil mFrom@Text: Dieses Übungsblatt ist für Teilnehmer momentan unsichtbar bis #{mFrom}!
|
||||||
SheetVisibleFrom: Sichtbar ab
|
SheetVisibleFrom: Sichtbar ab
|
||||||
SheetActiveFrom: Aktiv ab
|
SheetActiveFrom: Aktiv ab
|
||||||
SheetActiveTo: Abgabefrist
|
SheetActiveTo: Abgabefrist
|
||||||
|
|||||||
2
routes
2
routes
@ -61,7 +61,7 @@
|
|||||||
/ SShowR GET !timeANDregistered !timeANDmaterials !corrector
|
/ SShowR GET !timeANDregistered !timeANDmaterials !corrector
|
||||||
/edit SEditR GET POST
|
/edit SEditR GET POST
|
||||||
/delete SDelR GET POST
|
/delete SDelR GET POST
|
||||||
/subs SSubsR GET POST
|
/subs SSubsR GET POST -- for lecturer only
|
||||||
/subs/new SubmissionNewR GET POST !timeANDregistered
|
/subs/new SubmissionNewR GET POST !timeANDregistered
|
||||||
/subs/own SubmissionOwnR GET !free -- just redirect
|
/subs/own SubmissionOwnR GET !free -- just redirect
|
||||||
/sub/#CryptoFileNameSubmission SubmissionR !correctorANDisRead:
|
/sub/#CryptoFileNameSubmission SubmissionR !correctorANDisRead:
|
||||||
|
|||||||
@ -395,7 +395,8 @@ newCourseForm template = identForm FIDcourse $ \html -> do
|
|||||||
(cfShort <$> template)
|
(cfShort <$> template)
|
||||||
<*> areq termActiveField (fsb "Semester") (cfTerm <$> template)
|
<*> areq termActiveField (fsb "Semester") (cfTerm <$> template)
|
||||||
<*> areq schoolField (fsb "Institut") (cfSchool <$> template)
|
<*> areq schoolField (fsb "Institut") (cfSchool <$> template)
|
||||||
<*> aopt (natField "Kapazität") (fsb "Kapazität") (cfCapacity <$> template)
|
<*> aopt (natField "Kapazität") (fslI MsgCourseCapacity
|
||||||
|
& setTooltip "Für unbeschränkte Kapazität KEINEN Wert angeben.") (cfCapacity <$> template)
|
||||||
<*> aopt textField (fslpI MsgCourseSecret "beliebige Zeichenkette"
|
<*> aopt textField (fslpI MsgCourseSecret "beliebige Zeichenkette"
|
||||||
& setTooltip "Optional: Anmeldung zum Kurs benötigt ein Passwort")
|
& setTooltip "Optional: Anmeldung zum Kurs benötigt ein Passwort")
|
||||||
(cfSecret <$> template)
|
(cfSecret <$> template)
|
||||||
|
|||||||
@ -294,11 +294,15 @@ getSShowR tid csh shn = do
|
|||||||
hasHints <- (/= 0) <$> count [ SheetFileSheet ==. sid, SheetFileType ==. SheetHint ]
|
hasHints <- (/= 0) <$> count [ SheetFileSheet ==. sid, SheetFileType ==. SheetHint ]
|
||||||
hasSolution <- (/= 0) <$> count [ SheetFileSheet ==. sid, SheetFileType ==. SheetSolution ]
|
hasSolution <- (/= 0) <$> count [ SheetFileSheet ==. sid, SheetFileType ==. SheetSolution ]
|
||||||
return (hasHints, hasSolution)
|
return (hasHints, hasSolution)
|
||||||
|
cTime <- Just <$> liftIO getCurrentTime
|
||||||
|
visibleFrom <- traverse (formatTime SelFormatDateTime) $ sheetVisibleFrom sheet
|
||||||
|
when (NTop (sheetVisibleFrom sheet) >= NTop cTime) $ addMessageI "warning" $
|
||||||
|
maybe MsgSheetInvisible MsgSheetInvisibleUntil visibleFrom
|
||||||
defaultLayout $ do
|
defaultLayout $ do
|
||||||
setTitleI $ MsgSheetTitle tid csh shn
|
setTitleI $ MsgSheetTitle tid csh shn
|
||||||
sheetFrom <- formatTime SelFormatDateTime $ sheetActiveFrom sheet
|
sheetFrom <- formatTime SelFormatDateTime $ sheetActiveFrom sheet
|
||||||
sheetTo <- formatTime SelFormatDateTime $ sheetActiveTo sheet
|
sheetTo <- formatTime SelFormatDateTime $ sheetActiveTo sheet
|
||||||
hintsFrom <- traverse (formatTime SelFormatDateTime) $ sheetHintFrom sheet
|
hintsFrom <- traverse (formatTime SelFormatDateTime) $ sheetHintFrom sheet
|
||||||
solutionFrom <- traverse (formatTime SelFormatDateTime) $ sheetSolutionFrom sheet
|
solutionFrom <- traverse (formatTime SelFormatDateTime) $ sheetSolutionFrom sheet
|
||||||
$(widgetFile "sheetShow")
|
$(widgetFile "sheetShow")
|
||||||
|
|
||||||
|
|||||||
@ -215,6 +215,10 @@ toMaybe :: Bool -> a -> Maybe a
|
|||||||
toMaybe True = Just
|
toMaybe True = Just
|
||||||
toMaybe False = const Nothing
|
toMaybe False = const Nothing
|
||||||
|
|
||||||
|
maybeEmpty :: Monoid m => Maybe a -> (a -> m) -> m
|
||||||
|
maybeEmpty (Just x) f = f x
|
||||||
|
maybeEmpty Nothing _ = mempty
|
||||||
|
|
||||||
whenIsJust :: Monad m => Maybe a -> (a -> m ()) -> m ()
|
whenIsJust :: Monad m => Maybe a -> (a -> m ()) -> m ()
|
||||||
whenIsJust (Just x) f = f x
|
whenIsJust (Just x) f = f x
|
||||||
whenIsJust Nothing _ = return ()
|
whenIsJust Nothing _ = return ()
|
||||||
|
|||||||
@ -15,9 +15,9 @@
|
|||||||
<dd .deflist__dd>
|
<dd .deflist__dd>
|
||||||
<div>
|
<div>
|
||||||
<a href=#{link} target="_blank" rel="noopener" title="Website des Kurses">#{link}
|
<a href=#{link} target="_blank" rel="noopener" title="Website des Kurses">#{link}
|
||||||
$if NTop (Just 0) < NTop (courseCapacity course)
|
$# $if NTop (Just 0) < NTop (courseCapacity course)
|
||||||
<dt .deflist__dt>Teilnehmer
|
<dt .deflist__dt>Teilnehmer
|
||||||
<dd .deflist__dd>
|
<dd .deflist__dd>
|
||||||
<div>
|
<div>
|
||||||
#{participants}
|
#{participants}
|
||||||
$maybe capacity <- courseCapacity course
|
$maybe capacity <- courseCapacity course
|
||||||
@ -36,6 +36,15 @@
|
|||||||
<form method=post action=@{CourseR tid csh CRegisterR} enctype=#{regEnctype}>
|
<form method=post action=@{CourseR tid csh CRegisterR} enctype=#{regEnctype}>
|
||||||
$# regWidget is defined through templates/widgets/registerForm
|
$# regWidget is defined through templates/widgets/registerForm
|
||||||
^{regWidget}
|
^{regWidget}
|
||||||
|
<dt .deflist__dt>
|
||||||
|
Material
|
||||||
|
<dd .deflist__dd>
|
||||||
|
<div>
|
||||||
|
$if courseMaterialFree course
|
||||||
|
Das Kursmaterial ist ohne Anmeldung frei zugänglich.
|
||||||
|
$else
|
||||||
|
Eine Anmeldung zum Kurs ist Voraussetzung zum Zugang zu Kursmaterial
|
||||||
|
(z.B. Übungsblätter).
|
||||||
|
|
||||||
$# <div .container>
|
$# <div .container>
|
||||||
$# <div .tab-group>
|
$# <div .tab-group>
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
#{marking}
|
#{marking}
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Freigeschaltet ab
|
Download und Abgabe freigeschaltet ab
|
||||||
#{sheetFrom}
|
#{sheetFrom}
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
Reference in New Issue
Block a user