Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions apps/api/plane/api/views/issue.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@
IssueLinkUpdateSerializer,
LabelCreateUpdateSerializer,
)
from plane.utils.filters import ComplexFilterBackend, IssueFilterSet
from plane.utils.issue_filters import issue_filters
from plane.app.permissions import (
ProjectEntityPermission,
ProjectLitePermission,
Expand Down Expand Up @@ -245,6 +247,8 @@ class IssueListCreateAPIEndpoint(BaseAPIView):
permission_classes = [ProjectEntityPermission]
serializer_class = IssueSerializer
use_read_replica = True
filter_backends = (ComplexFilterBackend,)
filterset_class = IssueFilterSet

def get_queryset(self):
return (
Expand Down Expand Up @@ -343,6 +347,15 @@ def get(self, request, slug, project_id):

total_issue_queryset = Issue.issue_objects.filter(project_id=project_id, workspace__slug=slug)

# Apply both JSON filters (ComplexFilterBackend) and legacy query param filters
issue_queryset = self.filter_queryset(issue_queryset)
total_issue_queryset = self.filter_queryset(total_issue_queryset)

legacy_filters = issue_filters(request.query_params, "GET")
if legacy_filters:
issue_queryset = issue_queryset.filter(**legacy_filters)
total_issue_queryset = total_issue_queryset.filter(**legacy_filters)

# Priority Ordering
if order_by_param == "priority" or order_by_param == "-priority":
priority_order = priority_order if order_by_param == "priority" else priority_order[::-1]
Expand Down