Free and open source ticket system written in python
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 5edd527aaba4e33b526f04f58d0db2b8a4ef278e 68 lines 2.1 kB view raw
1from typing import Any 2from django import forms 3from django.conf import settings 4from django.utils.translation import gettext_lazy as _ 5from datetime import datetime 6 7class FblAuthForm(forms.Form): 8 badge_number = forms.CharField(required=True) 9 dob = forms.CharField(required=True) 10 11 def clean(self) -> dict[str, Any]: 12 cleaned_data = super(FblAuthForm, self).clean() 13 badge_number = cleaned_data.get("badge_number") 14 dob = cleaned_data.get("dob") 15 16 if not badge_number: 17 raise forms.ValidationError( 18 _("Badge number is required") 19 ) 20 21 try: 22 int(badge_number) 23 except ValueError: 24 raise forms.ValidationError( 25 _("Badge number must be a number") 26 ) 27 28 if not dob: 29 raise forms.ValidationError( 30 _("Date of birth is required") 31 ) 32 try: 33 dob = datetime.strptime(dob, "%d/%m/%Y").strftime("%Y-%m-%d") 34 except ValueError: 35 raise forms.ValidationError( 36 _("Date of birth must be in the format DD/MM/YYYY") 37 ) 38 cleaned_data["dob"] = dob 39 40 return cleaned_data 41 42class FblAuthCodeForm(FblAuthForm): 43 validation_code = forms.CharField(required=True) 44 45 def clean(self) -> dict[str, Any]: 46 cleaned_data = super(FblAuthCodeForm, self).clean() 47 validation_code = cleaned_data.get("validation_code") 48 49 if not validation_code: 50 raise forms.ValidationError( 51 _("The validation code is required. Please check your emails.") 52 ) 53 54 return cleaned_data 55 56class RegistrationCompletionForm(forms.Form): 57 email = forms.EmailField(required=True) 58 59 def clean(self) -> dict[str, Any]: 60 cleaned_data = super(RegistrationCompletionForm, self).clean() 61 email = cleaned_data.get("email") 62 63 if not email: 64 raise forms.ValidationError( 65 _("A Mail is required for notifications.") 66 ) 67 68 return cleaned_data