fix(build): refix test commits somehow
This commit is contained in:
parent
e8c9c2199e
commit
34ada53de0
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user