Esempio n. 1
0
    def form_valid(self, form):
        queryset = models.Order.objects \
            .valid(self.request.user) \
            .select_related('parent') \
            .prefetch_related('products', 'products__codes')

        order = get_object_or_404(queryset, order_no=self.kwargs['uuid'])

        self.cart = Cart(self.request.session, shop_settings.CART_SESSION_KEY)
        self.cart.clear()

        order_product_dict = {
            op.code: op.quantity
            for op in order.products.all()
        }

        products = models.Product.objects \
            .enabled() \
            .available() \
            .filter(code__in=order_product_dict.keys())

        for product in products:
            self.cart.add(product=product,
                          price=product.pg_selling_price,
                          quantity=order_product_dict[product.code])

        return super(OrderAgainView, self).form_valid(form)
Esempio n. 2
0
 def get_form_kwargs(self):
     kwargs = super(CartView, self).get_form_kwargs()
     self.cart = Cart(self.request.session,
                      shop_settings.CARD_CART_SESSION_KEY)
     kwargs['cart'] = self.cart
     kwargs['request'] = self.request
     return kwargs
Esempio n. 3
0
    def form_valid(self, form):
        data = {}

        product = models.Product.objects \
            .enabled() \
            .available() \
            .get(pk=form.cleaned_data['product_pk'])

        if product:
            cart = Cart(self.request.session, shop_settings.CARD_CART_SESSION_KEY)
            cart.set_quantity(product=product, quantity=form.cleaned_data['quantity'])
            data = cart.items_json

        return JsonResponse(data)
Esempio n. 4
0
 def post(self, request, store):
     if request.is_ajax():
         cart = Cart(request.session, shop_settings.CARD_CART_SESSION_KEY)
         cart.clear()
         return JsonResponse({})
Esempio n. 5
0
    def form_valid(self, form):
        cart = Cart(self.request.session, shop_settings.CARD_CART_SESSION_KEY)
        cart.delete(form.cleaned_data['product_pk'])
        data = cart.items_json

        return JsonResponse(data)