| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from django import forms
- class MultipleFileInput(forms.ClearableFileInput):
- allow_multiple_selected = True
- class MultipleFileField(forms.FileField):
- def __init__(self, *args, **kwargs):
- kwargs.setdefault("widget", MultipleFileInput())
- super().__init__(*args, **kwargs)
- def clean(self, data, initial=None):
- single_file_clean = super().clean
- if isinstance(data, (list, tuple)):
- result = [single_file_clean(d, initial) for d in data]
- else:
- result = [single_file_clean(data, initial)]
- return result
- class AdminUpload(forms.Form):
- def __init__(self,*args,**kwargs):
- forms.Form.__init__(self,*args,**kwargs)
- self.fields['allegati'] = MultipleFileField(required=False)
- # descrizione da applicare a tutti i file caricati
- self.fields['descrizione'] = forms.CharField(required=False)
- # il file viene caricato e assegnato a tutti gli utenti a cui si fa riferimento (sede/azienda)
- self.fields['pertutti'] = forms.BooleanField(required=False)
- self.fields['comunicazione'] = forms.BooleanField(required=False)
- # ignora le aziende e cerca i codici fiscali ovunque (sconsigliato per grandi repository)
- self.fields['ignoraAzienda'] = forms.BooleanField(required=False)
- # come sopra ma solo all'interno dell'azienda di riferimento
- self.fields['ignoraSede'] = forms.BooleanField(required=False)
- class DeleteOldDocuments(forms.Form):
- def __init(self,*args,**kwargs):
- forms.Form.__init__(self,*args,**kwargs)
- self.fields['limite'] = forms.CharField(required=True)
- class formMultipleCheckBox(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
|