From a80c3e4bededdfee5e1ff4931996d4a32d117705 Mon Sep 17 00:00:00 2001 From: artus40 Date: Sat, 23 Sep 2017 13:12:41 +0200 Subject: [PATCH] avoid type='number' in input fields causing validation errors --- core/forms.py | 32 +++++++++++++++++++-- core/templates/core/enregistrement_add.html | 4 +-- core/views.py | 12 ++++---- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/core/forms.py b/core/forms.py index 22e8450..2e5403a 100644 --- a/core/forms.py +++ b/core/forms.py @@ -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'} + ), + } diff --git a/core/templates/core/enregistrement_add.html b/core/templates/core/enregistrement_add.html index 8f72491..ac3b523 100644 --- a/core/templates/core/enregistrement_add.html +++ b/core/templates/core/enregistrement_add.html @@ -13,9 +13,9 @@
- {{ form.est_negatif}} + {{ form.est_negatif}} - + {{ form.montant }}
{% bootstrap_field form.description form_group_class="form-group col-8" %} diff --git a/core/views.py b/core/views.py index c892f39..6a6a829 100644 --- a/core/views.py +++ b/core/views.py @@ -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')