diff --git a/src/Handler/Course.hs b/src/Handler/Course.hs index 2dbc46887..cca75abd3 100644 --- a/src/Handler/Course.hs +++ b/src/Handler/Course.hs @@ -196,11 +196,10 @@ getCourseListR = do , colTerm , colCShort , maybe mempty (const colRegistered) muid - ] whereClause = const $ E.val True validator = def - & defaultSorting [SortAscBy "course", SortDescBy "term"] + & defaultSorting [SortDescBy "term",SortAscBy "course"] coursesTable <- runDB $ makeCourseTable whereClause colonnade validator defaultLayout $ do setTitleI MsgCourseListTitle diff --git a/src/Handler/Term.hs b/src/Handler/Term.hs index 590892339..47791c026 100644 --- a/src/Handler/Term.hs +++ b/src/Handler/Term.hs @@ -68,7 +68,7 @@ getTermShowR = do provideRep $ toJSON . map fst <$> runDB (E.select $ E.from termData) provideRep $ do let colonnadeTerms = widgetColonnade $ mconcat - [ sortable Nothing "Kürzel" $ \(Entity tid _, _) -> anchorCell + [ sortable (Just "termid") "Kürzel" $ \(Entity tid _, _) -> anchorCell (TermCourseListR tid) [whamlet|#{toPathPiece tid}|] , sortable (Just "lecture-start") (i18nCell MsgLectureStart) $ \(Entity _ Term{..},_) -> @@ -104,7 +104,8 @@ getTermShowR = do -- #{termToText termName} -- |] -- ] - table <- runDB $ dbTableWidget' def DBTable + let validator = def + table <- runDB $ dbTableWidget' validator DBTable { dbtSQLQuery = termData , dbtRowKey = (E.^. TermId) , dbtColonnade = colonnadeTerms @@ -122,6 +123,9 @@ getTermShowR = do , ( "lecture-end" , SortColumn $ \term -> term E.^. TermLectureEnd ) + , ( "termid" + , SortColumn $ \term -> term E.^. TermId + ) ] , dbtFilter = Map.fromList [ ( "active" diff --git a/src/Handler/Utils/Table/Cells.hs b/src/Handler/Utils/Table/Cells.hs index 3a9cf4ce9..a8be16abf 100644 --- a/src/Handler/Utils/Table/Cells.hs +++ b/src/Handler/Utils/Table/Cells.hs @@ -31,6 +31,10 @@ indicatorCell = writerCell . tell $ Any True writerCell :: IsDBTable m w => WriterT w m () -> DBCell m w writerCell act = mempty & cellContents %~ (<* act) +maybeCell :: (IsDBTable m a) => Maybe a -> (a -> DBCell m a) -> DBCell m a +maybeCell =flip foldMap + + --------------------- -- Icon cells