Историю снова можно чинить. Правка завершённой партии проверяла состав теми же правилами, что и создание: участник обязан состоять в группе сейчас, фракция — быть доступной сейчас. Отключили дополнение — и партию, сыгранную на Тау, уже не исправить; удалили игрока из группы — и любая партия с ним отказывается сохраняться. Теперь то, что уже записано в партии, проходит всегда, а новые игроки и фракции по-прежнему берутся только из текущего состава группы. Занести в историю постороннего нельзя, а починить опечатку — можно. Создание партии не ослабло, на это есть отдельный тест.
Игрок получил кнопку «Редактировать». Формально править завершённую партию мог любой участник группы, но только через API: на странице партии кнопки не было, и на практике это делал лишь админ через админку. Теперь у блока «Результаты» есть «Редактировать», и правка идёт тем же перетаскиванием, что и завершение — раскладка восстанавливается из сохранённых мест (одинаковое место = ничья, выбывшие отдельным списком), рядом фракции, причина победы и комментарии. Сохранение отправляет версию партии, так что устаревшая правка отклоняется как раньше.
Два решения по ходу:
фракции вынесены отдельным блоком, а не встроены в PlaceEditor — он занят перетаскиванием, и селекты внутри него добавили бы риск на ровном месте;
в список фракций к набору группы добавляются те, что уже стоят в партии: иначе фракцию из отключённого дополнения нельзя было бы даже оставить как есть.
API не менялся — MatchUpdate уже принимал всё нужное, schema.d.ts не трогал.
Коммиты
6e11f8a Партия: правка истории и кнопка «Редактировать» у игрока
Проверки
pytest — 91 passed (было 87; 4 новых теста в tests/test_match_edit.py): правка после отключения дополнения, правка после удаления игрока из группы, отказ на постороннего игрока и на недоступную фракцию, неослабевшая проверка при создании
npm run build (tsc --noEmit + vite build) — зелёный
Ручной прогон в dev не делал — стенд был занят; экран правки стоит посмотреть глазами при ревью.
## Что сделано
**Историю снова можно чинить.** Правка завершённой партии проверяла состав теми же правилами, что и создание: участник обязан состоять в группе *сейчас*, фракция — быть доступной *сейчас*. Отключили дополнение — и партию, сыгранную на Тау, уже не исправить; удалили игрока из группы — и любая партия с ним отказывается сохраняться. Теперь то, что **уже записано в партии**, проходит всегда, а новые игроки и фракции по-прежнему берутся только из текущего состава группы. Занести в историю постороннего нельзя, а починить опечатку — можно. Создание партии не ослабло, на это есть отдельный тест.
**Игрок получил кнопку «Редактировать».** Формально править завершённую партию мог любой участник группы, но только через API: на странице партии кнопки не было, и на практике это делал лишь админ через админку. Теперь у блока «Результаты» есть «Редактировать», и правка идёт тем же перетаскиванием, что и завершение — раскладка восстанавливается из сохранённых мест (одинаковое место = ничья, выбывшие отдельным списком), рядом фракции, причина победы и комментарии. Сохранение отправляет версию партии, так что устаревшая правка отклоняется как раньше.
Два решения по ходу:
- фракции вынесены отдельным блоком, а не встроены в `PlaceEditor` — он занят перетаскиванием, и селекты внутри него добавили бы риск на ровном месте;
- в список фракций к набору группы добавляются те, что уже стоят в партии: иначе фракцию из отключённого дополнения нельзя было бы даже оставить как есть.
API не менялся — `MatchUpdate` уже принимал всё нужное, `schema.d.ts` не трогал.
## Коммиты
- `6e11f8a` Партия: правка истории и кнопка «Редактировать» у игрока
## Проверки
- `pytest` — 91 passed (было 87; 4 новых теста в `tests/test_match_edit.py`): правка после отключения дополнения, правка после удаления игрока из группы, отказ на постороннего игрока и на недоступную фракцию, неослабевшая проверка при создании
- `npm run build` (tsc --noEmit + vite build) — зелёный
Ручной прогон в dev не делал — стенд был занят; экран правки стоит посмотреть глазами при ревью.
## Отклонения от плана
Нет.
Closes #29
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01BoiJK9ux8peeyjLb8TYjFf
Правка завершённой партии проверяла состав теми же правилами, что и создание:
участник обязан состоять в группе сейчас, фракция — быть доступной сейчас. После
отключения дополнения партию, сыгранную на Тау, было уже не исправить, а после
удаления игрока из группы — любую партию с ним. Теперь то, что уже записано в
партии, проходит всегда, а новые игроки и фракции по-прежнему берутся только из
текущего состава: чинить историю можно, занести в неё постороннего — нет.
Создание партии не ослабло.
Править завершённую партию умел любой участник группы, но только через API —
кнопки не было, и на практике это мог сделать лишь админ через админку. Теперь у
блока «Результаты» есть «Редактировать», и правка идёт тем же перетаскиванием,
что и завершение: раскладка восстанавливается из сохранённых мест (одинаковое
место — ничья, выбывшие отдельно), рядом — фракции, причина победы и комментарии.
Сохранение шлёт версию партии, так что устаревшая правка отклоняется как раньше.
Фракции вынесены отдельным блоком, а не в PlaceEditor: он занят перетаскиванием,
и селекты внутри него — лишний риск. В списке доступных фракций к набору группы
добавляются те, что уже стоят в партии, — иначе фракцию из отключённого
дополнения нельзя было бы даже оставить как есть.
#29
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BoiJK9ux8peeyjLb8TYjFf
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что сделано
Историю снова можно чинить. Правка завершённой партии проверяла состав теми же правилами, что и создание: участник обязан состоять в группе сейчас, фракция — быть доступной сейчас. Отключили дополнение — и партию, сыгранную на Тау, уже не исправить; удалили игрока из группы — и любая партия с ним отказывается сохраняться. Теперь то, что уже записано в партии, проходит всегда, а новые игроки и фракции по-прежнему берутся только из текущего состава группы. Занести в историю постороннего нельзя, а починить опечатку — можно. Создание партии не ослабло, на это есть отдельный тест.
Игрок получил кнопку «Редактировать». Формально править завершённую партию мог любой участник группы, но только через API: на странице партии кнопки не было, и на практике это делал лишь админ через админку. Теперь у блока «Результаты» есть «Редактировать», и правка идёт тем же перетаскиванием, что и завершение — раскладка восстанавливается из сохранённых мест (одинаковое место = ничья, выбывшие отдельным списком), рядом фракции, причина победы и комментарии. Сохранение отправляет версию партии, так что устаревшая правка отклоняется как раньше.
Два решения по ходу:
PlaceEditor— он занят перетаскиванием, и селекты внутри него добавили бы риск на ровном месте;API не менялся —
MatchUpdateуже принимал всё нужное,schema.d.tsне трогал.Коммиты
6e11f8aПартия: правка истории и кнопка «Редактировать» у игрокаПроверки
pytest— 91 passed (было 87; 4 новых теста вtests/test_match_edit.py): правка после отключения дополнения, правка после удаления игрока из группы, отказ на постороннего игрока и на недоступную фракцию, неослабевшая проверка при созданииnpm run build(tsc --noEmit + vite build) — зелёныйРучной прогон в dev не делал — стенд был занят; экран правки стоит посмотреть глазами при ревью.
Отклонения от плана
Нет.
Closes #29
🤖 Generated with Claude Code
https://claude.ai/code/session_01BoiJK9ux8peeyjLb8TYjFf