From aaa27d086cb93bcdbd5bf0feeb5488f05bc6410f Mon Sep 17 00:00:00 2001 From: mohsentaba Date: Mon, 31 Aug 2026 06:27:45 +0330 Subject: [PATCH] feat(hadis): filter root categories by default in CategoriesBySectView for accurate total counts - Add is_root query param filter defaulting to true (parent__isnull=True) in CategoriesBySectView - Ensure pagination count returns total count of root categories for the sect --- apps/hadis/views/category.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/hadis/views/category.py b/apps/hadis/views/category.py index 5c2b394..32ba87b 100644 --- a/apps/hadis/views/category.py +++ b/apps/hadis/views/category.py @@ -399,7 +399,17 @@ class CategoriesBySectView(ListAPIView): def get_queryset(self): sect_type = self.kwargs.get('sect_type') - return HadisCategory.objects.filter(sect__sect_type=sect_type) + queryset = HadisCategory.objects.filter( + sect__sect_type=sect_type, + sect__is_active=True + ) + is_root = self.request.query_params.get('is_root', 'true').lower() + if is_root in ['true', '1']: + queryset = queryset.filter(parent__isnull=True) + elif is_root in ['false', '0']: + queryset = queryset.filter(parent__isnull=False) + + return queryset.order_by('order', 'id') @categories_by_sect_swagger def get(self, request, *args, **kwargs):