Esempio n. 1
0
def order(request, step='1'):
    c = get_common_context(request)
    if step == '1':
        if request.user.is_authenticated():
            return HttpResponseRedirect('/order/2/')
        else:
            if request.method == "GET":
                auth_form = AuthenticationForm()
                register_form = RegisterForm()
                c['auth_form'] = auth_form
                c['register_form'] = register_form
                return render_to_response('order_1.html', c, context_instance=RequestContext(request))
            else:
                request.session['is_order'] = True
                return register(request)
    else:
        if not request.user.is_authenticated():
            return HttpResponseRedirect('/order/1/')
    if step == '2':
        c['items'] = c['cart_working'].get_content(request.user)
        return render_to_response('order_2.html', c, context_instance=RequestContext(request))
    elif step == '3':
        from shop.forms import Step3Form
        if request.method == 'GET':
            user_profile = request.user.get_profile()
            form = Step3Form(initial={
                                        'fio': user_profile.fio,
                                        'phone': user_profile.phone,
                                        'index': user_profile.index,
                                        'city': user_profile.city,
                                        'street': user_profile.street,
                                        'house': user_profile.house,
                                      })
        else:
            form = Step3Form(request.POST)
            if form.is_valid():
                Order.get_or_create(request.user)
                return HttpResponseRedirect('/order/4/')
            
        c['form'] = form
        return render_to_response('order_3.html', c, context_instance=RequestContext(request))
    elif step == '4':
        if request.method == 'GET':
            return render_to_response('order_4.html', c, context_instance=RequestContext(request))
        else:
            o = Order.get_recent(request.user)
            if o:
                o.delivery = request.POST['delivery']
                o.save()
                return HttpResponseRedirect('/order/5/')
            else:
                return HttpResponseRedirect('/order/2/')
    elif step == '5':
        if request.method == 'GET':
            return render_to_response('order_5.html', c, context_instance=RequestContext(request))
        else:
            o = Order.get_recent(request.user)
            if o:
                o.send()
                c['order_send'] = True
                return render_to_response('order_5.html', c, context_instance=RequestContext(request))
            else:
                return HttpResponseRedirect('/order/2/')
    else:
        return HttpResponseRedirect('/cart/')