Beispiel #1
0
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)
Beispiel #3
0
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
Beispiel #6
0
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)
Beispiel #8
0
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)
Beispiel #9
0
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)
Beispiel #11
0
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)
Beispiel #12
0
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)
Beispiel #14
0
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])
Beispiel #17
0
def allRestaurants():
    restaurants = session.query(Restaurant).all()
    return render_template('allrestaurants.html', restaurants=restaurants)
Beispiel #18
0
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])