Skip to content

Commit 8d3a3ab

Browse files
committed
Better handle malformed ingredient id values
1 parent f517f0c commit 8d3a3ab

File tree

1 file changed

+9
-46
lines changed

1 file changed

+9
-46
lines changed

wger/nutrition/forms.py

Lines changed: 9 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@
1717
# Standard Library
1818
import logging
1919
from datetime import datetime
20-
from decimal import Decimal
2120

2221
# Django
2322
from django import forms
2423
from django.forms import BooleanField
25-
from django.urls import reverse
2624
from django.utils.translation import (
2725
gettext as _,
2826
gettext_lazy,
@@ -32,11 +30,9 @@
3230
from crispy_forms.helper import FormHelper
3331
from crispy_forms.layout import (
3432
HTML,
35-
ButtonHolder,
3633
Column,
3734
Layout,
3835
Row,
39-
Submit,
4036
)
4137

4238
# wger
@@ -80,9 +76,15 @@ def __init__(self, *args, **kwargs):
8076
else:
8177
ingredient_id = -1
8278

83-
self.fields['unit'].queryset = IngredientWeightUnit.objects.filter(
84-
ingredient_id=ingredient_id
85-
).select_related()
79+
self.fields['unit'].queryset = IngredientWeightUnit.objects.none()
80+
try:
81+
self.fields['unit'].queryset = IngredientWeightUnit.objects.filter(
82+
ingredient_id=ingredient_id
83+
).select_related()
84+
except ValueError as e:
85+
logger.error(f'ValueError in UnitChooserForm: {e}')
86+
except IngredientWeightUnit.DoesNotExist as e:
87+
logger.error(f'IngredientWeightUnit does not exist: {e}')
8688

8789
self.helper = FormHelper()
8890
self.helper.layout = Layout(
@@ -95,45 +97,6 @@ def __init__(self, *args, **kwargs):
9597
self.helper.form_tag = False
9698

9799

98-
class BmiForm(forms.ModelForm):
99-
height = forms.DecimalField(
100-
widget=Html5NumberInput(),
101-
max_value=Decimal(999),
102-
)
103-
weight = forms.DecimalField(
104-
widget=Html5NumberInput(),
105-
max_value=Decimal(999),
106-
)
107-
108-
class Meta:
109-
model = UserProfile
110-
fields = ('height',)
111-
112-
def __init__(self, *args, **kwargs):
113-
super(BmiForm, self).__init__(*args, **kwargs)
114-
115-
if 'initial' in kwargs: # if the form is rendering for the first time
116-
self['height'].label = (
117-
_('Height (cm)') if kwargs['initial']['use_metric'] else _('Height (in)')
118-
)
119-
self['weight'].label = (
120-
_('Weight (kg)') if kwargs['initial']['use_metric'] else _('Weight (lbs)')
121-
)
122-
123-
self.helper = FormHelper()
124-
self.helper.form_action = reverse('nutrition:bmi:calculate')
125-
self.helper.form_class = 'wger-form'
126-
self.helper.form_id = 'bmi-form'
127-
self.helper.layout = Layout(
128-
Row(
129-
Column('height', css_class='col-6'),
130-
Column('weight', css_class='col-6'),
131-
css_class='form-row',
132-
),
133-
ButtonHolder(Submit('submit', _('Calculate'), css_class='btn-success')),
134-
)
135-
136-
137100
class BmrForm(forms.ModelForm):
138101
"""
139102
Form for the basal metabolic rate

0 commit comments

Comments
 (0)