diff --git a/apiserver/plane/app/views/cycle/base.py b/apiserver/plane/app/views/cycle/base.py index d36c36dd5..d6b1dec02 100644 --- a/apiserver/plane/app/views/cycle/base.py +++ b/apiserver/plane/app/views/cycle/base.py @@ -890,7 +890,11 @@ class CycleIssueViewSet(WebhookMixin, BaseViewSet): else: # List Paginate return self.paginate( - order_by=order_by_param, + order_by=( + "-priority_order" + if order_by_param in ["priority", "-priority"] + else order_by_param + ), request=request, queryset=issue_queryset, on_results=lambda issues: issue_on_results( diff --git a/apiserver/plane/app/views/issue/archive.py b/apiserver/plane/app/views/issue/archive.py index f9c59b928..2b42a74ff 100644 --- a/apiserver/plane/app/views/issue/archive.py +++ b/apiserver/plane/app/views/issue/archive.py @@ -213,7 +213,11 @@ class IssueArchiveViewSet(BaseViewSet): else: # List Paginate return self.paginate( - order_by=order_by_param, + order_by=( + "-priority_order" + if order_by_param in ["priority", "-priority"] + else order_by_param + ), request=request, queryset=issue_queryset, on_results=lambda issues: issue_on_results( diff --git a/apiserver/plane/app/views/issue/base.py b/apiserver/plane/app/views/issue/base.py index c54bb87be..6b2375e7d 100644 --- a/apiserver/plane/app/views/issue/base.py +++ b/apiserver/plane/app/views/issue/base.py @@ -213,7 +213,11 @@ class IssueListEndpoint(BaseAPIView): else: # List Paginate return self.paginate( - order_by=order_by_param, + order_by=( + "-priority_order" + if order_by_param in ["priority", "-priority"] + else order_by_param + ), request=request, queryset=issue_queryset, on_results=lambda issues: issue_on_results( diff --git a/apiserver/plane/app/views/issue/draft.py b/apiserver/plane/app/views/issue/draft.py index 24b8b08e0..42c610917 100644 --- a/apiserver/plane/app/views/issue/draft.py +++ b/apiserver/plane/app/views/issue/draft.py @@ -200,7 +200,11 @@ class IssueDraftViewSet(BaseViewSet): else: # List Paginate return self.paginate( - order_by=order_by_param, + order_by=( + "-priority_order" + if order_by_param in ["priority", "-priority"] + else order_by_param + ), request=request, queryset=issue_queryset, on_results=lambda issues: issue_on_results( diff --git a/apiserver/plane/app/views/module/base.py b/apiserver/plane/app/views/module/base.py index 0c47c928e..e0bcc8feb 100644 --- a/apiserver/plane/app/views/module/base.py +++ b/apiserver/plane/app/views/module/base.py @@ -614,7 +614,11 @@ class ModuleIssueViewSet(WebhookMixin, BaseViewSet): else: # List Paginate return self.paginate( - order_by=order_by_param, + order_by=( + "-priority_order" + if order_by_param in ["priority", "-priority"] + else order_by_param + ), request=request, queryset=issue_queryset, on_results=lambda issues: issue_on_results( diff --git a/apiserver/plane/app/views/view/base.py b/apiserver/plane/app/views/view/base.py index d813414e4..fbc7db810 100644 --- a/apiserver/plane/app/views/view/base.py +++ b/apiserver/plane/app/views/view/base.py @@ -259,7 +259,11 @@ class GlobalViewIssuesViewSet(BaseViewSet): else: # List Paginate return self.paginate( - order_by=order_by_param, + order_by=( + "-priority_order" + if order_by_param in ["priority", "-priority"] + else order_by_param + ), request=request, queryset=issue_queryset, on_results=lambda issues: issue_on_results( diff --git a/apiserver/plane/space/views/issue.py b/apiserver/plane/space/views/issue.py index 92653f721..77f1097ad 100644 --- a/apiserver/plane/space/views/issue.py +++ b/apiserver/plane/space/views/issue.py @@ -663,7 +663,11 @@ class ProjectIssuesPublicEndpoint(BaseAPIView): else: # List Paginate return self.paginate( - order_by=order_by_param, + order_by=( + "-priority_order" + if order_by_param in ["priority", "-priority"] + else order_by_param + ), request=request, queryset=issue_queryset, on_results=lambda issues: issue_on_results( diff --git a/apiserver/plane/utils/paginator.py b/apiserver/plane/utils/paginator.py index f1b23d49f..d08887841 100644 --- a/apiserver/plane/utils/paginator.py +++ b/apiserver/plane/utils/paginator.py @@ -6,9 +6,9 @@ from collections.abc import Sequence # Django imports from django.db.models import Count, F, Window from django.db.models.functions import RowNumber -from rest_framework.exceptions import ParseError # Third party imports +from rest_framework.exceptions import ParseError from rest_framework.response import Response # Module imports @@ -115,7 +115,9 @@ class OffsetPaginator: queryset = self.queryset if self.key: - queryset = queryset.order_by(*self.key) + queryset = queryset.order_by( + *self.key, + ) page = cursor.offset offset = cursor.offset * cursor.value @@ -506,12 +508,6 @@ class SubGroupedOffsetPaginator(OffsetPaginator): for group in self.group_by_fields } - def __result_already_added(self, result, group): - for existing_issue in group: - if existing_issue["id"] == result["id"]: - return True - return False - def __query_multi_grouper(self, results): processed_results = self.__get_field_dict() # Preparing a dict to keep track of group IDs associated with each label ID