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)
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
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)
def post(self, request, store): if request.is_ajax(): cart = Cart(request.session, shop_settings.CARD_CART_SESSION_KEY) cart.clear() return JsonResponse({})
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)