Commit Graph

137 Commits

Author SHA1 Message Date
82394cc688 feat: закрыть остаточные P1/P2 по профилю, когорте и ведомости
- профиль приведён к docs/09: variant/level, updatedBy/name, лимит попыток
- V14: NOT NULL и полная уникальность когорты, preflight legacy-групп
- возврат группы из архива и история членства на странице группы
- пагинация групп и плоского списка материалов
- пакетные сдачи ведомости одним запросом
- XLSX-preflight импорта и audit-тесты ростера
- LDD: 66 claims, 398 тестов, release PASS
2026-10-29 20:51:27 +03:00
7ef5c866a3 fix(web): устойчивые ошибки courseNo и login E2E 2026-10-29 20:01:40 +03:00
65ed08f5c2 feat(web): перевести браузерные URL курсов на courseNo
- teacher/admin course pages, content, gradebook, profile, downloads
- courseNo -> UUID только на границе REST API
- обновлены e2e, шаблоны, тесты и docs
- LDD-UI-002; baseline 59 claims / 385 тестов
2026-10-29 19:51:03 +03:00
9412d87fed fix: закрыть P0/P1 расхождения с целевой моделью
- академический отпуск: readOnly, запрет submit/start/finish защиты
- черновики лабораторных скрыты от студентов в списке/деталях/по UUID
- удалено действие «Убрать из группы» из UI и API
- импорт: restoreInactiveStatuses, skipped-отчёт, разблокировка архивного аккаунта
- глобальные материалы STUDENTS/TEACHERS с JWT-фильтрацией и сменой аудитории
- LDD-AUTH-005 переведён на unit-evidence, clean check проходит по P0
- backup: безопасный парсинг .env, verify-latest, кавычки cron
- robots/noindex, комментарии без автора, профиль без черновиков
- docs/18-goal-audit.md; baseline 57 claims / 366 тестов / release PASS
2026-10-29 18:58:21 +03:00
1e1e9ae0e4 feat: закрыть остаточный backlog
- keyset-пагинация аудита с курсором (occurred_at, id) и UI «Показать ещё»
- пакетный /api/v1/labs/details и переход progress на один запрос
- абсолютный потолок сессии 30 дней (identity V12 + web), очистка refresh
- админская инвентаризация legacy-активов (/admin/legacy-assets, скрипт)
- E2E в Chromium/Firefox/WebKit (18/18), CI preflight
- LDD: 51 claim, 346 тестов, docs и handoff обновлены
2026-10-29 12:01:44 +03:00
4ef6c7f7ed feat(perf): пагинация аудита и bulk-группы курса 2026-10-29 12:01:44 +03:00
3adfba9bec feat(auth): короткий access, refresh и 7-дневная sliding-сессия 2026-10-29 12:01:44 +03:00
b7129b92e0 fix(json): применять Kotlin-модуль Jackson 3 2026-10-29 12:01:43 +03:00
16e6c3282b test(web): преподавательская ведомость, материалы и аудит 2026-10-29 12:01:43 +03:00
97e14f040c feat(web): ведомость преподавателя, материалы курса и аудит 2026-10-29 12:01:43 +03:00
5affe9873b feat(web): преподавательский редактор лабораторных 2026-10-29 12:01:43 +03:00
9aef82e217 feat(academic): защита активов материалов 2026-10-29 12:01:43 +03:00
fba648ea54 fix(web): перепроверять статус сессии 2026-10-29 12:01:43 +03:00
0b5d5d0ca5 feat(web): страницы материалов курса 2026-10-29 12:01:43 +03:00
1d21e66dc4 feat(web): повышение курса и жизненный цикл студентов 2026-10-29 12:01:43 +03:00
753cb5ba0a feat(web): профиль студента и ростер группы для преподавателя 2026-10-29 12:01:43 +03:00
dd1129fe80 feat(web): кабинет преподавателя и управление преподавателями 2026-10-29 12:01:42 +03:00
9a539407f1 feat(web): страницы курсов и привязка лабораторных 2026-10-29 12:01:42 +03:00
0c68702e8f fix(web): восстановить статус студента в матрице группы 2026-10-29 12:01:42 +03:00
07a223b759 feat(identity): группы-когорты, история и импорт v2 2026-10-29 12:01:42 +03:00
24a92632fd fix(ui): различать готовность защиты и истечение времени 2026-10-29 12:01:42 +03:00
920d96a0f5 fix: скрыть админские действия статей от студентов 2026-10-29 12:01:26 +03:00
2beffd84f1 fix: move password status marker to student number 2026-10-26 20:11:37 +03:00
d8e28e88fc fix: center attestation values and move password status
- widen attestation columns so full grade labels fit at the common font size
- center attestation values like the average score
- remove the password column and mark temporary/changed passwords with a square dot next to the student name
2026-10-26 20:02:18 +03:00
44edb5ebeb fix: restore uniform matrix font size and header spacing
- use the previous student-name size (13.5px) for all matrix cell text
- match attestation header padding to neighboring headers
- widen the attestation column just enough for full grade labels
2026-10-26 19:56:36 +03:00
e2e3ed1eaf fix: unify group matrix typography and dashboard order
- use one 12px font size for all matrix cell text
- center average score values while keeping the header left-aligned
- swap Groups and Labs panels on the admin dashboard
2026-10-26 19:49:22 +03:00
7fb3e13548 fix: refine attestation column borders and labels
- remove doubled left borders and add a single border before password/actions
- narrow attestation columns and fit full grade labels
- use full intermediate attestation labels: отлично, аттестован, неудовлетворительно, не аттестован
- keep the average header left-aligned
2026-10-26 19:38:13 +03:00
9ddf2c6ce9 fix: align attestation action buttons with lab columns
Normalize all header action buttons to the same height and icon sizing; verify computed sizes in Chromium.
2026-10-26 18:45:03 +03:00
a336612ad5 fix: polish group matrix headers and cell alignment
- shorten intermediate attestation header to «Пр. атт.»
- vertically center row cell contents and left-align values
- use normal header color/weight for average, password and actions
- align attestation action buttons to equal height
- add a divider before the actions column
2026-10-26 18:29:22 +03:00
c8581c620a fix: align attestation title with lab headers
Use normal font weight and left alignment for the attestation column title and semester.
2026-10-26 18:14:10 +03:00
54e5721267 fix: remove hidden badge from attestation header
The eye icon already communicates whether an attestation is visible to students.
2026-10-26 18:03:33 +03:00
9e16566160 fix: keep group page working when attestations fail
- tolerate legacy textual semester values from older progress-service responses
- treat attestations as optional data on the group page and log loading failures instead of returning 500
2026-10-26 17:37:57 +03:00
f5ba21b5f5 fix: match attestation columns to lab result styling
- use the same header order and compact action row as lab columns
- show attestation results as centered text-like selects instead of boxed inputs
- keep column widths and separators aligned with lab columns
- send the selected value with the inline attestation request
2026-10-26 17:30:55 +03:00
fb9511280a fix: polish attestation columns and inline grading
- use numeric semesters 1–8 and add show/hide publication per attestation
- edit attestation results directly in the group table without a modal
- hide unpublished attestations from students
- align header separators, average column and action buttons with the existing UI
- remove missed-hours fields until a separate attendance model is ready
2026-10-26 17:15:16 +03:00
f7a1830548 feat: add course attestations and average grade column
- store attestation columns and per-student results in progress-service
- add teacher UI for intermediate/pass/exam columns with semester and missed hours
- show average score per student on the group page
- show attestation results on the student dashboard
2026-10-26 16:34:04 +03:00
e22443b08e feat: submit all modal forms without page reload
- add a generic AJAX submitter for forms inside dialogs
- keep modal values and show field errors on server validation failure
- soft-refresh the page content on success, preserving scroll, search and filters
- share toast and re-init hooks for tables, markdown, sections and group page
- require passwords and add minlength/match validation on auth forms
2026-10-23 01:22:05 +03:00
2e43f79256 fix: validate grade input and save modal without reload
- require a score and return a clear message for empty/non-numeric values
- handle unreadable API request bodies instead of falling back to a bare 400
- submit the grade modal via fetch, show errors in place and update the cell
- keep the page scroll position; restore the form feedback tests
2026-10-22 23:31:05 +03:00
d287dd3119 feat: preserve form values and show field errors on submit
- keep submitted values and API field violations across redirects
- reopen the failed modal and highlight invalid fields
- show inline HTML5 validation messages instead of browser bubbles
- keep content-admin errors on the originating page
2026-10-22 22:41:35 +03:00
3827955909 fix: opaque sticky matrix column and square publish marker
Use solid row hover colors so the sticky student column does not show underlying cells while scrolling. Replace the circular checkbox marker with a square one and bump asset version to 36.
2026-10-20 22:03:50 +03:00
f7dc8d7d8b feat: general lab comment and strict square UI
Add a non-required general comment for a student's lab grade (progress V9, API, admin modal, student card). Empty string is the default. Switch the UI to square corners and bump static asset versions.
2026-10-20 21:56:38 +03:00
9f724a4817 Dark theme: readable muted text (override Bootstrap --bs-secondary-color vars), lighter muted palette; asset v34 2026-10-12 19:47:01 +03:00
8d5031364e Style checkboxes/pill in B3 bordeaux (force checkbox as pill, accent-color global); asset v33 2026-10-08 10:38:47 +03:00
6c2e41d558 Variant distribution: treat redirect as success, refresh modal in place, toasts above modal (inside dialog); asset v32 2026-10-08 10:28:34 +03:00
78130dbcd7 Group page: explicit 'Варианты' button for variant distribution, download icon; asset v30 2026-10-08 09:34:56 +03:00
c1df88df21 Article sidebar: neutralize offcanvas on desktop (visible, sticky) with explicit rules; asset v29 2026-10-08 01:57:43 +03:00
b216501528 Article sidebar: sticky works (no align-items-start, stronger selector, top under navbar); asset v28 2026-10-08 01:48:37 +03:00
c35cc28a29 Article sidebar: add base offcanvas class (fix dismiss error), header close aligned right; asset v26 2026-10-08 01:41:46 +03:00
540d739456 Bump all static asset versions to 25 (ensure fresh CSS/JS after redesign) 2026-10-08 01:35:03 +03:00
3742b48204 Article page: offcanvas-lg sidebar (sticky desktop, right slide mobile), compact action row; persistent accordion state (localStorage) 2026-10-08 01:34:36 +03:00
01237c6b0c Forms: return to previous scroll position after submit (no highlight/flicker); themed scrollbars everywhere 2026-10-08 00:54:51 +03:00