From 748b0aaab142b5409d10dd3141cbde4f459b09f8 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Tue, 23 Jun 2026 12:57:50 +0300 Subject: [PATCH] =?UTF-8?q?feat(homework):=20=D0=B1=D0=BB=D0=BE=D0=BA=20?= =?UTF-8?q?=C2=AB=D0=90=D0=BA=D1=82=D1=83=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=C2=BB=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B5?= =?UTF-8?q?=20/homework?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Раньше страница «Домашние задания» показывала только историю сдач, а сам список актуальных ДЗ (что нужно сделать, с дедлайнами) жил лишь на дашборде. Теперь у ученика сверху секция «Актуальные задания» на тех же данных (LS.myAssignments) — карточки с дедлайном/просрочкой/срочностью, действие по типу задания: тест → Начать/Продолжить (LS.startAssignment), учебник → Открыть §, файл → Скачать, ДЗ-загрузка → Сдать (прокрутка к области загрузки + преднабор задания). Закрытые задания (пройденный тест, прочитанный учебник, принятая работа) скрыты; пустая секция не показывается. Заодно убрано ограничение «только первый класс» в выпадашке загрузки: задания берутся по всем классам, а класс для отправки выводится из выбранного задания (data-class) — чинит сдачу для учеников в нескольких классах. Чисто фронтенд, аддитивно. Headless-смоук рендера 19/19. Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/homework.html | 272 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 250 insertions(+), 22 deletions(-) diff --git a/frontend/homework.html b/frontend/homework.html index b9d6204..07a7622 100644 --- a/frontend/homework.html +++ b/frontend/homework.html @@ -125,6 +125,41 @@ /* student name in teacher view */ .hw-student-name { font-size: 0.78rem; font-weight: 700; color: var(--violet); } + /* ── section titles (multi-block student view) ── */ + .hw-sec-title { + font-family: 'Unbounded', sans-serif; font-size: 0.92rem; font-weight: 800; + color: #0F172A; margin: 4px 0 12px; display: flex; align-items: center; gap: 9px; + } + .hw-sec-count { + font-family: 'Manrope', sans-serif; font-size: 0.7rem; font-weight: 700; + color: var(--violet); background: rgba(155,93,229,0.1); + padding: 2px 9px; border-radius: 999px; + } + #hw-active-wrap { margin-bottom: 28px; } + + /* ── active assignment cards ── */ + .hw-acard { + background: #fff; border-radius: 16px; padding: 16px 18px; + border: 1px solid rgba(15,23,42,0.06); border-left: 3px solid var(--ac, #9B5DE5); + display: flex; align-items: center; gap: 14px; transition: all .15s; + } + .hw-acard:hover { box-shadow: 0 2px 12px rgba(15,23,42,0.06); } + .hw-acard.over { border-left-color: #EF476F; } + .hw-acard.urgent { border-left-color: #F59E0B; } + .hw-acard-icon { + width: 42px; height: 42px; border-radius: 12px; display: flex; + align-items: center; justify-content: center; flex-shrink: 0; + } + .hw-acard-body { flex: 1; min-width: 0; } + .hw-acard-title { font-size: 0.88rem; font-weight: 700; color: #0F172A; margin-bottom: 4px; } + .hw-acard-meta { font-size: 0.74rem; color: var(--text-3); display: flex; gap: 8px; flex-wrap: wrap; align-items: center; } + .hw-acard-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } + .hw-dl-chip { font-size: 0.7rem; font-weight: 700; padding: 3px 9px; border-radius: 999px; white-space: nowrap; } + .hw-dl-soon { background: rgba(245,158,11,0.12); color: #F59E0B; } + .hw-dl-over { background: rgba(239,71,111,0.12); color: #EF476F; } + .hw-dl-ok { background: rgba(15,23,42,0.05); color: var(--text-3); } + .hw-sub-chip { font-size: 0.68rem; font-weight: 700; padding: 3px 9px; border-radius: 999px; white-space: nowrap; } + @media (max-width: 768px) { .container { padding: 16px 14px 80px; } .hw-top { gap: 8px; } @@ -133,6 +168,8 @@ .hw-card-right { flex-direction: row; align-items: center; justify-content: flex-start; width: 100%; } .hw-card-actions { flex-wrap: wrap; } .hw-upload-area { padding: 20px 16px; } + .hw-acard { flex-wrap: wrap; } + .hw-acard-right { width: 100%; justify-content: flex-end; } } @media (max-width: 480px) { .container { padding: 12px 10px 80px; } @@ -152,8 +189,15 @@
Домашние задания
Загрузка…
+ + +