{{-- Shared attendance register (trainer + admin). Vars: $session, $batch, $roster, $records (keyed by user_id), $canEdit, $action, $back --}} @php $statuses = ['present' => 'Present', 'late' => 'Late', 'absent' => 'Absent', 'excused' => 'Excused']; $existing = $records ?? collect(); @endphp

{{ $session->displayTitle() }}

{{ $batch->course?->title }} · {{ $session->starts_at->format('D, d M Y · g:i A') }} – {{ $session->ends_at?->format('g:i A') }} · {{ $session->durationMinutes() }} min
@if($session->isTaken()) Taken {{ $session->taken_at->diffForHumans() }}@if($session->takenBy) by {{ $session->takenBy->name }}@endif@else@endif
@unless($canEdit)
This register is locked. Trainers can edit a register for {{ config('infotics.attendance.trainer_edit_days', 7) }} days after it is taken. Ask an administrator to amend it.
@endunless @if($roster->isEmpty()) @else
@csrf
0 present 0 late 0 absent 0 excused
@if($canEdit)
Mark everyone:
@endif
@foreach($roster as $learner) @php $rec = $existing->get($learner->id); $cur = old('rows.'.$learner->id.'.status', $rec->status ?? 'present'); @endphp
@if($learner->avatarUrl())@else{{ $learner->initials() }}@endif
{{ $learner->name }}
{{ $learner->email }}
@foreach($statuses as $val => $label) @endforeach
@endforeach
Back @if($canEdit)@endif
@endif