def menu(restaurant_id): restaurant = session.query(Restaurant).filter_by(id=restaurant_id).one() items = session.query(MenuItem).filter_by( restaurant_id=restaurant_id).all() if not items: flash('No item in this restaurant. Add one?') return render_template('menu.html', restaurant=restaurant, items=items)
def itemsList(category_name): categories = session.query(Category).all() category = session.query(Category).filter_by(name=category_name).one() items = session.query(Item).filter_by(course=category_name).\ order_by(desc(Item.id)).all() count = len(items) return render_template('itemsList.html', categories=categories, category=category, items=items, count=count)
def deleteMenuItem(restaurant_id, menu_id): restaurant = session.query(Restaurant).filter_by(id=restaurant_id).one() toBeDeleted = session.query(MenuItem).filter_by(id=menu_id).one() if request.method == 'POST': session.delete(toBeDeleted) session.commit() flash('The item has been deleted!') return redirect(url_for('menu', restaurant_id=restaurant_id)) else: return render_template('deletemenuitem.html', restaurant=restaurant, item=toBeDeleted)
def addItem(): if 'username' not in login_session: return redirect(url_for('showLogin')) if request.method == 'POST': if request.form['name'] and request.form['description'] and \ request.form['course']: if checkUnique(request.form['name']): newItem = Item(name=request.form['name'], description=request.form['description'], course=request.form['course'], email=login_session['email']) session.add(newItem) session.commit() flash('A new item has been %s added!' % newItem.name) return redirect( url_for('itemsList', category_name=request.form['course'])) else: flash('Item %s already exists. Please use a different name.' % request.form['name']) return redirect(url_for('homepage')) else: flash('Please make sure there is no empty value.') return redirect(url_for('homepage')) else: categories = session.query(Category).all() return render_template('addItem.html', categories=categories)
def createUser(login_session): newUser = User(name=login_session['username'], email=login_session['email'], picture=login_session['picture']) session.add(newUser) session.commit() user = session.query(User).filter_by(email=login_session['email']).one() return user.id
def deleteRestaurant(restaurant_id): toBeDeleted = session.query(Restaurant).filter_by(id=restaurant_id).one() if request.method == 'POST': session.delete(toBeDeleted) session.commit() flash('Restaurant has been deleted!') return redirect(url_for('allRestaurants')) else: return render_template('deleterestaurant.html', restaurant=toBeDeleted)
def editItem(item_name): if 'username' not in login_session: return redirect(url_for('showLogin')) # if there's no such an item in database, head to 404 page try: itemToBeUpdate = session.query(Item).filter_by(name=item_name).one() except exc.NoResultFound: return render_template('404.html'), 404 # this item is not created by this user if itemToBeUpdate.email != login_session['email']: flash('Non authorized.') return redirect(url_for('homepage')) if request.method == 'POST': if request.form['name'] and request.form['description'] and \ request.form['course']: # user has updated the name, we need check if it's unique if item_name != request.form['name']: if checkUnique(request.form['name']): itemToBeUpdate.name = request.form['name'] itemToBeUpdate.description = request.form['description'] itemToBeUpdate.course = request.form['course'] session.add(itemToBeUpdate) session.commit() flash('Successfully updated the info of %s!' % itemToBeUpdate.name) else: flash('Failed to update. Please use a different name.') # user doesn't change the name, it's ok to continue else: itemToBeUpdate.description = request.form['description'] itemToBeUpdate.course = request.form['course'] session.add(itemToBeUpdate) session.commit() flash('Successfully updated the info of %s!' % itemToBeUpdate.name) else: flash('Please make sure there is no empty value.') return redirect( url_for('itemsList', category_name=itemToBeUpdate.course)) else: categories = session.query(Category).all() return render_template('editItem.html', categories=categories, item=itemToBeUpdate)
def editMenuItem(restaurant_id, menu_id): restaurant = session.query(Restaurant).filter_by(id=restaurant_id).one() editedItem = session.query(MenuItem).filter_by(id=menu_id).one() if request.method == 'POST': if request.form['name'] and request.form['price'] and \ request.form['course'] and request.form['description']: editedItem.name = request.form['name'] editedItem.price = request.form['price'] editedItem.course = request.form['course'] editedItem.description = request.form['description'] session.add(editedItem) session.commit() flash('The item has been updated!') return redirect(url_for('menu', restaurant_id=restaurant_id)) else: return 'empty value.' else: return render_template('editmenuitem.html', restaurant=restaurant, menu=editedItem, courses=courses)
def editRestaurant(restaurant_id): editedRestaurant = session.query(Restaurant).filter_by( id=restaurant_id).one() if request.method == 'POST': if request.form['name']: editedRestaurant.name = request.form['name'] session.add(editedRestaurant) session.commit() flash('Restaurant has been renamed!') return redirect(url_for('allRestaurants')) else: return 'empty value.' else: return render_template('editrestaurant.html', restaurant=editedRestaurant)
def deleteItem(item_name): if 'username' not in login_session: return redirect(url_for('showLogin')) # if there's no such an item in database, head to 404 page try: itemToBeDelete = session.query(Item).filter_by(name=item_name).one() except exc.NoResultFound: return render_template('404.html'), 404 # this item is not created by this user if itemToBeDelete.email != login_session['email']: flash('Non authorized.') return redirect(url_for('homepage')) if request.method == 'POST': # delete item session.delete(itemToBeDelete) session.commit() flash('Item %s deleted.' % itemToBeDelete.name) return redirect( url_for('itemsList', category_name=itemToBeDelete.course)) else: return render_template('deleteItem.html', item=itemToBeDelete)
def addMenuItem(restaurant_id): restaurant = session.query(Restaurant).filter_by(id=restaurant_id).one() if request.method == 'POST': if request.form['name'] and request.form['price'] and \ request.form['course'] and request.form['description']: newItem = MenuItem(name = request.form['name'],\ price = request.form['price'],\ course = request.form['course'],\ description = request.form['description'], restaurant_id = restaurant_id) session.add(newItem) session.commit() flash('A new item has been added!') return redirect(url_for('menu', restaurant_id=restaurant_id)) else: return 'empty value.' else: # courses = session.query(distinct(MenuItem.course)).filter_by(restaurant_id = restaurant_id).all() return render_template('addmenuitem.html', restaurant=restaurant, courses=courses)
def allRestaurantsJSON(): restaurants = session.query(Restaurant).all() return jsonify(Restaurants=[i.serialize for i in restaurants])
def showItem(category_name, item_name): item = session.query(Item).filter_by(name=item_name).one() return render_template('itemInfo.html', item=item)
def allMenuJSON(restaurant_id): items = session.query(MenuItem).filter_by( restaurant_id=restaurant_id).all() return jsonify(Menu=[i.serialize for i in items])
def homepage(): categories = session.query(Category).all() # items array, latest first items = session.query(Item).order_by(desc(Item.id)).all() return render_template('homepage.html', categories=categories, items=items)
def userList(): users = session.query(User).all() return jsonify(Users=[i.serialize for i in users])
def allRestaurants(): restaurants = session.query(Restaurant).all() return render_template('allrestaurants.html', restaurants=restaurants)
def itemInfoJSON(restaurant_id, menu_id): item = session.query(MenuItem).filter_by(restaurant_id=restaurant_id, id=menu_id).one() return jsonify(Item=item.serialize)
def checkUnique(name): items = session.query(Item).all() for item in items: if item.name == name: return False return True
def allCategoriesJSON(): categories = session.query(Category).all() return jsonify(Categories=[i.serialize for i in categories])
def getUserID(email): try: user = session.query(User).filter_by(email=email).one() return user.id except: return None
def itemsListJSON(category_name): items = session.query(Item).filter_by(course=category_name).all() return jsonify(Items=[i.serialize for i in items])