From bc3ddafbceb9e4a8537595ed48d860063bae7046 Mon Sep 17 00:00:00 2001 From: Matthew Elwell Date: Thu, 29 Aug 2024 12:23:58 +0100 Subject: [PATCH] fix: incorrect statistics in organisation admin list (#4546) --- api/organisations/admin.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/api/organisations/admin.py b/api/organisations/admin.py index f7987533b1c6..4fe6260ef5b2 100644 --- a/api/organisations/admin.py +++ b/api/organisations/admin.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.contrib import admin -from django.db.models import Count +from django.db.models import Count, Q from organisations.models import Organisation, Subscription, UserOrganisation from projects.models import Project @@ -49,12 +49,18 @@ class OrganisationAdmin(admin.ModelAdmin): list_filter = ("subscription__plan",) search_fields = ("id", "name", "subscription__subscription_id", "users__email") - def get_queryset(self, request): + def get_queryset(self, request): # pragma: no cover return ( Organisation.objects.select_related("subscription") .annotate( - num_users=Count("users", distinct=True), - num_projects=Count("projects", distinct=True), + num_users=Count( + "users", distinct=True, filter=Q(users__is_active=True) + ), + num_projects=Count( + "projects", + distinct=True, + filter=Q(projects__deleted_at__isnull=True), + ), ) .all() )