from flask import Blueprint, request, render_template, redirect, abort from definitions.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 in item_attributes if attrib.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.attrib_name: 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)