17
17
# Standard Library
18
18
import logging
19
19
from datetime import datetime
20
- from decimal import Decimal
21
20
22
21
# Django
23
22
from django import forms
24
23
from django .forms import BooleanField
25
- from django .urls import reverse
26
24
from django .utils .translation import (
27
25
gettext as _ ,
28
26
gettext_lazy ,
32
30
from crispy_forms .helper import FormHelper
33
31
from crispy_forms .layout import (
34
32
HTML ,
35
- ButtonHolder ,
36
33
Column ,
37
34
Layout ,
38
35
Row ,
39
- Submit ,
40
36
)
41
37
42
38
# wger
@@ -80,9 +76,15 @@ def __init__(self, *args, **kwargs):
80
76
else :
81
77
ingredient_id = - 1
82
78
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 } ' )
86
88
87
89
self .helper = FormHelper ()
88
90
self .helper .layout = Layout (
@@ -95,45 +97,6 @@ def __init__(self, *args, **kwargs):
95
97
self .helper .form_tag = False
96
98
97
99
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
-
137
100
class BmrForm (forms .ModelForm ):
138
101
"""
139
102
Form for the basal metabolic rate
0 commit comments