description = request.form['description'].strip() picture = request.files['picture'] picture_data = None if picture: if not allowed_file(picture.filename): flash("The picture must be a JPEG or PNG file.", "danger") return render_template('create_item.html', categories=categories, nonce=createNonce()) picture_data = picture.read() item = Item(name=name, description=description, category=category, creation_date=datetime.utcnow()) if picture_data: item.picture = picture.filename item.picture_data = picture_data session.add(item) session.commit() flash("The item '%s' has been created." % name, "success") return redirect(url_for('listItems', category_id=category.id)) def allowed_file(filename): return '.' in filename and \ filename.rsplit('.', 1)[1].lower() in ['jpg', 'jpeg', 'png'] @app.route('/item/<int:item_id>/edit/', methods=['GET','POST']) @login_required def editItem(item_id): """Modifies the item with the given id.
def newItem(category_id=''): """ Create new item Args: category_id: (optional) the id of the category """ categories = session.query(Category).all() if request.method == 'POST': nonce = request.form['nonce'].strip() # Check if nonce is set correct if not useNonce(nonce): flash("An error occurred. Please try again.", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) # Check if a name is set if not request.form['item_name'].strip(): flash("Please enter a name", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) # Check if a category is selected if not request.form['item_category'].strip(): flash("Please enter a name", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) try: category = session.query(Category).filter_by( id=request.form['item_category'].strip()).one() except Exception, e: flash("Please choose a valid category.", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) # check if an items with the same name already exists in this category existingItem = session.query(Item).filter_by( category_id=category.id, name=request.form['item_name'].strip()).first() if existingItem: flash( "An item with the same name already exists " "in this category. Please choose a different name", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) picture = request.files['item_picture'] picture_data = None if picture: if not allowed_file(picture.filename): flash("The picture must be a JPEG, GIF, or PNG file.", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) picture_data = picture.read() newItem = Item(name=request.form['item_name'], description=request.form['item_description'], category_id=request.form['item_category'], user_id=login_session['user_id'], created_on=datetime.utcnow()) if picture_data: newItem.picture = picture.filename newItem.picture_data = picture_data session.add(newItem) session.commit() flash('New Item %s successfully created' % newItem.name) session.commit() return redirect(url_for('home'))
if picture: if not allowed_file(picture.filename): flash("The picture must be a JPEG or PNG file.", "danger") return render_template('create_item.html', categories=categories, nonce=createNonce()) picture_data = picture.read() item = Item(name=name, description=description, category=category, creation_date=datetime.utcnow()) if picture_data: item.picture = picture.filename item.picture_data = picture_data session.add(item) session.commit() flash("The item '%s' has been created." % name, "success") return redirect(url_for('listItems', category_id=category.id)) def allowed_file(filename): return '.' in filename and \ filename.rsplit('.', 1)[1].lower() in ['jpg', 'jpeg', 'png'] @app.route('/item/<int:item_id>/edit/', methods=['GET', 'POST']) @login_required
def newItem(category_id=''): """ Create new item Args: category_id: (optional) the id of the category """ categories = session.query(Category).all() if request.method == 'POST': nonce = request.form['nonce'].strip() # Check if nonce is set correct if not useNonce(nonce): flash("An error occurred. Please try again.", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) # Check if a name is set if not request.form['item_name'].strip(): flash("Please enter a name", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) # Check if a category is selected if not request.form['item_category'].strip(): flash("Please enter a name", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) try: category = session.query(Category).filter_by( id=request.form['item_category'].strip()).one() except Exception, e: flash("Please choose a valid category.", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) # check if an items with the same name already exists in this category existingItem = session.query(Item).filter_by( category_id=category.id, name=request.form['item_name'].strip()).first() if existingItem: flash("An item with the same name already exists " "in this category. Please choose a different name", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) picture = request.files['item_picture'] picture_data = None if picture: if not allowed_file(picture.filename): flash("The picture must be a JPEG, GIF, or PNG file.", "danger") return render_template('forms/newItem.html', categories=categories, nonce=createNonce()) picture_data = picture.read() newItem = Item(name=request.form['item_name'], description=request.form['item_description'], category_id=request.form['item_category'], user_id=login_session['user_id'], created_on=datetime.utcnow()) if picture_data: newItem.picture = picture.filename newItem.picture_data = picture_data session.add(newItem) session.commit() flash('New Item %s successfully created' % newItem.name) session.commit() return redirect(url_for('home'))