def render_tag(self, context): cart = get_or_create_cart(context['request']) cart.update() context['cart'] = cart context['cart_items': cart.get_updated_cart_items()] formset = get_cart_item_formset(cart_items=context['cart_items']) context['formset': formset] return ''
def get(self, request, *args, **kwargs): """ This is lifted from the TemplateView - we don't get this behavior since this only extends the mixin and not templateview. """ context = self.get_context_data(**kwargs) formset = get_cart_item_formset(cart_items=context['cart_items']) context.update({'formset': formset, }) return self.render_to_response(context)
def render(self, context, instance, placeholder): state = {} cart_object = get_or_create_cart(context['request']) cart_object.update(state) context.update({'cart': cart_object}) context.update({'cart_items': cart_object.get_updated_cart_items()}) if 'formset' in context.get('request').POST: context.update(context.get('request').POST) else: context.update({'formset': get_cart_item_formset(cart_items=context['cart_items'])}) return context
def update_context_with_cart_form(self,ctx): cart_object = get_or_create_cart(self.request) state={'country':self.request.session.get('django_country')} cart_object.update(state) ctx.update({'cart': cart_object}) ctx.update({'cart_items': cart_object.get_updated_cart_items()}) formset = get_cart_item_formset(cart_items=ctx['cart_items']) ctx.update({'formset': formset, }) ctx.update({'cart_form': CartForm(instance=cart_object) }) return ctx
def put(self, *args, **kwargs): """ Update shopping cart items quantities. Data should be in update_item_ID=QTY form, where ID is id of cart item and QTY is quantity to set. """ context = self.get_context_data(**kwargs) formset = get_cart_item_formset(cart_items=context['cart_items'], data=self.request.POST) if formset.is_valid(): formset.save() return self.put_success() context.update({'formset': formset, }) return self.render_to_response(context)
def put(self, *args, **kwargs): """ Update shopping cart items quantities. Data should be in update_item_ID=QTY form, where ID is id of cart item and QTY is quantity to set. """ context = self.get_context_data(**kwargs) formset = get_cart_item_formset(cart_items=context['cart_items'], data=self.request.POST) if formset.is_valid(): formset.save() return self.put_success() self.request.POST = {'formset': formset, } return cms_views.details(self.request, slug = pagemodel.Page.objects.get(reverse_id='cart').get_slug())
def put(self, *args, **kwargs): """ Update shopping cart form. """ context = self.get_context_data(**kwargs) self.update_context_with_cart_form(context) formset = get_cart_item_formset(cart_items=context['cart_items'],data=self.request.POST) """ valid form redirects to get cart again, otherwise re-display form with errors """ if formset.is_valid(): formset.save() messages.add_message(self.request,messages.INFO, _('Item quantity has been successfully changed.'),extra_tags='basket_only') return self.redirect() messages.add_message(self.request,messages.ERROR, _('Unable to change item quantity.'),extra_tags='basket_only') context.update({'formset': formset, }) return self.render_to_response(context)
def put(self, *args, **kwargs): """ Update shopping cart items quantities. Data should be in update_item_ID=QTY form, where ID is id of cart item and QTY is quantity to set. """ context = self.get_context_data(**kwargs) try: formset = get_cart_item_formset(cart_items=context["cart_items"], data=self.request.POST) except ValidationError: return redirect("cart") if formset.is_valid(): formset.save() return self.put_success() context.update({"formset": formset}) return self.render_to_response(context)
def get_context_data(self, **kwargs): ctx = super(ShopListView, self).get_context_data(**kwargs) #set up the currency before we use the cart itself self.do_currency_switch() state={'country':self.request.session.get('django_country')} cart_object = get_or_create_cart(self.request) cart_object.update(state) ctx.update({'cart': cart_object}) ctx.update({'cart_items': cart_object.get_updated_cart_items()}) formset = get_cart_item_formset(cart_items=ctx['cart_items']) ctx.update({'formset': formset, }) ctx.update({'cart_form': CartForm(instance=cart_object) }) return ctx
def test_cart_items_should_have_updated_values(self): self.cart.update() items = self.cart.get_updated_cart_items() formset = get_cart_item_formset(cart_items=items) self.assertEqual(formset.forms[0].instance.line_subtotal, 246)
def test_should_return_formset(self): items = CartItem.objects.all() formset = get_cart_item_formset(cart_items=items) self.assertTrue('quantity' in formset.forms[0].fields)
def test_cart_items_should_have_updated_values(self): self.cart.update(self.request) items = self.cart.get_updated_cart_items() formset = get_cart_item_formset(cart_items=items) self.assertEqual(formset.forms[0].instance.line_subtotal, 246)
def get(self, request, *args, **kwargs): """Add cart items into context.""" context = self.get_context_data(**kwargs) formset = get_cart_item_formset(cart_items=context['cart_items']) context.update({'formset': formset, }) return self.render_to_response(context)