from flask import Blueprint, request, render_template, send_file from models import Asset, db import csv from config import item_attributes 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)