Skip to content

Commit 7065768

Browse files
matti-lamppuranta
authored andcommitted
Fix application round application and reservation unit counts
1 parent 553ab7e commit 7065768

1 file changed

Lines changed: 14 additions & 5 deletions

File tree

  • api/graphql/types/application_round

api/graphql/types/application_round/types.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77
from api.graphql.types.application_round.filtersets import ApplicationRoundFilterSet
88
from api.graphql.types.application_round.permissions import ApplicationRoundPermission
99
from applications.enums import ApplicationRoundReservationCreationStatusChoice, ApplicationRoundStatusChoice
10-
from applications.models import ApplicationRound
10+
from applications.models import Application, ApplicationRound
11+
from common.db import SubqueryCount
1112
from common.typing import GQLInfo
13+
from reservation_units.models import ReservationUnit
1214

1315

1416
class 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

Comments
 (0)