avoid type='number' in input fields causing validation errors
This commit is contained in:
@@ -1,13 +1,29 @@
|
||||
from django import forms
|
||||
from .models import Enregistrement
|
||||
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 = {'etiquette': forms.Select(
|
||||
widgets = {'montant': forms.TextInput(attrs={'class':'form-control'}),
|
||||
'etiquette': forms.Select(
|
||||
attrs={'class':'form-control custom-select'}
|
||||
),
|
||||
'date': forms.SelectDateWidget(
|
||||
@@ -17,9 +33,19 @@ class EnregistrementForm(forms.ModelForm):
|
||||
|
||||
def clean(self):
|
||||
data = super().clean()
|
||||
print(data)
|
||||
# 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'}
|
||||
),
|
||||
}
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
<label class="control-label" for="id_montant">Montant</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">
|
||||
<img src="{% static "img/minus-square.svg"%}" />{{ form.est_negatif}}
|
||||
{{ form.est_negatif}}<img src="{% static "img/minus-square.svg"%}" />
|
||||
</span>
|
||||
<input class="form-control" type="number" id="id_montant" name="montant" required />
|
||||
{{ form.montant }}
|
||||
</div>
|
||||
</div>
|
||||
{% bootstrap_field form.description form_group_class="form-group col-8" %}
|
||||
|
||||
@@ -8,7 +8,9 @@ from django import views
|
||||
from django.contrib import messages
|
||||
|
||||
from .models import (Enregistrement, Etiquette, EnregistrementRecursif,)
|
||||
from .forms import EnregistrementForm
|
||||
from .forms import (EnregistrementForm, EnregistrementSpecialForm,
|
||||
EnregistrementRecursifForm,
|
||||
)
|
||||
|
||||
# Utils
|
||||
|
||||
@@ -90,7 +92,7 @@ class MonthView(views.generic.ListView):
|
||||
class EnregistrementAddView(views.generic.edit.CreateView):
|
||||
model = Enregistrement
|
||||
template_name_suffix = "_add"
|
||||
form_class = EnregistrementForm
|
||||
form_class = EnregistrementSpecialForm
|
||||
|
||||
def get_initial(self):
|
||||
# Build the initial date
|
||||
@@ -114,7 +116,7 @@ class EnregistrementAddView(views.generic.edit.CreateView):
|
||||
class EnregistrementUpdateView(views.generic.edit.UpdateView):
|
||||
model = Enregistrement
|
||||
template_name_suffix = "_update_form"
|
||||
fields = "__all__"
|
||||
form_class = EnregistrementForm
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse("month-view",
|
||||
@@ -164,14 +166,14 @@ class RecursifListView(views.generic.ListView):
|
||||
|
||||
class RecursifAddView(views.generic.edit.CreateView):
|
||||
model = EnregistrementRecursif
|
||||
fields = ('jour', 'description', 'etiquette', 'montant')
|
||||
form_class = EnregistrementRecursifForm
|
||||
template_name_suffix = "_add_form"
|
||||
success_url = reverse_lazy('recursif-list')
|
||||
|
||||
|
||||
class RecursifUpdateView(views.generic.edit.UpdateView):
|
||||
model = EnregistrementRecursif
|
||||
fields = ('jour', 'description', 'etiquette', 'montant')
|
||||
form_class = EnregistrementRecursifForm
|
||||
template_name_suffix = "_update_form"
|
||||
success_url = reverse_lazy('recursif-list')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user