29 lines
744 B
Python
29 lines
744 B
Python
"""Filters from application News"""
|
|
import django_filters
|
|
|
|
from news import models
|
|
|
|
|
|
class NewsListFilterSet(django_filters.FilterSet):
|
|
"""FilterSet for News list"""
|
|
|
|
is_highlighted = django_filters.BooleanFilter()
|
|
title = django_filters.CharFilter(method='by_title')
|
|
|
|
class Meta:
|
|
"""Meta class"""
|
|
model = models.News
|
|
fields = (
|
|
'title',
|
|
'is_highlighted',
|
|
)
|
|
|
|
def by_title(self, queryset, name, value):
|
|
"""Crappy search by title according to locale"""
|
|
if value:
|
|
locale = self.request.locale
|
|
filters = {f'{name}__{locale}__icontains': value}
|
|
return queryset.filter(**filters)
|
|
else:
|
|
return queryset
|