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})