diff --git a/apps/establishment/models.py b/apps/establishment/models.py index 62f4c49f..41e2ae72 100644 --- a/apps/establishment/models.py +++ b/apps/establishment/models.py @@ -74,6 +74,10 @@ class EstablishmentQuerySet(models.QuerySet): else: return self.none() + def by_country_code(self, code): + """Return establishments by country code""" + return self.filter(address__city__country__code=code) + def prefetch_actual_employees(self): """Prefetch actual employees.""" return self.prefetch_related( diff --git a/apps/establishment/views.py b/apps/establishment/views.py index 10f47b01..146c6f9b 100644 --- a/apps/establishment/views.py +++ b/apps/establishment/views.py @@ -21,6 +21,12 @@ class EstablishmentListView(EstablishmentMixin, JWTGenericViewMixin, generics.Li filter_class = filters.EstablishmentFilter + def get_queryset(self): + """Overrided method 'get_queryset'.""" + return models.Establishment.objects.all()\ + .prefetch_actual_employees()\ + .by_country_code(code=self.request.country_code) + class EstablishmentRetrieveView(EstablishmentMixin, JWTGenericViewMixin, generics.RetrieveAPIView): """Resource for getting a establishment.""" diff --git a/apps/news/filters.py b/apps/news/filters.py index 7af3452d..c4462189 100644 --- a/apps/news/filters.py +++ b/apps/news/filters.py @@ -22,7 +22,7 @@ class NewsListFilterSet(django_filters.FilterSet): """Crappy search by title according to locale""" if value: locale = self.request.locale - filters = {f'{name}__{locale}': value} + filters = {f'{name}__{locale}__icontains': value} return queryset.filter(**filters) else: return queryset