diff --git a/src/Handler/Submission.hs b/src/Handler/Submission.hs index 2148f3a28..ca79f978d 100644 --- a/src/Handler/Submission.hs +++ b/src/Handler/Submission.hs @@ -264,7 +264,16 @@ makeSubmissionForm cid msmid uploadMode grouping isLecturer prefillUsers = ident miButtonAction = miButtonAction' mRoute postProcess :: Map ListPosition (Either UserEmail UserId, ()) -> Set (Either UserEmail UserId) - postProcess = setOf $ folded . _1 + postProcess valMap + | Just maxSize' <- maxSize + , fromIntegral maxSize' >= Set.size resultUsers + = resultUsers + | Just maxSize' <- maxSize + = let resultUsers' = Set.take (fromIntegral maxSize') resultUsers + in if | Set.member (Right uid) resultUsers' -> resultUsers' + | otherwise -> Set.insert (Right uid) $ Set.take (pred $ fromIntegral maxSize') resultUsers' + | otherwise = Set.singleton $ Right uid + where resultUsers = setOf (folded . _1) valMap when (maxSize > Just 1) $ wformMessage =<< messageI Info MsgCosubmittorTip fmap postProcess <$> massInputW MassInput{..} submittorSettings' True (Just . Map.fromList . zip [0..] . map (, ()) $ Set.toList prefillUsers)