filters.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #coding=utf-8
  2. import django_filters
  3. from apps.base import clean_datetime_range, clean_date_range
  4. from models import ProductionPlan, SalePlan, ProductionDemand
  5. class ProductionDemandFilter(django_filters.FilterSet):
  6. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  7. demand_date = django_filters.DateFromToRangeFilter(field_name='demand_date')
  8. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  9. cleared = django_filters.CharFilter(name='cleared')
  10. create_user = django_filters.CharFilter(name='create_user__name', lookup_expr='icontains')
  11. customer_name = django_filters.CharFilter(name='customer__name', lookup_expr='icontains')
  12. customer_tel = django_filters.CharFilter(name='customer__mobile', lookup_expr='icontains')
  13. class Meta:
  14. model = ProductionDemand
  15. fields = (
  16. 'create_time', 'no', 'customer_name', 'customer_tel',
  17. 'status', 'create_user', 'demand_date'
  18. )
  19. def __init__(self, data=None, *args, **kwargs):
  20. data = clean_datetime_range(data, 'create_time', 'source')
  21. data = clean_date_range(data, 'demand_date')
  22. super(ProductionDemandFilter, self).__init__(data, *args, **kwargs)
  23. class ProductionPlanFilter(django_filters.FilterSet):
  24. no = django_filters.CharFilter(name='no',lookup_expr='icontains')
  25. name = django_filters.CharFilter(name='name', lookup_expr='icontains')
  26. status = django_filters.CharFilter(name='status')
  27. create_user_text = django_filters.CharFilter(name='create_user__name', lookup_expr='icontains')
  28. class Meta:
  29. model = ProductionPlan
  30. fields = (
  31. 'no', 'name', 'status', 'create_user_text'
  32. )
  33. def __init__(self, data=None, *args, **kwargs):
  34. data = clean_datetime_range(data, 'create_time')
  35. super(ProductionPlanFilter, self).__init__(data, *args, **kwargs)
  36. class SalePlanFilter(django_filters.FilterSet):
  37. no = django_filters.CharFilter(name='no',lookup_expr='icontains')
  38. customer_text = django_filters.CharFilter(name='customer__name', lookup_expr='icontains')
  39. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  40. class Meta:
  41. model = SalePlan
  42. fields = "__all__"
  43. def __init__(self, data=None, *args, **kwargs):
  44. data = clean_datetime_range(data, 'create_time', 'source')
  45. super(SalePlanFilter, self).__init__(data, *args, **kwargs)