diff --git a/routes/create.py b/routes/create.py index f9a0b06..b5cc360 100644 --- a/routes/create.py +++ b/routes/create.py @@ -7,19 +7,19 @@ addasset_bp = Blueprint('addasset', __name__) @addasset_bp.route('/create/', methods=['GET', 'POST']) def create(): if request.method == 'GET': + # Render the "add item" form return render_template('create.html', item_attributes=item_attributes) + # Process submitted form if request.method == 'POST': - assettag = request.form['assettag'] - hostname = request.form['hostname'] - warrantyfrom = request.form['warrantyfrom'] - status = request.form['status'] + # Get data from form + form_data = {attrib: request.form[attrib] for attrib in item_attributes} try: - staffnum = int(request.form['staffnum']) + primary_attr = next((attrib_name for attrib_name, attrib in item_attributes.items() if attrib.primary), None) except ValueError: - return render_template('create.html', exc='staffnum') + return render_template('create.html', exc=primary_attr) - item = Asset(assettag=assettag, hostname=hostname, warrantyfrom=warrantyfrom, status=status, staffnum=staffnum) + item = Asset(**form_data) try: db.session.add(item)