[WEB-3518] fix: customer search endpoint to remove duplicate entries (#2723)

This commit is contained in:
Nikhil
2025-03-12 16:38:50 +05:30
committed by GitHub
parent 86ee122596
commit 0b8f4273fb

View File

@@ -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)