From 1e4b4de0ec8f63c297338ecf4eb0e276216e3b3e Mon Sep 17 00:00:00 2001 From: Herculino Trotta Date: Fri, 11 Oct 2024 01:57:45 -0300 Subject: [PATCH] feat: add form for user settings --- app/apps/users/forms.py | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/app/apps/users/forms.py b/app/apps/users/forms.py index d0297cf..2cdd941 100644 --- a/app/apps/users/forms.py +++ b/app/apps/users/forms.py @@ -1,25 +1,18 @@ from crispy_forms.bootstrap import ( FormActions, - PrependedText, - Alert, ) from crispy_forms.helper import FormHelper -from crispy_forms.layout import Layout, Submit, Div, HTML +from crispy_forms.layout import Layout, Submit from django import forms -from django.contrib.auth import get_user_model from django.contrib.auth.forms import ( - # AuthenticationForm, UsernameField, - PasswordResetForm, - SetPasswordForm, - PasswordChangeForm, - UserCreationForm, AuthenticationForm, ) -from django.core.exceptions import ValidationError -from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ +from apps.common.widgets.crispy.submit import NoClassSubmit +from apps.users.models import UserSettings + class LoginForm(AuthenticationForm): username = UsernameField( @@ -50,3 +43,25 @@ class LoginForm(AuthenticationForm): "password", Submit("Submit", "Login"), ) + + +class UserSettingsForm(forms.ModelForm): + class Meta: + model = UserSettings + fields = ["language", "timezone"] + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.helper = FormHelper() + self.helper.form_tag = False + self.helper.form_method = "post" + self.helper.layout = Layout( + "language", + "timezone", + FormActions( + NoClassSubmit( + "submit", _("Save"), css_class="btn btn-outline-primary w-100" + ), + ), + )