Tambah konfirmasi password & auto-arsip sebelum hapus nilai
Tombol "Mulai Ulang (hapus semua nilai)" di halaman Input Nilai sebelumnya cuma dijaga confirm() browser biasa — gampang ke-klik tanpa sadar, apalagi datanya sekarang ratusan mahasiswa per MK. - Dialog konfirmasi kini menyebut jumlah mahasiswa yang akan hilang - Password akun yang login harus dimasukkan ulang & diverifikasi server-side (auth.verifikasi_password) sebelum aksi hapus dieksekusi - Isi nilai lama diarsipkan otomatis ke tabel nilai_arsip_hapus sebelum dihapus (mk_kode, tahun, data JSON, kapan, oleh siapa) — jaring pengaman, ikut ke-backup lewat /cadangan.db yang sudah ada; belum ada UI pemulihan (di luar cakupan saat ini, cukup query manual bila perlu) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+10
-1
@@ -1165,10 +1165,19 @@ async def simpan_nilai(request: Request, kode: str):
|
||||
return _konteks_nilai(request, kode, peringatan=[
|
||||
"Anda hanya diampukan sebagian kelas MK ini — menghapus seluruh nilai "
|
||||
"hanya bisa dilakukan kaprodi atau dosen yang mengampu seluruh kelas."])
|
||||
akun = db.pengguna_by_id(request.state.user["id"])
|
||||
password = (form.get("password") or "").strip()
|
||||
if not akun or not auth.verifikasi_password(password, akun["pw_hash"]):
|
||||
return _konteks_nilai(request, kode, peringatan=[
|
||||
"Password salah — nilai TIDAK jadi dihapus."])
|
||||
lama = db.ambil_dok("nilai", kode)
|
||||
if lama:
|
||||
db.arsipkan_nilai_hapus(kode, db.tahun_aktif(), lama["data"], updated_by)
|
||||
db.hapus_dok("nilai", kode)
|
||||
return _konteks_nilai(
|
||||
request, kode,
|
||||
pesan="Seluruh nilai tersimpan MK ini dihapus — silakan mulai dari awal.")
|
||||
pesan="Seluruh nilai tersimpan MK ini dihapus (salinan sebelumnya "
|
||||
"tersimpan otomatis sebagai arsip) — silakan mulai dari awal.")
|
||||
|
||||
if aksi == "komponen":
|
||||
kelas_dosen = _kelas_dosen(request.state.user, kode)
|
||||
|
||||
Reference in New Issue
Block a user