28 lines
916 B
Python
28 lines
916 B
Python
"""
|
|
routes/admin_dashboard.py — Admin dashboard: today's completion stats.
|
|
"""
|
|
|
|
import logging
|
|
from flask import Blueprint, render_template
|
|
from models import get_admin_dashboard_stats, get_missed_shifts_today
|
|
from utils.decorators import admin_required
|
|
|
|
logger = logging.getLogger("routes.admin_dashboard")
|
|
admin_dashboard_bp = Blueprint("admin_dashboard", __name__, url_prefix="/admin")
|
|
|
|
|
|
@admin_dashboard_bp.route("/dashboard")
|
|
@admin_required
|
|
def dashboard():
|
|
try:
|
|
stats = get_admin_dashboard_stats()
|
|
except Exception as e:
|
|
logger.error(f"Dashboard stats error: {e}")
|
|
stats = {"user_stats": [], "total_sites": 0, "total_users": 0, "active_today": 0}
|
|
try:
|
|
missed = get_missed_shifts_today()
|
|
except Exception as e:
|
|
logger.error(f"Missed shifts error: {e}")
|
|
missed = []
|
|
return render_template("admin/dashboard.html", stats=stats, missed=missed)
|