def edit_item(category, item_title): edit_item_form = NewItemForm(request.form) edit_item_form.category.choices = \ [(cat.id, cat.name) for cat in session.query(Category).all()] # get item if there is no item abort 404 error item = item_controller.get_item_in_category(category, item_title) if item is None: abort(404) # validate form and check if logged in user who created the item if request.method == 'POST' and edit_item_form.validate()\ and current_user.id == item.user.id: # set item new values and save item.title = edit_item_form.title.data item.description = edit_item_form.description.data item.category_id = edit_item_form.category.data item_controller.create_item(item) flash("item successfully edited") return redirect(url_for('home')) # init form default values edit_item_form.title.default = item.title edit_item_form.description.default = item.description edit_item_form.category.default = item.category.id edit_item_form.process() return render_template('edit_item.html', form=edit_item_form, item=item)
def add_item(): new_item_form = NewItemForm(request.form) new_item_form.category.choices = \ [(cat.id, cat.name) for cat in session.query(Category).all()] if request.method == 'POST' and new_item_form.validate(): item = Item(title=new_item_form.title.data, description=new_item_form.description.data, category_id=new_item_form.category.data, user_id=current_user.id) item_controller.create_item(item) flash("new Item successfully added") return redirect(url_for('home')) return render_template('new_item.html', form=new_item_form)