fix(lms): reset e-learning more lenient

This commit is contained in:
Steffen Jost 2023-09-11 16:01:43 +00:00
parent 93052f5e74
commit 8b0737e2aa

View File

@ -391,9 +391,9 @@ isResetAct :: LmsTableActionData -> Bool
isResetAct LmsActResetData{} = True
isResetAct _ = False
isRestartResetAct :: LmsTableActionData -> Bool
isRestartResetAct LmsActRestartData{} = True
isRestartResetAct other = isResetAct other
isResetRestartAct :: LmsTableActionData -> Bool
isResetRestartAct LmsActRestartData{} = True
isResetRestartAct other = isResetAct other
lmsTableQuery :: QualificationId -> LmsTableExpr
@ -707,7 +707,7 @@ postLmsR sid qsh = do
formResult lmsRes $ \case
_ | not isAdmin -> addMessageI Error MsgUnauthorized -- only admins can use the form on this page
(action, selectedUsers) | isRestartResetAct action -> do
(action, selectedUsers) | isResetRestartAct action -> do
let usersList = Set.toList selectedUsers
numUsers = Set.size selectedUsers
isReset = isResetAct action
@ -730,7 +730,7 @@ postLmsR sid qsh = do
forM_ shortUsers $ upsertQualificationUser qid nowaday cutoff Nothing
fromIntegral <$> (if isReset
then updateWhereCount ([LmsUserQualification ==. qid, LmsUserUser <-. usersList, LmsUserResetTries ==. False, LmsUserLocked ==. True]
then updateWhereCount ([LmsUserQualification ==. qid, LmsUserUser <-. usersList, LmsUserResetTries ==. False] -- , LmsUserLocked ==. True] -- needs to be locked for reset, but this is counter-intuitive for users; should be harmles, but delays reset until lock is effective
++ ([LmsUserStatus ==. Just LmsBlocked] ||. [LmsUserStatus ==. Just LmsExpired])) [LmsUserResetTries =. True]
else deleteWhereCount [LmsUserQualification ==. qid, LmsUserUser <-. usersList]
)