123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- #coding=utf-8
- from django.utils import timezone
- import datetime
- import django_filters
- from apps.base import clean_datetime_range
- from .models import *
- from apps.customer.models import Customer
- from apps.account.models import Branch
- class BranchFilter(django_filters.FilterSet):
- name = django_filters.CharFilter(field_name='name',lookup_expr='icontains')
- tel = django_filters.CharFilter(field_name='tel', lookup_expr='icontains')
- enabled = django_filters.CharFilter(field_name='enabled')
- class Meta:
- model = Branch
- fields = (
- 'name', 'tel', 'enabled'
- )
- def __init__(self, data=None, *args, **kwargs):
- data = clean_datetime_range(data, 'create_time')
- super(BranchFilter, self).__init__(data, *args, **kwargs)
- class CustomerFilter(django_filters.FilterSet):
- nickname = django_filters.CharFilter(field_name='nickname', lookup_expr='icontains')
- tel = django_filters.CharFilter(field_name='tel', lookup_expr='icontains')
- class Meta:
- model = Customer
- fields = '__all__'
- class MemberCouponFilter(django_filters.FilterSet):
- write_off = django_filters.CharFilter(field_name='write_off')
- coupon_name = django_filters.CharFilter(field_name='coupon__name', lookup_expr='icontains')
- activity_name = django_filters.CharFilter(field_name='activity__title', lookup_expr='icontains')
- status = django_filters.CharFilter(method='find_coupon_by_status')
- class Meta:
- model = MemberCoupon
- fields = '__all__'
- def find_coupon_by_status(self, queryset, *args):
- if args[1]:
- if args[1] == '1':#待使用
- now = datetime.datetime.date(timezone.now())
- queryset = queryset.filter(write_off=False, end_date__gt=now)
- elif args[1] == '2':#已使用
- queryset = queryset.filter(write_off=True)
- elif args[1] == '3':#已过期
- now = datetime.datetime.date(timezone.now())
- queryset = queryset.filter(write_off=False, end_date__lt=now)
- return queryset
- class OrderFilter(django_filters.FilterSet):
- activity_name = django_filters.CharFilter(field_name='activity_detail__main__title', lookup_expr='icontains')
- activity_detail = django_filters.CharFilter(field_name='activity_detail__name', lookup_expr='icontains')
- branch_name = django_filters.CharFilter(field_name='branch__name', lookup_expr='icontains')
- activity = django_filters.CharFilter(field_name='activity_detail__main')
- delete = django_filters.CharFilter(field_name='delete')
- order_status = django_filters.CharFilter(method='find_by_order_status')
- class Meta:
- model = Order
- fields = '__all__'
- def find_by_order_status(self, queryset, *args):
- if args[1]:
- if args[1] == '1': # 进行中
- queryset = queryset.filter(status=Order.DEFAULT)
- elif args[1] == '2': # 已完成
- queryset = queryset.filter(status=Order.FINISH)
- elif args[1] == '3': # 已失败
- queryset = queryset.filter(status=Order.FAIL)
- return queryset
- class CouponFilter(django_filters.FilterSet):
- name = django_filters.CharFilter(field_name='name',lookup_expr='icontains')
- enabled = django_filters.CharFilter(field_name='enabled')
- class Meta:
- model = Coupon
- fields = (
- 'name', 'enabled'
- )
- def __init__(self, data=None, *args, **kwargs):
- data = clean_datetime_range(data, 'create_time')
- super(CouponFilter, self).__init__(data, *args, **kwargs)
- class ActivityFilter(django_filters.FilterSet):
- title = django_filters.CharFilter(field_name='title',lookup_expr='icontains')
- branch_name = django_filters.CharFilter(field_name='branch_name', lookup_expr='icontains')
- enabled = django_filters.CharFilter(field_name='enabled')
- check_status = django_filters.CharFilter(field_name='check_status')
- class Meta:
- model = Activity
- fields = (
- 'title', 'branch_name', 'check_status', 'enabled'
- )
- def __init__(self, data=None, *args, **kwargs):
- data = clean_datetime_range(data, 'create_time')
- super(ActivityFilter, self).__init__(data, *args, **kwargs)
- class ActivityDetailsFilter(django_filters.FilterSet):
- name = django_filters.CharFilter(field_name='name', lookup_expr='icontains')
- main = django_filters.CharFilter(field_name='main')
- class Meta:
- model = ActivityDetails
- fields = (
- 'name', 'main'
- )
- class ActivityCouponFilter(django_filters.FilterSet):
- name = django_filters.CharFilter(field_name='main__name', lookup_expr='icontains')
- order = django_filters.CharFilter(field_name='main__main')
- main = django_filters.CharFilter(field_name='main')
- class Meta:
- model = ActivityCoupon
- fields = (
- 'name', 'main', 'order'
- )
|