Ei kuvausta

filters.py 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import django_filters
  2. from core.models import Report, CustomerTemplateMapping, ProductDrawing, MksCodeMap
  3. class ReportFilter(django_filters.FilterSet):
  4. name = django_filters.CharFilter(
  5. field_name='name',
  6. lookup_expr='icontains',
  7. label='Report Name'
  8. )
  9. created_by = django_filters.CharFilter(
  10. field_name='created_by__username',
  11. lookup_expr='icontains',
  12. label='Created By'
  13. )
  14. created_at = django_filters.DateFromToRangeFilter(
  15. field_name='created_at',
  16. label='Created Date Range',
  17. widget=django_filters.widgets.RangeWidget(
  18. attrs={
  19. 'type': 'date',
  20. 'class': 'w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring focus:ring-blue-300'
  21. }
  22. )
  23. )
  24. class Meta:
  25. model = Report
  26. fields = ['name', 'created_by', 'created_at']
  27. class CustomerTemplateFilter(django_filters.FilterSet):
  28. customer_name = django_filters.CharFilter(
  29. field_name='customer_name',
  30. lookup_expr='icontains',
  31. label='Customer Name'
  32. )
  33. export_template = django_filters.ChoiceFilter(
  34. field_name='export_template',
  35. choices=CustomerTemplateMapping.TEMPLATE_TYPE_CHOICES,
  36. label='Export Template'
  37. )
  38. template_names = django_filters.CharFilter(
  39. method='filter_template_names',
  40. label='Template Name Contains'
  41. )
  42. class Meta:
  43. model = CustomerTemplateMapping
  44. fields = ['customer_name', 'export_template', 'template_names']
  45. def filter_template_names(self, queryset, name, value):
  46. return queryset.filter(template_names__icontains=value)
  47. class ProductDrawingFilter(django_filters.FilterSet):
  48. code_no = django_filters.CharFilter(lookup_expr='icontains', label='Code No')
  49. code_no_mks = django_filters.CharFilter(lookup_expr='icontains', label='Code No (MKS)')
  50. lot_no = django_filters.CharFilter(lookup_expr='icontains', label='Lot No')
  51. class Meta:
  52. model = ProductDrawing
  53. fields = ['code_no', 'code_no_mks', 'lot_no',]
  54. class MksCodeMapFilter(django_filters.FilterSet):
  55. mgt_code = django_filters.CharFilter(lookup_expr='icontains', label='MGT Code')
  56. mks_code = django_filters.CharFilter(lookup_expr='icontains', label='MKS Code')
  57. class Meta:
  58. model = MksCodeMap
  59. fields = ['mgt_code', 'mks_code']