@extends('layouts.app') @section('title', $student->name . ' – ' . $semester->name . ' – Logbook') @section('content') @php $profile = $student->studentProfile; $cTotal = $progress['compulsory_total']; $cPassed = $progress['compulsory_passed']; $cPct = $cTotal > 0 ? round($cPassed / $cTotal * 100) : 0; @endphp {{ $student->name }} {{-- ── Header ─────────────────────────────────────────────────────────── --}}
@if($profile?->photo_path) @else {{ strtoupper(mb_substr($student->name, 0, 1)) }} @endif

{{ $semester->name }} Read-only

{{ $student->name }} · {{ $profile?->student_id ?: '—' }}

Clinical report
Compulsory progress {{ $cPassed }} of {{ $cTotal }} passed
{{ $cPct }}% complete @if($progress['retry'] > 0)· {{ $progress['retry'] }} to retry@endif
@if($progress['optional_total'] > 0)
Optional {{ $progress['optional_passed'] }} of {{ $progress['optional_total'] }}
@endif
{{-- ── Toolbar ────────────────────────────────────────────────────────── --}}
{{-- Shares the student logbook partials so both views stay in step --}} @if($roots->isNotEmpty())
Compulsory Procedures
@foreach($roots as $root) @include('student.logbook._group', ['root' => $root, 'userId' => $student->id]) @endforeach
@endif @if($optionalRoots->isNotEmpty())
Optional Procedures
@foreach($optionalRoots as $root) @include('student.logbook._group', ['root' => $root, 'userId' => $student->id]) @endforeach
@endif
No procedures match your search.
@include('student.logbook._filter-script') @endsection