Поправил графики
This commit is contained in:
@@ -157,6 +157,14 @@ Bearer-токен проверяется на backend. Frontend-скрытие
|
||||
При создании и изменении backend всегда формирует его из кода специальности, названия
|
||||
профиля, формы обучения и учебного года. Переданное клиентом значение `title` игнорируется.
|
||||
|
||||
Новый календарный график сохраняется вместе с начальной сеткой одной транзакцией. Для каждого
|
||||
курса создаётся период `Т` от первой до последней даты учебного года включительно. Таким образом,
|
||||
дни обычных занятий доступны генератору сразу, а пользователь редактирует только исключения:
|
||||
сессию, каникулы, практику и другие активности. Редактирование реквизитов уже существующего
|
||||
графика не сбрасывает его периоды. Миграция `V2__backfill_default_theory_periods.sql` применяет
|
||||
такое заполнение к ранее созданным графикам только при полном отсутствии периодов; частично или
|
||||
полностью настроенные сетки она не изменяет.
|
||||
|
||||
Учебные годы и семестры изменяются через транзакционный `AcademicPeriodService`. Границы
|
||||
считаются включительными: разные учебные годы не могут иметь общую дату, а семестры не
|
||||
могут пересекаться внутри одного года. Семестр целиком лежит в границах своего учебного
|
||||
@@ -216,9 +224,13 @@ constraint. При чтении API разворачивает периоды о
|
||||
замен полный список групп не загружается.
|
||||
|
||||
Отчёты workload и свободные аудитории не являются интерактивным поиском и используют
|
||||
отдельный `searchForAggregation`. Он обходит все активные группы разрешённого scope без
|
||||
лимита 50, но переиспользует общую проверку диапазона, снимок точечных изменений, фильтрацию
|
||||
и дедупликацию. Поэтому tenant с 51 или 100 группами получает полный агрегат, а защита
|
||||
отдельный `searchForAggregation`. Он обходит все активные группы без лимита 50, но
|
||||
переиспользует общую проверку диапазона, снимок точечных изменений, фильтрацию и
|
||||
дедупликацию. Кафедральный scope применяется после генерации и точечных изменений по
|
||||
любой действующей основной или дополнительной связи преподавателя с кафедрой на дату занятия,
|
||||
а не по кафедре учебной группы.
|
||||
Поэтому межкафедральные занятия входят в нагрузку преподавателя его кафедры. Tenant с 51
|
||||
или 100 группами получает полный агрегат, а защита
|
||||
широкого `/api/schedule/search` остаётся прежней.
|
||||
|
||||
Лабораторные работы могут делиться на подгруппы через `schedule_rule_slot_subgroups`. Если подгруппы выбраны, занятие выводится только для родительских групп этих подгрупп, а лимит лабораторных часов списывается отдельно по каждой подгруппе. Если лабораторная проводится у нескольких групп одновременно, один слот может содержать разные подгруппы разных групп. Лекции и практики не делятся на подгруппы.
|
||||
|
||||
Reference in New Issue
Block a user