from django import forms from .models import Enregistrement, EnregistrementRecursif class EnregistrementForm(forms.ModelForm): class Meta: model = Enregistrement fields = ('montant', 'description', 'date', 'etiquette') widgets = {'montant': forms.TextInput(), 'etiquette': forms.Select( attrs={'class':'form-control custom-select'} ), 'date': forms.SelectDateWidget( attrs={'class':'form-control custom-select mx-1'} ) } class EnregistrementSpecialForm(forms.ModelForm): est_negatif = forms.BooleanField(required=False) class Meta: model = Enregistrement fields = ('montant', 'description', 'date', 'etiquette') widgets = {'montant': forms.TextInput(attrs={'class':'form-control'}), 'etiquette': forms.Select( attrs={'class':'form-control custom-select'} ), 'date': forms.SelectDateWidget( attrs={'class':'form-control custom-select mx-1'} ) } def clean(self): data = super().clean() # Force un nombre négatif si 'est_negatif' est coché if (data['est_negatif'] and data['montant'] > 0): self.cleaned_data['montant'] = 0 - data['montant'] return self.cleaned_data class EnregistrementRecursifForm(forms.ModelForm): class Meta: model = EnregistrementRecursif fields = ('jour', 'description', 'etiquette', 'montant') widgets = {'montant': forms.TextInput(), 'etiquette': forms.Select( attrs={'class':'form-control custom-select'} ), }