From ea552fc3ba70cf6c13e294b63771b76b498a366f Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Mon, 16 Jun 2025 09:33:56 +0300 Subject: [PATCH] Features: 1) Add prefetch for "tags" in `CategoryViewSet` queryset; Fixes: 1) Simplify `CaseInsensitiveListFilter` by removing redundant debug logs; Extra: 1) Remove unused conditional filtering for parent category in `CategoryViewSet`. --- core/filters.py | 8 -------- core/viewsets.py | 4 +--- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/core/filters.py b/core/filters.py index f2513bdb..311d574e 100644 --- a/core/filters.py +++ b/core/filters.py @@ -24,19 +24,14 @@ logger = logging.getLogger(__name__) class CaseInsensitiveListFilter(BaseInFilter, CharFilter): def filter(self, qs, value): - logger.debug("CaseInsensitiveListFilter got value: %s", value) if not value: return qs - values = [] - if isinstance(value, str): values = [v.strip() for v in value.split(',') if v.strip()] else: values = [v for v in value if v] - logger.debug("CaseInsensitiveListFilter value splitted: %s", values) - if not values: return qs @@ -46,9 +41,6 @@ class CaseInsensitiveListFilter(BaseInFilter, CharFilter): else: qs = qs.filter(q).distinct() - logger.debug("CaseInsensitiveListFilter Q: %s", str(q)) - logger.debug("CaseInsensitiveListFilter qs: %s", str(qs)) - return qs diff --git a/core/viewsets.py b/core/viewsets.py index 219ce3a4..c8360533 100644 --- a/core/viewsets.py +++ b/core/viewsets.py @@ -157,7 +157,7 @@ class AttributeValueViewSet(EvibesViewSet): @extend_schema_view(**CATEGORY_SCHEMA) class CategoryViewSet(EvibesViewSet): - queryset = Category.objects.all().prefetch_related("parent", "children", "attributes") + queryset = Category.objects.all().prefetch_related("parent", "children", "attributes", "tags") filter_backends = [DjangoFilterBackend] filterset_class = CategoryFilter serializer_class = CategoryDetailSerializer @@ -167,8 +167,6 @@ class CategoryViewSet(EvibesViewSet): def get_queryset(self): qs = super().get_queryset() - if self.action == "list": - qs = qs.filter(parent=None) if self.request.user.has_perm("core.view_category"): return qs return qs.filter(is_active=True)