feature: add account-linked theme preference (/me/theme/) #20

Merged
Gilles merged 1 commit from feat/theme-preference into master 2026-10-26 15:49:34 +00:00
Owner

Closes #19

Lets a user choose one of three visual identities for the frontend, synced across devices via a new UserPreferences row rather than left to browser-local storage.

  • New UserPreferences model (one-to-one with the user), theme field with 3 choices, default editorial-eleve
  • GET /me/ returns the current theme (falls back to the default when no preference row exists yet)
  • PUT /me/theme/ saves the choice, rejects anything outside the 3 allowed slugs

181/181 tests, pylint 10/10, bandit 0, makemigrations --check clean. Verified end to end against a real running dev server (login, GET/PUT, invalid-choice rejection), not just the test suite.

🤖 Generated with Claude Code

https://claude.ai/code/session_014HiJrn6J6vhyFfC2qyY4uh

Closes #19 Lets a user choose one of three visual identities for the frontend, synced across devices via a new `UserPreferences` row rather than left to browser-local storage. - New `UserPreferences` model (one-to-one with the user), `theme` field with 3 choices, default `editorial-eleve` - `GET /me/` returns the current theme (falls back to the default when no preference row exists yet) - `PUT /me/theme/` saves the choice, rejects anything outside the 3 allowed slugs 181/181 tests, pylint 10/10, bandit 0, `makemigrations --check` clean. Verified end to end against a real running dev server (login, GET/PUT, invalid-choice rejection), not just the test suite. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_014HiJrn6J6vhyFfC2qyY4uh
feat: add account-linked theme preference (/me/theme/)
All checks were successful
ci / test (pull_request) Successful in 3m12s
ci / e2e (pull_request) Has been skipped
ci / docker (pull_request) Has been skipped
ci / deploy (pull_request) Has been skipped
7382e57b79
Lets a user choose one of three visual identities for the frontend,
synced across devices via a new UserPreferences row rather than
left to browser-local storage.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014HiJrn6J6vhyFfC2qyY4uh
Author
Owner
<!-- argus-link-bot:argus/backend --> 📊 [Rapports Argus pour cette PR](https://reports.stationmyr.net/argus/backend/pr/20)
Gilles merged commit 516111e524 into master 2026-10-26 15:49:34 +00:00
Gilles deleted branch feat/theme-preference 2026-10-26 15:49:35 +00:00
Sign in to join this conversation.
No description provided.