2.8 KiB
2.8 KiB
Фаза 8. Просмотр людей
Зависимости
Зачем
Игрок видит, кто учится и работает в его школе, не теряя из виду часы, карту и события.
Задачи
GET /api/schools/{id}/people: фильтры (роль, параллель, должность, пол, диапазон возраста), сортировка, страница. Читает опубликованный снимок ростера и не трогает воркер — инвариант «только поток школы касается школы» остаётся целымGET /api/schools/{id}/people/{personId}: карточка через мейлбокс воркера сTaskCompletionSource, потому что нужды живые- Панель «Люди» в оболочке менеджера: фильтры, сортируемые колонки, пейджер. Сделана
вкладкой рядом с картой, а не нижним рядом — заодно с экрана ушла пустая панель
событий из фазы 1; см.
docs/design/02-people/people.md - Строка списка — только лёгкие поля: ФИО, роль, класс или должность, возраст, пол
- Карточка: тело, навыки, черты, нужды, семья со ссылками на родных — по ссылке открывается карточка родственника
- Строки и подписи через
t(...), как всё остальное docs/protocol.mdпополняется в том же коммите, что и обработчики- Тесты API: фильтр по роли и параллели, сортировка, границы страниц, неизвестная школа, неизвестный человек
Критерий готовности
- Открыть школу, отфильтровать учеников пятой параллели, отсортировать по фамилии
- Открыть карточку ученика, увидеть родителей, перейти по ссылке к матери
- Тысяча строк не роняет и не подвешивает панель
dotnet testи клиентскиеnpm test/buildпроходят
Стоп
Не редактировать людей. Не нанимать и не увольнять руками. Не показывать характеристики в списке — только в карточке.