From 3a2d031bb5f5b4d6e5df06f8ec82957a1bc81a72 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 21 Jul 2021 14:46:54 +0200 Subject: [PATCH] fix(authorship-statements): resolve exam-part to exam properly --- src/Handler/Utils/AuthorshipStatement.hs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Handler/Utils/AuthorshipStatement.hs b/src/Handler/Utils/AuthorshipStatement.hs index 7fa8d6d86..9822ef739 100644 --- a/src/Handler/Utils/AuthorshipStatement.hs +++ b/src/Handler/Utils/AuthorshipStatement.hs @@ -75,10 +75,12 @@ getSheetAuthorshipStatement (Entity _ Sheet{..}) = withCompatibleBackend @SqlBac E.where_ $ course E.^. CourseId E.==. E.val sheetCourse return school - let examId = sheetAuthorshipStatementExam - <|> sheetType ^? _examPart . re _SqlKey - <|> sheetRequireExamRegistration - exam <- lift $ traverse getJust examId + let examId = fmap Right sheetAuthorshipStatementExam + <|> fmap Left (sheetType ^? _examPart . re _SqlKey) + <|> fmap Right sheetRequireExamRegistration + exam <- lift . for examId $ \case + Right e -> getJust e + Left epId -> getJust epId >>= getJust . examPartExam let examAuthorshipStatement' = exam >>= examAuthorshipStatement