from flask import Blueprint, request, render_template, redirect, abort from models import Asset, db from config import item_attributes delete_bp = Blueprint('deleteasset', __name__) @delete_bp.route('/delete//', methods=['GET', 'POST']) def delete(primary_value): # Identify the primary attribute primary_attrib = next( (attrib for attrib, config in item_attributes.items() if config.primary), None ) if not primary_attrib: return "Primary attribute not defined in configuration." # Fetch the item using the primary attribute item = Asset.query.filter_by(**{primary_attrib: primary_value}).first() if not item: abort(404) # Item not found if request.method == 'POST': db.session.delete(item) db.session.commit() return redirect('/viewall') return render_template('delete.html', item=item)