From db1c5b95138e8bf641208bfae00e9e07e1cc0295 Mon Sep 17 00:00:00 2001 From: KanteshMurade <97043824+KanteshMurade@users.noreply.github.com> Date: Wed, 29 Apr 2026 02:01:46 +0530 Subject: [PATCH] fix: filter out soft-deleted states from API endpoints (#8840) * fix: filter out soft-deleted states from API endpoints - Add deleted_at__isnull=True filter to StateListCreateAPIEndpoint.get_queryset() - Add deleted_at__isnull=True filter to StateDetailAPIEndpoint.get_queryset() - Prevents soft-deleted states from reappearing in UI after navigation - Fixes #8829 * Fix: exclude issues linked to soft-deleted states --- apps/api/plane/app/views/issue/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/api/plane/app/views/issue/base.py b/apps/api/plane/app/views/issue/base.py index bb331802c8..d9e2ea5a5a 100644 --- a/apps/api/plane/app/views/issue/base.py +++ b/apps/api/plane/app/views/issue/base.py @@ -99,6 +99,7 @@ class IssueListEndpoint(BaseAPIView): # Apply legacy filters filters = issue_filters(request.query_params, "GET") issue_queryset = queryset.filter(**filters) + issue_queryset = issue_queryset.filter(state__deleted_at__isnull=True) # Add select_related, prefetch_related if fields or expand is not None if self.fields or self.expand: @@ -157,7 +158,7 @@ class IssueListEndpoint(BaseAPIView): ) if self.fields or self.expand: - issues = IssueSerializer(queryset, many=True, fields=self.fields, expand=self.expand).data + issues = IssueSerializer(issue_queryset, many=True, fields=self.fields, expand=self.expand).data else: issues = issue_queryset.values( "id",