diff --git a/core/src/main/java/se/su/dsv/scipro/finalseminar/FinalSeminarServiceImpl.java b/core/src/main/java/se/su/dsv/scipro/finalseminar/FinalSeminarServiceImpl.java index 0af91dca55..54181242e3 100755 --- a/core/src/main/java/se/su/dsv/scipro/finalseminar/FinalSeminarServiceImpl.java +++ b/core/src/main/java/se/su/dsv/scipro/finalseminar/FinalSeminarServiceImpl.java @@ -3,6 +3,7 @@ package se.su.dsv.scipro.finalseminar; import com.google.common.eventbus.EventBus; import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.dsl.BooleanExpression; +import com.querydsl.core.types.dsl.Expressions; import jakarta.inject.Inject; import jakarta.inject.Provider; import jakarta.persistence.EntityManager; @@ -542,19 +543,15 @@ public class FinalSeminarServiceImpl extends AbstractServiceImpl<FinalSeminar, L private BooleanExpression unfinishedSeminars(Date after, Date before) { QFinalSeminar seminar = QFinalSeminar.finalSeminar; + BooleanExpression ungradedParticipant = Expressions.anyOf( + seminar.oppositions.any().grade.isNull(), + seminar.activeParticipations.any().grade.isNull(), + seminar.respondents.any().grade.isNull() + ); if (after == null && before == null) { - return seminar.oppositions - .any() - .grade.isNull() - .or(seminar.activeParticipations.any().grade.isNull().or(seminar.respondents.any().grade.isNull())); + return ungradedParticipant; } else { - return seminar.startDate - .between(after, before) - .andAnyOf( - seminar.oppositions.any().grade.isNull(), - seminar.activeParticipations.any().grade.isNull(), - seminar.respondents.any().grade.isNull() - ); + return seminar.startDate.between(after, before).and(ungradedParticipant); } }