chore(course-teaser): focussing on course information

Using lenses to focus on course, lecturer list and register status. TODO: moved .julius file (no courseId available). TODO: overwrite default template mode for course list and define lenses there
This commit is contained in:
Sarah Vaupel 2019-07-16 11:46:14 +02:00
parent 2fb49ef4e3
commit 1be333a09a
3 changed files with 7 additions and 7 deletions

View File

@ -390,7 +390,7 @@ data DBStyle r = DBStyle
, dbsCellTemplate :: DBSTemplateMode r
}
data DBSTemplateMode r = DBSTDefault | DBSTCourse (Lens' r (Entity Course))
data DBSTemplateMode r = DBSTDefault | DBSTCourse (Lens' r (Entity Course)) (Traversal' r (Entity User)) (Lens' r Bool)
instance Default (DBStyle r) where
def = DBStyle
@ -868,11 +868,11 @@ dbTable PSValidator{..} dbtable@DBTable{ dbtIdent = dbtIdent'@(toPathPiece -> db
wHeaders <- maybe (return Nothing) (fmap Just . genHeaders) pSortable
wRows <- forM rows $ \row' -> forM (oneColonnadeEncode <$> getColonnade dbtColonnade) $ \(($ row') -> cell') -> case dbsCellTemplate of
DBSTCourse c -> let
DBSTCourse c l r -> let
Course{..} = row' ^. c . _entityVal
courseId = "cid" :: Text -- TODO:
courseLecturer = "courseLecturer" :: Text -- TODO: use tuple of lenses in DBStyle
isRegistered = False -- TODO:
lecturers = toListOf l row'
courseLecturers = intercalate ", " $ userSurname . entityVal <$> lecturers
isRegistered = row' ^. r
courseSchoolName = unSchoolKey courseSchool
in return $(widgetFile "table/cell/course-teaser")
DBSTDefault -> do

View File

@ -1,11 +1,11 @@
<div .course-teaser :isRegistered:.course-teaser--registered #course-#{courseId} tabindex='1'>
<div .course-teaser :isRegistered:.course-teaser--registered tabindex='1'>
<div .course-teaser__chevron>
<div .course-teaser__shorthand>_{courseShorthand}
<div .course-teaser__title>
<a href=@{AdminTestR}>_{courseName}
<div .course-teaser__registration>_{MsgRegistered}
<div .course-teaser__lecturer-label>_{MsgLecturerFor}
<div .course-teaser__lecturer-value>_{courseLecturer}
<div .course-teaser__lecturer-value>_{courseLecturers}
<div .course-teaser__duedate-label>_{MsgRegisterTo}
<div .course-teaser__duedate-value>^{utcTimeToWidget courseRegisterTo}
<div .course-teaser__school-label>_{MsgCourseSchool}