feat: add profile edit

Profile page at /profile with first name, last name, display name, telephone and mobile read from AD and shown with the username and e-mail. Only changed fields are written through the directory adapter in one transaction with the audit entry (field names only); numbers are accepted in any common notation and stored as +country code and digits; names are required. Plain-language errors per field, German text and tests; review findings logged in the plan.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FocPJ75XPma7TcuYEMy8zm
This commit is contained in:
Ebbe Baß
2026-10-19 09:03:24 +02:00
co-authored by Claude Sonnet 5.5
parent ae4b30ec22
commit 3fd8f27127
14 changed files with 1055 additions and 5 deletions
+67
View File
@@ -247,3 +247,70 @@ msgstr "Wenn Sie das waren, müssen Sie nichts tun. Wenn nicht, wenden Sie sich
msgid "This e-mail never contains your password."
msgstr "Diese E-Mail enthält niemals Ihr Passwort."
msgid "Profile"
msgstr "Profil"
msgid "First name"
msgstr "Vorname"
msgid "Last name"
msgstr "Nachname"
msgid "Display name"
msgstr "Anzeigename"
msgid "Telephone"
msgstr "Telefon"
msgid "Mobile"
msgstr "Mobil"
#, python-format
msgid "%(field)s is required."
msgstr "%(field)s ist erforderlich."
#, python-format
msgid "%(field)s must not contain line breaks or control characters."
msgstr "%(field)s darf keine Zeilenumbrüche oder Steuerzeichen enthalten."
#, python-format
msgid "%(field)s must not be longer than %(max)s characters."
msgstr "%(field)s darf nicht länger als %(max)s Zeichen sein."
#, python-format
msgid "%(field)s must be a number that starts with + and the country code, or with 0."
msgstr "%(field)s muss eine Nummer sein, die mit + und der Landesvorwahl oder mit 0 beginnt."
msgid "These details are stored in your account. Changes apply to every service that uses it."
msgstr "Diese Angaben sind in Ihrem Konto gespeichert. Änderungen gelten für jeden Dienst, der es verwendet."
msgid "Your changes were saved."
msgstr "Ihre Änderungen wurden gespeichert."
msgid "Nothing to change."
msgstr "Es gibt nichts zu ändern."
msgid "Your changes were not saved."
msgstr "Ihre Änderungen wurden nicht gespeichert."
msgid "User name"
msgstr "Benutzername"
msgid "E-mail address"
msgstr "E-Mail-Adresse"
msgid "For example +49 171 123456. A number that starts with 0 is read as German."
msgstr "Zum Beispiel +49 171 123456. Eine Nummer, die mit 0 beginnt, gilt als deutsche Nummer."
msgid "Save changes"
msgstr "Änderungen speichern"
msgid "A value was not accepted. Please check your entries."
msgstr "Ein Wert wurde nicht angenommen. Bitte prüfen Sie Ihre Eingaben."
msgid "Your details may have been changed, but the portal could not finish. Please open your profile and check them. If they are wrong, contact the administrator."
msgstr "Ihre Angaben wurden möglicherweise geändert, aber das Portal konnte nicht abschließen. Bitte öffnen Sie Ihr Profil und prüfen Sie sie. Wenn sie falsch sind, wenden Sie sich an die Administration."
msgid "Back to the profile"
msgstr "Zurück zum Profil"