from flask import Blueprint, request, render_template, redirect from models import Asset, db update_bp = Blueprint('editasset', __name__) @update_bp.route('/update//', methods=['GET', 'POST']) def update(assettag): item = Asset.query.filter_by(assettag=assettag).first() if request.method == 'POST': if item: assettag = request.form['assettag'] hostname = request.form['hostname'] warrantyfrom = request.form['warrantyfrom'] status = request.form['status'] if status not in ['Active', 'Inactive']: return render_template('update.html', item=item, exc='status') # Ensure status is valid try: staffnum = int(request.form['staffnum']) except ValueError: return render_template('update.html', item=item, exc='staffnum') try: setattr(item, 'assettag', assettag) setattr(item, 'hostname', hostname) setattr(item, 'warrantyfrom', warrantyfrom) setattr(item, 'status', status) setattr(item, 'staffnum', staffnum) db.session.commit() except exc.IntegrityError: return render_template('update.html', item=item, exc='integrity') except (exc.StatementError, exc.InvalidRequestError) as e: return render_template('update.html', item=item, exc='status') return redirect(f'/viewall/') return f"Asset {assettag} is not found" return render_template('update.html', item=item)