Пример #1
0
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)
Пример #2
0
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)