chore(lms): re-add dedicated lms audit log table
removed in commit 71cde92, but freuquent lms errors make a dedicated log table for all unprocessed input necessary
This commit is contained in:
parent
d7a94b9619
commit
7373bc9147
@ -174,3 +174,12 @@ LmsReport
|
|||||||
deriving Generic
|
deriving Generic
|
||||||
|
|
||||||
-- LmsAudit removed by commit 71cde92a
|
-- LmsAudit removed by commit 71cde92a
|
||||||
|
-- due to frequent transmit errors, a separate lms tranmission log is necessary again
|
||||||
|
LmsReportLog
|
||||||
|
qualification QualificationId OnDeleteCascade OnUpdateCascade
|
||||||
|
ident LmsIdent
|
||||||
|
date UTCTime Maybe -- BEWARE: timezone is local as submitted by LMS
|
||||||
|
result LmsState -- (0|1|2) 0=LmsFailed[too many tries], 1=LmsOpen, 2=LmsPassed[success]
|
||||||
|
lock Bool -- (0|1)
|
||||||
|
timestamp UTCTime default=now()
|
||||||
|
deriving Generic
|
||||||
@ -257,6 +257,7 @@ dispatchJobLmsDequeue qid = JobHandlerAtomic act
|
|||||||
deleteWhere [LmsUserlistQualification ==. qid, LmsUserlistIdent <-. delusers]
|
deleteWhere [LmsUserlistQualification ==. qid, LmsUserlistIdent <-. delusers]
|
||||||
deleteWhere [LmsResultQualification ==. qid, LmsResultIdent <-. delusers]
|
deleteWhere [LmsResultQualification ==. qid, LmsResultIdent <-. delusers]
|
||||||
-- deleteWhere [LmsAuditQualification ==. qid, LmsAuditIdent <-. delusers]
|
-- deleteWhere [LmsAuditQualification ==. qid, LmsAuditIdent <-. delusers]
|
||||||
|
deleteWhere [LmsReportLogQualification ==. qid, LmsReportLogTimestamp <. auditCutoff ]
|
||||||
|
|
||||||
|
|
||||||
dispatchJobLmsReports :: QualificationId -> JobHandler UniWorX
|
dispatchJobLmsReports :: QualificationId -> JobHandler UniWorX
|
||||||
@ -379,14 +380,25 @@ dispatchJobLmsReports qid = JobHandlerAtomic act
|
|||||||
>>= \nr -> $logInfoS "LMS" $ "Report processing marked " <> tshow nr <> " rows as unlocked and received for qualification " <> tshow qid -- debug, remove later
|
>>= \nr -> $logInfoS "LMS" $ "Report processing marked " <> tshow nr <> " rows as unlocked and received for qualification " <> tshow qid -- debug, remove later
|
||||||
updateReceivedLocked True
|
updateReceivedLocked True
|
||||||
>>= \nr -> $logInfoS "LMS" $ "Report processing marked " <> tshow nr <> " rows as locked and received for qualification " <> tshow qid -- debug, remove later
|
>>= \nr -> $logInfoS "LMS" $ "Report processing marked " <> tshow nr <> " rows as locked and received for qualification " <> tshow qid -- debug, remove later
|
||||||
-- G) Truncate LmsReport for qid and log
|
-- G) Truncate LmsReport for qid, after updating log
|
||||||
|
E.insertSelect $ do
|
||||||
-- CONTINUE HERE
|
lreport <- E.from $ E.table @LmsReport
|
||||||
-- E.insertSelect $ do
|
let samelog = E.subSelect $ do
|
||||||
-- lreport <- E.from $ E.table @LmsReport
|
lrl <- E.from $ E.table @LmsReportLog
|
||||||
-- E.where_ $ lreport E.^. LmsReportQualification E.==. E.val qid
|
E.where_ $ lrl E.^. LmsReportLogQualification E.==. E.val qid
|
||||||
-- E.&&.
|
E.&&. lrl E.^. LmsReportLogIdent E.==. lreport E.^. LmsReportIdent
|
||||||
|
E.orderBy [E.desc $ lrl E.^. LmsReportLogTimestamp]
|
||||||
|
return $ lreport E.^. LmsReportResult E.==. lrl E.^. LmsReportLogResult
|
||||||
|
E.&&. lreport E.^. LmsReportLock E.==. lrl E.^. LmsReportLogLock
|
||||||
|
E.where_ $ lreport E.^. LmsReportQualification E.==. E.val qid
|
||||||
|
E.&&. E.not_ (E.isTrue samelog)
|
||||||
|
return (LmsReportLog
|
||||||
|
E.<# (lreport E.^. LmsReportQualification)
|
||||||
|
E.<&> (lreport E.^. LmsReportIdent )
|
||||||
|
E.<&> (lreport E.^. LmsReportDate )
|
||||||
|
E.<&> (lreport E.^. LmsReportResult )
|
||||||
|
E.<&> (lreport E.^. LmsReportLock )
|
||||||
|
E.<&> (lreport E.^. LmsReportTimestamp ))
|
||||||
repProc <- deleteWhereCount [LmsReportQualification ==. qid]
|
repProc <- deleteWhereCount [LmsReportQualification ==. qid]
|
||||||
$logInfoS "LMS" [st|Processed #{tshow repProc} e-learning status reports for qualification #{tshow qid}.|]
|
$logInfoS "LMS" [st|Processed #{tshow repProc} e-learning status reports for qualification #{tshow qid}.|]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user