From 6db3cf2b4d7559601322f87c36bedfc8e1774f12 Mon Sep 17 00:00:00 2001 From: pablohashescobar <118773738+pablohashescobar@users.noreply.github.com> Date: Wed, 11 Jan 2023 14:44:35 +0530 Subject: [PATCH] feat: return workspace member count on user workspace endpoint (#162) --- apiserver/plane/api/serializers/workspace.py | 1 + apiserver/plane/api/views/workspace.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apiserver/plane/api/serializers/workspace.py b/apiserver/plane/api/serializers/workspace.py index fe180bbd8..6936101ec 100644 --- a/apiserver/plane/api/serializers/workspace.py +++ b/apiserver/plane/api/serializers/workspace.py @@ -12,6 +12,7 @@ from plane.db.models import Workspace, WorkspaceMember, Team, WorkspaceMemberInv class WorkSpaceSerializer(BaseSerializer): owner = UserLiteSerializer(read_only=True) + total_members = serializers.IntegerField(read_only=True) class Meta: model = Workspace diff --git a/apiserver/plane/api/views/workspace.py b/apiserver/plane/api/views/workspace.py index b9e3bc6dd..53f0159c4 100644 --- a/apiserver/plane/api/views/workspace.py +++ b/apiserver/plane/api/views/workspace.py @@ -10,7 +10,7 @@ from django.utils import timezone from django.core.exceptions import ValidationError from django.core.validators import validate_email from django.contrib.sites.shortcuts import get_current_site -from django.db.models import CharField +from django.db.models import CharField, Count from django.db.models.functions import Cast # Third party modules @@ -119,7 +119,8 @@ class UserWorkSpacesEndpoint(BaseAPIView): workspace_member__member=request.user, ) .select_related("owner") - ) + ).annotate(total_members=Count("workspace_member")) + serializer = WorkSpaceSerializer(self.filter_queryset(workspace), many=True) return Response(serializer.data, status=status.HTTP_200_OK)