diff --git a/src/Handler/Utils/Exam.hs b/src/Handler/Utils/Exam.hs index c7abfacb5..a676f61ae 100644 --- a/src/Handler/Utils/Exam.hs +++ b/src/Handler/Utils/Exam.hs @@ -1,5 +1,4 @@ {-# OPTIONS_GHC -fno-warn-incomplete-uni-patterns #-} -{-# OPTIONS_GHC -Wwarn #-} module Handler.Utils.Exam ( fetchExamAux @@ -28,15 +27,15 @@ import Database.Esqueleto.Utils.TH import qualified Data.Conduit.List as C import qualified Data.Map as Map +import qualified Data.Map.Merge.Lazy as Map import qualified Data.Set as Set import qualified Data.Foldable as F import qualified Data.CaseInsensitive as CI -import Control.Monad.Trans.Random.Lazy (evalRand) import System.Random (mkStdGen) -import Control.Monad.Random.Class (weighted) +import System.Random.Shuffle (shuffle') import Control.Monad.ST (ST, runST) import Data.Array (Array) @@ -49,6 +48,7 @@ import Data.List (findIndex, unfoldr) import qualified Data.List as List import Data.ExtendedReal +import Data.Ratio (Ratio()) import qualified Data.RFC5051 as RFC5051 @@ -265,7 +265,7 @@ examAutoOccurrence :: forall seed. -> Map ExamOccurrenceId Natural -> Map UserId (User, Maybe ExamOccurrenceId) -> (Maybe (ExamOccurrenceMapping ExamOccurrenceId), Map UserId (Maybe ExamOccurrenceId)) -examAutoOccurrence (hash -> seed) rule config@ExamAutoOccurrenceConfig{..} occurrences users +examAutoOccurrence (hash -> seed) rule ExamAutoOccurrenceConfig{..} occurrences users | sum occurrences' < usersCount || sum occurrences' <= 0 || Map.null users'