diff --git a/app/Http/Controllers/Admin/KelasController.php b/app/Http/Controllers/Admin/KelasController.php index c4b3846..764d0af 100644 --- a/app/Http/Controllers/Admin/KelasController.php +++ b/app/Http/Controllers/Admin/KelasController.php @@ -66,7 +66,7 @@ public function update(Request $request, $id_kelas) 'max:50', Rule::unique('kelas')->where(function ($query) use ($request) { return $query->where('tingkat', $request->tingkat); - })->ignore($id, 'id_kelas'), + })->ignore($id_kelas, 'id_kelas'), ], 'tingkat' => 'required|in:X,XI,XII', ], [ diff --git a/app/Http/Controllers/Siswa/DashboardController.php b/app/Http/Controllers/Siswa/DashboardController.php index ac35bb0..641ad60 100644 --- a/app/Http/Controllers/Siswa/DashboardController.php +++ b/app/Http/Controllers/Siswa/DashboardController.php @@ -25,16 +25,11 @@ public function index() /** @var \App\Models\Siswa $siswa */ $siswa = Auth::guard('siswa')->user(); - // ============================================= - // 1. TUGAS — yang belum dikumpulkan siswa ini - // dan deadline belum lewat - // ============================================= + // tugas - // id_tugas yang sudah dikumpulkan siswa ini $sudahDikumpulkan = PengumpulanTugas::where('id_siswa', $siswa->id_siswa) ->pluck('id_tugas'); - // Tugas untuk kelas siswa yang belum dikumpulkan $tugasRaw = Tugas::with(['mengajar.mapel']) ->whereNotIn('id_tugas', $sudahDikumpulkan) ->where('deadline', '>=', Carbon::now()) @@ -45,7 +40,6 @@ public function index() ->take(5) ->get(); - // Kelompokkan per tanggal deadline $tugasList = []; foreach ($tugasRaw as $tugas) { $tgl = Carbon::parse($tugas->deadline) @@ -55,15 +49,15 @@ public function index() $namaMapel = optional(optional($tugas->mengajar)->mapel)->nama_mapel ?? '-'; $tugasList[$tgl][] = [ + 'id_tugas' => $tugas->id_tugas, // tambah ini 'jam' => Carbon::parse($tugas->deadline)->format('H.i'), 'nama' => $tugas->judul_tugas, 'mapel' => 'Belum · ' . $namaMapel, ]; } - // ============================================= - // 2. CHALLENGE MINGGUAN - // ============================================= + // challenge mingguan + $startMinggu = Carbon::now()->startOfWeek(); $endMinggu = Carbon::now()->endOfWeek(); @@ -81,17 +75,14 @@ public function index() ->whereBetween('waktu_submit', [$startMinggu, $endMinggu]) ->count(); - // ============================================= - // 3. TUGAS SELESAI MINGGU INI (mascot speech bubble) - // ============================================= + // mascot + $tugasSelesai = PengumpulanTugas::where('id_siswa', $siswa->id_siswa) ->whereIn('status', ['dikumpulkan', 'terlambat']) ->whereBetween('tanggal_submit', [$startMinggu, $endMinggu]) ->count(); - // ============================================= - // 4. LEADERBOARD — top 3 kelas siswa yang login - // ============================================= + // leaderboard $leaderboardRaw = Leaderboard::with('siswa') ->where('id_kelas', $siswa->id_kelas) ->orderBy('total_exp', 'desc') diff --git a/app/Http/Controllers/Siswa/TugasController.php b/app/Http/Controllers/Siswa/TugasController.php index fe717e3..d402356 100644 --- a/app/Http/Controllers/Siswa/TugasController.php +++ b/app/Http/Controllers/Siswa/TugasController.php @@ -58,6 +58,7 @@ public function index() 'sudah_kumpul' => !is_null($pengumpulan), 'lampiran' => $pengumpulan?->lampiran_tugas, 'exp' => $pengumpulan?->exp ?? 0, + 'file_tugas' => $tugas->lampiran, ]; }); diff --git a/app/Models/Kelas.php b/app/Models/Kelas.php index 2417dce..38a51d5 100644 --- a/app/Models/Kelas.php +++ b/app/Models/Kelas.php @@ -15,7 +15,6 @@ class Kelas extends Model protected $keyType = 'int'; protected $fillable = [ - 'id_kelas', 'nama_kelas', 'tingkat', ]; diff --git a/database/migrations/2026_04_15_014117_fix_kelas_ai.php b/database/migrations/2026_04_15_014117_fix_kelas_ai.php new file mode 100644 index 0000000..383f987 --- /dev/null +++ b/database/migrations/2026_04_15_014117_fix_kelas_ai.php @@ -0,0 +1,23 @@ +// database/migrations/xxxx_fix_kelas_autoincrement.php +dropColumn('id_kelas_old'); + }); + } + + // Reset AUTO_INCREMENT ke angka setelah max id_kelas yang ada + DB::statement('ALTER TABLE kelas AUTO_INCREMENT = 1'); + } + + public function down(): void {} +}; \ No newline at end of file diff --git a/resources/views/admin/challenge/index.blade.php b/resources/views/admin/challenge/index.blade.php index ea9d3d9..aef8f43 100644 --- a/resources/views/admin/challenge/index.blade.php +++ b/resources/views/admin/challenge/index.blade.php @@ -545,22 +545,11 @@ placeholder="Deskripsi singkat challenge (opsional)"> -