]>
vgcfreebox.myrthtech.pt Git - ue-cc-donkeysponsor.git/blob - core/forms.py
1 from django
import forms
2 from django
.contrib
.auth
.models
import User
3 from django
.contrib
.auth
.forms
import UserCreationForm
, AuthenticationForm
4 from .models
import UserExtension
6 # Form 1: Secure Registration
7 # Combines standard Django User creation with sketch fields
8 class UnifiedRegisterForm(UserCreationForm
):
9 # Required standard User fields as per sketch
10 email
= forms
.EmailField(required
=True)
11 first_name
= forms
.CharField(required
=True, label
="* Name")
13 # Required UserExtension fields from sketch
14 user_type
= forms
.ChoiceField(choices
=UserExtension
.USER_TYPE_CHOICES
, label
="* TIPO")
15 gender
= forms
.CharField(required
=True, label
="* SEXO")
16 # DateField with HTML5 widget for better UI/Security
17 date_of_birth
= forms
.DateField(required
=True, label
="* DATA DE NASC.", widget
=forms
.DateInput(attrs
={'type': 'date'}
))
19 class Meta(UserCreationForm
.Meta
):
20 # We must manually list the fields we want to extend beyond standard UserCreationForm
21 fields
= UserCreationForm
.Meta
.fields
+ ('email', 'first_name', 'user_type', 'gender', 'date_of_birth',)
23 def save(self
, commit
=True):
24 # 1. Save standard User object
25 user
= super().save(commit
=False)
26 user
.email
= self
.cleaned_data
['email']
27 user
.first_name
= self
.cleaned_data
['first_name']
30 # 2. Create and Save linked UserExtension with sketch data
31 UserExtension
.objects
.create(
33 user_type
=self
.cleaned_data
['user_type'],
34 gender
=self
.cleaned_data
['gender'],
35 date_of_birth
=self
.cleaned_data
['date_of_birth']
39 # Form 2: Simple Login Form (Standard Django)
40 class SketchLoginForm(AuthenticationForm
):
41 username
= forms
.EmailField(label
="Email") # Overriding label for sketch consistency