9be6bd03e3
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>
84 lines
4.9 KiB
HTML
84 lines
4.9 KiB
HTML
{% extends "base.html" %}
|
|
{% block judul %}Portofolio {{ peta.nama }} — Informatika UNTAN{% endblock %}
|
|
{% block isi %}
|
|
<div class="nav-baris">
|
|
<div>MK ini: <a href="/rps/{{ peta.kode }}">RPS</a> · <a href="/nilai/{{ peta.kode }}">Input Nilai</a> · <b>Portofolio</b></div>
|
|
<div>
|
|
{% if status == 'selesai' %}<span class="stamp stamp-ok">SELESAI</span>
|
|
{% elif status == 'draft' %}<span class="stamp stamp-draft">DRAFT</span>
|
|
{% else %}<span class="stamp stamp-no">BELUM</span>{% endif %}
|
|
{% if updated_at %}<span style="color:var(--grey);font-size:13px"> · disimpan {{ updated_at }}{% if updated_by %} oleh {{ updated_by }}{% endif %}</span>{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<h1>Portofolio Mata Kuliah — {{ peta.nama }} <span style="color:var(--grey)">({{ peta.kode }})</span></h1>
|
|
|
|
{% if pesan %}<div class="info">{{ pesan }}</div>{% endif %}
|
|
|
|
{% if not boleh_edit %}
|
|
<div class="info">Anda bukan pengampu MK ini — form terbuka <b>hanya untuk dibaca</b>;
|
|
unduhan dokumen (memuat nilai mahasiswa) juga dibatasi untuk pengampu dan kaprodi.</div>
|
|
{% endif %}
|
|
|
|
{% if not ada_rps %}
|
|
<div class="peringatan">RPS MK ini belum disusun — bagian Rencana Penilaian, korelasi bobot, dan nilai akhir tertimbang akan kosong. <a href="/rps/{{ peta.kode }}">Susun RPS dulu →</a></div>
|
|
{% endif %}
|
|
{% if not ada_nilai %}
|
|
<div class="peringatan">Nilai MK ini belum diinput — bagian Penilaian, Evaluasi Ketercapaian, dan Simpulan statistik akan kosong. <a href="/nilai/{{ peta.kode }}">Input nilai dulu →</a></div>
|
|
{% endif %}
|
|
{% if ada_rps and ada_nilai %}
|
|
<div class="info">RPS ✓ dan Nilai ✓ tersedia — tabel korelasi, penilaian, evaluasi ketercapaian, dan statistik akan diisi otomatis di dokumen. Anda hanya melengkapi bagian di bawah.</div>
|
|
{% endif %}
|
|
|
|
<form method="post" action="/portofolio/{{ peta.kode }}">
|
|
<h2 class="bagian">IDENTITAS DOKUMEN (LEMBAR PENGESAHAN)</h2>
|
|
<table class="grid">
|
|
<tr><td class="label">Nomor Dokumen</td><td class="isian"><input type="text" name="nomor" value="{{ f.dokumen.nomor }}" placeholder="mis. PORTO/INF/2026/001 — boleh kosong"></td></tr>
|
|
<tr><td class="label">No. Revisi</td><td class="isian"><input type="text" name="revisi" value="{{ f.dokumen.revisi }}"></td></tr>
|
|
<tr><td class="label">Tanggal Terbit</td><td class="isian"><input type="text" name="tgl_terbit" value="{{ f.dokumen.tgl_terbit }}" placeholder="mis. 20 Desember 2026"></td></tr>
|
|
<tr><td class="label">Kurikulum Tahun</td><td class="isian"><input type="text" name="kurikulum_tahun" value="{{ f.dokumen.kurikulum_tahun }}"></td></tr>
|
|
<tr><td class="label">Nama Dekan</td><td class="isian"><input type="text" name="dekan" value="{{ f.dokumen.dekan }}" placeholder="untuk kolom pengesahan"></td></tr>
|
|
<tr><td class="label">Status Dokumen</td>
|
|
<td class="isian">
|
|
<select name="status_dokumen" style="width:auto">
|
|
<option {% if f.dokumen.status_dokumen == 'Master' %}selected{% endif %}>Master</option>
|
|
<option {% if f.dokumen.status_dokumen == 'Copy' %}selected{% endif %}>Copy</option>
|
|
</select>
|
|
</td></tr>
|
|
</table>
|
|
|
|
<h2 class="bagian">REALISASI PEMBELAJARAN</h2>
|
|
<p class="keterangan">Ceritakan pelaksanaan nyata semester ini: penyesuaian jadwal/materi/metode terhadap rencana di RPS, kehadiran, dan hal penting lain.</p>
|
|
<textarea name="realisasi" rows="6">{{ f.realisasi }}</textarea>
|
|
|
|
<h2 class="bagian">KENDALA & TINDAK LANJUT</h2>
|
|
<table class="grid">
|
|
<thead><tr><th style="width:50px" class="tengah">No.</th><th>Kendala</th><th>Tindak Lanjut</th></tr></thead>
|
|
<tbody>
|
|
{% for k in f.kendala[:5] %}
|
|
<tr>
|
|
<td class="tengah">{{ loop.index }}</td>
|
|
<td class="isian"><textarea name="kendala_{{ loop.index }}" rows="2">{{ k.kendala }}</textarea></td>
|
|
<td class="isian"><textarea name="tindak_{{ loop.index }}" rows="2">{{ k.tindak }}</textarea></td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
|
|
<h2 class="bagian">SIMPULAN HASIL EVALUASI</h2>
|
|
<p class="keterangan">Statistik nilai, frekuensi huruf mutu, dan tabel ketercapaian CPL/CPMK dihitung dan dicetak otomatis; tuliskan simpulan naratifnya di sini.</p>
|
|
<textarea name="simpulan" rows="4">{{ f.simpulan }}</textarea>
|
|
|
|
<div class="aksi-baris">
|
|
{% if boleh_edit %}
|
|
<span style="color:var(--grey);font-size:13px">Disimpan atas nama <b>{{ user.nama }}</b></span>
|
|
<span class="spacer"></span>
|
|
<button class="tombol garis" type="submit" name="aksi" value="draft">Simpan Draft</button>
|
|
<button class="tombol selesai" type="submit" name="aksi" value="selesai">Simpan & Tandai Selesai</button>
|
|
{% if status %}<a class="tombol" href="/portofolio/{{ peta.kode }}/unduh">Unduh .docx</a>
|
|
<a class="tombol garis" href="/portofolio/{{ peta.kode }}/unduh.pdf">PDF</a>{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
</form>
|
|
{% endblock %}
|