написал обработку количества часов лекций лабораторных и практик по отдельности

This commit is contained in:
Zuev
2026-05-06 21:54:17 +03:00
parent 44cfe8ab6e
commit b222f3adac
17 changed files with 540 additions and 113 deletions

33
docs/SCHEDULE_TASKS.md Normal file
View File

@@ -0,0 +1,33 @@
# Задачи: динамическое расписание и календарный учебный график
Актуальная декомпозиция относится к модели, где календарный учебный график хранится дневной сеткой и назначается группе на учебный год.
## Выполнено
- [x] Переписана базовая схема `V1__init.sql` под полный сброс БД.
- [x] Добавлены специальности, профили обучения и связь группы с профилем.
- [x] Добавлены формы обучения календарного графика.
- [x] Добавлен справочник кодов активностей Excel-графика.
- [x] Добавлены календарные графики, дневная сетка и назначения графиков группам.
- [x] Обновлён `AcademicDateService`: активность дня определяется по назначенному группе графику.
- [x] Обновлён `ScheduleGeneratorService`: обычные пары генерируются только на разрешённых днях.
- [x] В `V1__init.sql` добавлены отдельные часы и недели начала для лекций, лабораторных и практик.
- [x] Добавлены API профилей, календарей, дневной сетки, кодов активностей и назначений группам.
- [x] Обновлены админские экраны специальностей, групп и расписания.
- [x] Добавлена документация `docs/ACADEMIC_CALENDAR.md`.
## Оставшиеся задачи
- [ ] Добавить интеграционные тесты генерации расписания для кодов `Т`, `Э`, `К`, `*`, `=`.
- [ ] Добавить проверку конфликтов преподавателей, аудиторий и групп при сохранении правил.
- [ ] Добавить модель связи пользователя-студента с учебной группой.
- [ ] Добавить импорт календарного графика из Excel, если он понадобится после ручного редактора.
## Проверочный сценарий
1. Полностью сбросить локальную БД.
2. Запустить приложение и применить `V1__init.sql`.
3. Создать профиль специальности.
4. Создать календарный график и заполнить дневную сетку.
5. Назначить график группе.
6. Проверить `GET /api/schedule` на дне теории и на днях, где пары запрещены.