from django import forms from config.views import getConfig from utente.models import Utente from amministratore.models import Amministratore class formUtente(forms.Form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['codicefiscale'] = forms.CharField(required=True) self.fields['nome'] = forms.CharField(required=True) self.fields['datanascita'] = forms.DateField(required=False) #,input_formats=['%d/%m/%Y',]) self.fields['luogonascita'] = forms.CharField(required=False) self.fields['mail'] = forms.CharField(required=False) self.fields['cancellautente'] = forms.BooleanField(required=False) self.fields['pin'] = forms.CharField(required=True) self.fields['forzanuovapassword'] = forms.BooleanField(required=False) self.fields['cambiopassword'] = forms.BooleanField(required=False) self.fields['forzanuovapassword'] = forms.BooleanField(required=False) self.fields['otppassword'] = forms.BooleanField(required=False) self.fields['sede'] = forms.IntegerField(required=False) self.fields['enabled'] = forms.BooleanField(required=False) class formCerca(forms.Form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['valoredacercare'] = forms.CharField(required=False) class formPinMail(forms.Form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['mail'] = forms.CharField(required=False) self.fields['pin'] = forms.CharField(required=True) class formUpdatePasswordPrimoLogin(forms.Form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['cfisc'] = forms.CharField(required=True) self.fields['uuid'] = forms.CharField(required=True) self.fields['pin0'] = forms.CharField(required=True) self.fields['pin1'] = forms.CharField(required=True) self.fields['pin2'] = forms.CharField(required=True) self.fields['lostpin'] = forms.CharField(required=False) def clean_pin1(self): print(dir(self)) # validazione password if self.data['pin1'] != self.data['pin2']: # password non corrispondente raise forms.ValidationError("Le due password devono essere uguali") if self.data['pin1'] == self.data['cfisc']: # nome uguale a login raise forms.ValidationError("La password non puo' essere uguale al login") if len(self.data['pin1']) < int(getConfig('PasswordMin')): # lunghezza minima della password raise forms.ValidationError("Password troppo corta") return self.data['pin1'] class formUpdatePasswordLogin(forms.Form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['cfisc'] = forms.CharField(required=True) self.fields['uuid'] = forms.CharField(required=True) self.fields['pin1'] = forms.CharField(required=True) self.fields['pin2'] = forms.CharField(required=True) def clean_pin1(self): print(dir(self)) # validazione password if self.data['pin1'] != self.data['pin2']: # password non corrispondente raise forms.ValidationError("Le due password devono essere uguali") if self.data['pin1'] == self.data['cfisc']: # nome uguale a login raise forms.ValidationError("La password non puo' essere uguale al login") if len(self.data['pin1']) < int(getConfig('PasswordMin')): # lunghezza minima della password raise forms.ValidationError("Password troppo corta") return self.data['pin1'] def clean_uuid(self): a = None d = None login = self.data['cfisc'] print('login intercettato',login) # 1 tentativo su codice fiscale try: a = Utente.objects.get(codicefiscale=login.upper()) d = 'u' except Utente.DoesNotExist as dne: print('informazione non trovata tra i codici fiscali utente') try: a = Utente.objects.get(mail=login.lower()) d = 'u' except Utente.DoesNotExist as dne: print('informazione non trovata tra le email') try: a = Amministratore.objects.get(login=login.lower()) d = 'a' except Amministratore.DoesNotExist as dne: print('informazione non trovata tra i login amministratotore') except Utente.MultipleObjectsReturned as mor: print('oggetti multipli trovati',mor) if not a: raise forms.ValidationError("UUID Non Validato") else: if a.uuid == self.data['uuid']: return self.data['uuid'] raise forms.ValidationError("UUID non valido o scaduto") class formElementiDownload(forms.Form): def __init__(self,*args,lista=[],**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['MultipleDocumentSelect'] = forms.MultipleChoiceField(required=False,widget=forms.CheckboxSelectMultiple(),choices=self.c(lista)) def c(self,lista): print(len(lista)) choices = list() for u in lista: choices.append((u.id,u.id),) print('choices',len(choices)) return choices class formCancellaUtente(forms.Form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['ConfermaCancellazioneUtente'] = forms.BooleanField(required=False,initial=False) class formIndiceUpload(forms.Form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['indice'] = forms.FileField(required=True,initial='') class formMultipleCheckBoxCSVDOC(forms.Form): def __init__(self,*args,lista=[],**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['MultipleCSVSelect'] = forms.MultipleChoiceField(required=False,widget=forms.CheckboxSelectMultiple(),choices=self.c(lista)) def c(self,lista): print(len(lista)) choices = list() for u in lista: choices.append((u.id,u.id),) print('choices',len(choices)) return choices