]> vgcfreebox.myrthtech.pt Git - ue-cc-donkeysponsor.git/blob - core/forms.py
more content for webapp-due to commit blockage
[ue-cc-donkeysponsor.git] / 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
5
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")
12
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'}))
18
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',)
22
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']
28 if commit:
29 user.save()
30 # 2. Create and Save linked UserExtension with sketch data
31 UserExtension.objects.create(
32 user=user,
33 user_type=self.cleaned_data['user_type'],
34 gender=self.cleaned_data['gender'],
35 date_of_birth=self.cleaned_data['date_of_birth']
36 )
37 return user
38
39 # Form 2: Simple Login Form (Standard Django)
40 class SketchLoginForm(AuthenticationForm):
41 username = forms.EmailField(label="Email") # Overriding label for sketch consistency