diff --git a/apps/api/plane/api/views/issue.py b/apps/api/plane/api/views/issue.py index d3686ceea..c6fd073bf 100644 --- a/apps/api/plane/api/views/issue.py +++ b/apps/api/plane/api/views/issue.py @@ -987,12 +987,12 @@ class LabelDetailAPIEndpoint(LabelListCreateAPIEndpoint): serializer = LabelCreateUpdateSerializer(label, data=request.data, partial=True) if serializer.is_valid(): if ( - str(request.data.get("external_id")) - and (label.external_id != str(request.data.get("external_id"))) + request.data.get("external_id") + and request.data.get("external_source") and Label.objects.filter( project_id=project_id, workspace__slug=slug, - external_source=request.data.get("external_source", label.external_source), + external_source=request.data.get("external_source"), external_id=request.data.get("external_id"), ) .exclude(id=pk) @@ -1695,23 +1695,27 @@ class IssueActivityDetailAPIEndpoint(BaseAPIView): Retrieve details of a specific activity. Excludes comment, vote, reaction, and draft activities. """ - issue_activities = ( - IssueActivity.objects.filter(issue_id=issue_id, workspace__slug=slug, project_id=project_id) - .filter( - ~Q(field__in=["comment", "vote", "reaction", "draft"]), - project__project_projectmember__member=self.request.user, - project__project_projectmember__is_active=True, + issue_activity = ( + ( + IssueActivity.objects.filter(issue_id=issue_id, workspace__slug=slug, project_id=project_id, id=pk) + .filter( + ~Q(field__in=["comment", "vote", "reaction", "draft"]), + project__project_projectmember__member=self.request.user, + project__project_projectmember__is_active=True, + ) + .filter(project__archived_at__isnull=True) + .select_related("actor", "workspace", "issue", "project") ) - .filter(project__archived_at__isnull=True) - .select_related("actor", "workspace", "issue", "project") - ).order_by(request.GET.get("order_by", "created_at")) + .order_by(request.GET.get("order_by", "created_at")) + .first() + ) - return self.paginate( - request=request, - queryset=(issue_activities), - on_results=lambda issue_activity: IssueActivitySerializer( - issue_activity, many=True, fields=self.fields, expand=self.expand - ).data, + if not issue_activity: + return Response({"message": "Activity not found.", "code": "NOT_FOUND"}, status=status.HTTP_404_NOT_FOUND) + + return Response( + IssueActivitySerializer(issue_activity, fields=self.fields, expand=self.expand).data, + status=status.HTTP_200_OK, )