@extends('layouts.teacher-portal') @section('title', 'Class Results') @section('header', 'Class Results') @section('content') @if ($myClassTeacherIds->isEmpty())

Consolidated results are only available to class teachers.

@else
@if ($computed && $classId)

Students

{{ count($computed['students']) }}

Subjects

{{ $computed['subjects']->count() }}

Class Average

{{ $computed['classAverage'] !== null ? number_format($computed['classAverage'], 1) . '%' : '—' }}

@php($published = collect($computed['students'])->filter(fn ($r) => optional($r['sheet'])->status === 'published')->count())

Published Sheets

{{ $published }} / {{ count($computed['students']) }}

@forelse ($computed['students'] as $row) @empty @endforelse
Pos Student Total Avg Grade Missing Scores Sheet Status
{{ $row['position'] ?? '—' }} {{ $row['student']->full_name }} {{ $row['total'] !== null ? number_format($row['total'], 1) : '—' }} {{ $row['average'] !== null ? number_format($row['average'], 1) . '%' : '—' }} {{ $row['grade'] ?? '—' }} {{ collect($row['subjects'])->sum('missing') }} @if ($row['sheet']) {{ ucfirst($row['sheet']->status ?? 'draft') }} @else Not generated @endif
No active students in this class.
{{-- Subject averages summary --}}

Subject Averages

@foreach ($computed['subjects'] as $subject) @php($stats = $computed['subjectStats'][$subject->id] ?? []) @endforeach
Subject Average Highest Lowest
{{ $subject->name }} {{ isset($computed['subjectAverages'][$subject->id]) && $computed['subjectAverages'][$subject->id] !== null ? number_format($computed['subjectAverages'][$subject->id], 1) : '—' }} {{ ($stats['highest'] ?? null) !== null ? number_format($stats['highest'], 1) : '—' }} {{ ($stats['lowest'] ?? null) !== null ? number_format($stats['lowest'], 1) : '—' }}

Read-only view. Sheets are published by the school administrator; add your remarks under Comments.

@else

Select a class and term to compute results.

@endif @endif @endsection