@php $theme = $org?->theme(); $primary = data_get($theme, 'colors.primary') ?: '#960000'; $appName = $org?->displayName() ?: 'AGS Math Tutor'; $logoPath = data_get($theme, 'logo.primary_url'); $logoUrl = null; if ($logoPath) { $logoUrl = (\Illuminate\Support\Str::startsWith($logoPath, ['http://', 'https://', '/'])) ? $logoPath : url('media/' . ltrim($logoPath, '/')); } $agg = data_get($snapshot, 'aggregate', []); $maxile = (int) data_get($agg, 'maxile_score', 0); $band = data_get($agg, 'maxile_level.name') ?: data_get($agg, 'maxile_level.short_name'); $gain = data_get($history, 'gain'); $fields = data_get($snapshot, 'fields', []); $points = data_get($history, 'points', []); $studentName = $student->name ?: trim(($student->firstname ?? '') . ' ' . ($student->lastname ?? '')) ?: ('Student #' . $student->id); @endphp Term Progress Report — {{ $studentName }}
@if ($logoUrl) @endif
{{ $appName }}
Term Progress Report
{{ $studentName }}
{{ $generatedAt->toFormattedDateString() }}

Overall

Maxile
{{ $maxile }}
{{ $band ?: 'Band unavailable' }}
Gain this term
@if ($gain === null)
Not enough history
@else
{{ $gain >= 0 ? '+' : '' }}{{ $gain }}
maxile points
@endif

By Strand

@if (count($fields)) @foreach ($fields as $f) @endforeach
Field Maxile Band
{{ data_get($f, 'name') }} {{ data_get($f, 'user_maxile') !== null ? (int) round(data_get($f, 'user_maxile')) : '—' }} {{ data_get($f, 'user_maxile_level_short') ?: '—' }}
@else

No field activity recorded yet.

@endif

Growth

@if (count($points)) @else

No growth snapshots captured yet.

@endif