Model: school_homeroom
Menu: School → Homerooms
School Homeroom adalah dokumen transaksi yang berfungsi sebagai kontainer bulk-enrollment untuk satu kombinasi Academic Year, Academic Term, Grade, dan Grade Class (ruang kelas fisik). Satu Homeroom mengelompokkan banyak record School Enrollment (melalui field enrollment_ids) sehingga proses re-enrollment massal satu kelas dapat dilacak dan diaudit sebagai satu dokumen, alih-alih mengelola ratusan enrollment individual tanpa jejak audit bersama. Homeroom mengikuti alur persetujuan Draft → Confirmed → Open → Done, dengan pembuatan enrollment dijalankan sebagai background job (queue.job).
Instruksi kerja pada halaman ini adalah rujukan teknis langkah-per-langkah. Untuk alur proses bisnis penentuan kelas dan persetujuan Homeroom secara keseluruhan (termasuk pihak yang terlibat dan titik kontrol), lihat SOP Penentuan Kelas dan Alur Persetujuan Homeroom.
Draft → Confirmed → Open → Done
↓
Reject / Cancel → (Restart) → Draft
Nomor dokumen homeroom yang dibuat otomatis oleh sistem saat status berubah ke Open.
Nilai Default: / (sebelum nomor di-generate)
Wajib Diisi: Tidak (generated)
Dapat Dirubah: Ya (jika manual_number_ok = True)
Mekanisme Pengisian Otomatis: Di-generate menggunakan sequence saat _create_sequence_state = "open" terpenuhi.
Tanggal dokumen homeroom dibuat.
Nilai Default: Tanggal hari ini
Wajib Diisi: Ya
Dapat Dirubah: Ya (hanya saat status Draft)
Mekanisme Pengisian Otomatis: Default ke tanggal hari ini.
Tahun ajaran yang menjadi dasar homeroom ini.
Nilai Default: N/A
Wajib Diisi: Ya
Dapat Dirubah: Ya (hanya saat status Draft)
Mekanisme Pengisian Otomatis: Perubahan Academic Year mereset Academic Term.
Periode akademik yang menjadi dasar homeroom ini.
Nilai Default: N/A
Wajib Diisi: Ya
Dapat Dirubah: Ya (hanya saat status Draft)
Pembatasan Pilihan: Domain [('year_id','=',academic_year_id)]
Mekanisme Pengisian Otomatis: Direset ke kosong saat Academic Year berubah.
Sekolah tempat kelas homeroom ini berada.
Nilai Default: N/A
Wajib Diisi: Ya
Dapat Dirubah: Ya (hanya saat status Draft)
Mekanisme Pengisian Otomatis: Perubahan School mereset Grade dan Grade Class.
Jenis jenjang pendidikan, diambil otomatis dari sekolah yang dipilih. Field ini tersembunyi di form dan hanya digunakan untuk membatasi pilihan Grade.
Nilai Default: N/A
Wajib Diisi: Tidak
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Diambil dari school_id.grade_type_id.
Jenjang kelas untuk homeroom ini.
Nilai Default: N/A
Wajib Diisi: Ya
Dapat Dirubah: Ya (hanya saat status Draft)
Pembatasan Pilihan: Domain [('type_id','=',grade_type_id)]
Mekanisme Pengisian Otomatis: Perubahan Grade mereset Grade Class.
Kelas fisik (ruang kelas / rombongan belajar) yang dikelola homeroom ini.
Nilai Default: N/A
Wajib Diisi: Ya
Dapat Dirubah: Ya (hanya saat status Draft)
Pembatasan Pilihan: Domain [('grade_id','=',grade_id),('school_id','=',school_id)]
Mekanisme Pengisian Otomatis: Perubahan Grade Class mengisi otomatis field Capacity dari grade_class_id.capacity.
Wali kelas (homeroom teacher) untuk kelas ini.
Nilai Default: N/A
Wajib Diisi: Tidak
Dapat Dirubah: Ya (hanya saat status Draft)
Mekanisme Pengisian Otomatis: N/A
Kapasitas maksimum siswa untuk homeroom ini.
Nilai Default: 0
Wajib Diisi: Tidak
Dapat Dirubah: Ya (saat status Draft dan Open)
Mekanisme Pengisian Otomatis: Terisi otomatis dari grade_class_id.capacity saat Grade Class dipilih, dan dapat disesuaikan.
Jumlah enrollment yang tertaut ke homeroom ini.
Nilai Default: N/A
Wajib Diisi: Tidak
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Dihitung dari jumlah baris enrollment_ids.
Jumlah kursi tersisa pada homeroom ini.
Nilai Default: N/A
Wajib Diisi: Tidak
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Dihitung dari capacity - enrolled_count.
Daftar calon siswa yang akan di-enroll ke homeroom ini. Dapat diisi manual atau menggunakan tombol Fill Random.
Nilai Default: N/A
Wajib Diisi: Tidak
Dapat Dirubah: Ya (saat status Draft dan Open)
Pembatasan Pilihan: Domain [('id','in',allowed_student_ids)] — hanya siswa berstatus Draft yang sekolah dan jenjangnya cocok dengan homeroom.
Mekanisme Pengisian Otomatis: Dapat diisi acak melalui tombol Fill Random sesuai sisa kapasitas.
Jumlah siswa pada daftar Candidate Students.
Nilai Default: N/A
Wajib Diisi: Tidak
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Dihitung dari jumlah candidate_student_ids.
Daftar record School Enrollment yang tertaut ke homeroom ini (hasil Generate Enrollments). Bersifat read-only.
Nilai Default: N/A
Wajib Diisi: Tidak
Dapat Dirubah: Tidak
Mekanisme Pengisian Otomatis: Terisi oleh tombol Generate Enrollments; setiap enrollment memiliki homeroom_id yang menunjuk ke homeroom ini.