mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-11-04 02:53: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"
 | 
					# 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 ajax_select import make_ajax_field
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from core import MultipleFileField
 | 
				
			||||||
from core.models import SithFile, RealGroup, Notification
 | 
					from core.models import SithFile, RealGroup, Notification
 | 
				
			||||||
from core.views import (
 | 
					from core.views import (
 | 
				
			||||||
    CanViewMixin,
 | 
					    CanViewMixin,
 | 
				
			||||||
@@ -83,8 +84,7 @@ class AddFilesForm(forms.Form):
 | 
				
			|||||||
    folder_name = forms.CharField(
 | 
					    folder_name = forms.CharField(
 | 
				
			||||||
        label=_("Add a new folder"), max_length=30, required=False
 | 
					        label=_("Add a new folder"), max_length=30, required=False
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    file_field = forms.FileField(
 | 
					    file_field = MultipleFileField(
 | 
				
			||||||
        widget=forms.ClearableFileInput(attrs={"multiple": True}),
 | 
					 | 
				
			||||||
        label=_("Files"),
 | 
					        label=_("Files"),
 | 
				
			||||||
        required=False,
 | 
					        required=False,
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -990,7 +990,7 @@ class CashRegisterSummaryItem(models.Model):
 | 
				
			|||||||
    )
 | 
					    )
 | 
				
			||||||
    value = CurrencyField(_("value"))
 | 
					    value = CurrencyField(_("value"))
 | 
				
			||||||
    quantity = models.IntegerField(_("quantity"), default=0)
 | 
					    quantity = models.IntegerField(_("quantity"), default=0)
 | 
				
			||||||
    check = models.BooleanField(_("check"), default=False)
 | 
					    checked = models.BooleanField(_("check"), default=False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        verbose_name = _("cash register summary item")
 | 
					        verbose_name = _("cash register summary item")
 | 
				
			||||||
@@ -998,7 +998,7 @@ class CashRegisterSummaryItem(models.Model):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class Eticket(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(
 | 
					    product = models.OneToOneField(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1199,35 +1199,35 @@ class CashRegisterSummaryForm(forms.Form):
 | 
				
			|||||||
                cash_summary=summary,
 | 
					                cash_summary=summary,
 | 
				
			||||||
                value=cd["check_1_value"],
 | 
					                value=cd["check_1_value"],
 | 
				
			||||||
                quantity=cd["check_1_quantity"],
 | 
					                quantity=cd["check_1_quantity"],
 | 
				
			||||||
                check=True,
 | 
					                checked=True,
 | 
				
			||||||
            ).save()
 | 
					            ).save()
 | 
				
			||||||
        if cd["check_2_quantity"]:
 | 
					        if cd["check_2_quantity"]:
 | 
				
			||||||
            CashRegisterSummaryItem(
 | 
					            CashRegisterSummaryItem(
 | 
				
			||||||
                cash_summary=summary,
 | 
					                cash_summary=summary,
 | 
				
			||||||
                value=cd["check_2_value"],
 | 
					                value=cd["check_2_value"],
 | 
				
			||||||
                quantity=cd["check_2_quantity"],
 | 
					                quantity=cd["check_2_quantity"],
 | 
				
			||||||
                check=True,
 | 
					                checked=True,
 | 
				
			||||||
            ).save()
 | 
					            ).save()
 | 
				
			||||||
        if cd["check_3_quantity"]:
 | 
					        if cd["check_3_quantity"]:
 | 
				
			||||||
            CashRegisterSummaryItem(
 | 
					            CashRegisterSummaryItem(
 | 
				
			||||||
                cash_summary=summary,
 | 
					                cash_summary=summary,
 | 
				
			||||||
                value=cd["check_3_value"],
 | 
					                value=cd["check_3_value"],
 | 
				
			||||||
                quantity=cd["check_3_quantity"],
 | 
					                quantity=cd["check_3_quantity"],
 | 
				
			||||||
                check=True,
 | 
					                checked=True,
 | 
				
			||||||
            ).save()
 | 
					            ).save()
 | 
				
			||||||
        if cd["check_4_quantity"]:
 | 
					        if cd["check_4_quantity"]:
 | 
				
			||||||
            CashRegisterSummaryItem(
 | 
					            CashRegisterSummaryItem(
 | 
				
			||||||
                cash_summary=summary,
 | 
					                cash_summary=summary,
 | 
				
			||||||
                value=cd["check_4_value"],
 | 
					                value=cd["check_4_value"],
 | 
				
			||||||
                quantity=cd["check_4_quantity"],
 | 
					                quantity=cd["check_4_quantity"],
 | 
				
			||||||
                check=True,
 | 
					                checked=True,
 | 
				
			||||||
            ).save()
 | 
					            ).save()
 | 
				
			||||||
        if cd["check_5_quantity"]:
 | 
					        if cd["check_5_quantity"]:
 | 
				
			||||||
            CashRegisterSummaryItem(
 | 
					            CashRegisterSummaryItem(
 | 
				
			||||||
                cash_summary=summary,
 | 
					                cash_summary=summary,
 | 
				
			||||||
                value=cd["check_5_value"],
 | 
					                value=cd["check_5_value"],
 | 
				
			||||||
                quantity=cd["check_5_quantity"],
 | 
					                quantity=cd["check_5_quantity"],
 | 
				
			||||||
                check=True,
 | 
					                checked=True,
 | 
				
			||||||
            ).save()
 | 
					            ).save()
 | 
				
			||||||
        if summary.items.count() < 1:
 | 
					        if summary.items.count() < 1:
 | 
				
			||||||
            summary.delete()
 | 
					            summary.delete()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,7 @@
 | 
				
			|||||||
from django.shortcuts import redirect
 | 
					from django.shortcuts import redirect
 | 
				
			||||||
from django.http import HttpResponse, Http404
 | 
					from django.http import HttpResponse, Http404
 | 
				
			||||||
from django.urls import reverse_lazy, reverse
 | 
					from django.urls import reverse_lazy, reverse
 | 
				
			||||||
 | 
					from core import MultipleFileField
 | 
				
			||||||
from core.views.forms import SelectDate
 | 
					from core.views.forms import SelectDate
 | 
				
			||||||
from django.views.generic import DetailView, TemplateView
 | 
					from django.views.generic import DetailView, TemplateView
 | 
				
			||||||
from django.views.generic.edit import UpdateView, FormMixin, FormView
 | 
					from django.views.generic.edit import UpdateView, FormMixin, FormView
 | 
				
			||||||
@@ -40,11 +41,7 @@ class SASForm(forms.Form):
 | 
				
			|||||||
    album_name = forms.CharField(
 | 
					    album_name = forms.CharField(
 | 
				
			||||||
        label=_("Add a new album"), max_length=30, required=False
 | 
					        label=_("Add a new album"), max_length=30, required=False
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    images = forms.ImageField(
 | 
					    images = MultipleFileField(label=_("Upload images"), required=False)
 | 
				
			||||||
        widget=forms.ClearableFileInput(attrs={"multiple": True}),
 | 
					 | 
				
			||||||
        label=_("Upload images"),
 | 
					 | 
				
			||||||
        required=False,
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def process(self, parent, owner, files, automodere=False):
 | 
					    def process(self, parent, owner, files, automodere=False):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user