mirror of
https://github.com/makeplane/plane.git
synced 2026-07-13 05:49:40 +02:00
[WEB-3518] fix: customer search endpoint to remove duplicate entries (#2723)
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user