Esempio n. 1
0
def create_order(request):
    args = {
        'user': request.user,
        'form': OrderForm(),
        'delivery_mass': DeliveryType.objects.all(),
        'user_active': request.user.is_authenticated(),
        'cart_sum': get_sum(request),
    }
    args.update(csrf(request))
    is_valid = True

    if request.user.is_authenticated():
        ord = Order()
        ord.first_name = request.user.first_name
        ord.last_name = request.user.last_name
        ord.email = request.user.email
        ord.phone = request.user.phone
        ord.index = request.user.index
        ord.address = request.user.address
        # index
        args['form'] = OrderForm(instance=ord)

    if request.POST:

        if request.POST.get('delivery', "") == "":
            args['delivery_error'] = "- выберите тип доставки"
            is_valid = False

        form = OrderForm(request.POST)
        if is_valid and form.is_valid():
            order = form.save(commit=False)
            delivery = DeliveryType.objects.get(id=request.POST['delivery'])
            order.delivery = delivery.title
            order.delivery_price = delivery.price
            order.status = 0
            if request.user.is_authenticated():
                order.user = request.user
            order.sum = delivery.price + get_sum(request)
            order.save()
            cart = get_cart(request)
            if cart:
                for pr in CartProduct.objects.filter(cart=cart):
                    pr.cart = None
                    pr.save()
                    order.products.add(pr)
            else:
                args['cart_error'] = "в вашей корзине ничего нет"
            order.save()

            if request.user.is_authenticated():
                request.user.first_name = request.POST.get('first_name', "")
                request.user.last_name = request.POST.get('last_name', "")
                request.user.phone = request.POST.get('phone', "")
                request.user.address = request.POST.get('address', "")
                request.user.index = request.POST.get('index', "")
                request.user.save()

            email = request.POST.get('email', "")
            t = get_template('create_order_sender.html')
            html_content = t.render(Context({
                'hello': 'Спасибо за заказ на <a href="http://darya-shop.ru">darya-shop.ru</a>!',
                'user_active': request.user.is_authenticated(),
                'order': order,
                'order_status': STATUSES_LIST[order.status],
                'products': order.products.all(),
            }))

            msg = EmailMultiAlternatives("Заказ на Darya-Shop", html_content, "*****@*****.**", [email, "*****@*****.**"])
            msg.attach_alternative(html_content, "text/html")
            msg.send()

            return redirect("/orders/thanks/")

        args['form'] = form
    return render_to_response("create_order.html", args)