Exemple #1
0
def cart_view():
    if request.method == 'POST' and 'order_delete' in request.form:
        clear_cart()
        return redirect(url_for('order.cart_view'))
    cart = session.get('cart', {})
    price = cart.get('price', 0)
    products_count = cart.get('products_count', 0)
    un_products_count = cart.get('un_products_count', 0)
    cart_products = cart.get('products', {})
    products = []
    for product_key in cart_products.keys():
        cart_product = cart_products.get(product_key, {})
        product = Product.retrieve_by_id(product_key)
        if product:
            product.order = cart_product.get('count', 0)
            product.order_price = cart_product.get('price', 0)
        products.append(product)
    if request.method == 'POST' and 'order_accept':
        order = Order(customer=current_user.user_db.key)
        price = 0
        for product in products:
            order_product = OrderProduct(
                name=product.name,
                img_url='%s=s100' % product.images[0] if product.images else '',
                product_key=product.key,
                count=product.order,
                price=product.order_price,
            )
            price += product.order_price
            order.products.append(order_product)
        order.price = price
        order.put()
        clear_cart()
        return render_template(
            'order/order_success.html',
            title=u'Предзаказ оформлен',
            order=order
        )
    return render_template(
        'order/cart.html',
        title=u'Оформление предзаказа',
        price=price,
        products_count=products_count,
        un_products_count=un_products_count,
        products=products
    )