diff --git a/apiserver/plane/ee/views/app/customer/search.py b/apiserver/plane/ee/views/app/customer/search.py index f1416a6a2b..2979b386ed 100644 --- a/apiserver/plane/ee/views/app/customer/search.py +++ b/apiserver/plane/ee/views/app/customer/search.py @@ -16,6 +16,7 @@ from plane.app.permissions import WorkSpaceAdminPermission from plane.ee.models.issue import Issue from plane.ee.models.customer import CustomerRequestIssue + class CustomerIssueSearchEndpoint(BaseAPIView): permission_classes = [WorkSpaceAdminPermission] @@ -34,39 +35,45 @@ class CustomerIssueSearchEndpoint(BaseAPIView): q |= Q(**{f"{field}__icontains": query}) issue_ids = CustomerRequestIssue.objects.filter( - customer_id=customer_id, - deleted_at__isnull=True - ).values_list('issue_id', flat=True) + customer_id=customer_id, deleted_at__isnull=True + ).values_list("issue_id", flat=True) - issues = Issue.objects.filter( - q, - project__project_projectmember__member=self.request.user, - project__project_projectmember__is_active=True, - project__archived_at__isnull=True, - workspace__slug=slug, - ).filter( - Q(type_id__isnull=True) | Q(project__project_projectfeature__is_epic_enabled=True) - ).exclude(id__in=issue_ids) + issues = ( + Issue.objects.filter( + q, + project__project_projectmember__member=self.request.user, + project__project_projectmember__is_active=True, + project__archived_at__isnull=True, + workspace__slug=slug, + ) + .filter( + Q(issue_intake__status=1) + | Q(issue_intake__status=-1) + | Q(issue_intake__status=2) + | Q(issue_intake__isnull=True) + ) + .filter( + Q(type_id__isnull=True) + | Q(project__project_projectfeature__is_epic_enabled=True) + ) + .exclude(id__in=issue_ids) + ) issues = issues.distinct().values( - "id", - "name", - "state_id", - "sort_order", + "id", + "name", + "state_id", + "sort_order", "priority", - "sequence_id", - "project_id", + "sequence_id", + "project_id", "project__identifier", "created_at", "updated_at", "created_by", "updated_by", - "labels", "type_id", - "assignees", - is_epic=F("type__is_epic") + is_epic=F("type__is_epic"), )[:100] return Response(issues, status=status.HTTP_200_OK) - - \ No newline at end of file