{{-- resources/views/tests/results/index.blade.php --}} @extends('layouts.superadmin') @section('title', 'لوحة معدلات الاختبارات') @section('page-title', '📊 لوحة معدلات الاختبارات للأعضاء') @section('content')
{{-- هيدر ملحمي --}}

لوحة معدلات الاختبارات

هنا تشاهد معدّل كل عضو في كل الاختبارات، بالإضافة إلى المعدل العام، ومعدل الأعضاء، ومعدل المشرفين، والسوبر، والشباب والصبايا.

كل الأرقام محسوبة كنسبة مئوية من 100% حسب عدد أسئلة كل اختبار.
{{-- بطاقات إحصاءات عامة --}}
@php $cards = [ [ 'label' => 'المعدل العام لكل المحاولات', 'value' => $stats['total_avg'] ?? null, 'icon' => 'fa-globe', 'color' => 'emerald', ], [ 'label' => 'معدل الأعضاء (بدون مشرف/سوبر/مستشار)', 'value' => $stats['members_avg'] ?? null, 'icon' => 'fa-users', 'color' => 'sky', ], [ 'label' => 'معدل الشباب', 'value' => $stats['male_avg'] ?? null, 'icon' => 'fa-person', 'color' => 'blue', ], [ 'label' => 'معدل الصبايا', 'value' => $stats['female_avg'] ?? null, 'icon' => 'fa-person-dress', 'color' => 'pink', ], [ 'label' => 'معدل المشرفين', 'value' => $stats['moderators_avg'] ?? null, 'icon' => 'fa-user-shield', 'color' => 'amber', ], [ 'label' => 'معدل السوبر أدمن', 'value' => $stats['super_admins_avg'] ?? null, 'icon' => 'fa-crown', 'color' => 'violet', ], ]; $colorMap = [ 'emerald' => 'from-emerald-500/15 to-emerald-500/5 text-emerald-700 dark:text-emerald-200', 'sky' => 'from-sky-500/15 to-sky-500/5 text-sky-700 dark:text-sky-200', 'blue' => 'from-blue-500/15 to-blue-500/5 text-blue-700 dark:text-blue-200', 'pink' => 'from-pink-500/15 to-pink-500/5 text-pink-700 dark:text-pink-200', 'amber' => 'from-amber-500/15 to-amber-500/5 text-amber-700 dark:text-amber-200', 'violet' => 'from-violet-500/15 to-violet-500/5 text-violet-700 dark:text-violet-200', ]; @endphp @foreach($cards as $card)
{{ $card['label'] }}
@if($card['value'] !== null) {{ number_format($card['value'], 2) }}% @else لا يوجد بيانات @endif
@endforeach
{{-- جدول تفصيلي لكل عضو --}}

معدّل كل مستخدم في الاختبارات

قائمة بكل من حلّ أي اختبار، مع عدد المحاولات، والمعدل النهائي، وآخر وقت حل.

@if($perUsers->isEmpty())
لا توجد محاولات اختبارات حتى الآن.
@else
@foreach($perUsers as $i => $row) @php // ندعم الشكل array أو object $user = is_array($row) ? ($row['user'] ?? null) : ($row->user ?? null); $avgScore = is_array($row) ? ($row['avg_score'] ?? 0) : ($row->avg_score ?? 0); $attempts = is_array($row) ? ($row['attempts'] ?? 0) : ($row->attempts ?? 0); $lastAt = is_array($row) ? ($row['last_at'] ?? null) : ($row->last_at ?? null); $gender = $user->gender ?? null; $role = $user->membership_status ?? null; $avgClass = $avgScore >= 85 ? 'text-emerald-400' : ($avgScore >= 60 ? 'text-yellow-300' : 'text-rose-300'); $roleMap = [ 'super-admin' => 'سوبر أدمن', 'moderator' => 'مشرف', 'advisor' => 'مستشار', 'official' => 'عضو رسمي', 'beta' => 'عضو بيتا', ]; $roleText = $roleMap[$role] ?? 'عضو'; @endphp @endforeach
# المستخدم الجنس الرتبة المعدل النهائي عدد المحاولات آخر محاولة
{{ $i + 1 }}
{{ $user->name ?? '—' }} ID: {{ $user->id ?? '—' }}
@if($gender === 'male') شاب @elseif($gender === 'female') صبية @else غير محدد @endif @if($role === 'super-admin') {{ $roleText }} @elseif($role === 'moderator') {{ $roleText }} @elseif($role === 'advisor') {{ $roleText }} @else {{ $roleText }} @endif {{ number_format($avgScore, 2) }}% {{ $attempts }} @if($lastAt) {{ \Illuminate\Support\Carbon::parse($lastAt)->format('Y/m/d H:i') }} @else — @endif
@endif
@endsection