diff --git a/src/Handler/Term.hs b/src/Handler/Term.hs index 38eaea847..f33fde929 100644 --- a/src/Handler/Term.hs +++ b/src/Handler/Term.hs @@ -28,18 +28,19 @@ getTermShowR = do -- E.orderBy [E.desc $ term E.^. TermStart ] -- return term -- - termData <- runDB $ E.select . E.from $ \term -> do - E.orderBy [E.desc $ term E.^. TermStart ] - let courseCount :: E.SqlExpr (E.Value Int) - courseCount = E.sub_select . E.from $ \course -> do - E.where_ $ term E.^. TermId E.==. course E.^. CourseTermId - return E.countRows - return (term, courseCount) + let + termData = E.from $ \term -> do + E.orderBy [E.desc $ term E.^. TermStart ] + let courseCount :: E.SqlExpr (E.Value Int) + courseCount = E.sub_select . E.from $ \course -> do + E.where_ $ term E.^. TermId E.==. course E.^. CourseTermId + return E.countRows + return (term, courseCount) selectRep $ do - provideRep $ return $ toJSON $ map fst termData + provideRep $ toJSON . map fst <$> runDB (E.select termData) provideRep $ do let colonnadeTerms = mconcat - [ headed "Kürzel" $ \(Entity tid Term{..},_) -> do + [ headed "Kürzel" $ \(Entity tid Term{..},_) -> cell $ do -- Scrap this if to slow, create term edit page instead adminLink <- handlerToWidget $ isAuthorized (TermEditExistR tid) False [whamlet| @@ -50,26 +51,32 @@ getTermShowR = do #{termToText termName} |] , headed "Beginn Vorlesungen" $ \(Entity _ Term{..},_) -> - fromString $ formatTimeGerWD termLectureStart + stringCell $ formatTimeGerWD termLectureStart , headed "Ende Vorlesungen" $ \(Entity _ Term{..},_) -> - fromString $ formatTimeGerWD termLectureEnd + stringCell $ formatTimeGerWD termLectureEnd , headed "Aktiv" $ \(Entity _ Term{..},_) -> - bool "" tickmark termActive + textCell $ bool "" tickmark termActive , headed "Kursliste" $ \(Entity tid Term{..}, E.Value numCourses) -> - [whamlet| + cell [whamlet| #{show numCourses} Kurse |] , headed "Semesteranfang" $ \(Entity _ Term{..},_) -> - fromString $ formatTimeGerWD termStart + stringCell $ formatTimeGerWD termStart , headed "Semesterende" $ \(Entity _ Term{..},_) -> - fromString $ formatTimeGerWD termEnd + stringCell $ formatTimeGerWD termEnd , headed "Feiertage im Semester" $ \(Entity _ Term{..},_) -> - fromString $ (intercalate ", ") $ map formatTimeGerWD termHolidays + stringCell $ (intercalate ", ") $ map formatTimeGerWD termHolidays ] + table <- dbTable def $ DBTable + { dbtSQLQuery = termData + , dbtColonnade = colonnadeTerms + , dbtSorting = mempty + , dbtAttrs = tableDefault + } defaultLayout $ do - setTitle "Freigeschaltete Semester" - encodeWidgetTable tableDefault colonnadeTerms termData + setTitle "Freigeschaltete Semester" + table getTermEditR :: Handler Html diff --git a/src/Handler/Utils.hs b/src/Handler/Utils.hs index e8143d998..30b3fb73e 100644 --- a/src/Handler/Utils.hs +++ b/src/Handler/Utils.hs @@ -13,6 +13,7 @@ import Handler.Utils.DateTime as Handler.Utils import Handler.Utils.Term as Handler.Utils import Handler.Utils.Form as Handler.Utils import Handler.Utils.Table as Handler.Utils +import Handler.Utils.Table.Pagination as Handler.Utils import Handler.Utils.Zip as Handler.Utils import Handler.Utils.Rating as Handler.Utils