def checkout_address_create_view(request): form = AddressForm(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(): print(request.POST) instance = form.save(commit=False) billing_profile, billing_profile_created = BillingProfile.objects.new_or_get(request) if billing_profile is not None: address_type = request.POST.get('address_type', 'shipping') instance.billing_profile = billing_profile instance.address_type = request.POST.get('address_type', 'shipping') instance.save() request.session[address_type + '_address_id'] = instance.id print(address_type + '_address_id') else: print('Error address not saved') return redirect('cart:checkout') if is_safe_url(redirect_path, request.get_host()): return redirect(redirect_path) return redirect('cart:checkout')
def checkout_address_create_view(request): address_form = AddressForm(request.POST or None) context = {'form': address_form} _next = request.GET.get('next') _next_post = request.POST.get('next') redirect_path = _next or _next_post or None if address_form.is_valid(): print(request.POST) print(address_form.cleaned_data) instance = address_form.save(commit=False) billing_profile, _ = BillingProfile.objects.new_or_get(request) if billing_profile is not None: address_type = request.POST.get('address_type', 'shipping') instance.billing_profile = billing_profile instance.address_type = address_type instance.save() request.session[address_type + '_address_id'] = instance.id print(address_type + '_address_id', request.session[address_type + '_address_id']) else: print('Error occured') redirect('cart:checkout') if is_safe_url(redirect_path, request.get_host()): return redirect(redirect_path) return redirect('cart:checkout')
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_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_address_create_view(request): form = AddressForm(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(): instance = form.save(commit=False) billing_profile, billing_profile_created = BillinigProfile.objects.new_or_get( request) if billing_profile is not None: address_type = request.POST.get("address_type", "shipping") instance.billing_profile = billing_profile instance.address_type = address_type instance.save() request.session[address_type + "_address_id"] = instance.id else: return redirect("cart:checkout") print(request.POST) if is_safe_url(redirect_path, request.get_host()): print(redirect_path) return redirect(redirect_path) else: return redirect("cart:checkout") return redirect("cart:checkout")
def edit_address(request): address_id = request.GET.get("address_id") address_edit = request.GET.get("address_edit") address_delete = request.GET.get("address_delete") address_obj = Address.objects.get(id=address_id) if request.user.is_authenticated: if address_obj in request.user.billingprofile.address_set.all(): if address_edit: form = AddressForm(instance=Address.objects.get(id=address_id)) if request.method == 'POST': form = AddressForm(request.POST or None) if form.is_valid(): address_obj.address_line_1 = form.cleaned_data.get("address_line_1") address_obj.address_line_2 = form.cleaned_data.get("address_line_2") address_obj.city = form.cleaned_data.get("city") address_obj.country = form.cleaned_data.get("country") address_obj.state = form.cleaned_data.get("state") address_obj.postal_code = form.cleaned_data.get("postal_code") address_obj.save() return render(request, 'accounts/account_info.html', {'address_id': address_id, 'address_delete': address_delete, 'form': form}) else: return render(request, 'accounts/change_address.html', {'address_id': address_id, 'address_delete': address_delete, 'form': form}) elif address_delete: address_obj.delete() return render(request, 'accounts/account_info.html', {'address_id': address_id, 'address_delete': address_delete}) else: raise Http404 else: raise Http404 return render(request, 'accounts/change_address.html', {'address_id': address_id, 'address_delete': address_delete, 'form': form})
def address_update(request): if request.method == 'POST': form = AddressForm(request.POST) next_post = request.POST.get('next') billing_profile, bill_created = BillingProfile.objects.new_or_get( request) cart_obj, cart_create = Cart.objects.new_or_get(request) order_obj, order_create = Order.objects.new_or_get( billing_profile=billing_profile, cart_obj=cart_obj) address_type = request.POST.get('address_type') address_id = request.POST.get('address') address = Address.objects.get(id=address_id) if address_type == 'shipping': order_obj.shipping_address = address order_obj.save() else: order_obj.billing_address = address order_obj.save() return redirect(next_post) else: form = AddressForm() return redirect('carts:cart_checkout')
def address_update(request): if request.method == 'POST': # Is this a shipping or billing address???? address_type = request.POST.get('address_type') address_id = request.POST.get('address') print('address', address_id) address = Address.objects.get(id=address_id) billing_profile, bill_created = BillingProfile.objects.new_or_get( request) cart_obj, cart_created = Cart.objects.new_or_get(request) order_obj, order_created = Order.objects.new_or_get( billing_profile=billing_profile, cart_obj=cart_obj) form = AddressForm(request.POST) if form.is_valid(): # Now we have to associate to the order if address_type == 'shipping': # How do we get the order? order_obj.shipping_address = address order_obj.save() if address_type == 'billing': order_obj.billing_address = address order_obj.save() return redirect('carts:cart_checkout') else: return redirect('carts:cart_checkout')
def checkout_address_create_view(request): form = AddressForm(request.POST or None) context = {"form": form} next_ = request.GET.get('next') next_post = request.POST.get('next_url') redirect_path = next_ or next_post or None address_type = request.POST.get('address_type') print("Address Type:", address_type) print("next_post", next_post) print("redirect_path", redirect_path) if form.is_valid(): print(form.cleaned_data) print("REQUEST") print(request) instance = form.save(commit=False) #address_type = form.cleaned_data.get("address_type", "shipping") billing_profile, billing_profile_created = BillingProfile.objects.new_or_get( request) if billing_profile is not None: instance.billing_profile = billing_profile instance.address_type = address_type instance.save() else: print("Error here") return redirect("cart:checkout") request.session[address_type + "_address_id"] = instance.id print("Address Type: {0} | ID: {1}".format(address_type, instance.id)) if is_safe_url(redirect_path, request.get_host()): return redirect(redirect_path) else: return redirect("cart:checkout") return redirect("cart:checkout")
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_address_create_view(request): form = AddressForm(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(): print(request.POST) instance = form.save(commit=False) billing_profile, billing_profile_created = BillingProfile.objects.new_or_get( request) if billing_profile is not None: address_type = request.POST.get("address_type", 'shipping') instance.billing_profile = billing_profile instance.address_type = request.POST.get('address_type', 'shipping') instance.save() request.session[address_type + "_address_id"] = instance.id print(request.session[address_type + "_address_id"]) else: # TODO put a real error here that the address didn't save print("Error trying to save address") return redirect("cart:checkout") if is_safe_url(redirect_path, request.get_host()): return redirect(redirect_path) else: return redirect("cart:checkout") return redirect("cart:checkout")
def addressview(request, user_id, address_id=None): address = None addresses_list = Address.objects.all().filter(user=user_id) if address_id: try: address = Address.objects.get(pk=address_id) addresses_list = Address.objects.filter(user=user_id).exclude( pk=address_id) except: return rendermessage( request, 'Error', 'Shipping does not exist', '', reverse('users:addresses', args=[str(user_id)]), 'shipping addresses page') if request.method == "POST": if address: addressform = AddressForm(request.POST, instance=address) else: addressform = AddressForm(request.POST, initial=request.POST) if addressform.is_valid(): newaddress = addressform.save(commit=False) newaddress.user_id = user_id newaddress.save() return rendermessage( request, 'New address confirmation', 'Shipping address added succefully', '', reverse('users:addresses', args=[str(user_id)]), 'addresses page') return rendermessage( request, 'Shipping address | Error', 'Shipping address ', 'There was an error adding the shipping address. ' + addressform.error_message, reverse('users:addresses', args=[str(user_id)]), 'shipping addresses page') else: # GET if address: addressform = AddressForm(instance=address) button_text = 'Modify shiping address' page_title = address.name else: addressform = AddressForm() button_text = 'Add new shipping address' page_title = 'New' return render( request, 'addresses/addresses.html', { 'user_id': user_id, 'address': address, 'page_title': page_title, 'form': addressform, 'addresses_list': addresses_list, 'button_text': button_text, })
def dispatch(self, request: HttpRequest, realty_id: Optional[int] = None, *args, **kwargs): self.session_handler = SessionHandler( session=request.session, keys_collector_name=REALTY_FORM_KEYS_COLLECTOR_NAME, session_prefix=REALTY_FORM_SESSION_PREFIX, ) if realty_id: # if we are editing an existing Realty object self.realty = get_object_or_404(Realty, id=realty_id) # if a current user is not the host of the Realty if not hasattr(request.user, 'host') or \ self.realty.host != request.user.host: return redirect(reverse('realty:all')) self.address = self.realty.location self.is_creating_new_realty = False self.realty_images = self.realty.images.all() self.required_session_data = [] else: self.required_session_data = get_keys_with_prefixes( names=get_required_fields_from_form_with_model( forms_with_models=[ FormWithModel(RealtyGeneralInfoForm, Realty), FormWithModel(AddressForm, Address), FormWithModel(RealtyDescriptionForm, Realty), ], ), prefix=REALTY_FORM_SESSION_PREFIX, ) self.realty_info_initial = self.session_handler.get_items_by_keys( keys=get_field_names_from_form(RealtyForm)) # handle m2m field self.realty_info_initial[ 'amenities'] = get_amenity_ids_from_session( self.session_handler) self.realty_address_initial = self.session_handler.get_items_by_keys( keys=get_field_names_from_form(AddressForm)) self.realty_form = RealtyForm( data=request.POST or None, instance=self.realty, initial=self.realty_info_initial, ) self.address_form = AddressForm( data=request.POST or None, instance=self.address, initial=self.realty_address_initial, ) return super(RealtyEditView, self).dispatch(request, realty_id, *args, **kwargs)
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 dispatch(self, request: HttpRequest, *args, **kwargs): self.session_handler = SessionHandler( session=request.session, keys_collector_name=REALTY_FORM_KEYS_COLLECTOR_NAME, session_prefix=REALTY_FORM_SESSION_PREFIX, ) initial = self.session_handler.get_items_by_keys( keys=get_field_names_from_form(AddressForm)) self.location_form = AddressForm(request.POST or None, initial=initial) return super(RealtyLocationEditView, self).dispatch(request, *args, **kwargs)
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(request): print(1) cart_obj, new_obj = Cart.objects.get_or_new(request) order_obj = None if new_obj 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) address_qs = None billing_profile, billing_profile_created = BillingProfile.objects.get_or_new( request) if billing_profile is not None: order_obj, order_obj_created = Order.objects.get_or_new( billing_profile, cart_obj) if request.user.is_authenticated: address_qs = Address.objects.filter( billing_profile=billing_profile) 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': if order_obj.check_done(): order_obj.mark_paid() del request.session['cart_id'] request.session['cart_items'] = 0 return redirect('cart:done') # redirect to success page context = { 'object': order_obj, 'login_form': login_form, 'guest_form': guest_form, 'billing_profile': billing_profile, '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, new_created = Cart.objects.new_or_get(request) order_obj = None if new_created or cart_obj.products.count() == 0: return redirect("carts: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) if billing_profile is not None: order_obj, order_obj_created = Order.objects.new_or_get( billing_profile, cart_obj) print("Order object created: ", order_obj_created) 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'] return redirect("/cart/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 } 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') next_url = request.build_absolute_uri billing_profile = None guest_form = GuestForm() address_form = AddressForm() billing_address_form = AddressForm() # CODE REF VIDEO 089 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) # SOME CODEs ARE COPIED TO MODEL MANAGER(BILLING) 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() del request.session['cart_id'] request.session['cart_items'] = 0 return redirect('/cart/success') context = { 'object': order_obj, 'billing_profile': billing_profile, 'absolute_uri': next_url, '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 shipping_address_qs = None billing_address_qs = None if cart_created or cart_obj.products.count() == 0: return redirect('cart:home') billing_profile, 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') 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( cart_obj, billing_profile) if billing_address_id is not None and shipping_address_id is not None: order_obj.shipping_address = Address.objects.get( id=shipping_address_id) order_obj.billing_address = Address.objects.get( id=billing_address_id) order_obj.save() del request.session['billing_address_id'] del request.session['shipping_address_id'] if request.method == "POST": is_done = order_obj.check_order() if is_done: del request.session['cart_id'] request.session['cart_count'] = 0 order_obj.complete_order() cart_obj.active = False cart_obj.save() return redirect("cart:success") context = { "object": order_obj, "obj_count": cart_obj.products.count(), "billing_profile": billing_profile, "form_login": LoginForm(), "form_registration": RegistrationForm(), "form_guest": GestForm(), "shipping_address": AddressForm(prefix="shipping"), "billing_address": AddressForm(prefix="billing"), "saved_shipping_address": shipping_address_qs, "saved_billing_address": billing_address_qs, } return render(request, "cart/checkout.html", context)
def checkout_home(request): # Get cart and order cart_obj, cart_created = Cart.objects.new_or_get(request) order_obj = None if cart_created or cart_obj.product.count() == 0: return redirect('cart:home') login_form = forms.LoginForm() guest_form = forms.GuestForm() address_form = AddressForm() billing_profile,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') print(billing_address_id, shipping_address_id) if billing_profile != 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'] order_obj.save() context = { 'object': order_obj, 'billing_profile': billing_profile, 'guest_form': guest_form, 'login_form': login_form, 'address_form':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") 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 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: 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 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_address(request): cart_obj, cart_created = Cart.objects.new_or_get(request) if cart_created or cart_obj.accounts.count() == 0: return redirect("cart:home") address_qs = None billing_address_form = AddressForm() billing_profile, billing_profile_created = BillingProfile.objects.new_or_get( request) if billing_profile: if request.user.is_authenticated(): address_qs = Address.objects.filter( billing_profile=billing_profile) billing_address_id = request.session.get("billing_address_id", None) if billing_address_id: order_obj, order_obj_created = Order.objects.new_or_get( billing_profile, cart_obj) order_obj.billing_address = Address.objects.get( id=billing_address_id) del request.session["billing_address_id"] order_obj.save() return redirect("billing:payment_method") else: return redirect('cart:checkout_login') context = { "billing_address_form": billing_address_form, "address_qs": address_qs, } return render(request, 'cart/checkout_address.html', context)
def update_daycare(request, id): context = None if request.user.is_authenticated() and request.user.admin: daycare_object = Daycare.objects.get(id=id) address = Address.objects.get(id=daycare_object.daycare_address.id) daycareform = DaycareFormCreation( request.POST or None, initial={ 'name': daycare_object.name, 'identification_number': daycare_object.identification_number, 'NEQ': daycare_object.NEQ, 'account_number': daycare_object.account_number, }) addressForm = AddressForm(request.POST or None, initial={ 'address_line_1': address.address_line_1, 'address_line_2': address.address_line_2, 'city': address.city, 'country': address.country, 'province': address.province, 'postal_code': address.postal_code, 'home_phone': address.home_phone, 'cell_phone': address.cell_phone, }) context = { 'daycare': daycareform, 'address': addressForm, 'daycare_object': daycare_object, } if request.method == 'POST': edit_daycare(request, id) return redirect("/daycare/" + id) return render(request, "daycares/detail.html", context)
def create_daycare(request): context = None if request.user.is_authenticated() and request.user.admin: daycares = Daycare.objects.all() daycareform = DaycareFormCreation(request.POST or None) address = AddressForm(request.POST or None) bank = BankForm(request.POST or None) context = { 'daycare': daycareform, 'address': address, 'daycares': daycares, 'bank': bank } if request.is_ajax() and request.method == 'GET': unique_taxes = Daycare() data = [ unique_taxes.unique_employee_taxes, unique_taxes.unique_company_taxes ] return JsonResponse(data, safe=False, content_type='application/json') if request.method == 'POST': add_daycare(request, daycareform, address, bank) return redirect("/daycare/") return render(request, "daycares/daycares.html", context)
def deviceRegister(request, device_id): dev = Device.objects.filter(device_id=device_id).first() grocery_vals = dev.slot_grocery() dev_address, dev_contact = dev.has_related_object() addressForm = None contactForm = None if not dev_address: addressForm = AddressForm() if not dev_contact: contactForm = ContactForm() if dev_address or dev_contact: next_url = '/home/' else: next_url = request.build_absolute_uri context = { 'dev': dev, 'address_form': addressForm, 'contact_form': contactForm, 'next_url': next_url, } return render(request, template_name="device/register.html", context=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)