def driver_get_latest_order(request): # Get token access_token = AccessToken.objects.get( token=request.GET.get("access_token"), expires__gt=timezone.now()) driver = access_token.user.driver order = OrderSerializer( Order.objects.filter(driver=driver).order_by("picked_at").last()).data return JsonResponse({"order": order})
def last_orders(request, format=None): query = get_last_orders(request.user) data = query.all() serialized_list = [ OrderSerializer(order, context={ 'request': request }).data for order in data ] return Response(serialized_list)
async def put(self, request, user, order_id): order = await check_user_cafe(user, order_id) serialized_order, errors = OrderSerializer().load(request.json, partial=True) if errors: raise InvalidUsage(message=f"Wrong data provided: {errors}") order.update(serialized_order) await order.commit() return json({'order': str(order.pk)}, status=200)
def customer_get_latest_order(request): access_token = AccessToken.objects.get( token=request.GET.get("access_token"), expires__gt=timezone.now()) customer = access_token.user.customer order = OrderSerializer( Order.objects.filter(customer=customer).last()).data return JsonResponse({"order": order})
def get(self, request, *args, **kwargs): if not request.user.is_authenticated: return JsonResponse({'Status': False, 'Error': 'Log in required'}, status=403) order = Order.objects.filter( user_id=request.user.id).exclude(status='basket').prefetch_related( 'ordered_items__product_info__product__category', 'ordered_items__product_info__product_parameters__parameter').select_related('contact').annotate( total_sum=Sum(F('ordered_items__quantity') * F('ordered_items__product_info__price'))).distinct() serializer = OrderSerializer(order, many=True) return Response(serializer.data)
def setUp(self): post_save.disconnect(sender=Order, dispatch_uid="post_save_publish") with freeze_time('2020-09-05T00:00:00'): self.order = OrderFactory() self.serializer = OrderSerializer(instance=self.order)
def driver_get_ready_orders(request): orders = OrderSerializer(Order.objects.filter(status=Order.READY, driver=None).order_by("-id"), many=True).data return JsonResponse({"orders": orders})