flask_crud_app/routes/viewall.py

24 lines
1021 B
Python
Raw Normal View History

2025-01-30 07:37:21 +00:00
from flask import Blueprint, request, render_template, send_file
from models import Asset, db
import csv
from config import item_attributes
2025-01-30 07:37:21 +00:00
viewall_bp = Blueprint('viewall', __name__)
@viewall_bp.route('/viewall/', methods=['GET', 'POST'])
def view_list():
if request.method == 'POST':
outfile = open('inventory_export.csv', 'w', newline='')
outcsv = csv.writer(outfile, delimiter='|')
records = db.session.query(Asset).all()
outcsv.writerow([column.name for column in Asset.__mapper__.columns])
[outcsv.writerow([getattr(curr, column.name) for column in Asset.__mapper__.columns]) for curr in records]
outfile.close()
return send_file('inventory_export.csv', as_attachment=True)
items = Asset.query.all()
primary_attrib = next(
(attrib for attrib, config in item_attributes.items() if config.primary),
None
)
return render_template('viewList.html', items=items, item_attributes=item_attributes, primary_attrib=primary_attrib)