создал систему календарного учебного графика
This commit is contained in:
@@ -28,9 +28,10 @@
|
||||
|
||||
### Специальности (Specialties)
|
||||
|
||||
Учебные направления с кодом по ФГОС.
|
||||
Учебные направления с кодом по ФГОС. У одной специальности может быть несколько профилей обучения, например базовый профиль и профиль конкретной образовательной программы.
|
||||
|
||||
- Примеры: «Информационная безопасность» (10.03.01), «Программная инженерия» (09.03.04)
|
||||
- При создании специальности автоматически создаётся профиль `Без профиля`
|
||||
|
||||
### Формы обучения (Education Forms)
|
||||
|
||||
@@ -41,9 +42,10 @@
|
||||
|
||||
### Учебные группы (Student Groups)
|
||||
|
||||
- **Поля:** Название (уникальное), численность, форма обучения, кафедра, специальность, год начала обучения
|
||||
- **Поля:** Название, численность, форма обучения, кафедра, специальность, профиль обучения, год начала обучения
|
||||
- **Курс:** вычисляется относительно учебного года: `год начала учебного года - year_start_study + 1`
|
||||
- **Подгруппы:** Возможно деление группы на подгруппы (таблица `subgroups`)
|
||||
- **Календарь:** на каждый учебный год группе назначается конкретный календарный учебный график
|
||||
|
||||
### Аудитории (Classrooms)
|
||||
|
||||
@@ -74,8 +76,11 @@
|
||||
| Компонент | Назначение |
|
||||
|-----------|------------|
|
||||
| `academic_years` / `semesters` | Учебные годы и семестры. Неделя 1 считается от `semesters.start_date` |
|
||||
| `holidays` | Даты, когда занятия не проводятся и часы не списываются |
|
||||
| `academic_calendar_matrix` | Тип недели для курса и специальности: теория, сессия, каникулы, практика |
|
||||
| `specialty_profiles` | Профили обучения внутри специальности |
|
||||
| `academic_calendars` | Календарный учебный график профиля, формы обучения и учебного года |
|
||||
| `academic_calendar_activity_types` | Коды Excel-графика: `Т`, `Э`, `К`, `У`, `П`, `Пд`, `Н`, `Г`, `Д`, `ПА`, `С`, `*`, `=` |
|
||||
| `academic_calendar_days` | Дневная сетка по курсу и дате |
|
||||
| `student_group_calendar_assignments` | Назначение конкретного графика группе на учебный год |
|
||||
| `time_slots` | Настраиваемая сетка пар для тенанта |
|
||||
| `schedule_rules` | Лимит часов дисциплины в семестре |
|
||||
| `schedule_rule_groups` | Группы правила, включая потоковые лекции |
|
||||
@@ -84,12 +89,14 @@
|
||||
Генератор `ScheduleGeneratorService` рендерит расписание по запросу:
|
||||
1. Определяет семестр для каждой даты диапазона.
|
||||
2. Вычисляет номер недели и чётность.
|
||||
3. Проверяет праздники и матрицу учебного графика.
|
||||
4. Загружает правила группы или преподавателя.
|
||||
5. Симулирует уже проведённые занятия от `active_from_date`.
|
||||
6. Останавливает вывод правила, когда достигнут `total_academic_hours`.
|
||||
3. Находит назначенный группе календарный учебный график на учебный год даты.
|
||||
4. Определяет код активности по курсу группы и конкретной дате.
|
||||
5. Пропускает день, если код активности не разрешает обычные пары.
|
||||
6. Загружает правила группы или преподавателя.
|
||||
7. Симулирует уже проведённые занятия от `active_from_date`.
|
||||
8. Останавливает вывод правила, когда достигнут `total_academic_hours`.
|
||||
|
||||
Праздник считается пропуском: занятие не переносится и не списывает академические часы.
|
||||
Обычные пары генерируются только на коде `Т` (`allow_schedule = true`). Экзамены, каникулы, практики, нерабочие дни, праздники `*` и дни вне учебного года `=` считаются пропуском: занятие не переносится и не списывает академические часы. Если у группы нет назначения графика на учебный год, `GET /api/schedule` возвращает пустой список для этой группы без ошибки.
|
||||
|
||||
### Временны́е слоты
|
||||
|
||||
|
||||
Reference in New Issue
Block a user