$# Displays one row of the grading summary $# Expects several variables: $# summary :: SheetGradeSummary -- summary to display $# sumHeader :: UniWorXMessage -- row header $# hasPasses :: Maybe Int -- Should Passing be displayed? $# hasMarkedPasses :: Maybe Int -- Number of marked pass-sheets $# hasPoints :: Maybe Points -- Should Points be displayed? $# hasMarkedPoints :: Maybe Int -- Number of marked point-sheets $# $# TODO: Durschnittliche Punktzahl anzeigen $# TODO: Extra-Spalte für Punkte Bewertet = numMarkedPoints / Punkte Gesamt = sumSheetPoints $# $maybe _ <- positiveSum $ summary ^. _numSheets _{sumHeader} $maybe _ <- hasMarkedPasses $with Sum pmax <- summary ^. _numMarkedPasses $if pmax > 0 $with Sum pacv <- summary ^. _achievedPasses $if pmax > 0 #{textPercentInt pacv pmax} #{display pacv} / #{display pmax} $else $maybe _ <- hasPasses $with Sum numPass <- summary ^. _numSheetsPasses $if numPass > 0 #{display numPass} $maybe _ <- hasMarkedPoints $with Sum pmax <- summary ^. _sumMarkedPoints $with Sum pacv <- summary ^. _achievedPoints $if pmax > 0 #{textPercent $ realToFrac $ pacv / pmax} #{display pacv} / #{display pmax} $if ((summary ^. _numMarkedPoints) /= (summary ^. _numSheets)) $# Falls Anzahl Blätter der Zeile verschieden von Anzahl gewerterer Blätter \ (_{title $ getSum $ summary ^. _numMarkedPoints}) $# Kurze Alternative mit Hashtag-Symbol für "Anzahl" $# \ (##{display $ summary ^. _numMarkedPoints}) $maybe _ <- hasPoints #{display (summary ^. _sumSheetsPoints)} $if ((summary ^. _numSheetsPoints) /= (summary ^. _numSheets)) $# Falls Anzahl Blätter der Zeile verschieden von Anzahl Blätter mit Punkten \ (_{title $ getSum $ summary ^. _numSheetsPoints}) $# Kurze Alternative mit Hashtag-Symbol für "Anzahl" $# \ (##{display $ summary ^. _numSheetsPoints}) #{display $ summary ^. _numSheets}