from django import forms from .models import CustomUser class CustomUserCreationForm(forms.ModelForm): password = forms.CharField(widget=forms.PasswordInput) birth_date = forms.DateField(input_formats=['%d.%m.%Y', '%Y-%m-%d'], widget=forms.DateInput(format='%d.%m.%Y', attrs={'type': 'date'})) class Meta: model = CustomUser fields = ('username', 'first_name', 'last_name', 'email', 'birth_date', 'player_number', 'password') class CustomUserChangeForm(forms.ModelForm): birth_date = forms.DateField(input_formats=['%d.%m.%Y', '%Y-%m-%d'], widget=forms.DateInput(format='%d.%m.%Y', attrs={'type': 'date'})) class Meta: model = CustomUser fields = ('username', 'first_name', 'last_name', 'email', 'birth_date', 'player_number', 'team') class PlayerCreationForm(forms.ModelForm): parent1_search = forms.CharField(label="Search Parent 1 by Username/Email", required=False) parent1_new = forms.EmailField(label="Or create new Parent 1 with Email", required=False) parent2_search = forms.CharField(label="Search Parent 2 by Username/Email", required=False) parent2_new = forms.EmailField(label="Or create new Parent 2 with Email", required=False) birth_date = forms.DateField(input_formats=['%d.%m.%Y', '%Y-%m-%d'], widget=forms.DateInput(format='%d.%m.%Y', attrs={'type': 'date'})) class Meta: model = CustomUser fields = ('username', 'first_name', 'last_name', 'email', 'birth_date', 'player_number', 'team') class PlayerVerificationForm(forms.Form): password = forms.CharField(widget=forms.PasswordInput, label="Passwort") password_confirm = forms.CharField(widget=forms.PasswordInput, label="Passwort bestätigen") def clean(self): cleaned_data = super().clean() if cleaned_data.get('password') != cleaned_data.get('password_confirm'): raise forms.ValidationError("Die Passwörter stimmen nicht überein.") return cleaned_data class ParentVerificationForm(PlayerVerificationForm): username = forms.CharField(max_length=150, label="Benutzername") def clean_username(self): username = self.cleaned_data.get('username') if CustomUser.objects.filter(username=username).exists(): raise forms.ValidationError("Dieser Benutzername ist bereits vergeben.") return username