def create_item(): if not is_user(): return redirect(url_for("login")) # for form validation get an instance validate = Validator() if request.method == "POST": # get form fields values in variables name, description, category_id = \ request.form.get('name').strip(), \ request.form.get('description').strip(), \ request.form.get('category_id') # validate form fields validate.validate(name, 'Name') validate.validate(description, 'Description') validate.validate(description, 'Category Name') # if form is valid create this item and send flash message if validate.valid_form(): model.create_item(name=name, description=description, category_id=category_id, user_id=login_session['id']) flash("Item Created Successfully") return redirect(url_for("home")) categories = model.all_categories() return render_template("create_item.html", categories=categories, form_errors=validate.get_form_errors(), is_user=is_user(), login_session=login_session)
def update_item(cid, iid): # from validation instance validate = Validator() selected_category, item, category_has_item = \ model.category_item(iid=iid, cid=cid) # boolean checks if user is authorized to access this page authorized = category_has_item and is_user()\ and item.user_id == login_session['id'] if not authorized: return redirect(url_for('login')) categories = model.all_categories() if request.method == 'POST': # get fields into variables iid, name, description, category_id = \ request.form.get('id'), \ request.form.get('name').strip(), \ request.form.get('description').strip(), \ request.form.get('category_id') # validate form validate.validate(field=name, field_name='Name') validate.validate(description, 'Description') validate.validate(category_id, "Category Name") # if form valid update if validate.valid_form(): item = model.update_item(item, name=name, description=description, cid=category_id) # set message shows updated done successfully msg = "%s Item Updated Successfully" % name flash(msg) return redirect( url_for("update_item", iid=item.id, cid=item.category_id)) return render_template("update_item.html", categories=categories, selected_category=selected_category, item=item, form_errors=validate.get_form_errors(), category_has_item=category_has_item, is_user=is_user(), login_session=login_session)