Esempio n. 1
0
 def post(self, request):
     portfolio = request.user.portfolio
     if portfolio:
         data = {**request.data, 'portfolio': portfolio.id}
         serializer = OrderSerializer(data=data)
         if serializer.is_valid():
             serializer.save()
             return Response(serializer.data,
                             status=status.HTTP_201_CREATED)
         else:
             return Response(serializer.errors,
                             status=status.HTTP_400_BAD_REQUEST)
     else:
         return Response(serializer.errors,
                         status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Esempio n. 2
0
    def get(self, request, *args, **kwargs):
        if not request.user.is_authenticated:
            return JsonResponse({
                'Status': False,
                'Error': 'Log in required'
            },
                                status=403)

        if request.user.type != 'shop':
            return JsonResponse(
                {
                    'Status': False,
                    'Error': 'Только для магазинов'
                }, status=403)

        order = Order.objects.filter(
            ordered_items__product_info__shop__user_id=request.user.id
        ).exclude(state='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)
Esempio n. 3
0
    def get(self, request, *args, **kwargs):
        if not request.user.is_authenticated:
            return JsonResponse({'Status': False, 'Error': 'Log in required'}, status=403)
        basket = Order.objects.filter(
            user_id=request.user.id, state='basket').prefetch_related(
            'ordered_items__product_info__product__category',
            'ordered_items__product_info__product_parameters__parameter').annotate(
            total_sum=Sum(F('ordered_items__quantity') * F('ordered_items__product_info__price'))).distinct()

        serializer = OrderSerializer(basket, many=True)
        return Response(serializer.data)
Esempio n. 4
0
    def get(self, request, *args, **kwargs):
        # Проверка авторизован ли пользователь
        if not request.user.is_authenticated:
            return JsonResponse({
                'Status': False,
                'Error': 'Пользователь не авторизован'
            })

        # Заказы пользователя
        orders = Order.objects.filter(user=request.user)
        serializer = OrderSerializer(orders, many=True)
        info = {'user': serializer.data}

        # Заказы магазина
        if request.user.type == 'shop':
            shop = Shop.objects.get(user=request.user)
            shop_orders = Order.objects.filter(shop=shop)
            shop_serializer = OrderSerializer(shop_orders, many=True)
            info['shop'] = shop_serializer.data

        return JsonResponse({'Status': True, 'Info': info})