chore: project views id mapped

This commit is contained in:
NarayanBavisetti 2023-12-13 12:58:41 +05:30
parent 47fb0da5cd
commit b11852f14f
2 changed files with 10 additions and 6 deletions

View File

@ -2,7 +2,7 @@
from rest_framework import serializers from rest_framework import serializers
# Module imports # Module imports
from .base import BaseSerializer from .base import BaseSerializer, DynamicBaseSerializer
from .workspace import WorkspaceLiteSerializer from .workspace import WorkspaceLiteSerializer
from .project import ProjectLiteSerializer from .project import ProjectLiteSerializer
from plane.db.models import GlobalView, IssueView, IssueViewFavorite from plane.db.models import GlobalView, IssueView, IssueViewFavorite
@ -38,7 +38,7 @@ class GlobalViewSerializer(BaseSerializer):
return super().update(instance, validated_data) return super().update(instance, validated_data)
class IssueViewSerializer(BaseSerializer): class IssueViewSerializer(DynamicBaseSerializer):
is_favorite = serializers.BooleanField(read_only=True) is_favorite = serializers.BooleanField(read_only=True)
project_detail = ProjectLiteSerializer(source="project", read_only=True) project_detail = ProjectLiteSerializer(source="project", read_only=True)
workspace_detail = WorkspaceLiteSerializer(source="workspace", read_only=True) workspace_detail = WorkspaceLiteSerializer(source="workspace", read_only=True)

View File

@ -181,10 +181,7 @@ class GlobalViewIssuesViewSet(BaseViewSet):
issues = IssueLiteSerializer(issue_queryset, many=True, fields=fields if fields else None).data issues = IssueLiteSerializer(issue_queryset, many=True, fields=fields if fields else None).data
issue_dict = {str(issue["id"]): issue for issue in issues} issue_dict = {str(issue["id"]): issue for issue in issues}
return Response( return Response(issue_dict, status=status.HTTP_200_OK)
issue_dict,
status=status.HTTP_200_OK,
)
class IssueViewViewSet(BaseViewSet): class IssueViewViewSet(BaseViewSet):
@ -216,6 +213,13 @@ class IssueViewViewSet(BaseViewSet):
.order_by("-is_favorite", "name") .order_by("-is_favorite", "name")
.distinct() .distinct()
) )
def list(self, request, slug, project_id):
queryset = self.get_queryset()
fields = [field for field in request.GET.get("fields", "").split(",") if field]
views = IssueViewSerializer(queryset, many=True, fields=fields if fields else None).data
views_dict = {str(view["id"]): view for view in views}
return Response(views_dict, status=status.HTTP_200_OK)
class IssueViewFavoriteViewSet(BaseViewSet): class IssueViewFavoriteViewSet(BaseViewSet):