Пример #1
0
def checkout(request):
    cart = Cart(request)
    discount = CodeValidator(request, cart)
    if not cart.is_valid():
        return conditional_redirect(request, reverse('show_cart'))

    if request.method == 'POST':
        try:
            if request.POST['type'] == 'billing':
                cart.billing_address = request.POST['address']
                cart.refresh()
            elif request.POST['type'] == 'shipping':
                cart.shipping_address = request.POST['address']
                cart.refresh()
        except:
            pass

    if cart.shipping_address is not None:
        shipping_addr = Address.published.get(pk=cart.shipping_address)
        if shipping_addr.customer != request.user.get_profile():
            cart.flush()
            return conditional_redirect(request, '/')
    else:
        shipping_addr = request.user.get_profile().shipping_address()
        #shipping_addr = Address.published.get(customer=request.user.get_profile(), is_shipping=True)

    if cart.billing_address is not None:
        billing_addr = Address.published.get(pk=cart.billing_address)
        if billing_addr.customer != request.user.get_profile():
            cart.flush()
            return conditional_redirect(request, '/')
    else:
        billing_addr = request.user.get_profile().billing_address()
        #billing_addr = Address.published.get(Q(customer=request.user.get_profile()), Q(is_billing=True) | Q(is_shipping=True))

    return render_to_response('orders/checkout.html', {
        'object_list': cart.full_list(),
        'shipping_address': shipping_addr,
        'billing_address': billing_addr,
        'discount': discount,
    },
                              context_instance=RequestContext(request))
Пример #2
0
def checkout(request):
    cart = Cart(request)
    discount = CodeValidator(request, cart)
    if not cart.is_valid():
        return conditional_redirect(request, reverse('show_cart'))
    
    if request.method == 'POST':
        try:
            if request.POST['type'] == 'billing':
                cart.billing_address = request.POST['address']
                cart.refresh()
            elif request.POST['type'] == 'shipping':
                cart.shipping_address = request.POST['address']
                cart.refresh()
        except:
            pass

    if cart.shipping_address is not None:
        shipping_addr = Address.published.get(pk=cart.shipping_address)
        if shipping_addr.customer != request.user.get_profile():
            cart.flush()
            return conditional_redirect(request, '/')
    else:
        shipping_addr = request.user.get_profile().shipping_address()
        #shipping_addr = Address.published.get(customer=request.user.get_profile(), is_shipping=True)

    if cart.billing_address is not None:
        billing_addr = Address.published.get(pk=cart.billing_address)
        if billing_addr.customer != request.user.get_profile():
            cart.flush()
            return conditional_redirect(request, '/')
    else:
        billing_addr = request.user.get_profile().billing_address()
        #billing_addr = Address.published.get(Q(customer=request.user.get_profile()), Q(is_billing=True) | Q(is_shipping=True))

    return render_to_response('orders/checkout.html', {
        'object_list': cart.full_list(),
        'shipping_address': shipping_addr,
        'billing_address': billing_addr,
        'discount': discount,
        }, context_instance=RequestContext(request))