def test_form_invalid(self): data = {'email': 'testtest.pl', 'subscribe': False} form = GuestForm(data=data) self.assertFalse(form.is_valid()) resp = self.client.post(reverse('accounts:guest_register'), data) messages = list(resp.wsgi_request._messages) self.assertEqual(len(messages), 1) self.assertEqual(messages[0].level, 30)
def user_guest(request): if request.method == 'POST': next_post = request.POST.get('next') form = GuestForm(request.POST) if form.is_valid(): email = form.data.get('email') guestEmail = GuestEmail.objects.create(email=email) request.session['guest_email_id'] = guestEmail.id return redirect(next_post) else: form = GuestForm() return render(request, 'carts/checkout.html', {'form':form})
def guest_register_view(request): form = GuestForm(request.POST or None) next_ = request.GET.get('next') next_post = request.POST.get('next') redirect_path = next_ or next_post or None if form.is_valid(): email = form.cleaned_data.get('email') new_guest_email = GuestEmail.objects.create(email=email) request.session['guest_email_id'] = new_guest_email.id if is_safe_url(redirect_path, request.get_host()): return redirect(redirect_path) else: return redirect('/register/') return redirect('/register/')
def user_guest(request): if request.method == 'POST': print('Post Method', request.method, request.POST) form = GuestForm(request.POST) print('Form Data', form) if form.is_valid(): email = form.data.get('email') guestEmail = GuestEmail.objects.create(email=email) request.session['guest_email'] = guestEmail.email request.session['guest_email_id'] = guestEmail.id return redirect('index') else: form = GuestForm() return render(request, 'accounts/user_signup.html', {'form': form})
def guest_register_page(request): form = GuestForm(request.POST or None) context = { 'form': form, } next_ = request.GET.get('next') next_post = request.POST.get('next') redirect_path = next_ or next_post or None if form.is_valid(): email = form.cleaned_data.get("email") new_guest_email = GuestEmail.objects.create(email=email) request.session['guest_email_id'] = new_guest_email.id if is_safe_url(redirect_path, request.get_host()): return redirect(redirect_path) return redirect('accounts:register')
def checkout_home(request): cart_obj, cart_created = Cart.objects.new_or_get_cart(request) order_obj = None if cart_created or cart_obj.products.count() == 0: return redirect('cart:home') login_form = LoginForm() guest_form = GuestForm() billing_address_form = AddressForm() address_form = AddressForm() billing_profile, billing_profile_created = BillingProfile.objects.new_or_get_billing(request) if billing_profile is not None: order_obj, order_obj_created = Order.objects.new_or_get_order(billing_profile, cart_obj) context = { 'object': order_obj, 'billing_profile': billing_profile, 'login_form': login_form, 'guest_form': guest_form, 'address_form': address_form, 'billing_address_form': billing_address_form } return render(request, 'carts/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("cart:home") user = request.user billing_profile = None login_form = LoginForm() guest_form = GuestForm() guest_email_id = request.session.get('guest_email_id') if user.is_authenticated(): billing_profile, billing_profile_created = BillingProfile.objects.get_or_create( user=user, email=user.email) elif guest_email_id is not None: guest_email_obj = GuestEmail.objects.get(id=guest_email_id) billing_profile, billing_guest_profile_created = BillingProfile.objects.get_or_create( email=guest_email_obj.email) else: pass if billing_profile is not None: order_obj, order_obj_created = Order.objects.new_or_get( billing_profile, cart_obj) context = { 'object': order_obj, 'billing_profile': billing_profile, 'login_form': login_form, 'guest_form': guest_form } return render(request, 'carts/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("cart:home") login_form = LoginForm() guest_form = GuestForm() address_form = AddressForm() shipping_address_id = request.session.get("shipping_address_id", None) billing_address_id = request.session.get("billing_address_id", None) billing_profile, billing_profile_created = BillingProfile.objects.new_or_get( request) address_qs = None has_card = False 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_profile = Address.objects.get( id=shipping_address_id) del request.session["shipping_address_id"] order_obj.save() if billing_address_id: order_obj.billing_address = Address.objects.get( id=billing_address_id) del request.session["billing_address_id"] order_obj.save() has_card = billing_profile.has_card if request.method == "POST": is_prepare = order_obj.check_is_ready_to_be_pay() if is_prepare: did_charge, crg_msg = billing_profile.charge(order_obj) if did_charge: order_obj.mark_paid() request.session['cart_items'] = 0 del request.session['cart_id'] if not billing_profile.user: billing_profile.set_cards_inactive() return redirect("cart:success") else: print(crg_msg) return redirect("cart:checkout") context = { "object": order_obj, "billing_profile": billing_profile, "login_form": login_form, "guest_form": guest_form, "address_form": address_form, "address_qs": address_qs, "has_card": has_card, "publish_key": STRIPE_PUB_KEY } return render(request, "carts/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("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) if billing_profile is not None: 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() context = { "object": order_obj, "billing_profile": billing_profile, "login_form": login_form, "guest_form": guest_form, "address_form": address_form, } return render(request, "carts/checkout.html", context)
def cart_checkout(request): order_obj = None old_addresses = None credit_card = None loginForm = LoginForm() guestForm = GuestForm() addressForm = AddressForm() # print('AddressForm', addressForm) cart_obj, cart_created = Cart.objects.new_or_get(request) billing_profile, bill_created = BillingProfile.objects.new_or_get(request) cards = Card.objects.filter(billing_profile=billing_profile, default=True) if cards.exists(): credit_card = cards.last() # print('BillingProfile ',billing_profile) if billing_profile is not None: order_obj, order_created = Order.objects.new_or_get( billing_profile=billing_profile, cart_obj=cart_obj) if order_obj is not None: old_addresses = Address.objects.filter(billing_profile=billing_profile) context = { 'order_obj': order_obj, 'loginForm': loginForm, 'guestForm': guestForm, 'addressForm': addressForm, 'billing_profile': billing_profile, 'old_addresses': old_addresses, 'credit_card': credit_card, } return render(request, 'carts/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: print(cart_created) print("hello") return redirect("cart:home") else: order_obj, new_order_obj = Order.objects.get_or_create(cart=cart_obj) user = request.user billing_profile = None login_form = LoginForm() guest_form = GuestForm() guest_email_id = request.session.get("guest_email_id") if user.is_authenticated(): billing_profile, billing_profile_created = BillingProfile.objects.get_or_create( user=user, email=user.email) elif guest_email_id is not None: guest_email_obj = GuestEmail.objects.get(id=guest_email_id) billing_profile, billing_guest_profile_created = BillingProfile.objects.get_or_create( email=guest_email_obj) else: pass context = { "object": order_obj, "billing_profile": billing_profile, "login_form": login_form, "guest_form": guest_form, } return render(request, "carts/checkout.html", context)
def checkout_home(request): cart_obj,cart_created=Cart.objects.new_or_get(request) order_obj=None has_card=False if cart_created or cart_obj.cartitem_set.count()==0: redirect('carts:cart_view') login_form=LoginForm() guest_form=GuestForm() # billing model manager billing_profile, billing_profile_created = BillingProfile.objects.new_or_get(request) if billing_profile is not None: # order model manager order_obj, order_obj_created = Order.objects.new_or_get(billing_profile, cart_obj) has_card=billing_profile.has_card # finalize checkout if request.method == "POST": "check the order is 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('carts:success') context={ 'billing_profile':billing_profile, 'object': order_obj, 'login_form':login_form, 'guest_form':guest_form, "has_card":has_card } return render(request,'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(cart_home) else: order_obj, new_order_obj = Order.objects.get_or_create(cart=cart_obj) guest_form = GuestForm() login_form = LoginForm() address_form = AddressForm() shipping_address_id = request.session.get('shipping_address_id', None) billing_address_form = AddressForm() billing_profile, billing_profile_created = BillingProfile.objects.new_or_get(request) if billing_profile is not None: order_obj, order_obj_created = Order.objects.new_or_get(billing_profile, cart_obj) if shipping_address_id: order_obj.shipping_address = shipping_address_id order_obj.save() context = { 'object': order_obj, 'billing_profile': billing_profile, 'login_form': login_form, 'guest_form': guest_form, 'address_form': address_form, 'billing_address_form': address_form, } return render(request, '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('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 has_card = False 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() has_card = billing_profile.has_card if request.method == 'POST': # check that order is done is_prepared = order_obj.check_done() if is_prepared: (did_charge, crg_msg) = billing_profile.charge(order_obj) if did_charge: order_obj.mark_paid() request.session['cart_items'] = 0 del request.session['cart_id'] return redirect('cart:success') else: print(crg_msg) return redirect('cart:checkout') context = { 'object': order_obj, 'billing_profile': billing_profile, 'login_form': login_form, 'guest_form': guest_form, 'address_form': address_form, 'address_qs': address_qs, 'has_card': has_card, 'publish_key': STRIPE_PUB_KEY, } 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('cart:home') login_form = LoginForm(request=request) guest_form = GuestForm(request=request) address_form = AddressCheckoutForm() shipping_address_required = not cart_obj.is_digital shipping_address_id = request.session.get("shipping_address_id", None) billing_address_id = request.session.get("billing_address_id", None) billing_profile, billing_profile_created = BillingProfile.objects.new_or_get(request) address_qs = None has_card = False 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() has_card = billing_profile.has_card if request.method == 'POST': 'check that order is done' is_prepared = order_obj.check_done() if is_prepared: did_charge, crg_msg = billing_profile.charge(order_obj) if did_charge: order_obj.mark_paid() request.session['cart_items'] = 0 del request.session['cart_id'] if not billing_profile.user: billing_profile.set_cards_inactive() return redirect('cart:success') else: print(crg_msg) return redirect('cart:checkout') context = { 'object': order_obj, 'billing_profile': billing_profile, 'login_form': login_form, 'guest_form': guest_form, "address_form": address_form, "address_qs": address_qs, "has_card": has_card, 'publish_key': STRIPE_PUB_KEY, "shipping_address_required": shipping_address_required, } return render(request, 'carts/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("cart:home") user = request.user billing_profile=None login_form = LoginForm() guest_form = GuestForm() guest_email_id = request.session.get('guest_email_id') if user.is_authenticated(): print(user.email) billing_profile, billing_profile_created = BillingProfile.objects.get_or_create(user=user, email=user.email) elif guest_email_id is not None: guest_email_obj = GuestEmail.objects.get(id=guest_email_id) billing_profile, billing_guest_profile_created = BillingProfile.objects.get_or_create(email=guest_email_obj.email) else: pass if billing_profile is not None: order_qs = Order.objects.filter(billing_profile=billing_profile, cart=cart_obj) 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) context = { "object": order_obj, "billing_profile": billing_profile, "login_form": login_form, "guest_form": guest_form } return render(request, "carts/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('cart:home') login_form=loginForm(request=request) guest_form=GuestForm() address_form=AddressForm(request.POST or None) shipping_address_id=request.session.get("shipping_address_id",None) billing_address_id=request.session.get("billing_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=billing_profile,cart_obj=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 shipping_address_id or billing_address_id: order_obj.save() 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,'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("cart:home") login_form = LoginForm() guest_form = GuestForm() address_form = AddressForm() billing_address_form = AddressForm() billing_profile, billing_profile_created = BillingProfile.objects.new_or_get( request) if billing_profile is not None: order_obj, order_obj_created = Order.objects.new_or_get( billing_profile, cart_obj) context = { "object": order_obj, "billing_profile": billing_profile, "login_form": login_form, "guest_form": guest_form, "address_form": address_form, "billing_address_form": billing_address_form } return render(request, 'carts/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.items.count() == 0: 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) has_card = False if billing_profile is not None: 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() has_card = billing_profile.has_card #Check that order is done if request.method == 'POST': if order_obj.check_done(): did_charge, crg_msg = billing_profile.charge(order_obj) if did_charge: order_obj.mark_paid() del request.session['cart_id'] request.session['cart_total'] = 0 if billing_profile.user is None: billing_profile.set_cards_inactive( ) #do the all cards inactive return redirect('cart:success') else: return redirect('cart:checkout') context = { 'billing_profile': billing_profile, 'object': order_obj, 'login_form': login_form, 'guest_form': guest_form, 'address_form': address_form, 'has_card': has_card, 'publish_key': STRIPE_PUB_KEY, } return render(request, 'carts/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("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) shipping_address_qs = address_qs.filter(address_type='shipping') billing_address_qs = address_qs.filter(address_type='billing_') 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": "check that order is done" is_done = order_obj.check_done() print("is_done", is_done) print(request.session['cart_id']) if is_done: order_obj.mark_paid() request.session['cart_items'] = 0 del request.session['cart_id'] return redirect("cart:success") print("sessionID", request.session['card_id']) context = { "object": order_obj, "billing_profile": billing_profile, "login_form": login_form, "guest_form": guest_form, "address_form": address_form, "address_qs": address_qs } print("rendring to checkout") return render(request, "carts/checkout.html", context)
def checkout_home(request): cart_obj = Cart(request) if cart_obj.__len__() == 0: return redirect("cart:home") address_book = None login_form = LoginForm(request=request) guest_form = GuestForm(request=request) # Get cart total from POST request cart_total = request.POST.get('cart_total', None) billing_profile, billing_profile_created = BillingProfile.objects.new_or_get( request) order_obj, order_obj_created = Order.objects.new_or_get(billing_profile) if billing_profile is not None: address_book = Address.objects.all().filter( billing_profile=billing_profile) if cart_total is not None: # Calculate totals Order.objects.cart_total(request, obj=order_obj) # Remove Applied Coupon if any. if order_obj.coupon_applied is True: coupon = None try: coupon = order_obj.coupon except: pass if coupon: # Remove Coupon CouponCode.objects.remove_coupon(billing_profile, coupon, order_obj) # If Coupon, pass coupon_code to the template and state if percentage discount coupon = None discount_type = None if order_obj.coupon: coupon = order_obj.coupon discount_type = request.session.get("discount_type", None) # from session context = { "billing_profile": billing_profile, "login_form": login_form, "guest_form": guest_form, "address_book": address_book, "form": CheckoutAddressForm, "order_obj": order_obj, "coupon": coupon, "discount_type": discount_type } 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('cart:home') login_form = LoginForm(request=request) guest_form = GuestForm(request=request) address_form = AddressCheckoutForm() billing_address_id = request.session.get('billing_address_id', None) shipping_address_required = cart_obj.delivery shipping_address_id = request.session.get('shipping_address_id', None) billing_profile, billing_profile_created = BillingProfile.objects.new_or_get(request) address_qs = None has_card = False 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() has_card = billing_profile.has_card if request.method == 'POST': is_prepared = order_obj.check_done() if is_prepared: did_charge, orderID = billing_profile.charge('S', order_obj) if did_charge: order_obj.mark_paid() # sort signal request.session['cart_items'] = 0 del request.session['cart_id'] if not billing_profile.user: billing_profile.set_cards_inactive() return redirect(reverse('cart:success', kwargs={ 'orderID': orderID })) else: return redirect('cart:checkout') context = { 'object': order_obj, 'billing_profile': billing_profile, 'login_form': login_form, 'guest_form': guest_form, 'address_form': address_form, 'address_qs': address_qs, 'has_card': has_card, 'publish_key': STRIPE_PUB_KEY, 'shipping_address_required': shipping_address_required, } return render(request, 'carts/checkout.html', context)
def checkoutHome(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('cart:home') login_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 = Billing.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) # # shipping_addres_qs = address_qs.filter(address_type='shipping') # billing_addres_qs = address_qs.filter(address_type='billing') # 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': is_done = order_obj.check_done() if is_done: order_obj.mark_paid() del (request.session['cart_id']) request.session['cart_items'] = 0 return redirect('cart:success') # pass # print(address_qs) context = { "order": order_obj, "billing_profile": billing_profile, "login_form": login_form, "guest_form": guest_form, "address_form": address_form, "address_qs": address_qs # "billing_address_form": billing_address_form, } # print(context) return render(request, 'cart/checkOut.html', context)
def checkout(request): cart_obj, is_new_cart = Cart.objects.new_or_get(request) order_obj = None if is_new_cart or cart_obj.products.count()==0: return redirect('cart:home') user = request.user billing_profile = None if user.is_authenticated: billing_profile = None login_form = LoginForm() guest_login_form = GuestForm() address_form = AddressForm() billing_address_form = AddressForm() billing_profile, created = BillingProfile.objects.new_or_get(request) billing_address_id = request.session.get('billing_address_id') shipping_address_id = request.session.get('shipping_address_id') address_qs = None if billing_profile is not None: address_qs = Address.objects.filter(billing_profile=billing_profile) # shipping_address_qs = address_qs.filter(address_type='shipping') # billing_address_qs = address_qs.filter(address_type='billing') order_obj, order_obj_created = Order.objects.new_or_get(billing_profile, cart_obj) if billing_address_id: order_obj.billing_address = Address.objects.get(id=billing_address_id) del request.session['billing_address_id'] 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 or shipping_address_id: order_obj.save() if request.method == 'POST': is_done = order_obj.check_done() if is_done: order_obj.mark_paid() del request.session['cart_id'] request.session['cart_items'] = 0 return redirect('/cart/success') context = { 'object':order_obj, 'billing_profile': billing_profile, 'login_form': login_form, 'guest_login_form':guest_login_form, 'address_form': address_form, 'billing_address_form': billing_address_form, 'address_qs' : address_qs, } return render(request,'carts/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("cart:home") login_form = LoginForm() guest_form = GuestForm() address_form = AddressForm() payment_form = PaymentSelectForm(request.POST or None) 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 if order is done? if request.POST.get('COD') == 'on': choice = 'Cash' order_obj.update_payment_type(request.POST, choice=choice) is_done = order_obj.check_done() if is_done: order_obj.mark_done() del request.session['cart_id'] request.session['cart_total'] = 0 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, # "mpesa_qs": mpesa_qs, # "cash_qs": cash_qs, "payment_form": payment_form } return render(request, "carts/checkout.html", context)
def checkout_process_view(request): """ change order status to done after checking out when order is checked out cart id in the session should be cleared redirect to success """ template_name = 'checkout.html' cart_obj, cart_created = Cart.objects.new_or_get(request) order_obj = None if cart_created or cart_obj.products.count() == 0: return redirect('cart:cart-product') 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": "check that order is 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:checkout-done') context = { 'order': 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, template_name, context)
def checkout_home(request): cart_obj, new_cart_created = Cart.objects.new_or_get(request) order_obj = None if new_cart_created or cart_obj.products.count() == 0: # cart not exist or empty cart, we do not proceed to check out 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_guest_profile_created = BillingProfile.objects.new_or_get( request) address_qs = None if billing_profile: 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 shipping_address_id or billing_address_id: order_obj.save() if request.method == 'POST': 'check order is 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 = { "order": 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, "carts/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('cart:home') login_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 request.user.is_authenticated: address_qs = Address.objects.filter(billing_profile=billing_profile) if billing_profile is not None: 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": is_done = order_obj.check_done() if is_done: order_obj.mark_paid() request.session['cart_items'] = 0 del request.session['cart_id'] print(order_obj.status) return redirect('cart:checkout-success') context = { 'object': order_obj, 'billing_profile': billing_profile, 'login_form': login_form, 'guest_form': guest_form, 'address_form': address_form, 'billing_address_form': billing_address_form, "address_qs": address_qs, } return render(request, 'carts/checkout.html', context)
def order_checkout(request): cart_obj, new = Cart.objects.new_or_get(request) if new or cart_obj.products.count() == 0: return redirect('cart:home') login_form = UserLoginForm() guest_user_form = GuestForm() ship_add_form = AddressForm() bill_add_form = AddressForm() billing_address_id = request.session.get("billing_address_id", None) shipping_address_id = request.session.get("shipping_address_id", None) bill_profile, created = BillingProfile.objects.new_or_get(request) order_obj = None address_qs = Address.objects.filter(billing_profle=bill_profile) if bill_profile is not None: # if there are other objects then make them inactive for now, if request.user.is_authenticated: address_qs = Address.objects.filter(billing_profle=bill_profile) order_qs = Order.objects.filter(billing_profle=bill_profile, cart=cart_obj, active=True, status="created") if order_qs.count() >= 1: order_obj = order_qs.first() else: order_obj = Order.objects.create(cart=cart_obj, billing_profle=bill_profile) if billing_address_id: order_obj.bill_add = Address.objects.get(id=billing_address_id) del request.session["billing_address_id"] if shipping_address_id: order_obj.ship_add = Address.objects.get(id=shipping_address_id) del request.session["shipping_address_id"] if billing_address_id or shipping_address_id: order_obj.save() if request.method == 'POST': isvalid = order_obj.final_check() if isvalid: order_obj.status_paid() del request.session["cart_id"] request.session["cart_items"] = 0 if 'guest_email_id' in request.session.keys(): del request.session['guest_email_id'] return render(request, "order/success.html", {'order': order_obj}) responseData = { 'ship_add': ship_add_form, 'bill_add': bill_add_form, 'order': order_obj, 'bill_profile': bill_profile, 'form': login_form, 'guest_form': guest_user_form, 'address_qs': address_qs } return render(request, 'order/checkout.html', responseData)
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("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) print("BILLING ID:", billing_address_id) print("SHIPPING ID:", shipping_address_id) 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": "some check that order is done" is_done = order_obj.check_done() if is_done: order_obj.mark_paid() del request.session['cart_id'] del request.session['cart_total'] return redirect("cart:success") context = { "order": 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, "carts/checkout.html", context)