feat: langue/thème/déconnexion dans Options, langue persistée en BDD #30

Merged
pickle-dev-fr merged 4 commits from feat/17 into main 2026-04-10 09:00:28 +00:00

Summary

Backend

  • Ajout enum Language (FR/EN) et champ language dans UserSettings
  • Migration Alembic avec création explicite du type enum PostgreSQL userlanguage
  • PATCH /auth/settings accepte currency et language en champs optionnels

Frontend

  • CurrencyContext étend les settings : charge language depuis l'API au login, appelle i18n.changeLanguage automatiquement
  • SettingsPage : sélecteur de langue (sauvegarde en BDD), toggle thème, bouton déconnexion
  • PrivateHeader vidé — langue/thème/déco disparaissent du header de l'app
  • Pages publiques (login/register) conservent PublicHeader avec langue + thème via LanguageSelector/ThemeSelector standalone

Closes #17

## Summary **Backend** - Ajout enum `Language` (FR/EN) et champ `language` dans `UserSettings` - Migration Alembic avec création explicite du type enum PostgreSQL `userlanguage` - `PATCH /auth/settings` accepte `currency` et `language` en champs optionnels **Frontend** - `CurrencyContext` étend les settings : charge `language` depuis l'API au login, appelle `i18n.changeLanguage` automatiquement - `SettingsPage` : sélecteur de langue (sauvegarde en BDD), toggle thème, bouton déconnexion - `PrivateHeader` vidé — langue/thème/déco disparaissent du header de l'app - Pages publiques (login/register) conservent `PublicHeader` avec langue + thème via `LanguageSelector`/`ThemeSelector` standalone Closes #17
Backend:
- Enum Language (FR/EN) + champ language dans UserSettings, migration Alembic
- PATCH /auth/settings accepte currency et language en partial

Frontend:
- CurrencyContext étend aussi la langue : charge depuis l'API au login, appelle i18n.changeLanguage
- SettingsPage : langue, thème et bouton déconnexion déplacés ici
- PrivateHeader vidé (langue/thème/déconnexion n'apparaissent plus dans l'app)

Closes #17

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- SettingsPage : sections avec cartes (Apparence, Mot de passe, Déconnexion, Danger)
  langue/thème/devise alignés en tableau key/value dans la même card
- RegisterPage : sauvegarde la langue i18n active après création du compte
  pour éviter que le CurrencyContext la réinitialise à FR au login

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Enum Theme (DARK/LIGHT) + champ theme dans UserSettings, migration Alembic
- CurrencyContext charge et applique le thème au login (data-theme + localStorage)
- SettingsPage : toggle thème piloté par le contexte (sauvegarde en BDD)
- RegisterPage : thème courant (localStorage) sauvegardé à l'inscription

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pickle-dev-fr deleted branch feat/17 2026-04-10 09:00:28 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pickle-dev-fr/FamilyBudget!30
No description provided.