{{ __('Library Database Soal CBT') }}

Dashboard Review
@if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif
@php $totalQuestions = \App\Models\CbtQuestion::count(); $approvedQuestions = \App\Models\CbtQuestion::where('status', 'approved')->count(); $reviewQuestions = \App\Models\CbtQuestion::where('status', 'review')->count(); $draftQuestions = \App\Models\CbtQuestion::where('status', 'draft')->count(); $activeQuestions = \App\Models\CbtQuestion::where('is_active', true)->count(); $inactiveQuestions = \App\Models\CbtQuestion::where('is_active', false)->count(); @endphp

Total Soal

{{ $totalQuestions }}

Approved

{{ $approvedQuestions }}

In Review

{{ $reviewQuestions }}

Draft

{{ $draftQuestions }}

Aktif

{{ $activeQuestions }}

Non-Aktif

{{ $inactiveQuestions }}

Reset
@php // Get questions with filters $query = \App\Models\CbtQuestion::with('reviews'); if (request('search')) { $search = request('search'); $query->where(function($q) use ($search) { $q->where('question_code', 'like', "%{$search}%") ->orWhere('question', 'like', "%{$search}%") ->orWhere('keywords', 'like', "%{$search}%"); }); } if (request('author_name')) { $author = request('author_name'); $query->where('author_name', 'like', "%{$author}%"); } if (request('question_status')) { $query->where('status', request('question_status')); } if (request('active_status') !== null && request('active_status') !== '') { $query->where('is_active', request('active_status')); } if (request('department')) { $query->where('department', request('department')); } if (request('institution')) { $query->where('institution', request('institution')); } // Sorting switch (request('sort', 'newest')) { case 'oldest': $query->orderBy('created_at', 'asc'); break; case 'code': $query->orderBy('question_code', 'asc'); break; case 'department': $query->orderBy('department', 'asc'); break; default: $query->orderBy('created_at', 'desc'); } $questions = $query->paginate(20); @endphp @forelse($questions as $question) @php $reviews = $question->reviews; $completedReviews = $reviews->where('status', 'completed'); $averageScores = []; // Calculate percentage of "ya" responses $materialSkaiResponses = $completedReviews->pluck('q1_material_skai')->filter(); $practicalCaseResponses = $completedReviews->pluck('q2_practical_case')->filter(); $competencyResponses = $completedReviews->pluck('q3_competency_relevant')->filter(); $averageScores['Material'] = $materialSkaiResponses->count() > 0 ? round(($materialSkaiResponses->filter(fn($val) => $val === 'ya')->count() / $materialSkaiResponses->count()) * 100, 1) : null; $averageScores['Practical'] = $practicalCaseResponses->count() > 0 ? round(($practicalCaseResponses->filter(fn($val) => $val === 'ya')->count() / $practicalCaseResponses->count()) * 100, 1) : null; $averageScores['Competency'] = $competencyResponses->count() > 0 ? round(($competencyResponses->filter(fn($val) => $val === 'ya')->count() / $competencyResponses->count()) * 100, 1) : null; $totalAverage = array_filter($averageScores) ? round(array_sum(array_filter($averageScores)) / count(array_filter($averageScores)), 1) : 0; $approveRecommendations = $completedReviews->where('recommendation', 'approved')->count(); $reviseRecommendations = $completedReviews->where('recommendation', 'revise')->count(); $rejectRecommendations = $completedReviews->where('recommendation', 'reject')->count(); @endphp
{{ $question->question_code }}
ID: {{ $question->id }}
@if($question->status === 'approved') Approved @elseif($question->status === 'review') Review @elseif($question->status === 'draft') Draft @else Unknown @endif @if($question->is_active) Aktif @else Non-Aktif @endif @if($totalAverage > 0) ⭐ {{ $totalAverage }}% @endif
@empty

Tidak ada soal ditemukan

Coba ubah filter pencarian atau tambahkan soal baru.

@endforelse @if($questions->hasPages())
{{ $questions->appends(request()->query())->links() }}
@endif