diff --git a/frontend/classes.html b/frontend/classes.html
index 2b16add..6f0ef5e 100644
--- a/frontend/classes.html
+++ b/frontend/classes.html
@@ -794,7 +794,7 @@
-
+
Вопросы подбираются случайно из базы по выбранному предмету
diff --git a/frontend/homework.html b/frontend/homework.html
index 07a7622..2f0578c 100644
--- a/frontend/homework.html
+++ b/frontend/homework.html
@@ -552,7 +552,11 @@
const wrap = document.getElementById('hw-active-wrap');
const list = document.getElementById('hw-active-list');
if (!wrap || !list) return;
- const active = _assignments.filter(a => !asgnDone(a)).sort((x, y) => urgencyScore(x) - urgencyScore(y));
+ // Только задания с флагом ДЗ (is_homework) — это страница «Домашние задания»,
+ // обычные тесты/экзамены сюда не попадают.
+ const active = _assignments
+ .filter(a => a.is_homework && !asgnDone(a))
+ .sort((x, y) => urgencyScore(x) - urgencyScore(y));
if (!active.length) { wrap.style.display = 'none'; return; }
wrap.style.display = '';
document.getElementById('hw-active-count').textContent = active.length;
@@ -565,7 +569,8 @@
const sel = document.getElementById('hw-assignment-sel');
if (!sel) return;
sel.querySelectorAll('option[data-asgn]').forEach(o => o.remove());
- list.filter(a => !a.session_id && !a.textbook_id).forEach(a => {
+ // Привязать загрузку можно только к ДЗ, куда ученик сдаёт файл (тип upload/file).
+ list.filter(a => a.is_homework && (asgnType(a) === 'upload' || asgnType(a) === 'file')).forEach(a => {
const opt = document.createElement('option');
opt.value = a.id;
opt.textContent = a.title + (a.class_name && a.class_name !== 'Личное задание' ? ' · ' + a.class_name : '');