Initial commit - lms-v2 + CLAUDE.md
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Cbt;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Exam;
|
||||
use App\Models\ExamResult;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class ExamSessionController extends Controller
|
||||
{
|
||||
/**
|
||||
* Menampilkan halaman persiapan/ruang ujian
|
||||
*/
|
||||
public function show(Exam $exam)
|
||||
{
|
||||
$user = Auth::user();
|
||||
|
||||
// 1. Validasi: Cek apakah user sudah pernah lulus ujian ini
|
||||
$existingResult = ExamResult::where('user_id', $user->id)
|
||||
->where('exam_id', $exam->id)
|
||||
->orderBy('created_at', 'desc')
|
||||
->first();
|
||||
|
||||
if ($existingResult && $existingResult->is_passed) {
|
||||
return redirect()->route('cbt.dashboard')
|
||||
->with('error', 'Anda sudah pernah lulus ujian ini. Tidak perlu mengulang.');
|
||||
}
|
||||
|
||||
// 2. Jika aman, arahkan ke View Ruang Ujian yang memuat komponen Livewire
|
||||
return view('pages.cbt.exam-room', compact('exam'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Cbt;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Exam;
|
||||
use App\Models\ExamResult;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class UserDashboardController extends Controller
|
||||
{
|
||||
/**
|
||||
* Menampilkan Dashboard Portal Ujian Karyawan
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
// Ambil data user yang sedang login
|
||||
$user = Auth::user();
|
||||
|
||||
// Tarik riwayat ujian yang pernah diikuti karyawan ini beserta detail ujiannya
|
||||
$examHistory = ExamResult::where('user_id', $user->id)
|
||||
->with('exam')
|
||||
->orderBy('created_at', 'desc')
|
||||
->get();
|
||||
|
||||
// Tarik daftar ujian yang tersedia (Bisa ditambahkan filter berdasarkan departemen/jabatan nanti)
|
||||
$availableExams = Exam::orderBy('created_at', 'desc')->get();
|
||||
|
||||
// Kirim data ke view dashboard CBT
|
||||
return view('pages.cbt.dashboard.dashboard', compact('user', 'examHistory', 'availableExams'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user