Commit Graph

74 Commits

Author SHA1 Message Date
1b98b1828d fix(import): обновлять updated_at при восстановлении аккаунта 2026-10-29 19:23:35 +03:00
1570196cc7 fix(import): построчные ошибки до записи
- preflight занятого логина и неактивной целевой группы
- applied=false с номером строки, без частичных студентов
- LDD-IMPORT-003; baseline 58 claims / 368 тестов
2026-10-29 19:20:16 +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
08e5a62c0e feat(security): закрыть legacy-активы от публичного доступа 2026-10-29 12:01:44 +03:00
85d34e78cb test(ldd): конкурентность, нагрузка и release gate 2026-10-29 12:01:44 +03:00
b7129b92e0 fix(json): применять Kotlin-модуль Jackson 3 2026-10-29 12:01:43 +03:00
905feb440b feat(ldd): property-based, mutation и браузерный E2E 2026-10-29 12:01:43 +03:00
d7b886513f chore: маршрут аудита, внутренний токен academic и CI 2026-10-29 12:01:43 +03:00
4d97feaf9e feat(identity): центральный аудит и внутренний список групп 2026-10-29 12:01:43 +03:00
c6ca981eca feat(progress): преподавательские оценки, защиты и аудит 2026-10-29 12:01:43 +03:00
1de7207c3c feat(academic): права преподавателя, группы курса и аудит 2026-10-29 12:01:43 +03:00
916046791a feat(progress): доступ преподавателя к операциям лабораторной 2026-10-29 12:01:43 +03:00
7c86194765 feat(academic): преподаватель может вести лабораторные 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
520a61085a fix(academic): детерминированный предпросмотр при совпадении slug 2026-10-29 12:01:43 +03:00
43229059d3 feat(academic): курсовые материалы и публичный ALL-контент 2026-10-29 12:01:43 +03:00
e139a585b4 feat(identity): повышение курса и жизненный цикл студентов 2026-10-29 12:01:43 +03:00
fa097518f8 feat(progress): профиль студента курса и скачивание попыток 2026-10-29 12:01:42 +03:00
a970fe62c4 feat(academic): состав групп курса для преподавателя 2026-10-29 12:01:42 +03:00
c11a308ff8 feat(identity): внутренние API для профиля студента 2026-10-29 12:01:42 +03:00
8cc658bf97 feat(academic): доступ к курсам и лабораторным по ролям 2026-10-29 12:01:42 +03:00
a8fa566d3c feat(identity): аккаунты преподавателей 2026-10-29 12:01:42 +03:00
0c51bf2d12 feat(academic): курсы, bootstrap и привязка лабораторных 2026-10-29 12:01:42 +03:00
cbd98f55f0 fix(progress): перенести профильную миграцию на V13 после аттестаций 2026-10-29 12:01:42 +03:00
07a223b759 feat(identity): группы-когорты, история и импорт v2 2026-10-29 12:01:42 +03:00
de9535d35c feat(db): миграции групп, курсов, статусов и профиля 2026-10-29 12:01:42 +03:00
26573f2210 revert: keep feature-branch migration out of master
V10 belongs to the unfinished groups/courses branch and must not be pulled into master. Production already has V11/V12 applied; master starts with that migration history without V10 and without out-of-order mode.
2026-10-26 17:57:12 +03:00
bfdae41fb8 fix: allow out-of-order progress migrations
V10 came from the feature branch after V11/V12 were already applied in production. It is safe to apply after them and adds only profile author columns plus an index.
2026-10-26 17:45:14 +03:00
dc13ba3186 chore: keep progress migrations compatible with feature branch
The current local database already has V10 from the groups/courses branch; include it so master can start without a migration history gap.
2026-10-26 17:31:30 +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
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
51d1b84297 Redesign B3 bordeaux + finish lab-page rework
- Lab page is now read-only with a settings screen for levels/variants;
  variant issuance moved to a large modal on the group page (assign-fragment).
- Header: bordeaux logo and 2px accent underline, bordeaux login/logout/theme
  buttons; smaller radii across the UI; filled secondary/danger buttons.
- Includes prior agent work (login backoff, no-cache pages, API timeouts,
  content tweaks) and fixes (variant usage Map.values, import order).
- Bump static asset version to v=9.
2026-10-02 15:41:16 +03:00
c0cf11a5a3 Admin: users page with search and full cascade delete (identity + progress + files) 2026-10-02 11:53:01 +03:00
b94538cb7e Defense: sync admin/student timers from server every 10s; toasts with ready reason; live eye counter 2026-10-02 01:21:32 +03:00
fba4e013e5 Publication per student: checkbox in lab column, partial state in eye, cursor on Variant 2026-10-02 00:33:16 +03:00
b97a0096ff Solutions zip: use real file/submission timestamps instead of epoch (fixes bogus years) 2026-09-29 18:31:19 +03:00
e35b0621db Grade comments: show live usage count and allow deleting unused templates 2026-09-29 15:56:00 +03:00
daaacb1d5f Admin group: counter = number of group students who submitted a solution 2026-09-28 17:35:10 +03:00
74c09aae53 Defense: keep assignment text for admins, hide it only from students 2026-09-28 17:30:11 +03:00
4e1e0d1488 Admin group: fix script loading (extra div), total submissions counter, label cleanup 2026-09-28 17:22:09 +03:00
d3f70b0a25 Refactor: bind admin forms via @ModelAttribute DTOs; detekt fully default 2026-09-27 23:13:29 +03:00
5e1a4f2459 Refactor: split ContentService and ProgressService; defaults tightened 2026-09-27 22:48:13 +03:00
d96369c7e3 Test: Testcontainers integration tests for distribution and content import 2026-09-27 22:22:54 +03:00
2e99fd926c Add ContentImporter tests; drop redundant elvis; document lint/test commands 2026-09-27 22:17:59 +03:00
a021bdb904 Lint: strict mode on; tune detekt thresholds; more decompositions 2026-09-27 22:15:00 +03:00