feat: password change + split account/household settings UI
- New /change-password route: validates current password, enforces min 4 chars, requires confirmation match - update_password() helper in models.py - Dashboard UI split into two collapsible sections: 👤 Account Settings (password, ntfy, delete account) 🏠 Household Settings (admin only: public link, timezone, delete household) - 14 new i18n keys with fr/de translations - Restored accidentally dropped 'Delete My Account' key
This commit is contained in:
@@ -166,14 +166,6 @@ TRANSLATIONS: dict[str, dict[str, str]] = {
|
||||
"fr": "⚙ Paramètres du compte",
|
||||
"de": "⚙ Kontoeinstellungen",
|
||||
},
|
||||
"Delete My Account": {
|
||||
"fr": "Supprimer mon compte",
|
||||
"de": "Mein Konto löschen",
|
||||
},
|
||||
"Enter your password to confirm": {
|
||||
"fr": "Entrez votre mot de passe pour confirmer",
|
||||
"de": "Geben Sie Ihr Passwort zur Bestätigung ein",
|
||||
},
|
||||
"Delete Household": {
|
||||
"fr": "Supprimer le foyer",
|
||||
"de": "Haushalt löschen",
|
||||
@@ -466,6 +458,60 @@ TRANSLATIONS: dict[str, dict[str, str]] = {
|
||||
"fr": "Copié !",
|
||||
"de": "Kopiert!",
|
||||
},
|
||||
|
||||
# ── Password change ──
|
||||
"👤 Account Settings": {
|
||||
"fr": "👤 Paramètres du compte",
|
||||
"de": "👤 Kontoeinstellungen",
|
||||
},
|
||||
"🏠 Household Settings": {
|
||||
"fr": "🏠 Paramètres du foyer",
|
||||
"de": "🏠 Haushaltseinstellungen",
|
||||
},
|
||||
"Change Password": {
|
||||
"fr": "Changer le mot de passe",
|
||||
"de": "Passwort ändern",
|
||||
},
|
||||
"Current password": {
|
||||
"fr": "Mot de passe actuel",
|
||||
"de": "Aktuelles Passwort",
|
||||
},
|
||||
"New password": {
|
||||
"fr": "Nouveau mot de passe",
|
||||
"de": "Neues Passwort",
|
||||
},
|
||||
"Confirm new password": {
|
||||
"fr": "Confirmer le nouveau mot de passe",
|
||||
"de": "Neues Passwort bestätigen",
|
||||
},
|
||||
"Password changed successfully.": {
|
||||
"fr": "Mot de passe changé avec succès.",
|
||||
"de": "Passwort erfolgreich geändert.",
|
||||
},
|
||||
"Current password is incorrect.": {
|
||||
"fr": "Le mot de passe actuel est incorrect.",
|
||||
"de": "Das aktuelle Passwort ist falsch.",
|
||||
},
|
||||
"New password must be at least 4 characters.": {
|
||||
"fr": "Le nouveau mot de passe doit comporter au moins 4 caractères.",
|
||||
"de": "Das neue Passwort muss mindestens 4 Zeichen lang sein.",
|
||||
},
|
||||
"New passwords do not match.": {
|
||||
"fr": "Les nouveaux mots de passe ne correspondent pas.",
|
||||
"de": "Die neuen Passwörter stimmen nicht überein.",
|
||||
},
|
||||
"This will permanently delete your account and all your responses.": {
|
||||
"fr": "Cela supprimera définitivement votre compte et toutes vos réponses.",
|
||||
"de": "Dies löscht Ihr Konto und alle Ihre Antworten dauerhaft.",
|
||||
},
|
||||
"Delete My Account": {
|
||||
"fr": "Supprimer mon compte",
|
||||
"de": "Mein Konto löschen",
|
||||
},
|
||||
"Enter your password to confirm": {
|
||||
"fr": "Entrez votre mot de passe pour confirmer",
|
||||
"de": "Geben Sie Ihr Passwort zur Bestätigung ein",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user