From d3fe57664a34f2a1ce59426ae8a1f49280c9db06 Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Mon, 22 Jan 2024 14:43:47 +0530 Subject: [PATCH] chore: state and label serializer change --- apiserver/plane/app/serializers/issue.py | 31 ++++++++++++++++-------- apiserver/plane/app/serializers/state.py | 12 ++++++++- apiserver/plane/app/views/issue.py | 14 ----------- apiserver/plane/app/views/state.py | 17 +------------ apiserver/plane/app/views/workspace.py | 26 +++++--------------- 5 files changed, 39 insertions(+), 61 deletions(-) diff --git a/apiserver/plane/app/serializers/issue.py b/apiserver/plane/app/serializers/issue.py index 0b3b666ce..4f1767ccb 100644 --- a/apiserver/plane/app/serializers/issue.py +++ b/apiserver/plane/app/serializers/issue.py @@ -259,14 +259,17 @@ class IssuePropertySerializer(BaseSerializer): class LabelSerializer(BaseSerializer): - workspace_detail = WorkspaceLiteSerializer( - source="workspace", read_only=True - ) - project_detail = ProjectLiteSerializer(source="project", read_only=True) - class Meta: model = Label - fields = "__all__" + fields = [ + "parent", + "name", + "color", + "id", + "project_id", + "workspace_id", + "sort_order", + ] read_only_fields = [ "workspace", "project", @@ -295,8 +298,12 @@ class IssueLabelSerializer(BaseSerializer): class IssueRelationSerializer(BaseSerializer): id = serializers.UUIDField(source="related_issue.id", read_only=True) - project_id = serializers.PrimaryKeyRelatedField(source="related_issue.project_id", read_only=True) - sequence_id = serializers.IntegerField(source="related_issue.sequence_id", read_only=True) + project_id = serializers.PrimaryKeyRelatedField( + source="related_issue.project_id", read_only=True + ) + sequence_id = serializers.IntegerField( + source="related_issue.sequence_id", read_only=True + ) relation_type = serializers.CharField(read_only=True) class Meta: @@ -315,8 +322,12 @@ class IssueRelationSerializer(BaseSerializer): class RelatedIssueSerializer(BaseSerializer): id = serializers.UUIDField(source="issue.id", read_only=True) - project_id = serializers.PrimaryKeyRelatedField(source="issue.project_id", read_only=True) - sequence_id = serializers.IntegerField(source="issue.sequence_id", read_only=True) + project_id = serializers.PrimaryKeyRelatedField( + source="issue.project_id", read_only=True + ) + sequence_id = serializers.IntegerField( + source="issue.sequence_id", read_only=True + ) relation_type = serializers.CharField(read_only=True) class Meta: diff --git a/apiserver/plane/app/serializers/state.py b/apiserver/plane/app/serializers/state.py index 25dded62d..773d8e461 100644 --- a/apiserver/plane/app/serializers/state.py +++ b/apiserver/plane/app/serializers/state.py @@ -8,7 +8,17 @@ from plane.db.models import State class StateSerializer(BaseSerializer): class Meta: model = State - fields = "__all__" + fields = [ + "id", + "project_id", + "workspace_id", + "name", + "color", + "group", + "default", + "description", + "sequence", + ] read_only_fields = [ "workspace", "project", diff --git a/apiserver/plane/app/views/issue.py b/apiserver/plane/app/views/issue.py index 1d3be0355..0d27b806d 100644 --- a/apiserver/plane/app/views/issue.py +++ b/apiserver/plane/app/views/issue.py @@ -710,20 +710,6 @@ class LabelViewSet(BaseViewSet): .order_by("sort_order") ) - def list(self, request, slug, project_id): - labels = Label.objects.filter( - workspace__slug=slug, project_id=project_id - ).values( - "parent", - "name", - "color", - "id", - "project_id", - "workspace__slug", - "sort_order", - ) - return Response(labels, status=status.HTTP_200_OK) - class BulkDeleteIssuesEndpoint(BaseAPIView): permission_classes = [ diff --git a/apiserver/plane/app/views/state.py b/apiserver/plane/app/views/state.py index 7f56dd247..242061e18 100644 --- a/apiserver/plane/app/views/state.py +++ b/apiserver/plane/app/views/state.py @@ -25,9 +25,6 @@ class StateViewSet(BaseViewSet): ProjectEntityPermission, ] - def perform_create(self, serializer): - serializer.save(project_id=self.kwargs.get("project_id")) - def get_queryset(self): return self.filter_queryset( super() @@ -49,19 +46,7 @@ class StateViewSet(BaseViewSet): return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) def list(self, request, slug, project_id): - states = State.objects.filter( - workspace__slug=slug, project_id=project_id - ).values( - "id", - "project_id", - "workspace__slug", - "name", - "color", - "group", - "default", - "description", - "sequence", - ) + states = StateSerializer(self.get_queryset(), many=True).data grouped = request.GET.get("grouped", False) if grouped == "true": state_dict = {} diff --git a/apiserver/plane/app/views/workspace.py b/apiserver/plane/app/views/workspace.py index f4e488f52..159fbcb08 100644 --- a/apiserver/plane/app/views/workspace.py +++ b/apiserver/plane/app/views/workspace.py @@ -47,6 +47,8 @@ from plane.app.serializers import ( ProjectMemberRoleSerializer, WorkspaceUserPropertiesSerializer, WorkspaceEstimateSerializer, + StateSerializer, + LabelSerializer, ) from plane.app.views.base import BaseAPIView from . import BaseViewSet @@ -1447,16 +1449,9 @@ class WorkspaceLabelsEndpoint(BaseAPIView): labels = Label.objects.filter( workspace__slug=slug, project__project_projectmember__member=request.user, - ).values( - "parent", - "name", - "color", - "id", - "project_id", - "workspace__slug", - "sort_order", ) - return Response(labels, status=status.HTTP_200_OK) + serializer = LabelSerializer(labels, many=True).data + return Response(serializer, status=status.HTTP_200_OK) class WorkspaceStatesEndpoint(BaseAPIView): @@ -1468,18 +1463,9 @@ class WorkspaceStatesEndpoint(BaseAPIView): states = State.objects.filter( workspace__slug=slug, project__project_projectmember__member=request.user, - ).values( - "id", - "project_id", - "workspace__slug", - "name", - "color", - "group", - "default", - "description", - "sequence", ) - return Response(states, status=status.HTTP_200_OK) + serializer = StateSerializer(states, many=True).data + return Response(serializer, status=status.HTTP_200_OK) class WorkspaceEstimatesEndpoint(BaseAPIView):