Files

41 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Фаза 68. Классный руководитель
## Зависимости
- [Фаза 13](../03-staffing/13-management-tab.md)
- [Фаза 7](../02-people/07-people-in-school.md)
## Зачем
У класса появляется учитель-классный. Без него собраниям некого инициировать; игрок впервые
в этом срезе что-то решает.
## Задачи
- [x] У `SchoolClass` опциональный `classTeacherId` (или эквивалент); сейв в ростере
- [x] Назначить / снять — HTTP через мейлбокс школы; только хозяин; гость `403`
- [x] Кандидат — нанятый с должностью `Teacher`; иначе отказ с текстом, не молчание
- [x] Один учитель может быть классным у нескольких классов
- [x] UI в «Управлении»: список классов со слотом классного (выбор / снять)
- [x] Имя классного видно там, где уже показывают класс (карточка ученика / управление)
- [x] Строки через `t(...)`, обе локали
- [x] Пустой слот — школа живёт как сейчас; собраний ещё нет
## Тесты, без которых фаза не закрыта
- [x] Назначение учителя класса пишет id в ростер и переживает сейв / reload
- [x] Не-учитель и чужой id отклоняются
- [x] Гость не назначает (API)
- [x] Снятие очищает слот; класс без классного валиден
- [x] Два класса могут указать одного и того же учителя
## Критерий готовности
- В Управлении назначить классного 5А, открыть карточку ученика / список — имя видно; F5 / reload
сохраняет
- Отфильтрованные тесты проекта по Testing policy проходят
## Стоп
Не вызов к директору. Не проступки. Не собрания. Не новый `PositionDef`.