# FamilyDashboard admin quiz + calendar polish

Session learning for FamilyDashboard tasks that combine quiz rewards, admin settings, and calendar UI.

## Quiz rewards and settings
- Prefer AppSetting keys for parent-adjustable global coin values rather than hard-coding amounts in quiz services.
- Useful keys:
  - `language_quiz_coin_value`
  - `math_quiz_coin_value`
- Public read endpoint should include non-sensitive display values so widgets can show the current reward badge.
- Award coins idempotently by quiz attempt idempotency key; never alter old `CoinTransaction` rows when a reward value changes.
- Daily math can follow the language quiz pattern: stable assignment per child/date, separate attempt table, and coin booking only on first correct answer.

## Admin layout
- When task-template rows include weekday toggles plus Save/Disable/Delete buttons, put row actions on their own full-width line (`grid-column: 1 / -1`) to avoid iPad overlap.
- Keep quiz level controls and coin reward settings together under `Lernen / Quiz`.

## Calendar event editing
- Informational calendar events should be editable from the clicked day dialog: title, description, icon, and date.
- Delete should be soft (`active=false`) unless the user explicitly asks for destructive deletion.
- Drag/drop can be implemented without a new UI library by using native HTML drag events: set `dataTransfer` to the event id on the event chip, allow drop on day cells, and PATCH the event date.

## Verification
- Extend calendar CRUD tests to cover title/date update before delete.
- Extend quiz/settings tests to cover public coin value exposure.
- Run frontend build, backend tests, health, frontend HEAD, and Playwright before commit/push.