fix(exams): don't show manual bonus as inconsistent
This commit is contained in:
parent
8749d1d6c0
commit
fb54c8445a
@ -165,7 +165,7 @@ resultCourseNote = _dbrOutput . _10 . _Just
|
|||||||
|
|
||||||
|
|
||||||
resultAutomaticExamBonus :: Exam -> Map UserId SheetTypeSummary -> Fold ExamUserTableData Points
|
resultAutomaticExamBonus :: Exam -> Map UserId SheetTypeSummary -> Fold ExamUserTableData Points
|
||||||
resultAutomaticExamBonus exam examBonus' = resultUser . _entityKey . folding (\uid -> examResultBonus <$> examBonusRule exam <*> pure (examBonusPossible uid examBonus') <*> pure (examBonusAchieved uid examBonus'))
|
resultAutomaticExamBonus exam examBonus' = resultUser . _entityKey . folding (\uid -> join $ examResultBonus <$> examBonusRule exam <*> pure (examBonusPossible uid examBonus') <*> pure (examBonusAchieved uid examBonus'))
|
||||||
|
|
||||||
resultAutomaticExamResult :: Exam -> Map UserId SheetTypeSummary -> Fold ExamUserTableData ExamResultPassedGrade
|
resultAutomaticExamResult :: Exam -> Map UserId SheetTypeSummary -> Fold ExamUserTableData ExamResultPassedGrade
|
||||||
resultAutomaticExamResult exam@Exam{..} examBonus' = folding . runReader $ do
|
resultAutomaticExamResult exam@Exam{..} examBonus' = folding . runReader $ do
|
||||||
|
|||||||
@ -144,12 +144,12 @@ getRelevantSheetsUpTo cid uid mCutoff
|
|||||||
examResultBonus :: ExamBonusRule
|
examResultBonus :: ExamBonusRule
|
||||||
-> SheetGradeSummary -- ^ `examBonusPossible`
|
-> SheetGradeSummary -- ^ `examBonusPossible`
|
||||||
-> SheetGradeSummary -- ^ `examBonusAchieved`
|
-> SheetGradeSummary -- ^ `examBonusAchieved`
|
||||||
-> Points
|
-> Maybe Points
|
||||||
examResultBonus bonusRule bonusPossible bonusAchieved = case bonusRule of
|
examResultBonus bonusRule bonusPossible bonusAchieved = case bonusRule of
|
||||||
ExamBonusManual{}
|
ExamBonusManual{}
|
||||||
-> 0
|
-> Nothing
|
||||||
ExamBonusPoints{..}
|
ExamBonusPoints{..}
|
||||||
-> roundToPoints bonusRound $ toRational bonusMaxPoints * bonusProp
|
-> Just . roundToPoints bonusRound $ toRational bonusMaxPoints * bonusProp
|
||||||
where
|
where
|
||||||
bonusProp :: Rational
|
bonusProp :: Rational
|
||||||
bonusProp
|
bonusProp
|
||||||
@ -228,7 +228,7 @@ examBonusGrade :: ( MonoFoldable sheets
|
|||||||
examBonusGrade exam@Exam{..} bonusInp = (mBonus, ) . examGrade exam mBonus
|
examBonusGrade exam@Exam{..} bonusInp = (mBonus, ) . examGrade exam mBonus
|
||||||
where mBonus = asum
|
where mBonus = asum
|
||||||
[ bonusInp ^? _Left
|
[ bonusInp ^? _Left
|
||||||
, examResultBonus <$> examBonusRule <*> bonusPossible <*> bonusAchieved
|
, join $ examResultBonus <$> examBonusRule <*> bonusPossible <*> bonusAchieved
|
||||||
]
|
]
|
||||||
sheetSummary = flip (previews _Right) bonusInp . ofoldMap $ uncurry sheetTypeSum
|
sheetSummary = flip (previews _Right) bonusInp . ofoldMap $ uncurry sheetTypeSum
|
||||||
bonusPossible = normalSummary <$> sheetSummary
|
bonusPossible = normalSummary <$> sheetSummary
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user