From 723a179871db0b539726cf81fe96fc7e68f3ca99 Mon Sep 17 00:00:00 2001 From: SitiAfiah Date: Mon, 4 May 2026 00:38:18 +0700 Subject: [PATCH] edit pelatih --- .../Http/Controllers/PelatihController.php | 23 +++++---- manajemen_mp/app/Models/Pelatih.php | 10 +++- .../database/seeders/DatabaseSeeder.php | 2 +- manajemen_mp/database/seeders/KolatSeeder.php | 4 +- .../views/anggota/editanggota.blade.php | 1 - .../views/pelatih/editpelatih.blade.php | 9 ++++ .../views/spp/pengurus/index.blade.php | 4 +- manajemen_mp/routes/web.php | 48 +++++++++---------- 8 files changed, 62 insertions(+), 39 deletions(-) diff --git a/manajemen_mp/app/Http/Controllers/PelatihController.php b/manajemen_mp/app/Http/Controllers/PelatihController.php index 4b265b6..e491586 100644 --- a/manajemen_mp/app/Http/Controllers/PelatihController.php +++ b/manajemen_mp/app/Http/Controllers/PelatihController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\Anggota; +use App\Models\Kolat; use App\Models\Role; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; @@ -74,19 +75,25 @@ public function store(Request $request) // Menampilkan form edit data kepelatihan (misal perpanjang SK) public function edit($id) { - $pelatih = Anggota::findOrFail($id); - return view('pelatih.editpelatih', compact('pelatih')); - } + + $pelatih = Anggota::findOrFail($id); + $data_kolat = Kolat::all(); + + return view('pelatih.editpelatih', compact('pelatih', 'data_kolat')); +} public function update(Request $request, $id) { $pelatih = Anggota::findOrFail($id); - $request->validate([ - 'no_sk' => 'required|unique:anggotas,no_sk,' . $id, - 'tgl_sk' => 'required|date', - 'foto_sk' => 'nullable|image|max:2048', - ]); + $request->validate([ + 'nama_lengkap' => 'required|string|max:255', + 'email' => 'required|email|unique:users,email,' . $pelatih->user_id, // validasi email user + 'no_hp' => 'required', + 'no_sk' => 'required|unique:anggotas,no_sk,' . $id, // pastikan nama tabel benar 'anggota' + 'tgl_sk' => 'nullable|date', // tambahkan jika di form ada tgl_sk + 'foto_sk' => 'nullable|image|max:2048', + ]); $data = $request->all(); diff --git a/manajemen_mp/app/Models/Pelatih.php b/manajemen_mp/app/Models/Pelatih.php index 4d2b1d5..5cefdc4 100644 --- a/manajemen_mp/app/Models/Pelatih.php +++ b/manajemen_mp/app/Models/Pelatih.php @@ -8,6 +8,9 @@ class Pelatih extends Model { + +protected $table = 'anggota'; + // Kolom yang boleh diisi massal protected $fillable = [ 'anggota_id', @@ -18,9 +21,14 @@ class Pelatih extends Model 'status_pelatih', 'catatan' ]; - + public function anggota(): BelongsTo { return $this->belongsTo(Anggota::class, 'anggota_id'); } + + // public function kolat(): BelongsTo + // { + // return $this->belongsTo(Kolat::class, 'kolat_id'); + // } } diff --git a/manajemen_mp/database/seeders/DatabaseSeeder.php b/manajemen_mp/database/seeders/DatabaseSeeder.php index 2d51fff..54b105e 100644 --- a/manajemen_mp/database/seeders/DatabaseSeeder.php +++ b/manajemen_mp/database/seeders/DatabaseSeeder.php @@ -13,7 +13,7 @@ class DatabaseSeeder extends Seeder public function run(): void { $this->call([ - RoleSeeder::class, + // RoleSeeder::class, KolatSeeder::class, UserSeeder::class, ]); diff --git a/manajemen_mp/database/seeders/KolatSeeder.php b/manajemen_mp/database/seeders/KolatSeeder.php index 6a41931..201f043 100644 --- a/manajemen_mp/database/seeders/KolatSeeder.php +++ b/manajemen_mp/database/seeders/KolatSeeder.php @@ -14,8 +14,8 @@ class KolatSeeder extends Seeder public function run(): void { DB::table('kolat')->insert([ - 'id' => 1, // Kita paksa ID 1 biar nyambung sama UserSeeder tadi - 'nama_kolat' => 'Kolat Polije', + 'id' => 2, // Kita paksa ID 1 biar nyambung sama UserSeeder tadi + 'nama_kolat' => 'Kolat Unej', 'created_at' => now(), 'updated_at' => now(), ]); diff --git a/manajemen_mp/resources/views/anggota/editanggota.blade.php b/manajemen_mp/resources/views/anggota/editanggota.blade.php index 8eac963..6a86e51 100644 --- a/manajemen_mp/resources/views/anggota/editanggota.blade.php +++ b/manajemen_mp/resources/views/anggota/editanggota.blade.php @@ -60,7 +60,6 @@
- +62
diff --git a/manajemen_mp/resources/views/pelatih/editpelatih.blade.php b/manajemen_mp/resources/views/pelatih/editpelatih.blade.php index f3b1512..8b57514 100644 --- a/manajemen_mp/resources/views/pelatih/editpelatih.blade.php +++ b/manajemen_mp/resources/views/pelatih/editpelatih.blade.php @@ -11,6 +11,15 @@ class="text-muted text-decoration-none small">Daftar Pelatih

Form Edit Data Pelatih

+ @if ($errors->any()) +
+ +
+@endif

Perbarui profil pribadi dan legalitas SK pelatih {{ $pelatih->nama_lengkap }}.

diff --git a/manajemen_mp/resources/views/spp/pengurus/index.blade.php b/manajemen_mp/resources/views/spp/pengurus/index.blade.php index b8d9684..19cc738 100644 --- a/manajemen_mp/resources/views/spp/pengurus/index.blade.php +++ b/manajemen_mp/resources/views/spp/pengurus/index.blade.php @@ -154,10 +154,10 @@
- {{ strtoupper(substr($spp->anggota->nama, 0, 1)) }} + {{ strtoupper(substr($spp->anggota->nama_lengkap, 0, 1)) }}
-
{{ $spp->anggota->nama }}
+
{{ $spp->anggota->nama_lengkap }}
ID: {{ $spp->anggota_id }} diff --git a/manajemen_mp/routes/web.php b/manajemen_mp/routes/web.php index c052f52..04f1aba 100644 --- a/manajemen_mp/routes/web.php +++ b/manajemen_mp/routes/web.php @@ -94,6 +94,30 @@ // Rute untuk Presensi Route::prefix('presensi')->name('presensi.')->group(function () { + Route::get('/', [PresensiController::class, 'index'])->name('index'); + + // Halaman daftar kehadiran anggota pada jadwal tertentu (tampil QR Code & List) + Route::get('/kehadiran/{jadwal_id}', [PresensiController::class, 'kehadiran'])->name('kehadiran'); + + // Proses konfirmasi/verifikasi pelatih klik tombol "Sah" + Route::post('/konfirmasi/{presensi_id}', [PresensiController::class, 'konfirmasi'])->name('konfirmasi'); + + // Proses tambah presensi manual (Kasus Lupa HP) + Route::post('/tambah-manual', [PresensiController::class, 'storeManual'])->name('storeManual'); + + // --- AKTOR: ANGGOTA --- + // Halaman daftar jadwal hari ini di sisi anggota (Tampil tombol "Scan Absen") + Route::get('/anggota', [PresensiController::class, 'indexAnggota'])->name('anggota.index'); + + Route::get('/riwayat', [PresensiController::class, 'riwayatAnggota'])->name('anggota.riwayat'); + + // Halaman Kamera Scanner (Tempat anggota men-scan QR Code pelatih) + Route::get('/scan/{jadwal_id}', [PresensiController::class, 'scan'])->name('anggota.scan'); + + // Proses penyimpanan absen mandiri setelah sukses scan + Route::post('/store-mandiri', [PresensiController::class, 'storeMandiri'])->name('storeMandiri'); + + }); //Penialaian @@ -124,30 +148,6 @@ // --- AKTOR: PENGURUS / PELATIH --- // Halaman utama rekap jadwal (untuk pilih jadwal mana yang mau dicek) - Route::get('/', [PresensiController::class, 'index'])->name('index'); - // Halaman daftar kehadiran anggota pada jadwal tertentu (tampil QR Code & List) - Route::get('/kehadiran/{jadwal_id}', [PresensiController::class, 'kehadiran'])->name('kehadiran'); - - // Proses konfirmasi/verifikasi pelatih klik tombol "Sah" - Route::post('/konfirmasi/{presensi_id}', [PresensiController::class, 'konfirmasi'])->name('konfirmasi'); - - // Proses tambah presensi manual (Kasus Lupa HP) - Route::post('/tambah-manual', [PresensiController::class, 'storeManual'])->name('storeManual'); - - // --- AKTOR: ANGGOTA --- - // Halaman daftar jadwal hari ini di sisi anggota (Tampil tombol "Scan Absen") - Route::get('/anggota', [PresensiController::class, 'indexAnggota'])->name('anggota.index'); - - Route::get('/riwayat', [PresensiController::class, 'riwayatAnggota'])->name('anggota.riwayat'); - - // Halaman Kamera Scanner (Tempat anggota men-scan QR Code pelatih) - Route::get('/scan/{jadwal_id}', [PresensiController::class, 'scan'])->name('anggota.scan'); - - // Proses penyimpanan absen mandiri setelah sukses scan - Route::post('/store-mandiri', [PresensiController::class, 'storeMandiri'])->name('storeMandiri'); - - - }); });