Loading…
: ( +| Title | Type | Duration | Hints | Status | |
|---|---|---|---|---|---|
| {a.title} | +{a.type} | +{a.duration_minutes} min | +{a.hint_policy} | +{a.status} | ++ |
{notice}
} + +Loading…
: sessions.length === 0 ?None yet.
: ( +| Student | Status | Started | Result | |
|---|---|---|---|---|
| {s.display_name} | +{s.status} | +{s.started_at ? new Date(s.started_at).toLocaleString() : '—'} | +{s.result ? `${s.result.scenarios_passed}/${s.result.scenarios_total}` : '—'} | +{['not_started', 'in_progress'].includes(s.status) && } | +
| Stage | Students Complete |
|---|---|
| {s.name} | {s.completedBy}/{summary.student_count} ({s.pct}%) |
Loading…
: needsAttention.length === 0 ?No signals right now.
: ( +| Student | Signal | Detail | |
|---|---|---|---|
| {s.display_name} | +{s.label} | +{s.detail} | ++ |
Loading…
: ( +| Scenario | Completions | Avg Attempts | Failures | Hints Used | Avg Time |
|---|---|---|---|---|---|
| {s.scenario_id} | {s.completions} | {s.avg_attempts} | +{s.total_failures} | {s.total_hints_used} | +{s.avg_duration_seconds ? `${Math.round(s.avg_duration_seconds / 60)}m` : '—'} | +
Loading…
+ + return ( + <> + +| Scenario | Status | Validations | Hints (max level) | Duration |
|---|---|---|---|---|
| {a.scenario_id} | +{a.status} | +{a.validation_pass_count} passed, {a.validation_fail_count} failed | +{a.hint_count} ({a.highest_hint_level}) | +{a.duration_seconds ? `${Math.round(a.duration_seconds / 60)}m` : '—'} | +
None yet.
: ( +| Assessment | Status | Result |
|---|---|---|
| {s.title} | +{s.status} | +{s.result ? `${s.result.scenarios_passed}/${s.result.scenarios_total}` : '—'} | +