@extends('layouts.app') @section('title', $student->name) @section('content') @php $profile = $student->studentProfile; $current = $profile?->currentSemester; $overall = collect($progress)->reduce(function ($carry, $p) { $carry['total'] += $p['total']; $carry['passed'] += $p['passed']; $carry['retry'] += $p['retry']; return $carry; }, ['total' => 0, 'passed' => 0, 'retry' => 0]); $overallPct = $overall['total'] > 0 ? (int) round($overall['passed'] / $overall['total'] * 100) : 0; @endphp Students {{-- ── Identity ───────────────────────────────────────────────────────── --}}
@if($profile?->photo_path) @else {{ strtoupper(mb_substr($student->name, 0, 1)) }} @endif

{{ $student->name }}

{{ $profile?->student_id ?: '—' }} {{ $profile?->intake ?: '—' }} {{ $profile?->phone ?: '—' }} {{ $student->email }}
@if($current) {{ $current->name }} @else No current semester set @endif {{ $student->is_active ? 'Active' : 'Inactive' }}
@include('student.logbook._ring', ['percent' => $overallPct, 'size' => 84])
{{ $overall['passed'] }}/{{ $overall['total'] }} overall
Semester progress
@foreach($semesters as $sem) @php $p = $progress[$sem->id] ?? null; $pct = $p['percent'] ?? 0; $isCurrent = $current && $current->id === $sem->id; $report = $reports[$sem->id] ?? null; $isEmpty = ($p['total'] ?? 0) === 0; @endphp
{{ $sem->name }}
Y{{ $sem->year }}S{{ $sem->semester_number }}
@if($isCurrent)Current@endif
@if($isEmpty)
No procedures defined.
@else
{{ $pct }}%
{{ $p['passed'] }}/{{ $p['total'] }} passed @if($p['retry'] > 0){{ $p['retry'] }} retry@endif
@endif
Logbook @if($report) @endif
@endforeach
Needs attention
Recent assessments
@forelse($recent as $a)
{{ $a->is_na ? 'NA' : $a->score }}
{{ $a->procedure?->name }}
{{ $a->assessedBy?->name }} · {{ $a->assessment_date->format('d M Y') }}
@empty
No assessments yet.
@endforelse
@endsection