diff options
| author | Julien Phalip <jphalip@gmail.com> | 2011-11-12 23:07:51 +0000 |
|---|---|---|
| committer | Julien Phalip <jphalip@gmail.com> | 2011-11-12 23:07:51 +0000 |
| commit | b45099eefb9a46264bcb8811dff6013cd1d0f6d6 (patch) | |
| tree | 467168f13df16f47ab950675a20c3dd52d60eeee | |
| parent | ba0734af9c54d1ace09285f6823cb8e4624acf99 (diff) | |
Fixed #17190 -- Ensured that the `NullBooleanSelect` widget's options get lazily localized. Thanks to pennersr for the report and to kenth for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17091 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/forms/widgets.py | 4 | ||||
| -rw-r--r-- | tests/regressiontests/forms/tests/widgets.py | 13 |
2 files changed, 16 insertions, 1 deletions
diff --git a/django/forms/widgets.py b/django/forms/widgets.py index 5b50f37b67..8c1e20b179 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -552,7 +552,9 @@ class NullBooleanSelect(Select): A Select Widget intended to be used with NullBooleanField. """ def __init__(self, attrs=None): - choices = ((u'1', ugettext('Unknown')), (u'2', ugettext('Yes')), (u'3', ugettext('No'))) + choices = ((u'1', ugettext_lazy('Unknown')), + (u'2', ugettext_lazy('Yes')), + (u'3', ugettext_lazy('No'))) super(NullBooleanSelect, self).__init__(attrs, choices) def render(self, name, value, attrs=None, choices=()): diff --git a/tests/regressiontests/forms/tests/widgets.py b/tests/regressiontests/forms/tests/widgets.py index 2424bea903..b567ea370e 100644 --- a/tests/regressiontests/forms/tests/widgets.py +++ b/tests/regressiontests/forms/tests/widgets.py @@ -984,6 +984,10 @@ beatle J R Ringo False""") self.assertEqual(w.render('date', datetime.datetime(2007, 9, 17, 12, 51)), u'<input type="hidden" name="date_0" value="2007-09-17" /><input type="hidden" name="date_1" value="12:51:00" />') +class NullBooleanSelectLazyForm(Form): + """Form to test for lazy evaluation. Refs #17190""" + bool = BooleanField(widget=NullBooleanSelect()) + class FormsI18NWidgetsTestCase(TestCase): def setUp(self): super(FormsI18NWidgetsTestCase, self).setUp() @@ -1025,6 +1029,15 @@ class FormsI18NWidgetsTestCase(TestCase): w.is_localized = True self.assertEqual(w.render('date', datetime.datetime(2007, 9, 17, 12, 51)), u'<input type="hidden" name="date_0" value="17.09.2007" /><input type="hidden" name="date_1" value="12:51:00" />') + def test_nullbooleanselect(self): + """ + Ensure that the NullBooleanSelect widget's options are lazily + localized. + Refs #17190 + """ + f = NullBooleanSelectLazyForm() + self.assertEqual(f.fields['bool'].widget.render('id_bool', True), u'<select name="id_bool">\n<option value="1">Unbekannt</option>\n<option value="2" selected="selected">Ja</option>\n<option value="3">Nein</option>\n</select>') + class SelectAndTextWidget(MultiWidget): """ |
