refactor: update response structure for cycle issue and module issues (#432)

This commit is contained in:
pablohashescobar 2023-03-15 23:21:37 +05:30 committed by GitHub
parent c07cfee018
commit ab9e0cf559
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 61 additions and 11 deletions

View file

@ -19,6 +19,7 @@ from plane.api.serializers import (
ModuleIssueSerializer,
ModuleLinkSerializer,
ModuleFavoriteSerializer,
IssueStateSerializer,
)
from plane.api.permissions import ProjectEntityPermission
from plane.db.models import (
@ -153,20 +154,39 @@ class ModuleIssueViewSet(BaseViewSet):
def list(self, request, slug, project_id, module_id):
try:
order_by = request.GET.get("order_by", "issue__created_at")
queryset = self.get_queryset().order_by(f"issue__{order_by}")
order_by = request.GET.get("order_by", "created_at")
group_by = request.GET.get("group_by", False)
module_issues = ModuleIssueSerializer(queryset, many=True).data
issues = (
Issue.objects.filter(issue_module__module_id=module_id)
.annotate(
sub_issues_count=Issue.objects.filter(parent=OuterRef("id"))
.order_by()
.annotate(count=Func(F("id"), function="Count"))
.values("count")
)
.annotate(bridge_id=F("issue_module__id"))
.filter(project_id=project_id)
.filter(workspace__slug=slug)
.select_related("project")
.select_related("workspace")
.select_related("state")
.select_related("parent")
.prefetch_related("assignees")
.prefetch_related("labels")
.order_by(order_by)
)
issues_data = IssueStateSerializer(issues, many=True).data
if group_by:
return Response(
group_results(module_issues, f"issue_detail.{group_by}"),
group_results(issues_data, group_by),
status=status.HTTP_200_OK,
)
return Response(
module_issues,
issues_data,
status=status.HTTP_200_OK,
)
except Exception as e: