From 7ba391300049824f3957b3af02bf5f611772abf5 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 20 Nov 2019 16:17:49 +0300 Subject: [PATCH] award filter --- apps/main/filters.py | 37 +++++++++++++++++++++++++++++++++++++ apps/main/models.py | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 apps/main/filters.py diff --git a/apps/main/filters.py b/apps/main/filters.py new file mode 100644 index 00000000..e3a05a71 --- /dev/null +++ b/apps/main/filters.py @@ -0,0 +1,37 @@ +from django.core.validators import EMPTY_VALUES +from django_filters import rest_framework as filters + +from review import models + + +class AwardFilter(filters.FilterSet): + """Award filter set.""" + + establishment_id = filters.NumberFilter(field_name='object_id', ) + product_id = filters.NumberFilter(field_name='object_id', ) + employee_id = filters.NumberFilter(field_name='object_id', ) + + class Meta: + """Meta class.""" + + model = models.Review + fields = ( + 'establishment_id', + 'product_id', + 'employee_id', + ) + + def by_establishment_id(self, queryset, name, value): + if value not in EMPTY_VALUES: + return queryset.by_establishment_id(value, content_type='establishment') + return queryset + + def by_product_id(self, queryset, name, value): + if value not in EMPTY_VALUES: + return queryset.by_product_id(value, content_type='product') + return queryset + + def by_employee_id(self, queryset, name, value): + if value not in EMPTY_VALUES: + return queryset.by_employee_id(value, content_type='establishmentemployee') + return queryset diff --git a/apps/main/models.py b/apps/main/models.py index 1bd39a6d..61a4d447 100644 --- a/apps/main/models.py +++ b/apps/main/models.py @@ -153,7 +153,7 @@ class Award(TranslatedFieldsMixin, URLImageMixin, models.Model): PUBLISHED = 1 STATE_CHOICES = ( - (WAITING,'waiting'), + (WAITING, 'waiting'), (PUBLISHED, 'published') )