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,
)

View File

@ -990,7 +990,7 @@ class CashRegisterSummaryItem(models.Model):
)
value = CurrencyField(_("value"))
quantity = models.IntegerField(_("quantity"), default=0)
check = models.BooleanField(_("check"), default=False)
checked = models.BooleanField(_("check"), default=False)
class Meta:
verbose_name = _("cash register summary item")
@ -998,7 +998,7 @@ class CashRegisterSummaryItem(models.Model):
class Eticket(models.Model):
"""
Eticket can be linked to a product an allows PDF generation
Eticket can be linked to a product and allows PDF generation
"""
product = models.OneToOneField(

View File

@ -1199,35 +1199,35 @@ class CashRegisterSummaryForm(forms.Form):
cash_summary=summary,
value=cd["check_1_value"],
quantity=cd["check_1_quantity"],
check=True,
checked=True,
).save()
if cd["check_2_quantity"]:
CashRegisterSummaryItem(
cash_summary=summary,
value=cd["check_2_value"],
quantity=cd["check_2_quantity"],
check=True,
checked=True,
).save()
if cd["check_3_quantity"]:
CashRegisterSummaryItem(
cash_summary=summary,
value=cd["check_3_value"],
quantity=cd["check_3_quantity"],
check=True,
checked=True,
).save()
if cd["check_4_quantity"]:
CashRegisterSummaryItem(
cash_summary=summary,
value=cd["check_4_value"],
quantity=cd["check_4_quantity"],
check=True,
checked=True,
).save()
if cd["check_5_quantity"]:
CashRegisterSummaryItem(
cash_summary=summary,
value=cd["check_5_value"],
quantity=cd["check_5_quantity"],
check=True,
checked=True,
).save()
if summary.items.count() < 1:
summary.delete()

View File

@ -17,6 +17,7 @@
from django.shortcuts import redirect
from django.http import HttpResponse, Http404
from django.urls import reverse_lazy, reverse
from core import MultipleFileField
from core.views.forms import SelectDate
from django.views.generic import DetailView, TemplateView
from django.views.generic.edit import UpdateView, FormMixin, FormView
@ -40,11 +41,7 @@ class SASForm(forms.Form):
album_name = forms.CharField(
label=_("Add a new album"), max_length=30, required=False
)
images = forms.ImageField(
widget=forms.ClearableFileInput(attrs={"multiple": True}),
label=_("Upload images"),
required=False,
)
images = MultipleFileField(label=_("Upload images"), required=False)
def process(self, parent, owner, files, automodere=False):
try: