fix: issues paginated

This commit is contained in:
NarayanBavisetti 2024-02-13 15:19:48 +05:30
parent 247937d93a
commit 5bf739d228
6 changed files with 48 additions and 26 deletions

View File

@ -628,10 +628,13 @@ class CycleIssueViewSet(WebhookMixin, BaseViewSet):
)
)
)
serializer = IssueSerializer(
issues, many=True, fields=fields if fields else None
return self.paginate(
request=request,
queryset=issues,
on_results=lambda issues: IssueSerializer(
issues, many=True, fields=fields if fields else None, expand=self.expand
).data,
)
return Response(serializer.data, status=status.HTTP_200_OK)
def create(self, request, slug, project_id, cycle_id):
issues = request.data.get("issues", [])

View File

@ -224,10 +224,13 @@ class IssueViewSet(WebhookMixin, BaseViewSet):
else:
issue_queryset = issue_queryset.order_by(order_by_param)
issues = IssueSerializer(
issue_queryset, many=True, fields=self.fields, expand=self.expand
).data
return Response(issues, status=status.HTTP_200_OK)
return self.paginate(
request=request,
queryset=issue_queryset,
on_results=lambda issues: IssueSerializer(
issues, many=True, fields=self.fields, expand=self.expand
).data,
)
def create(self, request, slug, project_id):
project = Project.objects.get(pk=project_id)
@ -1202,11 +1205,13 @@ class IssueArchiveViewSet(BaseViewSet):
if show_sub_issues == "true"
else issue_queryset.filter(parent__isnull=True)
)
issues = IssueSerializer(
issue_queryset, many=True, fields=fields if fields else None
).data
return Response(issues, status=status.HTTP_200_OK)
return self.paginate(
request=request,
queryset=issue_queryset,
on_results=lambda issues: IssueSerializer(
issues, many=True, fields=fields if fields else None, expand=self.expand
).data,
)
def retrieve(self, request, slug, project_id, pk=None):
issue = Issue.objects.get(
@ -1793,10 +1798,13 @@ class IssueDraftViewSet(BaseViewSet):
else:
issue_queryset = issue_queryset.order_by(order_by_param)
issues = IssueSerializer(
issue_queryset, many=True, fields=fields if fields else None
).data
return Response(issues, status=status.HTTP_200_OK)
return self.paginate(
request=request,
queryset=issue_queryset,
on_results=lambda issues: IssueSerializer(
issues, many=True, fields=fields if fields else None, expand=self.expand
).data,
)
def create(self, request, slug, project_id):
project = Project.objects.get(pk=project_id)

View File

@ -376,10 +376,13 @@ class ModuleIssueViewSet(WebhookMixin, BaseViewSet):
]
filters = issue_filters(request.query_params, "GET")
issue_queryset = self.get_queryset().filter(**filters)
serializer = IssueSerializer(
issue_queryset, many=True, fields=fields if fields else None
return self.paginate(
request=request,
queryset=issue_queryset,
on_results=lambda issues: IssueSerializer(
issues, many=True, fields=fields if fields else None, expand=self.expand
).data,
)
return Response(serializer.data, status=status.HTTP_200_OK)
# create multiple issues inside a module
def create_module_issues(self, request, slug, project_id, module_id):

View File

@ -207,10 +207,13 @@ class GlobalViewIssuesViewSet(BaseViewSet):
else:
issue_queryset = issue_queryset.order_by(order_by_param)
serializer = IssueSerializer(
issue_queryset, many=True, fields=fields if fields else None
return self.paginate(
request=request,
queryset=issue_queryset,
on_results=lambda issues: IssueSerializer(
issues, many=True, fields=fields if fields else None, expand=self.expand
).data,
)
return Response(serializer.data, status=status.HTTP_200_OK)
class IssueViewViewSet(BaseViewSet):

View File

@ -1433,10 +1433,13 @@ class WorkspaceUserProfileIssuesEndpoint(BaseAPIView):
else:
issue_queryset = issue_queryset.order_by(order_by_param)
issues = IssueSerializer(
issue_queryset, many=True, fields=fields if fields else None
).data
return Response(issues, status=status.HTTP_200_OK)
return self.paginate(
request=request,
queryset=issue_queryset,
on_results=lambda issues: IssueSerializer(
issues, many=True, fields=fields if fields else None, expand=self.expand
).data,
)
class WorkspaceLabelsEndpoint(BaseAPIView):

View File

@ -147,6 +147,8 @@ def send_email_notification(
issue_id, notification_data, receiver_id, email_notification_ids
):
try:
if not issue_id:
return
ri = redis_instance()
base_api = (ri.get(str(issue_id)).decode())
data = create_payload(notification_data=notification_data)