feat: update student import and graduation workflows

This commit is contained in:
2026-04-30 00:04:52 +07:00
parent 189b076ab0
commit ac22f8b7c8
51 changed files with 4547 additions and 1287 deletions
+31 -9
View File
@@ -1,7 +1,7 @@
<x-master-page title="Import Data Siswa" description="Import data siswa esensial dari file Excel/CSV. Gunakan template agar format kolom sesuai.">
<x-master-page title="Import Data Siswa" description="Import data siswa lengkap dari file Excel/CSV. Gunakan template agar format kolom sesuai.">
<div class="grid grid-cols-1 gap-6 xl:grid-cols-3">
<div class="xl:col-span-2 space-y-6">
<x-master-card title="Upload File Import" subtitle="Kolom yang diimport hanya data esensial siswa. Data lain bisa dilengkapi belakangan dari form detail siswa.">
<x-master-card title="Upload File Import" subtitle="Semua field inti siswa bisa diimport dari Excel/CSV selama kolomnya mengikuti template.">
<form method="POST" action="{{ route('students.import.preview') }}" enctype="multipart/form-data" class="space-y-6">
@csrf
@@ -18,6 +18,9 @@
<a href="{{ route('students.import.template') }}" class="inline-flex items-center rounded-2xl border border-emerald-200 bg-emerald-50 px-5 py-3 text-sm font-semibold text-emerald-700 transition hover:bg-emerald-100">
Download Template
</a>
<a href="{{ route('students.import.example') }}" class="inline-flex items-center rounded-2xl border border-sky-200 bg-sky-50 px-5 py-3 text-sm font-semibold text-sky-700 transition hover:bg-sky-100">
Download Contoh File
</a>
<a href="{{ route('students.index') }}" class="inline-flex items-center rounded-2xl border border-slate-200 px-5 py-3 text-sm font-semibold text-slate-700 transition hover:bg-slate-50">
Kembali ke Data Siswa
</a>
@@ -126,18 +129,37 @@
</div>
<div class="space-y-6">
<x-master-card title="Kolom Esensial" subtitle="Kolom inti yang harus ada di file import.">
<x-master-card title="Kolom Import" subtitle="Field inti siswa yang didukung saat import Excel/CSV.">
<ul class="space-y-2 text-sm text-slate-600">
<li><strong>student_number</strong> — NIS</li>
<li><strong>nisn</strong> — NISN</li>
<li><strong>nik</strong> — NIK</li>
<li><strong>full_name</strong> — nama lengkap</li>
<li><strong>gender</strong> — L / P</li>
<li><strong>academic_year_id</strong> — ID tahun ajaran</li>
<li><strong>department_id</strong> — ID program keahlian</li>
<li><strong>class_id</strong> — ID kelas</li>
<li><strong>entry_date</strong> — format YYYY-MM-DD</li>
<li><strong>status</strong> — default paling aman: active</li>
<li><strong>phone_number</strong> — opsional</li>
<li><strong>place_of_birth</strong> — tempat lahir</li>
<li><strong>date_of_birth</strong> — tanggal lahir</li>
<li><strong>religion</strong> — agama</li>
<li><strong>nationality</strong> — kewarganegaraan</li>
<li><strong>family_card_number</strong> — no. kartu keluarga</li>
<li><strong>child_order</strong> — anak ke</li>
<li><strong>number_of_siblings</strong> — jumlah saudara</li>
<li><strong>phone_number</strong> — nomor HP</li>
<li><strong>email</strong> — email</li>
<li><strong>address</strong> — alamat</li>
<li><strong>province_id / provinsi</strong> — provinsi</li>
<li><strong>regency_id / kabupaten_kota</strong> — kabupaten/kota</li>
<li><strong>district_id / kecamatan</strong> — kecamatan</li>
<li><strong>village_id / kelurahan_desa</strong> — kelurahan/desa</li>
<li><strong>postal_code</strong> — kode pos</li>
<li><strong>academic_year_id</strong> — ID atau nama tahun ajaran</li>
<li><strong>department_id</strong> — ID atau nama program keahlian</li>
<li><strong>class_id</strong> — ID atau nama kelas</li>
<li><strong>entry_date</strong> — tanggal masuk</li>
<li><strong>status</strong> — status siswa</li>
<li><strong>notes</strong> — catatan</li>
<li><strong>parent_father_*</strong> — data ayah</li>
<li><strong>parent_mother_*</strong> — data ibu</li>
<li><strong>parent_guardian_*</strong> — data wali</li>
</ul>
</x-master-card>