diff --git a/src/Handler/Term.hs b/src/Handler/Term.hs index f09bc9e9a..59c103e28 100644 --- a/src/Handler/Term.hs +++ b/src/Handler/Term.hs @@ -87,6 +87,13 @@ getTermShowR = do , dbtFilter = [ ( "active" , FilterColumn $ \term -> (term E.^. TermActive :: E.SqlExpr (E.Value Bool)) ) + , ( "course" + , FilterColumn $ \term csh -> case csh of -- FilterColumn-Lambdas are + [] -> E.val True :: E.SqlExpr (E.Value Bool) + cshs -> E.exists . E.from $ \course -> do + E.where_ $ course E.^. CourseTerm E.==. term E.^. TermId + E.&&. course E.^. CourseShorthand `E.in_` E.valList cshs + ) ] , dbtAttrs = tableDefault , dbtIdent = "terms" :: Text