from flask import Blueprint, render_template from flask_login import login_required from app.models.user import User from app.models.asset import Asset from app.models.assignment import Assignment from app.models.paperwork import Paperwork bp = Blueprint('dashboard', __name__) @bp.route('/') @login_required def index(): stats = { 'total_users': User.query.count(), 'active_users': User.query.filter_by(is_active=True, is_masked=False).count(), 'masked_users': User.query.filter_by(is_masked=True).count(), 'total_assets': Asset.query.count(), 'available_assets': Asset.query.filter_by(status='available').count(), 'assigned_assets': Asset.query.filter_by(status='assigned').count(), 'maintenance_assets': Asset.query.filter_by(status='maintenance').count(), 'active_assignments': Assignment.query.filter_by(is_active=True).count(), 'total_paperwork': Paperwork.query.count(), } # Recent assignments recent_assignments = ( Assignment.query .filter_by(is_active=True) .order_by(Assignment.created_at.desc()) .limit(10) .all() ) return render_template('dashboard/index.html', stats=stats, recent_assignments=recent_assignments)