mirror of https://github.com/snachodog/mybuddy.git
Add some model form validation for Diaper Change and Feeding.
This commit is contained in:
parent
9c0989d22b
commit
c565bfc59a
|
@ -64,6 +64,31 @@ class DiaperChangeForm(forms.ModelForm):
|
||||||
kwargs = set_default_child(kwargs)
|
kwargs = set_default_child(kwargs)
|
||||||
super(DiaperChangeForm, self).__init__(*args, **kwargs)
|
super(DiaperChangeForm, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
"""Additional form validation/cleaning.
|
||||||
|
"""
|
||||||
|
errors = {}
|
||||||
|
|
||||||
|
# One or both of Wet and Solid is required.
|
||||||
|
if not self.cleaned_data['wet'] and not self.cleaned_data['solid']:
|
||||||
|
errors['wet'] = forms.ValidationError(
|
||||||
|
'Wet and/or solid is required.',
|
||||||
|
code='missing-wet-or-solid')
|
||||||
|
errors['solid'] = forms.ValidationError(
|
||||||
|
'Wet and/or solid is required.',
|
||||||
|
code='missing-wet-or-solid')
|
||||||
|
|
||||||
|
# Color is required when Solid is selected.
|
||||||
|
if self.cleaned_data['solid'] and not self.cleaned_data['color']:
|
||||||
|
errors['color'] = forms.ValidationError(
|
||||||
|
'Color is required for solid changes.',
|
||||||
|
code='missing-color')
|
||||||
|
|
||||||
|
if len(errors) > 0:
|
||||||
|
raise forms.ValidationError(errors)
|
||||||
|
|
||||||
|
return self.cleaned_data
|
||||||
|
|
||||||
|
|
||||||
class FeedingForm(forms.ModelForm):
|
class FeedingForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -86,6 +111,23 @@ class FeedingForm(forms.ModelForm):
|
||||||
kwargs = set_default_duration(kwargs)
|
kwargs = set_default_duration(kwargs)
|
||||||
super(FeedingForm, self).__init__(*args, **kwargs)
|
super(FeedingForm, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
"""Additional form validation/cleaning.
|
||||||
|
"""
|
||||||
|
errors = {}
|
||||||
|
|
||||||
|
# "Formula" Type may only be associated with "Bottle" Method.
|
||||||
|
if (self.cleaned_data['type'] == 'formula'
|
||||||
|
and self.cleaned_data['method'] != 'bottle'):
|
||||||
|
errors['method'] = forms.ValidationError(
|
||||||
|
'Only "Bottle" method is allowed with type "Formula".',
|
||||||
|
code='bottle-formula-mismatch')
|
||||||
|
|
||||||
|
if len(errors) > 0:
|
||||||
|
raise forms.ValidationError(errors)
|
||||||
|
|
||||||
|
return self.cleaned_data
|
||||||
|
|
||||||
def save(self, commit=True):
|
def save(self, commit=True):
|
||||||
instance = super(FeedingForm, self).save(commit=False)
|
instance = super(FeedingForm, self).save(commit=False)
|
||||||
if self.timer_id:
|
if self.timer_id:
|
||||||
|
|
Loading…
Reference in New Issue