Fix Multiple Fields Inputs & check being override in base Models class

This commit is contained in:
Julien Constant
2023-05-10 14:03:58 +02:00
parent b7d9dbf3d0
commit 8f5dec53c7
5 changed files with 31 additions and 14 deletions

View File

@@ -13,3 +13,23 @@
# OR WITHIN THE LOCAL FILE "LICENSE"
#
#
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

View File

@@ -33,6 +33,7 @@ import os
from ajax_select import make_ajax_field
from core import MultipleFileField
from core.models import SithFile, RealGroup, Notification
from core.views import (
CanViewMixin,
@@ -83,8 +84,7 @@ class AddFilesForm(forms.Form):
folder_name = forms.CharField(
label=_("Add a new folder"), max_length=30, required=False
)
file_field = forms.FileField(
widget=forms.ClearableFileInput(attrs={"multiple": True}),
file_field = MultipleFileField(
label=_("Files"),
required=False,
)