Покрывает ровно тот сценарий, который выглядел как баг на скриншоте из
ManageRequestsScreen (один и тот же человек дважды на одном шаге) —
подтверждает, что текущий код (CollapseByExecutorEmail) схлопывает такую
пару в одну строку без предупреждения.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Вместо удаления совпавшей строки CompanyDirectors — обе строки (директор
компании и Директор Tansu) остаются в результате, это два разных пункта
согласования, даже если физически один человек. Строка DirectorTansu,
чей email совпал с одним из CompanyDirectors, не участвует в обычном
схлопывании по email (CollapseByExecutorEmail) — та восприняла бы это как
конфликт PositionCode одного согласующего. Вместо этого её OrderNo явно
переставляется на «сразу после блока CompanyDirectors» (максимальный
OrderNo блока + 1), так что она идёт последовательно, а не параллельно
остальным директорам компаний.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Канву SharePoint мы и раньше разжимали (тот же :global хак + supportsFullBleed
в манифесте), но содержимое упиралось в max-width: 1080px у .content и
центрировалось — визуально это читалось как «не открывается на всю ширину».
Переношу раскладку портала (RequestPortal.module.scss):
- корень .approvalAdmin — width: 100%, padding: 0;
- .shell больше не карточка: без рамки, тени, скруглений и overflow: hidden
(последний ломает sticky), align-items: flex-start, min-height: 78vh;
- .side — заливка $navy-800 на колонке (align-self: stretch), сам Sidebar
внутри sticky на 100vh: градиент не плывёт от высоты соседа, и под рейлом
на длинных таблицах нет белого провала, если sticky не включился;
- .content — сняты max-width и margin: auto, остались только отступы;
- мобильный брейкпоинт обновлён под новую схему: десктопные правила рейла
снимаются явно, иначе sticky+100vh спорил бы с position: fixed, который
ui-kit ставит drawer'у, при равной специфичности.
Разметка AdminApp.tsx не менялась — структура уже совпадала с портальной.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---------
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/17
Канву SharePoint мы и раньше разжимали (тот же :global хак + supportsFullBleed
в манифесте), но содержимое упиралось в max-width: 1080px у .content и
центрировалось — визуально это читалось как «не открывается на всю ширину».
Переношу раскладку портала (RequestPortal.module.scss):
- корень .approvalAdmin — width: 100%, padding: 0;
- .shell больше не карточка: без рамки, тени, скруглений и overflow: hidden
(последний ломает sticky), align-items: flex-start, min-height: 78vh;
- .side — заливка $navy-800 на колонке (align-self: stretch), сам Sidebar
внутри sticky на 100vh: градиент не плывёт от высоты соседа, и под рейлом
на длинных таблицах нет белого провала, если sticky не включился;
- .content — сняты max-width и margin: auto, остались только отступы;
- мобильный брейкпоинт обновлён под новую схему: десктопные правила рейла
снимаются явно, иначе sticky+100vh спорил бы с position: fixed, который
ui-kit ставит drawer'у, при равной специфичности.
Разметка AdminApp.tsx не менялась — структура уже совпадала с портальной.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Правила из frontend/.gitignore перенесены в корневой .gitignore,
дублирующий файл удалён. README дополнен описанием SPFx frontend
(ApprovalAdmin), который ранее был ошибочно указан как отсутствующий.
4-слойная архитектура (Api/Application/Domain/Infrastructure) на .NET 10
с MediatR и EF Core + PostgreSQL, без бизнес-логики. Добавлены
docker-compose, .env.example и README для локального запуска.