feat: share training blocks across coaches - #158
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6c29f9a371
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| render partial: "games/training_plan_library", locals: { | ||
| blocks: TrainingBlock.where(user_id: owner_ids).ordered, | ||
| blocks: TrainingBlock.available_for(owner_ids).ordered, |
There was a problem hiding this comment.
Preserve unshared plan blocks during library reload
When editing a game whose plan contains a formerly shared block from an unselected coach, the initial page includes it through planned_training_block_ids, but changing either coach triggers reloadLibrary, which sends the checked block IDs and replaces the library HTML. This query ignores those IDs, so the block disappears and the next save silently removes it from the plan. The fragment needs an authorized way to include blocks already attached to the edited game, rather than trusting arbitrary submitted IDs.
Useful? React with 👍 / 👎.
Общий блок GetCourt виден любому организатору: галка в форме игры и в библиотеке отправляет блок в общие, и он появляется в конструкторе даже когда тренер не выбран. Блоки уже собранного плана остаются в списке, даже если их убрали из общих: иначе правка игры молча теряла бы часть занятия. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Смена тренера перезагружает библиотеку, и блок из уже собранного плана пропадал из списка, а следующее сохранение молча выкидывало его из плана. Фрагмент берёт план из самой игры и только если её можно редактировать: присланным id верить нельзя. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
6c29f9a to
5d8837e
Compare
Общий блок GetCourt виден любому организатору: галка в форме игры и в библиотеке отправляет блок в общие, и он появляется в конструкторе даже когда тренер не выбран.
Блоки уже собранного плана остаются в списке, даже если их убрали из общих: иначе правка игры молча теряла бы часть занятия.