Fixed #13970 -- Made SelectDateWidget use the standard widget is_required attribute
Thanks mitar for the report and Tim Graham for the review.
This commit is contained in:
parent
b780d03d62
commit
bc21e9c0d9
|
@ -53,9 +53,8 @@ class SelectDateWidget(Widget):
|
||||||
day_field = '%s_day'
|
day_field = '%s_day'
|
||||||
year_field = '%s_year'
|
year_field = '%s_year'
|
||||||
|
|
||||||
def __init__(self, attrs=None, years=None, required=True, months=None):
|
def __init__(self, attrs=None, years=None, months=None):
|
||||||
self.attrs = attrs or {}
|
self.attrs = attrs or {}
|
||||||
self.required = required
|
|
||||||
|
|
||||||
# Optional list or tuple of years to use in the "year" select box.
|
# Optional list or tuple of years to use in the "year" select box.
|
||||||
if years:
|
if years:
|
||||||
|
@ -139,7 +138,7 @@ class SelectDateWidget(Widget):
|
||||||
id_ = self.attrs['id']
|
id_ = self.attrs['id']
|
||||||
else:
|
else:
|
||||||
id_ = 'id_%s' % name
|
id_ = 'id_%s' % name
|
||||||
if not (self.required and val):
|
if not self.is_required:
|
||||||
choices.insert(0, self.none_value)
|
choices.insert(0, self.none_value)
|
||||||
local_attrs = self.build_attrs(id=field % id_)
|
local_attrs = self.build_attrs(id=field % id_)
|
||||||
s = Select(choices=choices)
|
s = Select(choices=choices)
|
||||||
|
|
|
@ -613,6 +613,11 @@ Miscellaneous
|
||||||
you relied on the default field ordering while having fields defined on both
|
you relied on the default field ordering while having fields defined on both
|
||||||
the current class *and* on a parent ``Form``.
|
the current class *and* on a parent ``Form``.
|
||||||
|
|
||||||
|
* The ``required`` argument of
|
||||||
|
:class:`~django.forms.extras.widgets.SelectDateWidget` has been removed.
|
||||||
|
This widget now respects the form field's ``is_required`` attribute like
|
||||||
|
other widgets.
|
||||||
|
|
||||||
* :meth:`~django.db.models.query.QuerySet.select_related` now chains in the
|
* :meth:`~django.db.models.query.QuerySet.select_related` now chains in the
|
||||||
same way as other similar calls like ``prefetch_related``. That is,
|
same way as other similar calls like ``prefetch_related``. That is,
|
||||||
``select_related('foo', 'bar')`` is equivalent to
|
``select_related('foo', 'bar')`` is equivalent to
|
||||||
|
|
|
@ -26,10 +26,6 @@ class GetDate(Form):
|
||||||
mydate = DateField(widget=SelectDateWidget)
|
mydate = DateField(widget=SelectDateWidget)
|
||||||
|
|
||||||
|
|
||||||
class GetNotRequiredDate(Form):
|
|
||||||
mydate = DateField(widget=SelectDateWidget, required=False)
|
|
||||||
|
|
||||||
|
|
||||||
class GetDateShowHiddenInitial(Form):
|
class GetDateShowHiddenInitial(Form):
|
||||||
mydate = DateField(widget=SelectDateWidget, show_hidden_initial=True)
|
mydate = DateField(widget=SelectDateWidget, show_hidden_initial=True)
|
||||||
|
|
||||||
|
@ -41,6 +37,7 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
|
||||||
|
|
||||||
# The forms library comes with some extra, higher-level Field and Widget
|
# The forms library comes with some extra, higher-level Field and Widget
|
||||||
def test_selectdate(self):
|
def test_selectdate(self):
|
||||||
|
self.maxDiff = None
|
||||||
w = SelectDateWidget(years=('2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016'))
|
w = SelectDateWidget(years=('2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016'))
|
||||||
|
|
||||||
# Rendering the default state.
|
# Rendering the default state.
|
||||||
|
@ -114,6 +111,7 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
|
||||||
|
|
||||||
# Rendering a string value.
|
# Rendering a string value.
|
||||||
self.assertHTMLEqual(w.render('mydate', '2010-04-15'), """<select name="mydate_month" id="id_mydate_month">
|
self.assertHTMLEqual(w.render('mydate', '2010-04-15'), """<select name="mydate_month" id="id_mydate_month">
|
||||||
|
<option value="0">---</option>
|
||||||
<option value="1">January</option>
|
<option value="1">January</option>
|
||||||
<option value="2">February</option>
|
<option value="2">February</option>
|
||||||
<option value="3">March</option>
|
<option value="3">March</option>
|
||||||
|
@ -128,6 +126,7 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
|
||||||
<option value="12">December</option>
|
<option value="12">December</option>
|
||||||
</select>
|
</select>
|
||||||
<select name="mydate_day" id="id_mydate_day">
|
<select name="mydate_day" id="id_mydate_day">
|
||||||
|
<option value="0">---</option>
|
||||||
<option value="1">1</option>
|
<option value="1">1</option>
|
||||||
<option value="2">2</option>
|
<option value="2">2</option>
|
||||||
<option value="3">3</option>
|
<option value="3">3</option>
|
||||||
|
@ -161,6 +160,7 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
|
||||||
<option value="31">31</option>
|
<option value="31">31</option>
|
||||||
</select>
|
</select>
|
||||||
<select name="mydate_year" id="id_mydate_year">
|
<select name="mydate_year" id="id_mydate_year">
|
||||||
|
<option value="0">---</option>
|
||||||
<option value="2007">2007</option>
|
<option value="2007">2007</option>
|
||||||
<option value="2008">2008</option>
|
<option value="2008">2008</option>
|
||||||
<option value="2009">2009</option>
|
<option value="2009">2009</option>
|
||||||
|
@ -178,6 +178,7 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
|
||||||
|
|
||||||
# Invalid dates should still render the failed date.
|
# Invalid dates should still render the failed date.
|
||||||
self.assertHTMLEqual(w.render('mydate', '2010-02-31'), """<select name="mydate_month" id="id_mydate_month">
|
self.assertHTMLEqual(w.render('mydate', '2010-02-31'), """<select name="mydate_month" id="id_mydate_month">
|
||||||
|
<option value="0">---</option>
|
||||||
<option value="1">January</option>
|
<option value="1">January</option>
|
||||||
<option value="2" selected="selected">February</option>
|
<option value="2" selected="selected">February</option>
|
||||||
<option value="3">March</option>
|
<option value="3">March</option>
|
||||||
|
@ -192,6 +193,7 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
|
||||||
<option value="12">December</option>
|
<option value="12">December</option>
|
||||||
</select>
|
</select>
|
||||||
<select name="mydate_day" id="id_mydate_day">
|
<select name="mydate_day" id="id_mydate_day">
|
||||||
|
<option value="0">---</option>
|
||||||
<option value="1">1</option>
|
<option value="1">1</option>
|
||||||
<option value="2">2</option>
|
<option value="2">2</option>
|
||||||
<option value="3">3</option>
|
<option value="3">3</option>
|
||||||
|
@ -225,6 +227,7 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
|
||||||
<option value="31" selected="selected">31</option>
|
<option value="31" selected="selected">31</option>
|
||||||
</select>
|
</select>
|
||||||
<select name="mydate_year" id="id_mydate_year">
|
<select name="mydate_year" id="id_mydate_year">
|
||||||
|
<option value="0">---</option>
|
||||||
<option value="2007">2007</option>
|
<option value="2007">2007</option>
|
||||||
<option value="2008">2008</option>
|
<option value="2008">2008</option>
|
||||||
<option value="2009">2009</option>
|
<option value="2009">2009</option>
|
||||||
|
@ -293,133 +296,6 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
|
||||||
<select name="mydate_year" id="id_mydate_year">
|
<select name="mydate_year" id="id_mydate_year">
|
||||||
<option value="0">---</option>
|
<option value="0">---</option>
|
||||||
<option value="2013">2013</option>
|
<option value="2013">2013</option>
|
||||||
</select>""")
|
|
||||||
|
|
||||||
# Using a SelectDateWidget in a form.
|
|
||||||
w = SelectDateWidget(years=('2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016'), required=False)
|
|
||||||
self.assertHTMLEqual(w.render('mydate', ''), """<select name="mydate_month" id="id_mydate_month">
|
|
||||||
<option value="0">---</option>
|
|
||||||
<option value="1">January</option>
|
|
||||||
<option value="2">February</option>
|
|
||||||
<option value="3">March</option>
|
|
||||||
<option value="4">April</option>
|
|
||||||
<option value="5">May</option>
|
|
||||||
<option value="6">June</option>
|
|
||||||
<option value="7">July</option>
|
|
||||||
<option value="8">August</option>
|
|
||||||
<option value="9">September</option>
|
|
||||||
<option value="10">October</option>
|
|
||||||
<option value="11">November</option>
|
|
||||||
<option value="12">December</option>
|
|
||||||
</select>
|
|
||||||
<select name="mydate_day" id="id_mydate_day">
|
|
||||||
<option value="0">---</option>
|
|
||||||
<option value="1">1</option>
|
|
||||||
<option value="2">2</option>
|
|
||||||
<option value="3">3</option>
|
|
||||||
<option value="4">4</option>
|
|
||||||
<option value="5">5</option>
|
|
||||||
<option value="6">6</option>
|
|
||||||
<option value="7">7</option>
|
|
||||||
<option value="8">8</option>
|
|
||||||
<option value="9">9</option>
|
|
||||||
<option value="10">10</option>
|
|
||||||
<option value="11">11</option>
|
|
||||||
<option value="12">12</option>
|
|
||||||
<option value="13">13</option>
|
|
||||||
<option value="14">14</option>
|
|
||||||
<option value="15">15</option>
|
|
||||||
<option value="16">16</option>
|
|
||||||
<option value="17">17</option>
|
|
||||||
<option value="18">18</option>
|
|
||||||
<option value="19">19</option>
|
|
||||||
<option value="20">20</option>
|
|
||||||
<option value="21">21</option>
|
|
||||||
<option value="22">22</option>
|
|
||||||
<option value="23">23</option>
|
|
||||||
<option value="24">24</option>
|
|
||||||
<option value="25">25</option>
|
|
||||||
<option value="26">26</option>
|
|
||||||
<option value="27">27</option>
|
|
||||||
<option value="28">28</option>
|
|
||||||
<option value="29">29</option>
|
|
||||||
<option value="30">30</option>
|
|
||||||
<option value="31">31</option>
|
|
||||||
</select>
|
|
||||||
<select name="mydate_year" id="id_mydate_year">
|
|
||||||
<option value="0">---</option>
|
|
||||||
<option value="2007">2007</option>
|
|
||||||
<option value="2008">2008</option>
|
|
||||||
<option value="2009">2009</option>
|
|
||||||
<option value="2010">2010</option>
|
|
||||||
<option value="2011">2011</option>
|
|
||||||
<option value="2012">2012</option>
|
|
||||||
<option value="2013">2013</option>
|
|
||||||
<option value="2014">2014</option>
|
|
||||||
<option value="2015">2015</option>
|
|
||||||
<option value="2016">2016</option>
|
|
||||||
</select>""")
|
|
||||||
self.assertHTMLEqual(w.render('mydate', '2010-04-15'), """<select name="mydate_month" id="id_mydate_month">
|
|
||||||
<option value="0">---</option>
|
|
||||||
<option value="1">January</option>
|
|
||||||
<option value="2">February</option>
|
|
||||||
<option value="3">March</option>
|
|
||||||
<option value="4" selected="selected">April</option>
|
|
||||||
<option value="5">May</option>
|
|
||||||
<option value="6">June</option>
|
|
||||||
<option value="7">July</option>
|
|
||||||
<option value="8">August</option>
|
|
||||||
<option value="9">September</option>
|
|
||||||
<option value="10">October</option>
|
|
||||||
<option value="11">November</option>
|
|
||||||
<option value="12">December</option>
|
|
||||||
</select>
|
|
||||||
<select name="mydate_day" id="id_mydate_day">
|
|
||||||
<option value="0">---</option>
|
|
||||||
<option value="1">1</option>
|
|
||||||
<option value="2">2</option>
|
|
||||||
<option value="3">3</option>
|
|
||||||
<option value="4">4</option>
|
|
||||||
<option value="5">5</option>
|
|
||||||
<option value="6">6</option>
|
|
||||||
<option value="7">7</option>
|
|
||||||
<option value="8">8</option>
|
|
||||||
<option value="9">9</option>
|
|
||||||
<option value="10">10</option>
|
|
||||||
<option value="11">11</option>
|
|
||||||
<option value="12">12</option>
|
|
||||||
<option value="13">13</option>
|
|
||||||
<option value="14">14</option>
|
|
||||||
<option value="15" selected="selected">15</option>
|
|
||||||
<option value="16">16</option>
|
|
||||||
<option value="17">17</option>
|
|
||||||
<option value="18">18</option>
|
|
||||||
<option value="19">19</option>
|
|
||||||
<option value="20">20</option>
|
|
||||||
<option value="21">21</option>
|
|
||||||
<option value="22">22</option>
|
|
||||||
<option value="23">23</option>
|
|
||||||
<option value="24">24</option>
|
|
||||||
<option value="25">25</option>
|
|
||||||
<option value="26">26</option>
|
|
||||||
<option value="27">27</option>
|
|
||||||
<option value="28">28</option>
|
|
||||||
<option value="29">29</option>
|
|
||||||
<option value="30">30</option>
|
|
||||||
<option value="31">31</option>
|
|
||||||
</select>
|
|
||||||
<select name="mydate_year" id="id_mydate_year">
|
|
||||||
<option value="0">---</option>
|
|
||||||
<option value="2007">2007</option>
|
|
||||||
<option value="2008">2008</option>
|
|
||||||
<option value="2009">2009</option>
|
|
||||||
<option value="2010" selected="selected">2010</option>
|
|
||||||
<option value="2011">2011</option>
|
|
||||||
<option value="2012">2012</option>
|
|
||||||
<option value="2013">2013</option>
|
|
||||||
<option value="2014">2014</option>
|
|
||||||
<option value="2015">2015</option>
|
|
||||||
<option value="2016">2016</option>
|
|
||||||
</select>""")
|
</select>""")
|
||||||
|
|
||||||
a = GetDate({'mydate_month': '4', 'mydate_day': '1', 'mydate_year': '2008'})
|
a = GetDate({'mydate_month': '4', 'mydate_day': '1', 'mydate_year': '2008'})
|
||||||
|
@ -768,13 +644,15 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
|
||||||
self.assertTrue(FormWithFile().is_multipart())
|
self.assertTrue(FormWithFile().is_multipart())
|
||||||
self.assertTrue(FormWithImage().is_multipart())
|
self.assertTrue(FormWithImage().is_multipart())
|
||||||
|
|
||||||
def test_field_not_required(self):
|
def test_selectdatewidget_required(self):
|
||||||
b = GetNotRequiredDate({
|
class GetNotRequiredDate(Form):
|
||||||
'mydate_year': '',
|
mydate = DateField(widget=SelectDateWidget, required=False)
|
||||||
'mydate_month': '',
|
|
||||||
'mydate_day': ''
|
class GetRequiredDate(Form):
|
||||||
})
|
mydate = DateField(widget=SelectDateWidget, required=True)
|
||||||
self.assertFalse(b.has_changed())
|
|
||||||
|
self.assertFalse(GetNotRequiredDate().fields['mydate'].widget.is_required)
|
||||||
|
self.assertTrue(GetRequiredDate().fields['mydate'].widget.is_required)
|
||||||
|
|
||||||
|
|
||||||
@override_settings(USE_L10N=True)
|
@override_settings(USE_L10N=True)
|
||||||
|
@ -788,7 +666,7 @@ class FormsExtraL10NTestCase(TestCase):
|
||||||
super(FormsExtraL10NTestCase, self).tearDown()
|
super(FormsExtraL10NTestCase, self).tearDown()
|
||||||
|
|
||||||
def test_l10n(self):
|
def test_l10n(self):
|
||||||
w = SelectDateWidget(years=('2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016'), required=False)
|
w = SelectDateWidget(years=('2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016'))
|
||||||
self.assertEqual(w.value_from_datadict({'date_year': '2010', 'date_month': '8', 'date_day': '13'}, {}, 'date'), '13-08-2010')
|
self.assertEqual(w.value_from_datadict({'date_year': '2010', 'date_month': '8', 'date_day': '13'}, {}, 'date'), '13-08-2010')
|
||||||
|
|
||||||
self.assertHTMLEqual(w.render('date', '13-08-2010'), """<select name="date_day" id="id_date_day">
|
self.assertHTMLEqual(w.render('date', '13-08-2010'), """<select name="date_day" id="id_date_day">
|
||||||
|
|
|
@ -415,6 +415,7 @@ class FormattingTests(TransRealMixin, TestCase):
|
||||||
but not formats
|
but not formats
|
||||||
"""
|
"""
|
||||||
with translation.override('ca', deactivate=True):
|
with translation.override('ca', deactivate=True):
|
||||||
|
self.maxDiff = 3000
|
||||||
self.assertEqual('N j, Y', get_format('DATE_FORMAT'))
|
self.assertEqual('N j, Y', get_format('DATE_FORMAT'))
|
||||||
self.assertEqual(0, get_format('FIRST_DAY_OF_WEEK'))
|
self.assertEqual(0, get_format('FIRST_DAY_OF_WEEK'))
|
||||||
self.assertEqual('.', get_format('DECIMAL_SEPARATOR'))
|
self.assertEqual('.', get_format('DECIMAL_SEPARATOR'))
|
||||||
|
@ -461,7 +462,7 @@ class FormattingTests(TransRealMixin, TestCase):
|
||||||
self.assertEqual(True, form2.is_valid())
|
self.assertEqual(True, form2.is_valid())
|
||||||
self.assertEqual(datetime.date(2009, 12, 31), form2.cleaned_data['date_field'])
|
self.assertEqual(datetime.date(2009, 12, 31), form2.cleaned_data['date_field'])
|
||||||
self.assertHTMLEqual(
|
self.assertHTMLEqual(
|
||||||
'<select name="mydate_month" id="id_mydate_month">\n<option value="1">gener</option>\n<option value="2">febrer</option>\n<option value="3">mar\xe7</option>\n<option value="4">abril</option>\n<option value="5">maig</option>\n<option value="6">juny</option>\n<option value="7">juliol</option>\n<option value="8">agost</option>\n<option value="9">setembre</option>\n<option value="10">octubre</option>\n<option value="11">novembre</option>\n<option value="12" selected="selected">desembre</option>\n</select>\n<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>',
|
'<select name="mydate_month" id="id_mydate_month">\n<option value="0">---</option>\n<option value="1">gener</option>\n<option value="2">febrer</option>\n<option value="3">mar\xe7</option>\n<option value="4">abril</option>\n<option value="5">maig</option>\n<option value="6">juny</option>\n<option value="7">juliol</option>\n<option value="8">agost</option>\n<option value="9">setembre</option>\n<option value="10">octubre</option>\n<option value="11">novembre</option>\n<option value="12" selected="selected">desembre</option>\n</select>\n<select name="mydate_day" id="id_mydate_day">\n<option value="0">---</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="0">---</option>\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>',
|
||||||
SelectDateWidget(years=range(2009, 2019)).render('mydate', datetime.date(2009, 12, 31))
|
SelectDateWidget(years=range(2009, 2019)).render('mydate', datetime.date(2009, 12, 31))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -508,6 +509,7 @@ class FormattingTests(TransRealMixin, TestCase):
|
||||||
fr_formats.FIRST_DAY_OF_WEEK = backup_FIRST_DAY_OF_WEEK
|
fr_formats.FIRST_DAY_OF_WEEK = backup_FIRST_DAY_OF_WEEK
|
||||||
|
|
||||||
def test_l10n_enabled(self):
|
def test_l10n_enabled(self):
|
||||||
|
self.maxDiff = 3000
|
||||||
# Catalan locale
|
# Catalan locale
|
||||||
with translation.override('ca', deactivate=True):
|
with translation.override('ca', deactivate=True):
|
||||||
self.assertEqual('j \d\e F \d\e Y', get_format('DATE_FORMAT'))
|
self.assertEqual('j \d\e F \d\e Y', get_format('DATE_FORMAT'))
|
||||||
|
@ -592,14 +594,14 @@ class FormattingTests(TransRealMixin, TestCase):
|
||||||
self.assertEqual(True, form5.is_valid())
|
self.assertEqual(True, form5.is_valid())
|
||||||
self.assertEqual(datetime.date(2009, 12, 31), form5.cleaned_data['date_field'])
|
self.assertEqual(datetime.date(2009, 12, 31), form5.cleaned_data['date_field'])
|
||||||
self.assertHTMLEqual(
|
self.assertHTMLEqual(
|
||||||
'<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_month" id="id_mydate_month">\n<option value="1">gener</option>\n<option value="2">febrer</option>\n<option value="3">mar\xe7</option>\n<option value="4">abril</option>\n<option value="5">maig</option>\n<option value="6">juny</option>\n<option value="7">juliol</option>\n<option value="8">agost</option>\n<option value="9">setembre</option>\n<option value="10">octubre</option>\n<option value="11">novembre</option>\n<option value="12" selected="selected">desembre</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>',
|
'<select name="mydate_day" id="id_mydate_day">\n<option value="0">---</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_month" id="id_mydate_month">\n<option value="0">---</option>\n<option value="1">gener</option>\n<option value="2">febrer</option>\n<option value="3">mar\xe7</option>\n<option value="4">abril</option>\n<option value="5">maig</option>\n<option value="6">juny</option>\n<option value="7">juliol</option>\n<option value="8">agost</option>\n<option value="9">setembre</option>\n<option value="10">octubre</option>\n<option value="11">novembre</option>\n<option value="12" selected="selected">desembre</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="0">---</option>\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>',
|
||||||
SelectDateWidget(years=range(2009, 2019)).render('mydate', datetime.date(2009, 12, 31))
|
SelectDateWidget(years=range(2009, 2019)).render('mydate', datetime.date(2009, 12, 31))
|
||||||
)
|
)
|
||||||
|
|
||||||
# Russian locale (with E as month)
|
# Russian locale (with E as month)
|
||||||
with translation.override('ru', deactivate=True):
|
with translation.override('ru', deactivate=True):
|
||||||
self.assertHTMLEqual(
|
self.assertHTMLEqual(
|
||||||
'<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_month" id="id_mydate_month">\n<option value="1">\u042f\u043d\u0432\u0430\u0440\u044c</option>\n<option value="2">\u0424\u0435\u0432\u0440\u0430\u043b\u044c</option>\n<option value="3">\u041c\u0430\u0440\u0442</option>\n<option value="4">\u0410\u043f\u0440\u0435\u043b\u044c</option>\n<option value="5">\u041c\u0430\u0439</option>\n<option value="6">\u0418\u044e\u043d\u044c</option>\n<option value="7">\u0418\u044e\u043b\u044c</option>\n<option value="8">\u0410\u0432\u0433\u0443\u0441\u0442</option>\n<option value="9">\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c</option>\n<option value="10">\u041e\u043a\u0442\u044f\u0431\u0440\u044c</option>\n<option value="11">\u041d\u043e\u044f\u0431\u0440\u044c</option>\n<option value="12" selected="selected">\u0414\u0435\u043a\u0430\u0431\u0440\u044c</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>',
|
'<select name="mydate_day" id="id_mydate_day">\n<option value="0">---</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_month" id="id_mydate_month">\n<option value="0">---</option>\n<option value="1">\u042f\u043d\u0432\u0430\u0440\u044c</option>\n<option value="2">\u0424\u0435\u0432\u0440\u0430\u043b\u044c</option>\n<option value="3">\u041c\u0430\u0440\u0442</option>\n<option value="4">\u0410\u043f\u0440\u0435\u043b\u044c</option>\n<option value="5">\u041c\u0430\u0439</option>\n<option value="6">\u0418\u044e\u043d\u044c</option>\n<option value="7">\u0418\u044e\u043b\u044c</option>\n<option value="8">\u0410\u0432\u0433\u0443\u0441\u0442</option>\n<option value="9">\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c</option>\n<option value="10">\u041e\u043a\u0442\u044f\u0431\u0440\u044c</option>\n<option value="11">\u041d\u043e\u044f\u0431\u0440\u044c</option>\n<option value="12" selected="selected">\u0414\u0435\u043a\u0430\u0431\u0440\u044c</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="0">---</option>\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>',
|
||||||
SelectDateWidget(years=range(2009, 2019)).render('mydate', datetime.date(2009, 12, 31))
|
SelectDateWidget(years=range(2009, 2019)).render('mydate', datetime.date(2009, 12, 31))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -664,7 +666,7 @@ class FormattingTests(TransRealMixin, TestCase):
|
||||||
self.assertEqual(True, form6.is_valid())
|
self.assertEqual(True, form6.is_valid())
|
||||||
self.assertEqual(datetime.date(2009, 12, 31), form6.cleaned_data['date_field'])
|
self.assertEqual(datetime.date(2009, 12, 31), form6.cleaned_data['date_field'])
|
||||||
self.assertHTMLEqual(
|
self.assertHTMLEqual(
|
||||||
'<select name="mydate_month" id="id_mydate_month">\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12" selected="selected">December</option>\n</select>\n<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>',
|
'<select name="mydate_month" id="id_mydate_month">\n<option value="0">---</option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12" selected="selected">December</option>\n</select>\n<select name="mydate_day" id="id_mydate_day">\n<option value="0">---</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="0">---</option>\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>',
|
||||||
SelectDateWidget(years=range(2009, 2019)).render('mydate', datetime.date(2009, 12, 31))
|
SelectDateWidget(years=range(2009, 2019)).render('mydate', datetime.date(2009, 12, 31))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue