05/27 Sync with iPad app (Phase E)
This commit is contained in:
@@ -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
@@ -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,
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user