assettrack/routes/delete.py
candifloss 4ffc68d5f2 Add: Branding config
- App name
- Tagline
- Large Logo (for Login page)
- Small Logo (for header)
2025-04-03 11:33:57 +05:30

40 lines
1.3 KiB
Python

from flask import Blueprint, request, render_template, redirect, flash
from definitions.models import Asset, db
from config import item_attributes
from functions.auth import login_required
from config import BrandingConfig
delete_bp = Blueprint('deleteasset', __name__)
@delete_bp.route('/delete/<path:primary_value>/', methods=['GET', 'POST'])
@login_required
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:
flash("Primary attribute not defined in configuration.", "error")
return redirect('/viewall')
# Fetch the item using the primary attribute
item = Asset.query.filter_by(**{primary_attrib.attrib_name: primary_value}).first()
if not item:
flash("Item not found.", "error")
return redirect('/viewall')
if request.method == 'POST':
db.session.delete(item)
db.session.commit()
flash("Item successfully deleted.", "success")
return redirect('/viewall')
# Render the delete confirmation page with a preview of the item
return render_template(
'delete.html',
item=item,
item_attributes=item_attributes,
brandingconfig=BrandingConfig
)