def create_item(category): '''handles creation of a new Item''' if request.method == 'GET' and 'username' in login_session: # user is logged in, so render the createItem page categories = session.query(Category).all() return render_template('createItem.html', categories=categories, selected_category=category) elif request.method == 'GET': # user is NOT logged in, so render the loginpage flash('You need to login first to create a new item.') return render_template('login.html') elif request.method == 'POST': new_item = Item() if request.form['name']: new_item.name = request.form['name'] if request.form['description']: new_item.description = request.form['description'] category_selected = (session.query(Category).filter_by( name=request.form['category']).one()) new_item.category_id = category_selected.id new_item.creator_id = login_session['user_id'] new_item.edited_time = int(time.time()) session.add(new_item) session.commit() flash('{} created'.format(new_item.name)) return redirect( url_for('category_display', category=category_selected.name))
def add_item(): """ add_item: Add new item to database Args: - Returns: If method is POST, redirect back to show_items.html, if method is GET, show the add_item.html template """ logged_in = True if request.method == 'POST': name = request.form['name'] description = request.form['description'] category = request.form['category'] new_category = request.form['new_category'] category_id = '' if category == 'new_category_option': # Create new category item category = new_category c = Category(name=category) session.add(c) session.commit() item_category = session.query(Category).filter_by( name=category).one() category_id = item_category.id category = item_category.name else: old_category = session.query(Category).filter_by( id=category).one() category_id = old_category.id category = old_category.name item = Item() item.name = name item.description = description item.category = category_id # Get the current user username = login_session['username'] user = session.query(User).filter_by(username=username).one() item.creator_id = user.id session.add(item) session.commit() return redirect(url_for('show_items', logged_in=logged_in, category=category)) else: categories = session.query(Category).all() return render_template("add_item.html", logged_in=logged_in, categories=categories)