From 5c27c5d5bb0aa2d081066cf52dec515fa2bb3bd9 Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Mon, 16 Jun 2025 19:03:12 +0300 Subject: [PATCH] Features: 1) Add `level` filter to replace `children_present` in category filtering; Fixes: 1) Remove unused `filter_children_presence` method to clean up filters; Extra: 1) Update filters documentation and labels for clarity. --- core/filters.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/core/filters.py b/core/filters.py index 425a84ae..d350c595 100644 --- a/core/filters.py +++ b/core/filters.py @@ -323,8 +323,7 @@ class CategoryFilter(FilterSet): parent_uuid = CharFilter(method="filter_parent_uuid", label=_("Parent")) slug = CharFilter(field_name="slug", lookup_expr="exact", label=_("Slug")) tags = CaseInsensitiveListFilter(field_name="tags__tag_name", label=_("Tags")) - children_present = BooleanFilter(method="filter_children_presence", field_name="children_present", - label=_("children present")) + level = NumberFilter(field_name="level", lookup_expr="exact", label=_("Level")) order_by = OrderingFilter( fields=( @@ -338,12 +337,6 @@ class CategoryFilter(FilterSet): model = Category fields = ["uuid", "name", "parent_uuid", "slug", "tags"] - def filter_children_presence(self, queryset, _name, value): - if value: - return queryset.filter(children__isnull=False) - else: - return queryset.filter(children__isnull=True) - def filter_parent_uuid(self, queryset, _name, value): if value in ("", "null", "None"): return queryset.filter(parent=None)