"""Establishment app filters.""" from django.core.validators import EMPTY_VALUES from django_filters import rest_framework as filters from establishment import models class EstablishmentFilter(filters.FilterSet): """Establishment filterset.""" tag_id = filters.NumberFilter(field_name='tags__metadata__id',) award_id = filters.NumberFilter(field_name='awards__id',) search = filters.CharFilter(method='search_text') class Meta: """Meta class.""" model = models.Establishment fields = ( 'tag_id', 'award_id', 'search', ) def search_text(self, queryset, name, value): """Search text.""" if value not in EMPTY_VALUES: return queryset.search(value, locale=self.request.locale) return queryset