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`.
This commit is contained in:
parent
4f010da204
commit
ea552fc3ba
2 changed files with 1 additions and 11 deletions
|
|
@ -24,19 +24,14 @@ logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
class CaseInsensitiveListFilter(BaseInFilter, CharFilter):
|
class CaseInsensitiveListFilter(BaseInFilter, CharFilter):
|
||||||
def filter(self, qs, value):
|
def filter(self, qs, value):
|
||||||
logger.debug("CaseInsensitiveListFilter got value: %s", value)
|
|
||||||
if not value:
|
if not value:
|
||||||
return qs
|
return qs
|
||||||
|
|
||||||
values = []
|
|
||||||
|
|
||||||
if isinstance(value, str):
|
if isinstance(value, str):
|
||||||
values = [v.strip() for v in value.split(',') if v.strip()]
|
values = [v.strip() for v in value.split(',') if v.strip()]
|
||||||
else:
|
else:
|
||||||
values = [v for v in value if v]
|
values = [v for v in value if v]
|
||||||
|
|
||||||
logger.debug("CaseInsensitiveListFilter value splitted: %s", values)
|
|
||||||
|
|
||||||
if not values:
|
if not values:
|
||||||
return qs
|
return qs
|
||||||
|
|
||||||
|
|
@ -46,9 +41,6 @@ class CaseInsensitiveListFilter(BaseInFilter, CharFilter):
|
||||||
else:
|
else:
|
||||||
qs = qs.filter(q).distinct()
|
qs = qs.filter(q).distinct()
|
||||||
|
|
||||||
logger.debug("CaseInsensitiveListFilter Q: %s", str(q))
|
|
||||||
logger.debug("CaseInsensitiveListFilter qs: %s", str(qs))
|
|
||||||
|
|
||||||
return qs
|
return qs
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -157,7 +157,7 @@ class AttributeValueViewSet(EvibesViewSet):
|
||||||
|
|
||||||
@extend_schema_view(**CATEGORY_SCHEMA)
|
@extend_schema_view(**CATEGORY_SCHEMA)
|
||||||
class CategoryViewSet(EvibesViewSet):
|
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]
|
filter_backends = [DjangoFilterBackend]
|
||||||
filterset_class = CategoryFilter
|
filterset_class = CategoryFilter
|
||||||
serializer_class = CategoryDetailSerializer
|
serializer_class = CategoryDetailSerializer
|
||||||
|
|
@ -167,8 +167,6 @@ class CategoryViewSet(EvibesViewSet):
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
qs = super().get_queryset()
|
qs = super().get_queryset()
|
||||||
if self.action == "list":
|
|
||||||
qs = qs.filter(parent=None)
|
|
||||||
if self.request.user.has_perm("core.view_category"):
|
if self.request.user.has_perm("core.view_category"):
|
||||||
return qs
|
return qs
|
||||||
return qs.filter(is_active=True)
|
return qs.filter(is_active=True)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue