Skip to content

feat(involvement): manually override computed perks#985

Merged
japsu merged 3 commits into
mainfrom
feat/involvement-perks-override
Jun 16, 2026
Merged

feat(involvement): manually override computed perks#985
japsu merged 3 commits into
mainfrom
feat/involvement-perks-override

Conversation

@japsu

@japsu japsu commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Let an Involvement admin override individual perks (dimension values and
annotation values) on a person's COMBINED_PERKS involvement, and track which
perks are overridden via a technical manual-perks-override dimension whose
values name the overridden perks (d-<dimension> / a-<annotation>).

Override preservation is implemented once in Involvement.for_combined_perks
so event-specific Emperkelators need not be aware of it: overridden perks keep
their manual value while the rest are recomputed. Overriding is logged to the
event log (involvement.perks.overridden).

The new PerksForm is a self-contained client form (one value control plus an
Override checkbox per perk, single save button) rather than a patch into
SchemaForm. Unticking a perk's Override recomputes it on save.

Also make SchemaFormInput a shared (server-renderable) component again by
splitting the pattern-validation custom-validity logic into a small client-only
PatternTextInput, used only for fields that set patternDescription.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

japsu and others added 2 commits June 16, 2026 20:39
Let an Involvement admin override individual perks (dimension values and
annotation values) on a person's COMBINED_PERKS involvement, and track which
perks are overridden via a technical `manual-perks-override` dimension whose
values name the overridden perks (`d-<dimension>` / `a-<annotation>`).

Override preservation is implemented once in `Involvement.for_combined_perks`
so event-specific Emperkelators need not be aware of it: overridden perks keep
their manual value while the rest are recomputed. Overriding is logged to the
event log (`involvement.perks.overridden`).

The new `PerksForm` is a self-contained client form (one value control plus an
Override checkbox per perk, single save button) rather than a patch into
SchemaForm. Unticking a perk's Override recomputes it on save.

Also make SchemaFormInput a shared (server-renderable) component again by
splitting the pattern-validation custom-validity logic into a small client-only
PatternTextInput, used only for fields that set patternDescription.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@japsu japsu force-pushed the feat/involvement-perks-override branch from 9af9dea to 8c46e2c Compare June 16, 2026 17:39
@japsu japsu merged commit a3bcf79 into main Jun 16, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant