fix(build): refix test commits somehow

This commit is contained in:
Steffen Jost 2023-08-25 13:58:21 +00:00
parent e8c9c2199e
commit 34ada53de0
3 changed files with 13 additions and 9 deletions

View File

@ -10,6 +10,7 @@ module Handler.Utils.Qualification
import Import import Import
import qualified Data.Text as Text
-- import Data.Time.Calendar (CalendarDiffDays(..)) -- import Data.Time.Calendar (CalendarDiffDays(..))
-- import Database.Persist.Sql (updateWhereCount) -- import Database.Persist.Sql (updateWhereCount)
import qualified Database.Esqueleto.Experimental as E -- might need TypeApplications Lang-Pragma import qualified Database.Esqueleto.Experimental as E -- might need TypeApplications Lang-Pragma
@ -228,6 +229,7 @@ qualificationUserBlocking ::
, Num n , Num n
) => QualificationId -> [UserId] -> Bool -> Maybe UTCTime -> QualificationBlockReason -> Bool -> ReaderT (YesodPersistBackend (HandlerSite m)) m n ) => QualificationId -> [UserId] -> Bool -> Maybe UTCTime -> QualificationBlockReason -> Bool -> ReaderT (YesodPersistBackend (HandlerSite m)) m n
qualificationUserBlocking qid uids unblock mbBlockTime (qualificationBlockReasonText -> reason) notify = do qualificationUserBlocking qid uids unblock mbBlockTime (qualificationBlockReasonText -> reason) notify = do
$logInfoS "BLOCK" $ Text.intercalate " - " [tshow qid, tshow uids, tshow unblock, tshow reason, tshow notify]
authUsr <- liftHandler maybeAuthId authUsr <- liftHandler maybeAuthId
now <- liftIO getCurrentTime now <- liftIO getCurrentTime
let blockTime = fromMaybe now mbBlockTime let blockTime = fromMaybe now mbBlockTime
@ -235,7 +237,7 @@ qualificationUserBlocking qid uids unblock mbBlockTime (qualificationBlockReason
-- oks <- E.insertSelectCount . E.from $ \qualificationUser -> do -- oks <- E.insertSelectCount . E.from $ \qualificationUser -> do
-- E.where_ $ qualificationUser E.^. QualificationUserQualification E.==. E.val qid -- E.where_ $ qualificationUser E.^. QualificationUserQualification E.==. E.val qid
-- E.&&. qualificationUser E.^. QualificationUserUser E.in_ E.valList uid -- E.&&. qualificationUser E.^. QualificationUserUser E.in_ E.valList uid
-- E.&&. quserBlock (not unblock) blockTime qualificationUser -- only unblock blocked qualification and vice versa -- E.&&. quserBlock unblock blockTime qualificationUser -- only unblock blocked qualification and vice versa
-- return $ QualificationUserBlock -- return $ QualificationUserBlock
-- E.<# qualificationUser E.^. QualificationUserId -- E.<# qualificationUser E.^. QualificationUserId
-- E.<&> E.val unblock -- E.<&> E.val unblock
@ -246,9 +248,9 @@ qualificationUserBlocking qid uids unblock mbBlockTime (qualificationBlockReason
qualUser <- E.from $ E.table @QualificationUser qualUser <- E.from $ E.table @QualificationUser
E.where_ $ qualUser E.^. QualificationUserQualification E.==. E.val qid E.where_ $ qualUser E.^. QualificationUserQualification E.==. E.val qid
E.&&. qualUser E.^. QualificationUserUser `E.in_` E.valList uids E.&&. qualUser E.^. QualificationUserUser `E.in_` E.valList uids
E.&&. quserBlock (not unblock) blockTime qualUser -- only unblock blocked qualification and vice versa E.&&. quserBlock unblock blockTime qualUser -- only unblock blocked qualification and vice versa
return (qualUser E.^. QualificationUserId, qualUser E.^. QualificationUserUser) return (qualUser E.^. QualificationUserId, qualUser E.^. QualificationUserUser)
let newBlocks = [ (quid, uid, qub) let newBlocks = [ (uid, qub)
| (E.Value quid, E.Value uid) <- toChange | (E.Value quid, E.Value uid) <- toChange
, let qub = QualificationUserBlock , let qub = QualificationUserBlock
{ qualificationUserBlockQualificationUser = quid { qualificationUserBlockQualificationUser = quid
@ -258,9 +260,9 @@ qualificationUserBlocking qid uids unblock mbBlockTime (qualificationBlockReason
, qualificationUserBlockBlocker = authUsr , qualificationUserBlockBlocker = authUsr
} }
] ]
E.insertMany_ (trd3 <$> newBlocks) E.insertMany_ (snd <$> newBlocks)
unless notify $ updateWhere [QualificationUserId <-. (fst3 <$> newBlocks)] [QualificationUserLastNotified =. now] unless notify $ updateWhere [QualificationUserId <-. (qualificationUserBlockQualificationUser . snd <$> newBlocks)] [QualificationUserLastNotified =. now]
forM_ newBlocks $ \(_, uid, qub) -> audit TransactionQualificationUserBlocking forM_ newBlocks $ \(uid, qub) -> audit TransactionQualificationUserBlocking
{ transactionQualification = qid { transactionQualification = qid
, transactionUser = uid , transactionUser = uid
, transactionQualificationBlock = qub , transactionQualificationBlock = qub

View File

@ -243,7 +243,7 @@ dispatchJobLmsReports qid = JobHandlerAtomic act
act = whenM (exists [LmsReportQualification ==. qid]) $ do -- executing twice must be prohibited due to assertion that ALL learners are always sent (D fails otherwise) act = whenM (exists [LmsReportQualification ==. qid]) $ do -- executing twice must be prohibited due to assertion that ALL learners are always sent (D fails otherwise)
now <- liftIO getCurrentTime now <- liftIO getCurrentTime
let today = utctDay now let today = utctDay now
-- locDay = localDay $ TZ.utcToLocalTimeTZ appTZ now -- locDay = localDay $ TZ.utcToLocalTimeTZ appTZ now -- no longer necessary, since LMS reports dates only
-- DB query for LmsUserUser, provided a matching LmsReport exists -- DB query for LmsUserUser, provided a matching LmsReport exists
luserQry luFltr repFltr = E.select $ do luserQry luFltr repFltr = E.select $ do
luser <- E.from $ E.table @LmsUser luser <- E.from $ E.table @LmsUser

View File

@ -885,7 +885,9 @@ customMigrations = mapF $ \case
|] |]
Migration20230703LmsUserStatus -> Migration20230703LmsUserStatus ->
unlessM (columnExists "lms_user" "status_day") $ do whenM (andM [ tableExists "lms_user"
, not <$> columnExists "lms_user" "status_day"
] ) $ do
[executeQQ| [executeQQ|
ALTER TABLE "lms_user" ADD COLUMN "status_day" date; ALTER TABLE "lms_user" ADD COLUMN "status_day" date;
UPDATE "lms_user" UPDATE "lms_user"
@ -922,7 +924,7 @@ tableDropEmpty table = whenM (tableExists table) $ do
columnExists :: MonadIO m columnExists :: MonadIO m
=> Text -- ^ Table => Text -- ^ Table
-> Text -- ^ Column -> Text -- ^ Column
-> ReaderT SqlBackend m Bool -> ReaderT SqlBackend m Bool -- BEWARE: use tablesExist beforehand!!!
columnExists table column = do columnExists table column = do
haveColumn <- [sqlQQ|SELECT column_name FROM information_schema.columns WHERE table_name=#{table} and column_name=#{column};|] haveColumn <- [sqlQQ|SELECT column_name FROM information_schema.columns WHERE table_name=#{table} and column_name=#{column};|]
case haveColumn :: [Single PersistValue] of case haveColumn :: [Single PersistValue] of