@if (session('status'))
{{ session('status') }}
@endif @if (session('error'))
{{ session('error') }}
@endif @if ($errors->any())
    @foreach ($errors->all() as $message)
  • {{ $message }}
  • @endforeach
@endif @php $lessonCount = $course->lessons->count(); $doneCount = count($completedLessonIds); $lessonsComplete = $lessonCount === 0 || $doneCount >= $lessonCount; $progress = $lessonCount > 0 ? (int) min(100, round($doneCount / $lessonCount * 100)) : ($assignment->status === 'completed' ? 100 : 0); $loose = $course->lessons->whereNull('module_id'); @endphp
Open each lesson, read or watch it, then mark it complete. The course finishes once every lesson is ticked and the quiz is passed. @foreach ($course->modules as $module)

{{ $module->title }}

@foreach ($module->lessons as $lesson) @include('hr.training.partials.lesson', ['lesson' => $lesson, 'completedLessonIds' => $completedLessonIds, 'assignment' => $assignment]) @endforeach
@endforeach @if ($loose->isNotEmpty())
@foreach ($loose as $lesson) @include('hr.training.partials.lesson', ['lesson' => $lesson, 'completedLessonIds' => $completedLessonIds, 'assignment' => $assignment]) @endforeach
@endif @if ($course->lessons->isEmpty())

This course has no lessons — complete the quiz to finish it.

@endif
Pass mark and attempt limits are set per quiz. Ask HR for a reset once attempts run out. @if ($quizzes->isEmpty())

This course has no quiz — it completes when every lesson is marked complete.

@else
@foreach ($quizzes as $quiz) @php $passed = in_array((int) $quiz->id, $passedQuizIds, true); $attemptsUsed = (int) ($attemptCounts[$quiz->id] ?? 0); $attemptsLeft = max(0, (int) $quiz->max_attempts - $attemptsUsed); @endphp

{{ $quiz->title }}

Pass mark {{ $quiz->pass_score }}% · {{ $attemptsUsed }} of {{ $quiz->max_attempts }} attempts used

@if ($passed) @elseif ($attemptsLeft <= 0) @else @endif
@if (! $passed && $attemptsLeft > 0 && $assignment->status !== 'completed') @if (! $lessonsComplete)

Finish all lessons first — {{ $lessonCount - $doneCount }} still to go.

@else
@csrf @foreach ($quiz->questions as $index => $question)

{{ $index + 1 }}. {{ $question->question }}

@foreach ((array) $question->options as $optionIndex => $option) @endforeach
@endforeach
@endif @elseif ($passed)

Passed — well done.

@endif
@endforeach
@endif
{{ $progress }}%
Lessons
{{ $doneCount }} / {{ $lessonCount }}
Due
{{ $assignment->due_date?->format('d M Y') ?? '—' }}
Assigned
{{ $assignment->created_at?->format('d M Y') }}
Source
{{ str_replace('_', ' ', $assignment->source) }}
@if ($assignment->certificate)

{{ $assignment->certificate->certificate_no }}

Issued {{ $assignment->certificate->issued_at?->format('d M Y') }} @if ($assignment->certificate->expires_at) · expires {{ $assignment->certificate->expires_at->format('d M Y') }} @endif

Open certificate
@endif

{{ $course->description ?: 'No description.' }}

Category
{{ $course->category_label }}
Delivery
{{ ucfirst($course->delivery_mode) }}
Duration
{{ (int) $course->duration_minutes }} min