Ei kuvausta

filters.py 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import django_filters
  2. from core.models import Report, CustomerTemplateMapping, ProductDrawing
  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. template_names = django_filters.CharFilter(
  34. method='filter_template_names',
  35. label='Template Name Contains'
  36. )
  37. class Meta:
  38. model = CustomerTemplateMapping
  39. fields = ['customer_name', 'template_names']
  40. def filter_template_names(self, queryset, name, value):
  41. return queryset.filter(template_names__icontains=value)
  42. class ProductDrawingFilter(django_filters.FilterSet):
  43. code_no = django_filters.CharFilter(lookup_expr='icontains', label='Code No')
  44. code_no_mks = django_filters.CharFilter(lookup_expr='icontains', label='Code No (MKS)')
  45. lot_no = django_filters.CharFilter(lookup_expr='icontains', label='Lot No')
  46. class Meta:
  47. model = ProductDrawing
  48. fields = ['code_no', 'code_no_mks', 'lot_no',]