From 73ba5a3530e38da2777467ccc78a601451de1cc1 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Tue, 23 Jun 2026 13:08:57 +0300 Subject: [PATCH] =?UTF-8?q?fix(homework):=20=D0=B1=D0=BB=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=94=D0=97=20=E2=80=94=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=81=20=D1=84?= =?UTF-8?q?=D0=BB=D0=B0=D0=B3=D0=BE=D0=BC=20is=5Fhomework;=20=D1=8F=D1=81?= =?UTF-8?q?=D0=BD=D0=B0=D1=8F=20=D0=BF=D0=BE=D0=B4=D0=BF=D0=B8=D1=81=D1=8C?= =?UTF-8?q?=20=D1=82=D0=B8=D0=BF=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (1) На /homework блок «Актуальные задания» и выпадашка загрузки теперь показывают только задания с флагом ДЗ (is_homework). Обычные тесты/экзамены и не-ДЗ файлы сюда не попадают. Выпадашка привязки — только типы upload/file (куда ученик реально сдаёт файл), без тест-ДЗ и учебников. (2) В конструкторе задания (classes.html) вкладка типа «Сдать работу» → «Загрузка работы»: остальные вкладки — существительные-типы контента (Файл, Готовый тест), а «Сдать работу» читалась как действие ученика. Это тип upload — ДЗ, куда ученик грузит файл (saveAssignment: is_homework=1, count=1); сам тип нужен, поправлена только подпись. Headless-смоук фильтра ДЗ 6/6. Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/classes.html | 2 +- frontend/homework.html | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) 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 : '');