예제 #1
0
파일: app.py 프로젝트: dai175/foster
    def edit_type_submission(jwt, type_id):
        try:
            categories = Category.query.order_by(Category.id).all()
        except exc.SQLAlchemyError:
            abort(422)

        form = TypeForm()

        #  Add category list to form
        form.category.choices = [(category.id, category.name)
                                 for category in categories]

        if not form.validate_on_submit():
            return jsonify({'success': False})

        error = False

        try:
            type = Type.query.get(type_id)
            if type is None:
                abort(404)

            type.name = request.form['name']
            type.description = request.form['description']
            type.category_id = int(request.form['category'])
            db.session.commit()

            # Save images as
            file = request.files['image']
            if file:
                filename = upload_image(file, consts.LEAD_TYPE, type_id)
                type.image = filename
                db.session.commit()
        except exc.SQLAlchemyError:
            error = True
            db.session.rollback()
        finally:
            db.session.close()

        if not error:
            flash('Type {} was successfully updated!'.format(
                request.form['name']))
        else:
            flash('An error occurred. Type {} could not be updated.'.format(
                request.form['name']))

        return jsonify({'success': not error})