diff --git a/Palto/Palto/forms.py b/Palto/Palto/forms.py index eb9aebd..f1116ae 100644 --- a/Palto/Palto/forms.py +++ b/Palto/Palto/forms.py @@ -3,6 +3,24 @@ from django import forms from Palto.Palto import models +# Common +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): + file_cleaner = super().clean + if isinstance(data, (list, tuple)): + return [file_cleaner(d, initial) for d in data] + else: + return file_cleaner(data, initial) + + # Users @@ -19,6 +37,7 @@ class NewAbsenceForm(forms.Form): start = forms.DateTimeField(widget=forms.TextInput(attrs=dict(type='datetime-local'))) end = forms.DateTimeField(widget=forms.TextInput(attrs=dict(type='datetime-local'))) message = forms.CharField(widget=forms.Textarea) + attachments = MultipleFileField(required=False) def __init__(self, student: models.User, *args, **kwargs): super().__init__(*args, **kwargs) diff --git a/Palto/Palto/templates/Palto/absence_new.html b/Palto/Palto/templates/Palto/absence_new.html index f9dcb66..e73e87c 100644 --- a/Palto/Palto/templates/Palto/absence_new.html +++ b/Palto/Palto/templates/Palto/absence_new.html @@ -1,7 +1,7 @@ {% extends "Palto/base.html" %} {% block body %} -