mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-10-31 09:03:06 +00:00 
			
		
		
		
	Fix Multiple Fields Inputs & check being override in base Models class
				
					
				
			This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -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, | ||||
|     ) | ||||
|   | ||||
| @@ -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( | ||||
|   | ||||
| @@ -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() | ||||
|   | ||||
| @@ -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: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user