05/25 Improvement 1
This commit is contained in:
@@ -41,6 +41,7 @@ from app.models.user import User
|
||||
from app.utils.decorators import supervisor_required, admin_required
|
||||
from app.utils.audit import log_action, ACTION_CREATE, ACTION_UPDATE, ACTION_DELETE
|
||||
from app.utils.time_utils import now_eastern
|
||||
from app.utils.sla import sla_status
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -149,10 +150,29 @@ def _build_report_data(report: ScheduledReport, start: datetime, end: datetime)
|
||||
.order_by(func.avg(Inspection.overall_score).desc()).all()
|
||||
|
||||
if report.report_type == 'issues':
|
||||
data['issues'] = _iq(Issue.query.filter(
|
||||
all_issues = _iq(Issue.query.filter(
|
||||
Issue.status != 'resolved',
|
||||
)).order_by(Issue.severity.desc(), Issue.reported_at.asc()).all()
|
||||
|
||||
data['issues'] = all_issues
|
||||
|
||||
# Group by facility with per-issue SLA status for the enhanced email template
|
||||
fac_map = {}
|
||||
sla_breached = sla_at_risk = 0
|
||||
for issue in all_issues:
|
||||
fac = issue.resolved_facility
|
||||
fname = fac.name if fac else '(No Facility)'
|
||||
s = sla_status(issue)
|
||||
if s == 'breached':
|
||||
sla_breached += 1
|
||||
elif s == 'at_risk':
|
||||
sla_at_risk += 1
|
||||
fac_map.setdefault(fname, []).append((issue, s))
|
||||
|
||||
data['issues_by_facility'] = sorted(fac_map.items())
|
||||
data['sla_breached'] = sla_breached
|
||||
data['sla_at_risk'] = sla_at_risk
|
||||
|
||||
return data
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user