05/27 Sync with iPad app (Phase E)

This commit is contained in:
Nguyen Ngo
2026-05-27 16:56:06 -04:00
parent 1095c8fcde
commit bf3275a454
2 changed files with 20 additions and 7 deletions
+4
View File
@@ -77,6 +77,10 @@ def _issue_payload(issue):
'verification_note': issue.verification_note or None, 'verification_note': issue.verification_note or None,
# Reporter display name — shows who filed the issue. # Reporter display name — shows who filed the issue.
'reported_by_name': issue.reporter.display_name if issue.reporter else None, 'reported_by_name': issue.reporter.display_name if issue.reporter else None,
# Area name — set when the issue was flagged during an area-specific inspection.
'area_name': issue.area.name if issue.area else None,
# Assigned-to display name — set when a director assigns the issue to a user.
'assigned_to_name': issue.assigned_user.display_name if issue.assigned_user else None,
} }
+16 -7
View File
@@ -113,6 +113,14 @@ def dashboard_stats():
open_issues_all = open_q.all() open_issues_all = open_q.all()
open_issues = len(open_issues_all) open_issues = len(open_issues_all)
# ── Severity breakdown (derived from the same open_issues_all list) ───
severity_breakdown = {
'critical': sum(1 for i in open_issues_all if i.severity == 'critical'),
'high': sum(1 for i in open_issues_all if i.severity == 'high'),
'medium': sum(1 for i in open_issues_all if i.severity == 'medium'),
'low': sum(1 for i in open_issues_all if i.severity == 'low'),
}
# ── SLA counts (derived from the same open_issues_all list) ────────── # ── SLA counts (derived from the same open_issues_all list) ──────────
sla_breached = sum(1 for i in open_issues_all if sla_status(i) == 'breached') sla_breached = sum(1 for i in open_issues_all if sla_status(i) == 'breached')
sla_at_risk = sum(1 for i in open_issues_all if sla_status(i) == 'at_risk') sla_at_risk = sum(1 for i in open_issues_all if sla_status(i) == 'at_risk')
@@ -159,11 +167,12 @@ def dashboard_stats():
) )
return api_ok({ return api_ok({
'today_inspections': today_inspections, 'today_inspections': today_inspections,
'completed_today': completed_today, 'completed_today': completed_today,
'open_issues': open_issues, 'open_issues': open_issues,
'avg_score_30d': avg_score, 'avg_score_30d': avg_score,
'pending_followups': pending_followups, 'pending_followups': pending_followups,
'sla_breached': sla_breached, 'sla_breached': sla_breached,
'sla_at_risk': sla_at_risk, 'sla_at_risk': sla_at_risk,
'severity_breakdown': severity_breakdown,
}) })