123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # coding=utf-8
- import traceback
- from utils.custom_modelviewset import CustomModelViewSet
- from rest_framework.views import APIView
- from utils.exceptions import CustomError
- from .serializers import OrderSerializer
- from .filters import OrderFilter
- from apps.log.models import BizLog
- from utils import response_ok, response_error
- from utils.permission import isLogin, check_permission
- from apps.customer.models import NewCustomer
- from apps.order.models import Order
- from apps.option.models import Option
- class GetProcessView(APIView):
- permission_classes = [isLogin]
- def get(self, request):
- customer_id = request.query_params.get('customer_id')
- instance = NewCustomer.objects.filter(id=customer_id).first()
- if not instance:
- raise CustomError('当前客户信息有误,请刷新重试!')
- if instance.stage_progress.end_stage:
- raise CustomError('当前客户进度已到最后阶段,请勿重复更新!')
- order = Order.objects.filter(customer=instance).first()
- if order and order.status == Order.WAIT_DISPATCH:
- data = {
- 'error': True,
- 'error_message': u'当前客户订单等待分配中,请勿重复更新!',
- }
- return response_ok(data)
- option = Option.objects.filter(type=instance.stage_progress.type, sort__gt=instance.stage_progress.sort,
- enable=True).order_by('sort').first()
- if option:
- data = {
- 'now_process_text':instance.stage_progress.name,
- 'next_process_text':option.name,
- 'next_process_id':option.id,
- }
- return response_ok(data)
- else:
- data = {
- 'error': True,
- 'error_message': u'未找到下个阶段进度,请联系管理员设置!',
- }
- return response_ok(data)
- class OrderViewSet(CustomModelViewSet):
- permission_classes = [isLogin]
- queryset = Order.objects.filter()
- serializer_class = OrderSerializer
- def filter_queryset(self, queryset):
- queryset = queryset.filter()
- f = OrderFilter(self.request.GET, queryset=queryset)
- return f.qs
- def paginate_queryset(self, queryset):
- if self.paginator is None or self.request.GET.get('export'):
- return None
- return self.paginator.paginate_queryset(queryset, self.request, view=self)
|