def checkout_home(request): cart_obj, cart_created = Cart.objects.new_or_get( request) # if this view creates new cart go to cart home order_obj = None if cart_created or cart_obj.products.count( ) == 0: # if this view creates new cart go to cart home return redirect("cart:home") login_form = LoginForm() guest_form = GuestForm() address_form = AddressForm() billing_address_id = request.session.get('billing_address_id', None) shipping_address_id = request.session.get('shipping_address_id', None) billing_profile, billing_profile_created = BIllingProfile.objects.new_or_get( request) address_qs = None if billing_profile is not None: if request.user.is_authenticated: address_qs = Address.objects.filter( billing_profile=billing_profile) order_obj, order_obj_created = Order.objects.new_or_get( billing_profile, cart_obj) if shipping_address_id: order_obj.shipping_address = Address.objects.get( id=shipping_address_id) del request.session['shipping_address_id'] if billing_address_id: order_obj.billing_address = Address.objects.get( id=billing_address_id) del request.session['billing_address_id'] if billing_address_id or shipping_address_id: order_obj.save() if request.method == "POST": # checks the order us done is_done = order_obj.check_done() if is_done: order_obj.mark_paid() request.session["cart_items"] = 0 del request.session['cart_id'] return redirect("cart:success") context = { 'object': order_obj, 'billing_profile': billing_profile, 'login_form': login_form, 'guest_form': guest_form, 'address_form': address_form, 'address_qs ': address_qs } return render(request, "cart/checkout.html", context)
def checkout_home(request): cart_obj, cart_created = Cart.objects.new_or_get(request) order_obj = None if cart_created or cart_obj.products.count() == 0: return redirect("carts:home") #user=request.user #billing_profile=None loging_form = LoginForm() guest_form = GuestForm() address_form = AddressForm() #billing_address_form=AddressForm() billing_address_id = request.session.get("billing_address_id", None) shipping_address_id = request.session.get("shipping_address_id", None) billing_profile, billing_profile_created = BillingProfile.objects.new_or_get( request) address_qs = None if billing_profile is not None: if request.user.is_authenticated: address_qs = Address.objects.filter( billing_profile=billing_profile) order_obj, order_obj_created = Order.objects.new_or_get( billing_profile, cart_obj) if shipping_address_id: order_obj.shipping_address = Address.objects.get( id=shipping_address_id) del request.session["shipping_address_id"] if billing_address_id: order_obj.billing_address = Address.objects.get( id=billing_address_id) del request.session["billing_address_id"] if billing_address_id or shipping_address_id: order_obj.save() if request.method == "POST": #del request.session['cart_id'] is_done = order_obj.check_done() if is_done: order_obj.mark_paid() del request.session['cart_id'] del request.session['cart_items'] return redirect("carts:success") #order_qs=Order.objects.filter(billing_profile=billing_profile,cart=cart_obj,active=True) #if order_qs.count()==1: # order_obj=order_qs.first() #else: #old_order_qs=Order.objects.exclude(billing_profile=billing_profile).filter(cart=cart_obj,active=True) #if old_order_qs.exists(): # old_order_qs.update(active=False) # order_obj=Order.objects.create(billing_profile=billing_profile,cart=cart_obj) #order_qs=Order.objects.filter(cart=cart_obj,active=True) #if order_obj.exists(): # order_qs.update(active=False) #else: # order_obj,new_obj=Order.objects.create(billing_profile=billing_profile,cart=cart_obj) context = { "object": order_obj, "billing_profile": billing_profile, "login_form": loging_form, "guest_form": guest_form, "address_form": address_form, "address_qs": address_qs #"billing_address_form":billing_address_form } return render(request, "carts/checkout.html", context)