-- SPDX-FileCopyrightText: 2022 Steffen Jost -- -- SPDX-License-Identifier: AGPL-3.0-or-later module Handler.LMS.Fake ( getLmsFakeR, postLmsFakeR ) where import Import import Handler.Utils import System.Random (randomRIO) import Data.List (cycle) import qualified Data.CaseInsensitive as CI import qualified Data.Text as Text import qualified Data.Text.Encoding as TEnc import qualified Yesod.Auth.Util.PasswordStore as PWStore import Control.Applicative (ZipList(..), getZipList) getLmsFakeR, postLmsFakeR :: SchoolId -> QualificationShorthand -> Handler Html getLmsFakeR = postLmsFakeR postLmsFakeR sid qsh = do qent <- runDB $ getBy404 $ SchoolQualificationShort sid qsh now <- liftIO getCurrentTime let qName :: Text = CI.original $ unSchoolKey sid <> "-" <> qsh ((fakeRes, fakeView), fakeEnctype) <- runFormPost $ renderAForm FormStandard $ mkFakeForm $ utctDay now let fakeForm = wrapForm fakeView def { formEncoding = fakeEnctype } formResult fakeRes $ \res -> do (uNew, uTotal) <- runDB $ fakeQualificationUsers qent res let msgStatus = if | uNew == 0 -> Error | uNew == uTotal -> Success | otherwise -> Warning addMessage msgStatus $ toHtml $ tshow uNew <> " von " <> tshow uTotal <> " neue Testnutzer mit ablaufender Qualifikation " <> qName <> " generiert" redirect $ LmsR sid qsh siteLayout "Testnutzer generieren" $ do setTitle $ toHtml $ "Testnutzer generieren " <> qName toWidget [whamlet| Hier können zufällige Testbenutzer mit ablaufenden Qualifikationen generiert werden, welche dann im angegebenen Zeitraum fällig werden. ^{fakeForm}

Hinweise: