Add student achievements module and improve student admin workflows
This commit is contained in:
@@ -92,7 +92,7 @@
|
||||
</x-master-card>
|
||||
</div>
|
||||
|
||||
<div class="mt-6">
|
||||
<div class="mt-6 grid grid-cols-1 gap-6 xl:grid-cols-2">
|
||||
<x-master-card title="Histori Akademik Siswa" subtitle="Riwayat penempatan siswa per tahun angkatan, jurusan, dan kelas.">
|
||||
@if ($student->academicHistories->isEmpty())
|
||||
<div class="text-sm text-slate-500">Belum ada histori akademik untuk siswa ini.</div>
|
||||
@@ -129,6 +129,55 @@
|
||||
</div>
|
||||
@endif
|
||||
</x-master-card>
|
||||
|
||||
<x-master-card title="Riwayat Prestasi Siswa" subtitle="Catatan prestasi akademik maupun non-akademik siswa.">
|
||||
<div class="mb-4">
|
||||
<a href="{{ route('student-achievements.create', ['student_id' => $student->id]) }}" class="inline-flex items-center rounded-2xl bg-amber-500 px-4 py-2.5 text-sm font-semibold text-white shadow-lg shadow-amber-200 transition hover:bg-amber-600">
|
||||
Tambah Prestasi
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@if ($student->achievements->isEmpty())
|
||||
<div class="text-sm text-slate-500">Belum ada data prestasi untuk siswa ini.</div>
|
||||
@else
|
||||
<div class="space-y-4">
|
||||
@foreach ($student->achievements as $achievement)
|
||||
<div class="rounded-3xl border border-slate-200 bg-slate-50 p-5 text-sm text-slate-600 shadow-sm shadow-slate-200/40">
|
||||
<div class="flex flex-col gap-3 md:flex-row md:items-start md:justify-between">
|
||||
<div>
|
||||
<div class="flex flex-wrap items-center gap-2">
|
||||
<div class="font-semibold text-slate-800">{{ $achievement->achievement_name }}</div>
|
||||
@if ($achievement->level)
|
||||
<span class="rounded-full bg-amber-100 px-3 py-1 text-xs font-semibold text-amber-700">{{ $achievement->level }}</span>
|
||||
@endif
|
||||
@if ($achievement->rank)
|
||||
<span class="rounded-full bg-indigo-100 px-3 py-1 text-xs font-semibold text-indigo-700">{{ $achievement->rank }}</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="mt-2">Kategori: {{ $achievement->category ?: '-' }}</div>
|
||||
<div>Penyelenggara: {{ $achievement->organizer ?: '-' }}</div>
|
||||
<div>Tahun/Tanggal: {{ $achievement->achievement_year ?: '-' }} · {{ $achievement->achievement_date?->format('d-m-Y') ?: '-' }}</div>
|
||||
@if ($achievement->description)
|
||||
<div class="mt-2 rounded-xl bg-white px-3 py-2 text-xs text-slate-500">
|
||||
{{ $achievement->description }}
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="flex flex-wrap gap-2">
|
||||
@if ($achievement->certificate_file)
|
||||
<a href="{{ asset('storage/' . $achievement->certificate_file) }}" target="_blank" class="rounded-xl border border-indigo-200 px-3 py-2 text-xs font-semibold text-indigo-700 transition hover:bg-indigo-50">Piagam</a>
|
||||
@endif
|
||||
@if ($achievement->activity_photo)
|
||||
<button type="button" data-lightbox-trigger data-lightbox-src="{{ asset('storage/' . $achievement->activity_photo) }}" data-lightbox-title="Foto Kegiatan — {{ $achievement->achievement_name }}" class="rounded-xl border border-emerald-200 px-3 py-2 text-xs font-semibold text-emerald-700 transition hover:bg-emerald-50">Foto</button>
|
||||
@endif
|
||||
<a href="{{ route('student-achievements.edit', $achievement) }}" class="rounded-xl border border-slate-200 px-3 py-2 text-xs font-semibold text-slate-700 transition hover:bg-slate-100">Edit</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</x-master-card>
|
||||
</div>
|
||||
|
||||
<div class="mt-6 grid grid-cols-1 gap-6 xl:grid-cols-2">
|
||||
|
||||
Reference in New Issue
Block a user