Пример #1
0
def show_custompizza():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    # print('customer id',session['MyWebsite_customer_id'])
    customer_id = session['MyWebsite_customer_id']
    # print('customer id',customer_id)
    customer = Customer.get(customer_id)
    # print(customer)
    order = Order.get_entering(customer.id)
    if not order:
        order = Order.new(customer_id)
        #new_pizza=Pizza.new(order.id,request.form)
    #print(order)
    sizes = Size.get_all()
    # print(sizes)
    styles = Style.get_all()
    order_types = OrderType.get_all()
    # print("order types:",order_types)
    toppings_menu = ToppingMenu.get_all()
    print(order.pizzas)
    return render_template('custompizza.html',
                           sizes=sizes,
                           styles=styles,
                           toppings_menu=toppings_menu,
                           order_types=order_types,
                           order=order)
Пример #2
0
def charge():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    # Action route handler from Stripe
    customer_id = session['MyWebsite_customer_id']
    customer = Customer.get(customer_id)
    order = Order.get_entering(customer.id)
    # Stripe token
    stripe_customer = stripe.Customer.create(
        email=customer.email, source=request.form['stripeToken'])
    # amount in cents, must be type int
    amount = int(order.total() * 100)
    # Process charge with stripe token
    stripe.Charge.create(customer=stripe_customer.id,
                         amount=amount,
                         currency='usd',
                         description='OrderID:' + str(order.id))
    # change order status so it shows up in kitchen dashboard
    order.submit()
    # socket io sends a message to any connected browser connections
    # socketio.emit('neworder',order.id, namespace='/restdash')
    socketio.emit('neworder',
                  render_template('restpartial.html', order=order),
                  namespace='/restdash')
    # show a response to the user.
    return render_template('charge.html', amount=amount, order=order)
Пример #3
0
def nav():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    cust_name = Customer.query.get(session['MyWebsite_customer_id'])
    name = cust_name.name
    return render_template('nav.html', name=name)
Пример #4
0
def delete_pizza():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    py_data = json.loads(request.form['json'])
    print("delete pizza:", py_data['pizza_id'])
    Pizza.delete(py_data['pizza_id'])
    return "ok"
Пример #5
0
def start_over(id):
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    order = Order.get_entering(id)
    db.session.delete(order)
    db.session.commit()
    return redirect('/create')
Пример #6
0
def get_order_total():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    customer_id = session['MyWebsite_customer_id']
    customer = Customer.get(customer_id)
    order = Order.get_entering(customer.id)
    total_str = "%.2f" % order.total()
    return total_str
Пример #7
0
def clear_order():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    py_data = json.loads(request.form['json'])
    order = Order.query.get(py_data['order_id'])
    for pizza in order.pizzas:
        Pizza.delete(pizza.id)
    return "ok"
Пример #8
0
def set_order_type():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    customer_id = session['MyWebsite_customer_id']
    order = Order.get_entering(customer_id)
    py_data = json.loads(request.form['json'])
    print("Set Order Type:", py_data['order_type'])
    order.set_type(py_data['order_type'])
    return "ok"
Пример #9
0
def random_pizza():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    customer_id = session['MyWebsite_customer_id']
    customer = Customer.get(customer_id)
    order = Order.get_entering(customer.id)
    if not order:
        order = Order.new(customer_id)
    new_pizza = Pizza.random(order.id)
    return redirect('/create')
Пример #10
0
def quick():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    userid = session['MyWebsite_customer_id']
    customer = Customer.get(userid)
    if customer.favorite_order_id:
        favorite_order = Order.query.get(customer.favorite_order_id)
    else:
        favorite_order = None
    return render_template('quick.html', order=favorite_order)
Пример #11
0
def make_favorite():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    #this to respond to AJAX call from checkout page, or charge page
    print("Make Favorite")
    print("Fav_Order", request.form['json'])
    customer_id = session['MyWebsite_customer_id']
    customer = Customer.get(customer_id)
    py_data = json.loads(request.form['json'])
    customer.update_favorite(py_data['order_id'])
    return "ok"
Пример #12
0
def add_pizza():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    customer_id = session['MyWebsite_customer_id']
    customer = Customer.get(customer_id)
    print("add pizza form:", request.form)
    order = Order.get_entering(customer.id)
    if not order:
        order = Order.new(customer_id)
    new_pizza = Pizza.new(order.id, request.form)
    # return redirect('/create')
    return render_template('line_order.html', pizza=new_pizza)
Пример #13
0
def show_checkout():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    #print(stripe_keys['publishable_key'])
    customer_id = session['MyWebsite_customer_id']
    customer = Customer.get(customer_id)
    order = Order.get_entering(customer.id)
    if len(order.pizzas) == 0:
        return redirect('/create')
    return render_template('checkout.html',
                           order=order,
                           key=stripe_keys['publishable_key'])
Пример #14
0
def cust_account():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    customer_id = session['MyWebsite_customer_id']
    customer = Customer.get(customer_id)
    cust_address = customer.addresses[0]
    print('*' * 90)
    print(customer_id)
    #Get past orders
    orders = Order.get_completed(customer.id)
    print("Account Orders", orders)
    return render_template('account.html',
                           customer=customer,
                           orders=orders,
                           address=cust_address)
Пример #15
0
def reorder_favorite():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    customer_id = session['MyWebsite_customer_id']
    customer = Customer.get(customer_id)
    fav_order = Order.query.get(customer.favorite_order_id)
    order = Order.get_entering(customer_id)
    print(order)
    if fav_order:
        # in case the customer has an order already started, we're going to delete it and replace it with a copy of favorite.
        if order:
            Order.delete(order)
        order = Order.copy(customer.favorite_order_id)
        order.reorder()
    else:
        # if we don't have a favorite, and no order already stared, create a new order.
        if not order:
            order = Order.new(customer_id)
    return redirect('/create')
Пример #16
0
def cust_update():
    if not 'MyWebsite_customer_id' in session.keys():
        return redirect('/')
    if not Customer.is_logged_in(session['MyWebsite_customer_id'],
                                 session['login_session']):
        return redirect('/danger')
    customer_id = session['MyWebsite_customer_id']
    errors = []
    errors += Customer.validate_name(request.form['name'])
    errors += Customer.validate_email(request.form['email'])
    errors += Customer.validate_phone(request.form['phone'])
    errors += Customer.validate_address(request.form['street_address'])
    errors += Customer.validate_address(request.form['city'])
    if request.form['password']:
        errors += Customer.validate_password(request.form['password'],
                                             request.form['confirm_password'])
    for error in errors:
        flash(error)
    if not errors:
        update = Customer.edit_user(customer_id, request.form)
        customer = Customer.get(customer_id)
        if request.form['password']:
            customer.update_password(request.form['password'])
    return redirect('/account')