From 3d8e5ed4102a5c0084f5555cf67b67fc7b0f71e2 Mon Sep 17 00:00:00 2001 From: Victor Andersson Date: Tue, 11 Nov 2025 21:04:33 +0100 Subject: [PATCH] feat: allow editing user profile info via modal --- claims/forms.py | 36 +++++ claims/templates/claims/user_management.html | 98 +++++++++++-- claims/tests.py | 37 +++++ claims/views.py | 47 +++++-- locale/en/LC_MESSAGES/django.mo | Bin 17221 -> 17593 bytes locale/en/LC_MESSAGES/django.po | 139 +++++++++++-------- locale/sv/LC_MESSAGES/django.mo | Bin 2171 -> 2543 bytes locale/sv/LC_MESSAGES/django.po | 133 ++++++++++-------- 8 files changed, 352 insertions(+), 138 deletions(-) diff --git a/claims/forms.py b/claims/forms.py index 087f4c9..2d7f452 100644 --- a/claims/forms.py +++ b/claims/forms.py @@ -160,6 +160,42 @@ class UserPermissionForm(forms.Form): grant_change = forms.BooleanField(required=False, label=_("Får besluta utlägg")) grant_edit = forms.BooleanField(required=False, label=_("Får redigera utlägg")) grant_pay = forms.BooleanField(required=False, label=_("Får markera betalningar")) + first_name = forms.CharField( + max_length=150, + required=False, + label=_("Förnamn"), + widget=forms.TextInput(attrs={"class": INPUT_CLASSES}), + ) + last_name = forms.CharField( + max_length=150, + required=False, + label=_("Efternamn"), + widget=forms.TextInput(attrs={"class": INPUT_CLASSES}), + ) + email = forms.EmailField( + required=False, + label=_("E-post"), + widget=forms.EmailInput(attrs={"class": INPUT_CLASSES}), + ) + new_password1 = forms.CharField( + required=False, + label=_("Nytt lösenord"), + widget=forms.PasswordInput(attrs={"class": INPUT_CLASSES}), + ) + new_password2 = forms.CharField( + required=False, + label=_("Bekräfta nytt lösenord"), + widget=forms.PasswordInput(attrs={"class": INPUT_CLASSES}), + ) + + def clean(self): + cleaned = super().clean() + pwd1 = cleaned.get("new_password1") + pwd2 = cleaned.get("new_password2") + if pwd1 or pwd2: + if pwd1 != pwd2: + self.add_error("new_password2", _("Lösenorden matchar inte.")) + return cleaned class DeleteUserForm(forms.Form): diff --git a/claims/templates/claims/user_management.html b/claims/templates/claims/user_management.html index c26e6ff..b8755ec 100644 --- a/claims/templates/claims/user_management.html +++ b/claims/templates/claims/user_management.html @@ -111,17 +111,32 @@

{% trans "Behörigheter" %}

- {% trans "Admin/staff" %} - {% trans "Får se utlägg" %} - {% trans "Får besluta utlägg" %} - {% trans "Får redigera utlägg" %} - {% trans "Får markera betalningar" %} + {% if row.permission_flags.is_staff %} + {% trans "Admin/staff" %} + {% endif %} + {% if row.permission_flags.view %} + {% trans "Får se utlägg" %} + {% endif %} + {% if row.permission_flags.change %} + {% trans "Får besluta utlägg" %} + {% endif %} + {% if row.permission_flags.edit %} + {% trans "Får redigera utlägg" %} + {% endif %} + {% if row.permission_flags.pay %} + {% trans "Får markera betalningar" %} + {% endif %} + {% if not row.permission_flags.is_staff and not row.permission_flags.view and not row.permission_flags.change and not row.permission_flags.edit and not row.permission_flags.pay %} + {% trans "Inga behörigheter tilldelade" %} + {% endif %}
- + {% if can_change_users %} + + {% endif %}

{% trans "Ta bort konto" %}

@@ -155,8 +170,9 @@ {% block modals %} {{ block.super }} - {% for row in user_rows %} - {% with user=row.user form=row.permission_form %} + {% if can_change_users %} + {% for row in user_rows %} + {% with user=row.user form=row.permission_form %}