Jul 9 - Update Report - Avg Score by Facility by contract
This commit is contained in:
@@ -115,7 +115,7 @@ lt_janitorial_quality_control/
|
||||
│ │ │ └── issues_view.html # Same photo evidence logic
|
||||
│ │ ├── reports/
|
||||
│ │ │ ├── _subnav.html # Shared sub-nav include for all report pages
|
||||
│ │ │ ├── index.html # Overview & Trends (score trend, facility scores, charts)
|
||||
│ │ │ ├── index.html # Overview & Trends (score trend, facility scores + per-Contract filter, charts)
|
||||
│ │ │ ├── facility.html # Per-facility detail report
|
||||
│ │ │ ├── scorecard.html # Per-facility scorecard (trend, area scores, SLA, open issues) + PDF Summary button
|
||||
│ │ │ ├── inspector_performance.html # Inspector KPI table + drill-down chart
|
||||
@@ -1054,6 +1054,10 @@ All report pages include `{% include 'reports/_subnav.html' %}` as the first ele
|
||||
| Inspector Performance | admin, director |
|
||||
| Scheduled Reports | admin, director, project_manager |
|
||||
|
||||
### Reports — Overview & Trends: "Avg Score by Facility" Contract filter
|
||||
|
||||
The **Avg Score by Facility** card (chart) and the **Facility Score Comparison** table on `reports/index.html` share a **Contract** `<select>` (`#scoreContractFilter`) in the chart card header. It is **client-side only**: `reports.index()` attaches `project_id` + `contract` name to each `facility_scores` row and passes `score_contracts` (distinct `(project_id, name)` present, `0`/"No Contract" for unassigned). Selecting a contract filters both the Chart.js bars (`renderFacilityChart(pid)` mutates the existing chart) and the table rows (`.facility-score-row[data-project-id]`); default "All Contracts" shows everything. It does **not** reload the page or affect the top KPIs — only this section. Contracts shown are already role-scoped (customers/inspectors see only theirs).
|
||||
|
||||
### Reports — Phase R1: Issues Aging (`/reports/issues-aging`)
|
||||
|
||||
Loads all non-resolved issues scoped by role, groups into five age buckets (`<24h`, `1–3 days`, `3–7 days`, `1–4 weeks`, `>4 weeks`). SLA status computed per-issue via `sla_status()`. Filters: severity, facility (both applied in Python after the main query to avoid double-outerjoin conflicts with customer scope).
|
||||
|
||||
Reference in New Issue
Block a user