| ^{simpleLink (toWidget sheetName) (CSheetR tid ssh csh sheetName SSubsR)}
$if groupsPossible
| #{ciSubmittors}
| #{ciSubmissions}
$maybe ((splus,sfailed),_,_) <- Map.lookup sheetName assignment
$if 0 < Set.size sfailed
| #{ciSubmissions - ciAssigned}
| (-#{show (Set.size splus)}, failed: #{show (Set.size sfailed)})
$elseif 0 < Set.size splus
| #{ciSubmissions - ciAssigned}
| (-#{show (Set.size splus)})
$else
| #{ciSubmissions - ciAssigned}
|
$nothing
| #{ciSubmissions - ciAssigned}
|
| #{ciSubmissions - ciCorrected}
| #{showDiffDays ciMin}
| #{showAvgsDays ciTot ciCorrected}
| #{showDiffDays ciMax}
_{MsgCorrectionCorrectors}
| _{MsgCorrector}
| _{MsgGenericAll}
| _{MsgCorDeficitProportion}
| _{MsgCorrectionTime}
$# Always iterate over orderedSheetNames for consistent sorting! Newest first, except in this table
$forall shn <- orderedSheetNames
|
^{simpleLink (toWidget shn) (CSheetR tid ssh csh shn SShowR)}
|
| _{MsgNrSubmissionsTotal}
| _{MsgNrSubmissionsNotCorrected}
| _{MsgGenericMin}
| _{MsgGenericAvg}
| _{MsgGenericMax}
$# Always iterate over orderedSheetNames for consistent sorting! Newest first, except in this table
$forall _shn <- orderedSheetNames
| _{MsgCorProportion}
| _{MsgNrSubmissionsTotalShort}
| _{MsgGenericNumChange}
| _{MsgNrSubmissionsNotCorrectedShort}
| _{MsgGenericAvg}
$forall (CorrectionInfo{ciCorrector, ciSubmissions=ciSubmissionsNr, ciCorrected, ciMin, ciTot, ciMax}) <- corrInfos
$with (nameW,loadM, name) <- getCorrector ciCorrector
$# TODO: User proper Tooltips instead of title attribute here, once Tooltips work with tables
|
| ^{nameW}
| #{ciSubmissionsNr}
$with total <- ciSubmissions corrMapSum
$if total > 0
\ (#{textPercent' True 0 ciSubmissionsNr total})
| #{ciSubmissionsNr - ciCorrected}
|
$maybe deficit <- getCorrDeficit ciCorrector
#{rationalToFixed3 deficit}
| #{showDiffDays ciMin}
| #{showAvgsDays ciTot ciCorrected}
| #{showDiffDays ciMax}
$# Always iterate over orderedSheetNames for consistent sorting! Newest first, except in this table
$forall shn <- orderedSheetNames
$maybe CorrectionInfo{ciSubmissions=sheetSubmissionsNr} <- Map.lookup shn sheetMap
|
$maybe SheetCorrector{sheetCorrectorLoad, sheetCorrectorState} <- Map.lookup shn loadM
#{showCompactCorrectorLoad sheetCorrectorLoad sheetCorrectorState}
$if sheetCorrectorState == CorrectorNormal
$maybe Load{byProportion=total} <- Map.lookup shn sheetLoad
$if total > 0
\ (#{textPercent' True 0 (byProportion sheetCorrectorLoad) total})
$maybe CorrectionInfo{ciSubmissions,ciCorrected,ciTot} <- getCorrSheetStatus ciCorrector shn
| #{ciSubmissions}
$if sheetSubmissionsNr > 0
\ (#{textPercent' True 0 ciSubmissions sheetSubmissionsNr})
$maybe nrNew <- getCorrNewAssignment ciCorrector shn
$# | #{ciAssigned} `ciSubmissions` is here always identical to `ciAssigned` and also works for `ciCorrector == Nothing`. ciAssigned only useful in aggregate maps like `sheetMap`
| (+#{nrNew})
$nothing
|
| #{ciSubmissions - ciCorrected}
| #{showAvgsDays ciTot ciCorrected}
$nothing
|
|
|
|
$if not (null orderedSheetNames)
|
| Σ
$with ciSubmissionsNr <- ciSubmissions corrMapSum
$with ciCorrectedNr <- ciCorrected corrMapSum
| #{ciSubmissionsNr}
| #{ciSubmissionsNr - ciCorrectedNr}
| #{ciCorrected corrMapSum}
| #{showDiffDays (ciMin corrMapSum)}
| #{showAvgsDays (ciTot corrMapSum) (ciCorrected corrMapSum)}
| #{showDiffDays (ciMax corrMapSum)}
$# Always iterate over orderedSheetNames for consistent sorting! Newest first, except in this table
$forall shn <- orderedSheetNames
$maybe CorrectionInfo{ciSubmissions} <- Map.lookup shn sheetMap
| #{getLoadSum shn}
| #{ciSubmissions}
| ^{simpleLinkI (SomeMessage MsgMenuCorrectorsChange) (CSheetR tid ssh csh shn SEditR)}
|
|
|
|
|
$# Always iterate over orderedSheetNames for consistent sorting! Newest first, except in this table
$forall shn <- orderedSheetNames
|
^{simpleLink (toWidget shn) (CSheetR tid ssh csh shn SShowR)}
^{btnWdgt}
_{MsgAssignSubmissionsRandomWarning}
| |