filters.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #coding=utf-8
  2. import django_filters
  3. from apps.base import clean_datetime_range
  4. from models import Material, Consumable, Deliver
  5. from apps.warehouse.models import Inventory
  6. class MaterialFilter(django_filters.FilterSet):
  7. name = django_filters.CharFilter(name='product_base__name',lookup_expr='icontains')
  8. model = django_filters.CharFilter(name='product_base__model', lookup_expr='icontains')
  9. enabled = django_filters.CharFilter(name='product_base__enabled')
  10. class Meta:
  11. model = Material
  12. fields = (
  13. 'name', 'model', 'enabled'
  14. )
  15. def __init__(self, data=None, *args, **kwargs):
  16. data = clean_datetime_range(data, 'create_time')
  17. super(MaterialFilter, self).__init__(data, *args, **kwargs)
  18. class ConsumableFilter(django_filters.FilterSet):
  19. name = django_filters.CharFilter(name='product_base__name',lookup_expr='icontains')
  20. model = django_filters.CharFilter(name='product_base__model', lookup_expr='icontains')
  21. enabled = django_filters.CharFilter(name='product_base__enabled')
  22. class Meta:
  23. model = Consumable
  24. fields = (
  25. 'name', 'model', 'enabled'
  26. )
  27. def __init__(self, data=None, *args, **kwargs):
  28. data = clean_datetime_range(data, 'create_time')
  29. super(ConsumableFilter, self).__init__(data, *args, **kwargs)
  30. class DeliverFilter(django_filters.FilterSet):
  31. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  32. create_user_text = django_filters.CharFilter(name='create_user__name', lookup_expr='icontains')
  33. receiver_text = django_filters.CharFilter(name='receiver__name', lookup_expr='icontains')
  34. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  35. class Meta:
  36. model = Deliver
  37. fields = "__all__"
  38. def __init__(self, data=None, *args, **kwargs):
  39. data = clean_datetime_range(data, 'create_time', 'source')
  40. super(DeliverFilter, self).__init__(data, *args, **kwargs)
  41. class InventoryFilter(django_filters.FilterSet):
  42. create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
  43. create_user_text = django_filters.CharFilter(name='create_user__name', lookup_expr='icontains')
  44. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  45. class Meta:
  46. model = Inventory
  47. fields = "__all__"
  48. def __init__(self, data=None, *args, **kwargs):
  49. data = clean_datetime_range(data, 'create_time', 'source')
  50. super(InventoryFilter, self).__init__(data, *args, **kwargs)
  51. class DeliverReturnFilter(django_filters.FilterSet):
  52. no = django_filters.CharFilter(name='no', lookup_expr='icontains')
  53. class Meta:
  54. model = Deliver
  55. fields = (
  56. 'no',
  57. )