Quick Reference
Menu map, the demo data and what its codes mean, and the status vocabularies
Menu Map
The sidebar has eight groups (mirrored on the dashboard). Every one of the 50 models appears in exactly one group.
| Group | Models |
|---|---|
| ⚠️ Requests & Defects | Defect · ServiceRequest · PriorityAssessment · OperationalImpact · AlarmEventReference · WeatherEvent |
| 🛠️ Work Management | WorkOrder · WorkTask · WorkAssignment · WorkDependency · WorkStatusHistory · MaintenanceTemplate · MaintenanceTemplateTask |
| 🔧 Field Execution | Inspection · InspectionResult · Measurement · TechnicianNote · Evidence · TestResult · ReturnToService · Verification · Closeout |
| 🦺 Safety & Access | IsolationReference · AccessRequirement · SafetyDocument · Competency · PersonCompetency |
| 📦 Parts & Warranty | Part · StockLocation · PartStock · PartRequirement · PartUsage · RemovedComponent · WarrantyClaim |
| 🌿 Vegetation & Site | VegetationZone · VegetationInspection · SiteZone · AssetLocation |
| 🔆 Assets & Portfolio | Portfolio · SolarFarm · AssetType · Asset · AssetRelationship · SourceSystem |
| 🏢 Administration | Organisation · Person · Document · DefectCategory · InspectionTemplate · InspectionTemplateItem |
The Demo Data
One coherent narrative dataset (apps/solarfarm/scripts/seed_data.py, 50 models,
~119 rows) built around Sun Plains Solar Farm (SPF01), a 120 MW DC /
100 MW AC single-axis-tracker plant near Emerald, Queensland, owned by Sun Plains
Renewables and maintained under an O&M contract by FieldGrid Maintenance Services.
The headline scenario — an inverter fault, end to end
| Code | What it is |
|---|---|
SCADA-2026-0724-1142 |
SCADA alarm — DC input imbalance, INV-07A running ~18% below peers |
SR-000142 |
Service request raised from the alarm by the control room |
DEF-000381 |
Defect — reduced inverter output; warranty_candidate; DERATED_CAPACITY impact of 450 kW |
DEF-000382 |
Related defect — loose cable support at combiner CB-07A-03; a safety_risk; child of DEF-000381 |
DEF-000383 |
Vegetation defect — grass over intervention height in VZ07; a fire_risk |
WO-000529 |
Work order — diagnose and restore INV-07A; P2_URGENT; outage + DC isolation required |
WO-000530 |
Preventive vegetation work order — slash zone VZ07 |
PTW-2026-0450 |
Isolation on INV-07A — DC, proved dead 07:10, restored 13:20 |
CLAIM-000078 |
Warranty claim for the failed board DIM440-2022-0417, SUBMITTED for $1,850 |
EV-000501/502 |
Evidence — post-repair board photo and thermal scan |
INSP-000210 |
Return-to-service inspection, overall PASS |
The chain closes: ReturnToService (operating state NORMAL, monitor 48 h) →
Verification (PERFORMANCE_MONITORING, ACCEPTED) → Closeout
(450 kW restored, first_time_fix = true), and the defect ends CLOSED.
Assets and parties
| Code | Meaning |
|---|---|
PF-QLD |
Portfolio — Queensland Solar Portfolio |
SPF01 |
Solar farm — Sun Plains Solar Farm |
AB07 / IS07 / VZ07 |
Site zones — Array Block 7 / Inverter Station 7 / Vegetation Zone 7 |
INV-07A |
Central inverter (SIS-2500, 2.5 MW), currently DEGRADED |
CB-07A-03 |
Combiner feeding INV-07A (a child asset) |
TRK-07-044 |
Single-axis tracker |
SUNOWNER / FIELDOM / INVCO |
Asset owner / O&M provider / inverter manufacturer |
GREENCUT / SPARESCO |
Vegetation contractor / spares supplier |
SIS-DIM-440 |
Part — DC input monitoring board (the failed component) |
Re-running the seed is safe — it guards on existing Organisation rows and
prints Seed skipped rather than duplicating.
Status Vocabularies
The controlled values are stored UPPERCASE (from the pack's enums.yaml, inlined
on each field as [enum: …]). The most load-bearing ones:
- Defect.defect_status —
REPORTED · TRIAGED · PLANNED · ASSIGNED · IN_PROGRESS · MONITORING · READY_FOR_VERIFICATION · CLOSED · DEFERRED · CANCELLED - WorkOrder.work_status —
DRAFT · PLANNED · AWAITING_ACCESS · AWAITING_ISOLATION · AWAITING_PARTS · ASSIGNED · IN_PROGRESS · SUSPENDED · READY_FOR_TEST · RETURNED_TO_SERVICE · READY_FOR_VERIFICATION · CLOSED · CANCELLED - Priority (assessment + work order) —
P1_CRITICAL · P2_URGENT · P3_PLANNED · P4_MONITOR · P5_OPPORTUNITY - IsolationReference.isolation_status —
NOT_REQUIRED · REQUESTED · APPROVED · APPLIED · PROVED_DEAD · RELEASED_FOR_WORK · SUSPENDED · RESTORED · CANCELLED - Verification.result —
ACCEPTED · REJECTED · FURTHER_WORK · MONITOR - Closeout.closeout_status —
DRAFT · READY · ACCEPTED · REJECTED - WarrantyClaim.claim_status —
POTENTIAL · PREPARING · SUBMITTED · INFORMATION_REQUESTED · APPROVED · REJECTED · CREDITED · REPLACED · CLOSED - Asset.operational_status —
OPERATING · DEGRADED · UNAVAILABLE · ISOLATED · STANDBY · RETIRED - VegetationInspection.result —
COMPLIANT · ATTENTION_REQUIRED · NON_COMPLIANT
The complete per-field enum lists are in apps/solarfarm/schema/field_config.yaml
(auto-generated by codegen — do not hand-edit).
Rules of Thumb
- Detection has three doors. A defect can originate from an
AlarmEventReference, anInspection(via an exceptionInspectionResult) or an operatorServiceRequest. All three converge on the sameDefect. - Closure is three rows, not one. Never read
ReturnToServiceas "done". The plant being safe (ReturnToService), the fix being independently confirmed (Verification) and the defect being closed (Closeout) are distinct — that separation is the app's audit value. - Prove dead before you work. An HV/DC/LV
IsolationReferenceshould reachPROVED_DEADandRELEASED_FOR_WORKbefore the work order goesIN_PROGRESS; the isolationWorkDependencyshould beSATISFIED. - Warranty follows the part. If a
Defectiswarranty_candidate, expect aRemovedComponentwith dispositionWARRANTY_RETURNand aWarrantyClaimagainst the manufacturer organisation. - Roles are separate tabs. On a Person, Asset, Organisation or WorkOrder
page, each FK role is its own drill-down tab (see
tab_config.yaml) — "Isolations Requested" and "Isolations Authorised" are deliberately not the same list. - After any schema change run
python -m codegen.cli all solarfarm, re-run the seed against a fresh DB, and rebuild the diagram viewer withpython apps/solarfarm/scripts/build_diagram_viewer.py.