diff --git a/app/generator/rps_untan.py b/app/generator/rps_untan.py index 1ec51fa..0c5155a 100644 --- a/app/generator/rps_untan.py +++ b/app/generator/rps_untan.py @@ -130,6 +130,13 @@ def build_rps(d: dict) -> bytes: trs = [r._tr for r in t.rows] # indeks baris template asli + def cell(idx, col): + """Ambil sel dari baris ASLI template lewat trs[idx] (referensi XML + beku), bukan t.cell(idx, col) yang ikut bergeser tiap kali baris + CPL/CPMK/Sub-CPMK digandakan/dibuang di atasnya — pakai t.cell() + langsung untuk baris di bawah blok itu akan salah sasaran.""" + return _Row(trs[idx], t).cells[col] + def isi_daftar(proto_idx, hapus_idx, items, kolom_kode=2, kolom_isi=5): """Isi blok daftar (CPL/CPMK/Sub-CPMK): prototipe digandakan per item.""" proto = trs[proto_idx] @@ -153,17 +160,17 @@ def build_rps(d: dict) -> bytes: f"{c['kode']} → {', '.join(c.get('cpl', [])) or '-'}" for c in d.get("cpmk", []) ) - _set_text(t.cell(18, 2), peta_txt) - _set_text(t.cell(19, 2), d.get("deskripsi", "")) - _set_text(t.cell(20, 2), d.get("bahan_kajian", "")) + _set_text(cell(18, 2), peta_txt) + _set_text(cell(19, 2), d.get("deskripsi", "")) + _set_text(cell(20, 2), d.get("bahan_kajian", "")) utama = d.get("referensi", []) pendukung = d.get("referensi_pendukung", []) - _set_text(t.cell(22, 2), "\n".join(f"{i}. {r}" for i, r in enumerate(utama, 1))) - _set_text(t.cell(24, 2), "\n".join(f"{i}. {r}" for i, r in enumerate(pendukung, 1))) - _set_text(t.cell(25, 2), d.get("media", "")) - _set_text(t.cell(26, 2), ident.get("pengampu", "")) - _set_text(t.cell(27, 2), ident.get("prasyarat") or "—") + _set_text(cell(22, 2), "\n".join(f"{i}. {r}" for i, r in enumerate(utama, 1))) + _set_text(cell(24, 2), "\n".join(f"{i}. {r}" for i, r in enumerate(pendukung, 1))) + _set_text(cell(25, 2), d.get("media", "")) + _set_text(cell(26, 2), ident.get("pengampu", "")) + _set_text(cell(27, 2), ident.get("prasyarat") or "—") # ── tabel mingguan ── proto_norm, proto_uts, proto_uas = trs[31], trs[33], trs[37]