38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
from django import forms
|
|
from django.contrib.auth.forms import BaseUserCreationForm, SetPasswordMixin
|
|
from django.contrib.auth.models import User
|
|
from django.forms import EmailField
|
|
from django.utils.text import gettext_lazy as _
|
|
|
|
from web.mixins import StylingMixin
|
|
|
|
|
|
class RegisterForm(StylingMixin, BaseUserCreationForm, SetPasswordMixin):
|
|
password1, password2 = SetPasswordMixin.create_password_fields()
|
|
styled_fields = ['email', 'first_name', 'last_name', 'password1', 'password2']
|
|
placeholder_for_field = {
|
|
'email': _('pablo@shoppy.com'),
|
|
'first_name': _('Pablo'),
|
|
'last_name': _('Moreno'),
|
|
'password1': '********',
|
|
'password2': '********',
|
|
}
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
for field_name in self.fields.keys():
|
|
self.fields[field_name].required = True
|
|
self.fields[field_name].widget.attrs.update(
|
|
{
|
|
'class': 'my-2 bg-gray-50 border border-gray-300 text-gray-900 sm:text-sm rounded-lg '
|
|
'focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 '
|
|
'dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 '
|
|
'dark:focus:border-primary-500'
|
|
}
|
|
)
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = ('email', 'first_name', 'last_name')
|
|
field_classes = {'email': EmailField, 'first_name': forms.CharField, 'last_name': forms.CharField}
|