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)
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)
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)
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"
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')
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
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"
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"
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')
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)
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"
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)
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'])
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)
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')
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')