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