Course Deregister and Material Visible now added to CourseEdit
This commit is contained in:
parent
e905c7b5d6
commit
828ad4f86f
@ -6,6 +6,7 @@ BtnDeregister: Abmelden
|
|||||||
|
|
||||||
RegisterFrom: Anmeldungen von
|
RegisterFrom: Anmeldungen von
|
||||||
RegisterTo: Anmeldungen bis
|
RegisterTo: Anmeldungen bis
|
||||||
|
DeRegUntil: Abmeldungen bis
|
||||||
|
|
||||||
SummerTerm year@Integer: Sommersemester #{display year}
|
SummerTerm year@Integer: Sommersemester #{display year}
|
||||||
WinterTerm year@Integer: Wintersemester #{display year}/#{display $ succ year}
|
WinterTerm year@Integer: Wintersemester #{display year}/#{display $ succ year}
|
||||||
@ -91,6 +92,7 @@ UnauthorizedSubmissionCorrector: Sie sind nicht der Korrektor für diese Abgabe.
|
|||||||
OnlyUploadOneFile: Bitte nur eine Datei hochladen.
|
OnlyUploadOneFile: Bitte nur eine Datei hochladen.
|
||||||
DeprecatedRoute: Diese Ansicht ist obsolet und könnte in Zukunft entfallen.
|
DeprecatedRoute: Diese Ansicht ist obsolet und könnte in Zukunft entfallen.
|
||||||
UnfreeMaterials: Die Materialien für diese Veranstaltung sind nicht allgemein freigegeben.
|
UnfreeMaterials: Die Materialien für diese Veranstaltung sind nicht allgemein freigegeben.
|
||||||
|
MaterialFree: Kursmaterialien ohne Anmeldung zugänglich
|
||||||
UnauthorizedWrite: Sie haben hierfür keine Schreibberechtigung
|
UnauthorizedWrite: Sie haben hierfür keine Schreibberechtigung
|
||||||
|
|
||||||
EMail: E-Mail
|
EMail: E-Mail
|
||||||
@ -173,4 +175,4 @@ FileCorrected: Korrigiert
|
|||||||
FileCorrectedDeleted: Korrigiert (gelöscht)
|
FileCorrectedDeleted: Korrigiert (gelöscht)
|
||||||
RatingUpdated: Korrektur gespeichert
|
RatingUpdated: Korrektur gespeichert
|
||||||
RatingDeleted: Korrektur zurückgesetzt
|
RatingDeleted: Korrektur zurückgesetzt
|
||||||
RatingFilesUpdated: Korrigierte Dateien überschrieben
|
RatingFilesUpdated: Korrigierte Dateien überschrieben
|
||||||
|
|||||||
@ -184,10 +184,10 @@ courseEditHandler isGet course = do
|
|||||||
, courseSchool = cfSchool res
|
, courseSchool = cfSchool res
|
||||||
, courseCapacity = cfCapacity res
|
, courseCapacity = cfCapacity res
|
||||||
, courseRegisterSecret = cfSecret res
|
, courseRegisterSecret = cfSecret res
|
||||||
|
, courseMaterialFree = cfMatFree res
|
||||||
, courseRegisterFrom = cfRegFrom res
|
, courseRegisterFrom = cfRegFrom res
|
||||||
, courseRegisterTo = cfRegTo res
|
, courseRegisterTo = cfRegTo res
|
||||||
, courseDeregisterUntil = Nothing -- TODO
|
, courseDeregisterUntil = cfDeRegUntil res
|
||||||
, courseMaterialFree = True -- TODO
|
|
||||||
}
|
}
|
||||||
case insertOkay of
|
case insertOkay of
|
||||||
(Just cid) -> do
|
(Just cid) -> do
|
||||||
@ -215,33 +215,19 @@ courseEditHandler isGet course = do
|
|||||||
-- if ((entityKey <$> existing) /= Just cid)
|
-- if ((entityKey <$> existing) /= Just cid)
|
||||||
-- then addMessageI "danger" $ MsgCourseEditDupShort tid csh
|
-- then addMessageI "danger" $ MsgCourseEditDupShort tid csh
|
||||||
-- else do
|
-- else do
|
||||||
-- addMessage "debug" $ fromMaybe [shamlet|No description given.|] $ cfDesc res
|
|
||||||
-- update cid
|
|
||||||
-- [ CourseName =. cfName res
|
|
||||||
-- , CourseDescription =. cfDesc res
|
|
||||||
-- , CourseLinkExternal =. cfLink res
|
|
||||||
-- , CourseShorthand =. cfShort res -- TODO: change here should generate a warning, or only allowed for Admins?!
|
|
||||||
-- , CourseTerm =. tid -- TODO: change here should generate a warning, or only allowed for Admins?!
|
|
||||||
-- , CourseSchool =. cfSchool res
|
|
||||||
-- , CourseCapacity =. cfCapacity res
|
|
||||||
-- , CourseRegisterFrom =. cfRegFrom res
|
|
||||||
-- , CourseRegisterTo =. cfRegTo res
|
|
||||||
-- , CourseChangedBy =. aid
|
|
||||||
-- , CourseChanged =. now
|
|
||||||
-- ]
|
|
||||||
_updOkay <- replace cid ( -- TODO replaceUnique requires Eq?!
|
_updOkay <- replace cid ( -- TODO replaceUnique requires Eq?!
|
||||||
Course { courseName = cfName res
|
Course { courseName = cfName res
|
||||||
, courseDescription = cfDesc res
|
, courseDescription = cfDesc res
|
||||||
, courseLinkExternal = cfLink res
|
, courseLinkExternal = cfLink res
|
||||||
, courseShorthand = cfShort res
|
, courseShorthand = cfShort res
|
||||||
, courseTerm = cfTerm res
|
, courseTerm = cfTerm res
|
||||||
, courseSchool = cfSchool res
|
, courseSchool = cfSchool res
|
||||||
, courseCapacity = cfCapacity res
|
, courseCapacity = cfCapacity res
|
||||||
, courseRegisterSecret = cfSecret res
|
, courseRegisterSecret = cfSecret res
|
||||||
, courseRegisterFrom = cfRegFrom res
|
, courseMaterialFree = cfMatFree res
|
||||||
, courseRegisterTo = cfRegTo res
|
, courseRegisterFrom = cfRegFrom res
|
||||||
, courseDeregisterUntil = Nothing -- TODO
|
, courseRegisterTo = cfRegTo res
|
||||||
, courseMaterialFree = True -- TODO
|
, courseDeregisterUntil = cfDeRegUntil res
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
insert_ $ CourseEdit aid now cid
|
insert_ $ CourseEdit aid now cid
|
||||||
@ -261,17 +247,19 @@ courseEditHandler isGet course = do
|
|||||||
|
|
||||||
|
|
||||||
data CourseForm = CourseForm
|
data CourseForm = CourseForm
|
||||||
{ cfCourseId :: Maybe CourseId -- Maybe CryptoUUIDCourse
|
{ cfCourseId :: Maybe CourseId -- Maybe CryptoUUIDCourse
|
||||||
, cfName :: Text
|
, cfName :: Text
|
||||||
, cfDesc :: Maybe Html
|
, cfDesc :: Maybe Html
|
||||||
, cfLink :: Maybe Text
|
, cfLink :: Maybe Text
|
||||||
, cfShort :: Text
|
, cfShort :: Text
|
||||||
, cfTerm :: TermId
|
, cfTerm :: TermId
|
||||||
, cfSchool :: SchoolId
|
, cfSchool :: SchoolId
|
||||||
, cfCapacity :: Maybe Int
|
, cfCapacity :: Maybe Int
|
||||||
, cfSecret :: Maybe Text
|
, cfSecret :: Maybe Text
|
||||||
, cfRegFrom :: Maybe UTCTime
|
, cfMatFree :: Bool
|
||||||
, cfRegTo :: Maybe UTCTime
|
, cfRegFrom :: Maybe UTCTime
|
||||||
|
, cfRegTo :: Maybe UTCTime
|
||||||
|
, cfDeRegUntil :: Maybe UTCTime
|
||||||
}
|
}
|
||||||
|
|
||||||
instance Show CourseForm where
|
instance Show CourseForm where
|
||||||
@ -280,17 +268,19 @@ instance Show CourseForm where
|
|||||||
|
|
||||||
courseToForm :: Entity Course -> CourseForm
|
courseToForm :: Entity Course -> CourseForm
|
||||||
courseToForm cEntity = CourseForm
|
courseToForm cEntity = CourseForm
|
||||||
{ cfCourseId = Just $ entityKey cEntity
|
{ cfCourseId = Just $ entityKey cEntity
|
||||||
, cfName = courseName course
|
, cfName = courseName course
|
||||||
, cfDesc = courseDescription course
|
, cfDesc = courseDescription course
|
||||||
, cfLink = courseLinkExternal course
|
, cfLink = courseLinkExternal course
|
||||||
, cfShort = courseShorthand course
|
, cfShort = courseShorthand course
|
||||||
, cfTerm = courseTerm course
|
, cfTerm = courseTerm course
|
||||||
, cfSchool = courseSchool course
|
, cfSchool = courseSchool course
|
||||||
, cfCapacity = courseCapacity course
|
, cfCapacity = courseCapacity course
|
||||||
, cfSecret = courseRegisterSecret course
|
, cfSecret = courseRegisterSecret course
|
||||||
, cfRegFrom = courseRegisterFrom course
|
, cfMatFree = courseMaterialFree course
|
||||||
, cfRegTo = courseRegisterTo course
|
, cfRegFrom = courseRegisterFrom course
|
||||||
|
, cfRegTo = courseRegisterTo course
|
||||||
|
, cfDeRegUntil = courseDeregisterUntil course
|
||||||
}
|
}
|
||||||
where
|
where
|
||||||
course = entityVal cEntity
|
course = entityVal cEntity
|
||||||
@ -318,12 +308,16 @@ newCourseForm template = identForm FIDcourse $ \html -> do
|
|||||||
<*> 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)
|
||||||
<*> aopt utcTimeField (fslpI MsgRegisterFrom "(ohne Datum keine Anmeldung möglich)"
|
<*> areq checkBoxField (fslI MsgMaterialFree)(cfMatFree <$> template)
|
||||||
|
<*> aopt utcTimeField (fslpI MsgRegisterFrom "Datum, sonst KEINE Anmeldung"
|
||||||
& setTooltip "Ohne Datum ist keine Anmeldung zu diesem Kurs möglich!")
|
& setTooltip "Ohne Datum ist keine Anmeldung zu diesem Kurs möglich!")
|
||||||
(cfRegFrom <$> template)
|
(cfRegFrom <$> template)
|
||||||
<*> aopt utcTimeField (fslpI MsgRegisterTo "(ohne Datum unbegrenzte Anmeldung möglich)"
|
<*> aopt utcTimeField (fslpI MsgRegisterTo "Datum, sonst unbegr. Anmeldung"
|
||||||
& setTooltip "Die Anmeldung darf ohne Begrenzung sein")
|
& setTooltip "Die Anmeldung darf ohne Begrenzung sein")
|
||||||
(cfRegTo <$> template)
|
(cfRegTo <$> template)
|
||||||
|
<*> aopt utcTimeField (fslpI MsgDeRegUntil "Datum, sonst unbegr. Abmeldung"
|
||||||
|
& setTooltip "Die Abmeldung darf ohne Begrenzung sein")
|
||||||
|
(cfDeRegUntil <$> template)
|
||||||
<* submitButton
|
<* submitButton
|
||||||
return $ case result of
|
return $ case result of
|
||||||
FormSuccess courseResult
|
FormSuccess courseResult
|
||||||
@ -353,6 +347,10 @@ validateCourse (CourseForm{..}) =
|
|||||||
( NTop cfRegFrom <= NTop cfRegTo
|
( NTop cfRegFrom <= NTop cfRegTo
|
||||||
, "Ende des Anmeldezeitraums muss nach dem Anfang liegen"
|
, "Ende des Anmeldezeitraums muss nach dem Anfang liegen"
|
||||||
)
|
)
|
||||||
|
,
|
||||||
|
( NTop cfRegFrom <= NTop cfDeRegUntil
|
||||||
|
, "Ende des Abmeldezeitraums muss nach dem Anfang liegen"
|
||||||
|
)
|
||||||
-- No starting date is okay: effective immediately
|
-- No starting date is okay: effective immediately
|
||||||
-- ( cfHasReg <= (isNothing cfRegFrom)
|
-- ( cfHasReg <= (isNothing cfRegFrom)
|
||||||
-- , "Beginn der Anmeldung angeben oder Anmeldungen deaktivieren"
|
-- , "Beginn der Anmeldung angeben oder Anmeldungen deaktivieren"
|
||||||
|
|||||||
Reference in New Issue
Block a user