- Publish konten langsung menyinkronkan lesson registry dan merekomputasi composite/state siswa bila jenis evaluasi (latihan/kuis) berubah, tanpa menunggu restart server. - TTL cache (`LESSON_LIST_CACHE_TTL`, default 30 detik) untuk daftar lesson agar worker gunicorn lain ikut segar tanpa invalidasi lintas proses. - Endpoint POST /content/sync-registry (teacher-only) + tombol Sinkronisasi di /teacher/progress untuk menangkap perubahan konten di luar webapp. - Notifikasi editor saat progress siswa dihitung ulang pasca-publish. - `recompute_lesson_progress()`: skor historis tetap disimpan; state legacy completed/scored tidak disentuh. - Test unit (TTL cache + signature evaluasi) dan integrasi (publish recompute, sync registry, endpoint auth) + dokumentasi. Tanpa perubahan schema DB. |
||
|---|---|---|
| .. | ||
| scripts | ||
| storage | ||
| tests | ||
| __init__.py | ||
| database.py | ||
| docs_service.py | ||
| evaluation.py | ||
| image_cache.py | ||
| lesson_registry.py | ||
| lesson_service.py | ||
| models.py | ||
| progress_status.py | ||
| repositories.py | ||
| student_roundtrip.py | ||
| teacher_auth.py | ||
| teacher_bootstrap.py | ||
| token_hashing.py | ||
| token_service.py | ||