Grading Summary Refactor finished
This commit is contained in:
parent
7d726f48c3
commit
fb8d0c049f
@ -407,8 +407,9 @@ SheetTypeNotGraded: Unbewertet
|
|||||||
SheetTypeInfoNotGraded: Blätter ohne Wertung werden nirgends angerechnet, die Bewertung durch den Korrektor dient lediglich zur Information der Teilnehmer.
|
SheetTypeInfoNotGraded: Blätter ohne Wertung werden nirgends angerechnet, die Bewertung durch den Korrektor dient lediglich zur Information der Teilnehmer.
|
||||||
SheetTypeInfoBonus: Bonus Blätter zählen normal, erhöhen aber nicht die maximal erreichbare Punktzahl bzw. Anzahl zu bestehender Blätter.
|
SheetTypeInfoBonus: Bonus Blätter zählen normal, erhöhen aber nicht die maximal erreichbare Punktzahl bzw. Anzahl zu bestehender Blätter.
|
||||||
SheetGradingBonusIncluded: Erzielte Bonuspunkte wurden hier bereits zu den erreichten normalen Punkten hinzugezählt.
|
SheetGradingBonusIncluded: Erzielte Bonuspunkte wurden hier bereits zu den erreichten normalen Punkten hinzugezählt.
|
||||||
SheetGradingSummaryTitle n@Int: Zusammenfassung über alle #{display n} Blätter
|
SummaryTitle: Zusammenfassung über alle
|
||||||
SubmissionGradingSummaryTitle n@Int: Zusammenfassung über alle #{display n} Abgaben
|
SheetGradingSummaryTitle count@Integer: #{display count} Blätter
|
||||||
|
SubmissionGradingSummaryTitle count@Integer: #{display count} Abgaben
|
||||||
|
|
||||||
SheetTypeBonus': Bonus
|
SheetTypeBonus': Bonus
|
||||||
SheetTypeNormal': Normal
|
SheetTypeNormal': Normal
|
||||||
|
|||||||
@ -9,19 +9,19 @@ import Utils.Lens
|
|||||||
|
|
||||||
addBonusToPoints :: SheetTypeSummary -> SheetTypeSummary
|
addBonusToPoints :: SheetTypeSummary -> SheetTypeSummary
|
||||||
addBonusToPoints sts =
|
addBonusToPoints sts =
|
||||||
update _achievedPoints _sumSheetsPoints $
|
sts & _normalSummary . _achievedPasses %~ (min passmax . (passbonus +))
|
||||||
update _achievedPasses _numSheetsPasses sts
|
& _normalSummary . _achievedPoints %~ (min ptsmax . (ptsbonus +))
|
||||||
where
|
where
|
||||||
update lachieved lmax s =
|
passmax = sts ^. _normalSummary . _numMarkedPasses
|
||||||
let bonus = s ^. _bonusSummary . lachieved
|
passbonus = sts ^. _bonusSummary . _achievedPasses
|
||||||
valmax = s ^. _normalSummary . lmax
|
ptsmax = sts ^. _normalSummary . _sumMarkedPoints
|
||||||
in s & _normalSummary . lachieved %~ min valmax . (bonus +)
|
ptsbonus = sts ^. _bonusSummary . _achievedPoints
|
||||||
|
|
||||||
gradeSummaryWidget :: RenderMessage UniWorX msg => (Int -> msg) -> SheetTypeSummary -> Widget
|
gradeSummaryWidget :: RenderMessage UniWorX msg => (Integer -> msg) -> SheetTypeSummary -> Widget
|
||||||
gradeSummaryWidget title sts =
|
gradeSummaryWidget title sts =
|
||||||
let SheetTypeSummary{..} = addBonusToPoints sts
|
let SheetTypeSummary{..} = addBonusToPoints sts
|
||||||
sumSummaries = normalSummary <> bonusSummary <> informationalSummary & _numSheets %~ (<> numNotGraded)
|
sumSummaries = normalSummary <> bonusSummary <> informationalSummary & _numSheets %~ (<> numNotGraded)
|
||||||
hasPassings = positiveSum $ numSheetsPasses sumSummaries
|
hasPasses = positiveSum $ numSheetsPasses sumSummaries
|
||||||
hasMarkedPasses = positiveSum $ numMarkedPasses sumSummaries
|
hasMarkedPasses = positiveSum $ numMarkedPasses sumSummaries
|
||||||
hasPoints = positiveSum $ numSheetsPoints sumSummaries
|
hasPoints = positiveSum $ numSheetsPoints sumSummaries
|
||||||
hasMarkedPoints = positiveSum $ numMarkedPoints sumSummaries
|
hasMarkedPoints = positiveSum $ numMarkedPoints sumSummaries
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import ClassyPrelude.Yesod
|
|||||||
import Database.Persist.Quasi
|
import Database.Persist.Quasi
|
||||||
-- import Data.Time
|
-- import Data.Time
|
||||||
-- import Data.ByteString
|
-- import Data.ByteString
|
||||||
import Model.Types
|
import Model.Types hiding (_maxPoints, _passingPoints)
|
||||||
import Cron.Types
|
import Cron.Types
|
||||||
|
|
||||||
import Data.Aeson (Value)
|
import Data.Aeson (Value)
|
||||||
|
|||||||
@ -123,6 +123,8 @@ fromPoints = round
|
|||||||
|
|
||||||
instance DisplayAble Points
|
instance DisplayAble Points
|
||||||
|
|
||||||
|
instance DisplayAble a => DisplayAble (Sum a) where
|
||||||
|
display (Sum x) = display x
|
||||||
|
|
||||||
data SheetGrading
|
data SheetGrading
|
||||||
= Points { maxPoints :: Points }
|
= Points { maxPoints :: Points }
|
||||||
@ -162,7 +164,7 @@ data SheetGradeSummary = SheetGradeSummary
|
|||||||
, numMarked :: Count -- Number of already marked sheets
|
, numMarked :: Count -- Number of already marked sheets
|
||||||
, numMarkedPasses :: Count -- Number of already marked sheets with passes
|
, numMarkedPasses :: Count -- Number of already marked sheets with passes
|
||||||
, numMarkedPoints :: Count -- Number of already marked sheets with points
|
, numMarkedPoints :: Count -- Number of already marked sheets with points
|
||||||
, sumMarkedPoints :: Sum Point -- Achieveable points within marked sheets
|
, sumMarkedPoints :: Sum Points -- Achieveable points within marked sheets
|
||||||
--
|
--
|
||||||
, achievedPasses :: Count -- Achieved passes (within marked sheets)
|
, achievedPasses :: Count -- Achieved passes (within marked sheets)
|
||||||
, achievedPoints :: Sum Points -- Achieved points (within marked sheets)
|
, achievedPoints :: Sum Points -- Achieved points (within marked sheets)
|
||||||
@ -214,7 +216,7 @@ data SheetTypeSummary = SheetTypeSummary
|
|||||||
{ normalSummary
|
{ normalSummary
|
||||||
, bonusSummary
|
, bonusSummary
|
||||||
, informationalSummary :: SheetGradeSummary
|
, informationalSummary :: SheetGradeSummary
|
||||||
, numNotGraded :: Sum Int
|
, numNotGraded :: Count
|
||||||
} deriving (Generic, Read, Show, Eq)
|
} deriving (Generic, Read, Show, Eq)
|
||||||
|
|
||||||
instance Monoid SheetTypeSummary where
|
instance Monoid SheetTypeSummary where
|
||||||
|
|||||||
@ -1,21 +1,25 @@
|
|||||||
$# Displays gradings Summary for various purposes
|
$# Displays gradings Summary for various purposes
|
||||||
$# Expects several variables:
|
$# Expects several variables:
|
||||||
$# sumSummaries :: SheetGradeSummary -- summary over all grading types
|
$# sumSummaries :: SheetGradeSummary -- summary over all grading types
|
||||||
$# hasPassing :: Maybe Int -- Should Passing be displayed?
|
$# hasPasses :: Maybe Int -- Should Passing be displayed?
|
||||||
$# hasMarkedPasses :: Maybe Int -- Number of marked pass-sheets
|
$# hasMarkedPasses :: Maybe Int -- Number of marked pass-sheets
|
||||||
$# hasPoints :: Maybe Points -- Should Points be displayed?
|
$# hasPoints :: Maybe Points -- Should Points be displayed?
|
||||||
$# hasMarkedPoints :: Maybe Int -- Number of marked point-sheets
|
$# hasMarkedPoints :: Maybe Int -- Number of marked point-sheets
|
||||||
$# --
|
$# --
|
||||||
<div>
|
<div>
|
||||||
<h3>_{title $ getSum $ numSheets $ sumSummaries}
|
<h3>_{MsgSummaryTitle} _{title $ getSum $ numSheets $ sumSummaries}
|
||||||
<table .table .table--striped>
|
<table .table .table--striped>
|
||||||
<tr .table__row .table__row--head>
|
<tr .table__row .table__row--head>
|
||||||
<th>
|
<th>
|
||||||
$# empty cell for row headers
|
$# empty cell for row headers
|
||||||
$maybe _ <- hasPassings
|
$maybe _ <- hasMarkedPasses
|
||||||
<th .table__th colspan=2>_{MsgSheetGradingPassing'}
|
<th .table__th colspan=2>_{MsgCorrected}
|
||||||
|
$maybe _ <- hasPasses
|
||||||
|
<th .table__th>_{MsgSheetGradingPassing'}
|
||||||
|
$maybe _ <- hasMarkedPoints
|
||||||
|
<th .table__th colspan=2>_{MsgCorrected}
|
||||||
$maybe _ <- hasPoints
|
$maybe _ <- hasPoints
|
||||||
<th .table__th colspan=2>_{MsgSheetGradingPoints'}
|
<th .table__th>_{MsgSheetGradingPoints'}
|
||||||
<th .table__th>_{MsgSheetGradingCount'}
|
<th .table__th>_{MsgSheetGradingCount'}
|
||||||
$# Number of Sheet/Submissions used for calculating maximum passes/points
|
$# Number of Sheet/Submissions used for calculating maximum passes/points
|
||||||
$forall row <- rowWdgts
|
$forall row <- rowWdgts
|
||||||
@ -23,14 +27,18 @@ $# --
|
|||||||
$maybe nrNoGrade <- positiveSum $ numNotGraded
|
$maybe nrNoGrade <- positiveSum $ numNotGraded
|
||||||
<tr .table__row>
|
<tr .table__row>
|
||||||
<th .table__th>_{MsgSheetTypeNotGraded}
|
<th .table__th>_{MsgSheetTypeNotGraded}
|
||||||
$maybe _ <- hasPassings
|
$maybe _ <- hasMarkedPasses
|
||||||
<td colspan=2>
|
<td colspan=2>
|
||||||
$maybe _ <- hasPoints
|
$maybe _ <- hasPasses
|
||||||
|
<td .table__td>
|
||||||
|
$maybe _ <- hasMarkedPoints
|
||||||
<td .table__td colspan=2>
|
<td .table__td colspan=2>
|
||||||
|
$maybe _ <- hasPoints
|
||||||
|
<td .table__td>
|
||||||
<td .table__td>#{display nrNoGrade}
|
<td .table__td>#{display nrNoGrade}
|
||||||
$maybe _ <- positiveSum $ bonusSummary ^. _numSheets
|
$maybe _ <- positiveSum $ bonusSummary ^. _numSheets
|
||||||
<p>_{MsgSheetTypeInfoBonus} #
|
<p>_{MsgSheetTypeInfoBonus} #
|
||||||
$maybe _ <- positiveSum =<< (bonusSummary ^. _achievedPoints)
|
$maybe _ <- positiveSum $ bonusSummary ^. _achievedPoints
|
||||||
_{MsgSheetGradingBonusIncluded}
|
_{MsgSheetGradingBonusIncluded}
|
||||||
$maybe _ <- positiveSum $ informationalSummary ^. _numSheets
|
$maybe _ <- positiveSum $ informationalSummary ^. _numSheets
|
||||||
<p>_{MsgSheetTypeInfoNotGraded}
|
<p>_{MsgSheetTypeInfoNotGraded}
|
||||||
|
|||||||
@ -2,7 +2,7 @@ $# Displays one row of the grading summary
|
|||||||
$# Expects several variables:
|
$# Expects several variables:
|
||||||
$# summary :: SheetGradeSummary -- summary to display
|
$# summary :: SheetGradeSummary -- summary to display
|
||||||
$# sumHeader :: UniWorXMessage -- row header
|
$# sumHeader :: UniWorXMessage -- row header
|
||||||
$# hasPassing :: Maybe Int -- Should Passing be displayed?
|
$# hasPasses :: Maybe Int -- Should Passing be displayed?
|
||||||
$# hasMarkedPasses :: Maybe Int -- Number of marked pass-sheets
|
$# hasMarkedPasses :: Maybe Int -- Number of marked pass-sheets
|
||||||
$# hasPoints :: Maybe Points -- Should Points be displayed?
|
$# hasPoints :: Maybe Points -- Should Points be displayed?
|
||||||
$# hasMarkedPoints :: Maybe Int -- Number of marked point-sheets
|
$# hasMarkedPoints :: Maybe Int -- Number of marked point-sheets
|
||||||
@ -10,29 +10,31 @@ $#
|
|||||||
$# TODO: Durschnittliche Punktzahl anzeigen
|
$# TODO: Durschnittliche Punktzahl anzeigen
|
||||||
$# TODO: Extra-Spalte für Punkte Bewertet = numMarkedPoints / Punkte Gesamt = sumSheetPoints
|
$# TODO: Extra-Spalte für Punkte Bewertet = numMarkedPoints / Punkte Gesamt = sumSheetPoints
|
||||||
$#
|
$#
|
||||||
$maybe nrSheets <- positiveSum $ summary ^. _numSheets
|
$maybe _ <- positiveSum $ summary ^. _numSheets
|
||||||
<tr .table__row >
|
<tr .table__row>
|
||||||
<th .table__th>_{sumHeader}
|
<th .table__th>_{sumHeader}
|
||||||
$maybe _ <- hasPassings
|
$maybe _ <- hasMarkedPasses
|
||||||
$with Sum pmax <- summary ^. _numGradePasses
|
$with Sum pmax <- summary ^. _numMarkedPasses
|
||||||
$maybe Sum pacv <- summary ^. _achievedPasses
|
$with Sum pacv <- summary ^. _achievedPasses
|
||||||
<td .table__td>
|
<td .table__td>
|
||||||
$if pmax /= 0
|
$if pmax > 0
|
||||||
#{textPercentInt pacv pmax}
|
#{textPercentInt pacv pmax}
|
||||||
<td .table__td>
|
<td .table__td>
|
||||||
#{display pacv} / #{display pmax}
|
#{display pacv} / #{display pmax}
|
||||||
$nothing
|
$maybe _ <- hasPasses
|
||||||
<td .table__td colspan=2>
|
<td .table__td>
|
||||||
#{display pmax }
|
#{display $ summary ^. _numSheetsPasses}
|
||||||
|
$maybe _ <- hasMarkedPoints
|
||||||
|
$with Sum pmax <- summary ^. _sumMarkedPoints
|
||||||
|
$with Sum pacv <- summary ^. _achievedPoints
|
||||||
|
<td .table__td>
|
||||||
|
$if pmax > 0
|
||||||
|
#{textPercent $ realToFrac $ pacv / pmax}
|
||||||
|
<td .table__td>
|
||||||
|
#{display pacv} / #{display pmax}
|
||||||
|
\ (_{title $ getSum $ summary ^. _numMarkedPoints})
|
||||||
$maybe _ <- hasPoints
|
$maybe _ <- hasPoints
|
||||||
$with Sum pmax <- summary ^. _sumGradePoints
|
<td .table__td>
|
||||||
$maybe Sum pacv <- summary ^. _achievedPoints
|
#{display (summary ^. _sumSheetsPoints)}
|
||||||
<td .table__td>
|
\ (_{title $ getSum $ summary ^. _numSheetsPoints})
|
||||||
$if pmax /= 0
|
<td .table__td>#{display $ summary ^. _numSheets}
|
||||||
#{textPercent $ realToFrac $ pacv / pmax}
|
|
||||||
<td .table__td>
|
|
||||||
#{display pacv} / #{display pmax}
|
|
||||||
$nothing
|
|
||||||
<td .table__td colspan=2>
|
|
||||||
#{display pmax }
|
|
||||||
<td .table__td>#{display nrSheets}
|
|
||||||
Loading…
Reference in New Issue
Block a user