from django_filters import FilterSet, NumberFilter, CharFilter from .models import ContainerListModel,ContainerDetailModel,ContainerOperationModel,TaskModel class ContainerListFilter(FilterSet): class Meta: model = ContainerListModel fields = { "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "container_code": ['exact', 'icontains'], "current_location": ['exact', 'icontains'], "status": ['exact', 'icontains'], "last_operation": ['exact', 'icontains'], } class ContainerDetailFilter(FilterSet): class Meta: model = ContainerDetailModel fields = { "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "month": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "container" : ['exact'], "batch": ['exact'], "goods_code": ['exact', 'icontains'], "goods_desc": ['exact', 'icontains'], "goods_qty": ['exact', 'icontains'], "goods_weight": ['exact', 'icontains'], "status": ['exact', 'lte','icontains'], "creater": ['exact', 'icontains'], "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'], "update_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'], } class ContainerOperationFilter(FilterSet): class Meta: model = ContainerOperationModel fields = { "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "month": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "container" : ['exact'], "operation_type": ['exact', 'icontains'], "batch": ['exact'], "goods_code" : ['exact', 'icontains'], "goods_desc": ['exact', 'icontains'], "goods_qty": ['exact', 'icontains'], "goods_weight": ['exact', 'icontains'], "operator": ['exact', 'icontains'], "timestamp": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'], "from_location": ['exact', 'icontains'], "to_location": ['exact', 'icontains'], "memo": ['exact', 'icontains'], } class TaskFilter(FilterSet): class Meta: model = TaskModel fields = { "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'], "task_wcs" : ['exact'], "container_detail" : ['exact'], "batch_detail": ['exact'], "container_detail__goods_code": ['exact', 'icontains'], "container_detail__goods_desc": ['exact', 'icontains'], }