chore: filter out pre-filled rooms

This commit is contained in:
Wolfgang Witt 2021-02-02 21:15:54 +01:00 committed by Wolfgang Witt
parent eadbbce661
commit 44a52e034f

View File

@ -311,11 +311,14 @@ examAutoOccurrence (hash -> seed) rule ExamAutoOccurrenceConfig{..} occurrences
occurrences' :: Map ExamOccurrenceId Natural
-- ^ reduce room capacity for every pre-assigned user by 1
occurrences' = foldl' (flip $ Map.adjust predOrZero) occurrences $ Map.mapMaybe snd users
occurrences' = foldl' (flip $ Map.update predToPositive) occurrences $ Map.mapMaybe snd users
-- FIXME what about capacity-0 in occurrences?
-- what if the first word is too big for the first room?
where
predOrZero :: Natural -> Natural
predOrZero 0 = 0
predOrZero n = pred n
predToPositive :: Natural -> Maybe Natural
predToPositive 0 = Nothing
predToPositive 1 = Nothing
predToPositive n = Just $ pred n
occurrences'' :: [(ExamOccurrenceId, Natural)]
-- ^ Minimise number of occurrences used