fix(eo-exams): fix eo-labels query

This commit is contained in:
Sarah Vaupel 2021-12-08 15:01:23 +01:00
parent 80634913c3
commit eba56e4d62

View File

@ -129,21 +129,23 @@ getEOExamsR = do
where
dbtSQLQuery = runReaderT $ do
exam <- view queryExam
mExamLabel <- view queryExamLabel
course <- view queryCourse
school <- view querySchool
mExamLabel <- view queryExamLabel
externalExam <- view queryExternalExam
mExternalExamLabel <- view queryExternalExamLabel
lift $ do
E.on $ externalExam E.?. ExternalExamId E.==. mExternalExamLabel E.?. ExamOfficeExternalExamLabelExternalExam
E.on E.false
E.on $ exam E.?. ExamId E.==. mExamLabel E.?. ExamOfficeExamLabelExam
E.on $ school E.?. SchoolId E.==. course E.?. CourseSchool
E.on $ exam E.?. ExamCourse E.==. course E.?. CourseId
E.where_ $ (E.not_ (E.isNothing $ exam E.?. ExamId) E.&&. E.not_ (E.isNothing $ course E.?. CourseId) E.&&. E.isNothing (externalExam E.?. ExternalExamId))
E.||. ( E.isNothing (exam E.?. ExamId) E.&&. E.isNothing (course E.?. CourseId) E.&&. E.not_ (E.isNothing $ externalExam E.?. ExternalExamId))
return (exam, mExamLabel, course, school, externalExam, mExternalExamLabel)
return (exam, course, school, mExamLabel, externalExam, mExternalExamLabel)
dbtRowKey = views ($(multifocusG 2) queryExam queryExternalExam) (bimap (E.?. ExamId) (E.?. ExternalExamId))
-- [ singletonMap "may-access" . FilterProjected $ \(Any b) r -> (== b) <$> if
@ -161,9 +163,9 @@ getEOExamsR = do
dbtProj :: _ ExamsTableData
dbtProj = (views _dbtProjRow . set _dbrOutput) =<< do -- dbtProjSimple . runReaderT $ do
exam <- view $ _dbtProjRow . _dbrOutput . _1
mExamLabel <- view $ _dbtProjRow . _dbrOutput . _2
course <- view $ _dbtProjRow . _dbrOutput . _3
school <- view $ _dbtProjRow . _dbrOutput . _4
course <- view $ _dbtProjRow . _dbrOutput . _2
school <- view $ _dbtProjRow . _dbrOutput . _3
mExamLabel <- view $ _dbtProjRow . _dbrOutput . _4
externalExam <- view $ _dbtProjRow . _dbrOutput . _5
mExternalExamLabel <- view $ _dbtProjRow . _dbrOutput . _6
@ -200,8 +202,8 @@ getEOExamsR = do
forMM_ (view $ _dbtProjFilter . _etProjFilterHasResults) guard
return Nothing
case (exam, mExamLabel, course, school, externalExam, mExternalExamLabel) of
(Just exam', mExamLabel', Just course', Just school', Nothing, Nothing) -> return
case (exam, course, school, mExamLabel, externalExam, mExternalExamLabel) of
(Just exam', Just course', Just school', mExamLabel', Nothing, Nothing) -> return
(Right (exam', course', school', mExamLabel'), snd <$> mCounts, fst <$> mCounts)
(Nothing, Nothing, Nothing, Nothing, Just externalExam', mExternalExamLabel') -> return
(Left (externalExam', mExternalExamLabel'), snd <$> mCounts, fst <$> mCounts)