77from api .graphql .types .application_round .filtersets import ApplicationRoundFilterSet
88from api .graphql .types .application_round .permissions import ApplicationRoundPermission
99from applications .enums import ApplicationRoundReservationCreationStatusChoice , ApplicationRoundStatusChoice
10- from applications .models import ApplicationRound
10+ from applications .models import Application , ApplicationRound
11+ from common .db import SubqueryCount
1112from common .typing import GQLInfo
13+ from reservation_units .models import ReservationUnit
1214
1315
1416class ApplicationRoundNode (DjangoNode ):
@@ -30,14 +32,21 @@ class ApplicationRoundNode(DjangoNode):
3032 )
3133 applications_count = AnnotatedField (
3234 graphene .Int ,
33- expression = models .Count (
34- "applications" ,
35- filter = models .Q (applications__cancelled_date__isnull = True , applications__sent_date__isnull = False ),
35+ expression = SubqueryCount (
36+ queryset = Application .objects .filter (
37+ application_round = models .OuterRef ("pk" ),
38+ cancelled_date__isnull = True ,
39+ sent_date__isnull = False ,
40+ ),
3641 ),
3742 )
3843 reservation_unit_count = AnnotatedField (
3944 graphene .Int ,
40- expression = models .Count ("reservation_units" ),
45+ expression = SubqueryCount (
46+ queryset = ReservationUnit .objects .filter (
47+ application_rounds = models .OuterRef ("pk" ),
48+ ),
49+ ),
4150 )
4251
4352 class Meta :
0 commit comments