forms.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from django import forms
  2. class MultipleFileInput(forms.ClearableFileInput):
  3. allow_multiple_selected = True
  4. class MultipleFileField(forms.FileField):
  5. def __init__(self, *args, **kwargs):
  6. kwargs.setdefault("widget", MultipleFileInput())
  7. super().__init__(*args, **kwargs)
  8. def clean(self, data, initial=None):
  9. single_file_clean = super().clean
  10. if isinstance(data, (list, tuple)):
  11. result = [single_file_clean(d, initial) for d in data]
  12. else:
  13. result = [single_file_clean(data, initial)]
  14. return result
  15. class AdminUpload(forms.Form):
  16. def __init__(self,*args,**kwargs):
  17. forms.Form.__init__(self,*args,**kwargs)
  18. self.fields['allegati'] = MultipleFileField(required=False)
  19. # descrizione da applicare a tutti i file caricati
  20. self.fields['descrizione'] = forms.CharField(required=False)
  21. # il file viene caricato e assegnato a tutti gli utenti a cui si fa riferimento (sede/azienda)
  22. self.fields['pertutti'] = forms.BooleanField(required=False)
  23. self.fields['comunicazione'] = forms.BooleanField(required=False)
  24. # ignora le aziende e cerca i codici fiscali ovunque (sconsigliato per grandi repository)
  25. self.fields['ignoraAzienda'] = forms.BooleanField(required=False)
  26. # come sopra ma solo all'interno dell'azienda di riferimento
  27. self.fields['ignoraSede'] = forms.BooleanField(required=False)
  28. self.fields['privato'] = forms.BooleanField(required=False)
  29. class DeleteOldDocuments(forms.Form):
  30. def __init(self,*args,**kwargs):
  31. forms.Form.__init__(self,*args,**kwargs)
  32. self.fields['limite'] = forms.CharField(required=True)
  33. class formMultipleCheckBox(forms.Form):
  34. def __init__(self,*args,lista=[],**kwargs):
  35. forms.Form.__init__(self,*args,**kwargs)
  36. self.fields['MultipleDocumentSelect'] = forms.MultipleChoiceField(required=False,widget=forms.CheckboxSelectMultiple(),choices=self.c(lista))
  37. def c(self,lista):
  38. print(len(lista))
  39. choices = list()
  40. for u in lista:
  41. choices.append((u.id,u.id),)
  42. print('choices',len(choices))
  43. return choices