From 61d414e3d5559afd51b1fb9be46d0f1d219d684a Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Thu, 21 Sep 2023 14:32:32 +0000 Subject: [PATCH] chore(qualifications): restrict regular renewal to half valid duration --- src/Handler/Utils/Qualification.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Handler/Utils/Qualification.hs b/src/Handler/Utils/Qualification.hs index da50d98b7..b2edbf325 100644 --- a/src/Handler/Utils/Qualification.hs +++ b/src/Handler/Utils/Qualification.hs @@ -198,8 +198,8 @@ renewValidQualificationUsers qid renewalTime uids = Just Qualification{qualificationValidDuration=Just renewalMonths} -> do cutoff <- maybe (liftIO getCurrentTime) return renewalTime quEntsAll <- selectValidQualifications qid uids cutoff - let cutoffday = utctDay cutoff - maxValidTo = addGregorianMonthsRollOver (toInteger renewalMonths) cutoffday + let cutoffday = utctDay cutoff + maxValidTo = addGregorianMonthsRollOver (toInteger $ renewalMonths `div` 2) cutoffday quEnts = filter (\q -> maxValidTo >= (q ^. _entityVal . _qualificationUserValidUntil)) quEntsAll forM_ quEnts $ \(Entity quId QualificationUser{..}) -> do let newValidTo = addGregorianMonthsRollOver (toInteger renewalMonths) qualificationUserValidUntil