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
示例#3
0
def addRestaurant():
    if request.method == 'POST':
        if request.form['name']:
            newRestaurant = Restaurant(name=request.form['name'])
            session.add(newRestaurant)
            session.commit()
            flash('New restaurant added!')
            return redirect(url_for('allRestaurants'))
        else:
            return 'empty value.'
    else:
        return render_template('addrestaurant.html')
示例#4
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 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)
示例#6
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)
示例#7
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)