Sel "Peta CPL-CPMK" pada template resmi UNTAN memuat tabel kecil bersarang
(contoh isian bawaan SN-Dikti). _set_text() cuma membuang paragraf tambahan
saat menimpa sel dengan teks generate, tak tahu ada tabel bersarang di
dalamnya -- hasilnya sel berakhir dengan w:tbl tanpa w:p setelahnya, yang
melanggar skema OOXML. Word membaca file itu sebagai "rusak" dan otomatis
memperbaikinya sendiri saat dibuka, dan perbaikan-otomatis itulah yang
mengacak tata letak dokumen.
- _set_text() sekarang membuang tabel bersarang tersisa sebelum menulis
teks baru ke sel manapun (berlaku umum, bukan cuma sel yang saat ini
kena masalah)
- Ganti templates/rps_untan.docx dengan versi yang sudah dirapikan
formatnya (font/spacing) -- struktur baris & kolom identik (39x18),
jadi tetap kompatibel dengan pemetaan baris di rps_untan.py
- Diverifikasi: tak ada lagi sel yang berakhir dengan tabel bersarang
tanpa paragraf penutup di seluruh dokumen hasil generate
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Peran dosen dipecah jadi dosen_mk (nilai & portofolio saja, RPS baca-only)
dan dosen_rps_mk (bisa edit RPS juga); migrasi otomatis dari skema lama.
- Rekap Bobot Penilaian RPS pakai 6 komponen teknik asesmen baku prodi;
total wajib tepat 100%, komponen individual boleh dikosongkan.
- Dropdown & daftar Sub-CPMK tak lagi terpotong teksnya.
- Bagian F (Rencana Mingguan): tombol "Isi Otomatis" per baris (termasuk
usulan Bobot) yang muncul setelah Sub-CPMK dipilih, plus panel contoh
teks bantu per kolom.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Dashboard pemetaan statis kini dilayani aplikasi di /dashboard
(app/static/dashboard.html). Fitur lengkap Tahap 1-4 + dasbor monitoring,
menu global, filter semester, input nilai langsung, penggabungan nilai
team teaching, tabel bisa urut. Dockerfile berubah dari nginx statis ke
uvicorn/FastAPI: healthcheck, proxy-headers, volume /data (SQLite).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>