Files
Power BI Dev 9be6bd03e3 Gabungkan aplikasi RPS & Portofolio OBE (dashboard jadi bagian aplikasi)
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>
2026-07-18 12:05:28 +07:00

43 lines
1.5 KiB
HTML

{% extends "base.html" %}
{% block judul %}Riwayat Ketercapaian Lintas Semester — Informatika UNTAN{% endblock %}
{% block isi %}
<h1>Riwayat Ketercapaian CPL Lintas Semester</h1>
<p class="keterangan">Skor CPL tingkat prodi per tahun ajaran — bahan evaluasi tren untuk rapat kurikulum dan akreditasi. Sel kosong = belum ada nilai yang masuk pada periode itu.</p>
<div class="gulir">
<table class="grid">
<thead>
<tr>
<th style="width:90px">CPL</th>
{% for t in daftar_tahun %}
<th class="tengah">{{ t }}{% if t == tahun %}<br><span style="font-size:10px">(aktif)</span>{% endif %}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for cp in kode_cpl %}
<tr>
<td class="tengah"><b>{{ cp }}</b></td>
{% for t in daftar_tahun %}
{% set v = per_tahun[t].cpl.get(cp) %}
<td class="tengah">
{% if v and v.skor is not none %}
<b>{{ '%.1f'|format(v.skor) }}</b>
{% if v.skor < per_tahun[t].ambang %}<span style="color:var(--red)"></span>{% endif %}
<br><span style="font-size:11px;color:var(--grey)">{{ v.n_mk_setor }}/{{ v.n_mk_pemikul }} bukti</span>
{% else %}—{% endif %}
</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="kpi-baris" style="margin-top:14px">
{% for t in daftar_tahun %}
<div><b>{{ per_tahun[t].n_mk_setor }}</b> <span>MK setor nilai · {{ t }}</span></div>
{% endfor %}
</div>
{% endblock %}