summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManatsawin Hanmongkolchai <manatsawin@gmail.com>2018-02-11 04:05:41 +0700
committerTim Graham <timograham@gmail.com>2018-02-10 16:06:03 -0500
commita1286b5a64bc56c3e33e53ffac0eefce76f3efdb (patch)
treec486f095c4f9b1211f04542e0b0b57c315379065
parent7b20d01a84ad5ac2da9b0604a736cbe174e900e0 (diff)
[2.0.x] Fixed #29109 -- Fixed the admin time picker widget for the Thai locale.
Backport of 1a1264f1494976c562c7cb832fe47f3e1e765b8f from master
-rw-r--r--django/conf/locale/th/formats.py4
-rw-r--r--docs/releases/2.0.3.txt4
-rw-r--r--tests/i18n/tests.py17
3 files changed, 23 insertions, 2 deletions
diff --git a/django/conf/locale/th/formats.py b/django/conf/locale/th/formats.py
index d4f478e0c1..5a980f097c 100644
--- a/django/conf/locale/th/formats.py
+++ b/django/conf/locale/th/formats.py
@@ -19,13 +19,13 @@ DATE_INPUT_FORMATS = [
'%d %B %Y', # 25 ตุลาคม 2006
]
TIME_INPUT_FORMATS = [
- '%H:%M:%S.%f', # 14:30:59.000200
'%H:%M:%S', # 14:30:59
+ '%H:%M:%S.%f', # 14:30:59.000200
'%H:%M', # 14:30
]
DATETIME_INPUT_FORMATS = [
- '%d/%m/%Y %H:%M:%S.%f', # 25/10/2006 14:30:59.000200
'%d/%m/%Y %H:%M:%S', # 25/10/2006 14:30:59
+ '%d/%m/%Y %H:%M:%S.%f', # 25/10/2006 14:30:59.000200
'%d/%m/%Y %H:%M', # 25/10/2006 14:30
]
DECIMAL_SEPARATOR = '.'
diff --git a/docs/releases/2.0.3.txt b/docs/releases/2.0.3.txt
index 4fbca2e247..277cab7573 100644
--- a/docs/releases/2.0.3.txt
+++ b/docs/releases/2.0.3.txt
@@ -11,3 +11,7 @@ Bugfixes
* Fixed a regression that caused sliced ``QuerySet.distinct().order_by()``
followed by ``count()`` to crash (:ticket:`29108`).
+
+* Prioritized the datetime and time input formats without ``%f`` for the Thai
+ locale to fix the admin time picker widget displaying "undefined"
+ (:ticket:`29109`).
diff --git a/tests/i18n/tests.py b/tests/i18n/tests.py
index 83e2260a51..4e35391a83 100644
--- a/tests/i18n/tests.py
+++ b/tests/i18n/tests.py
@@ -3,6 +3,7 @@ import decimal
import gettext as gettext_module
import os
import pickle
+import re
from contextlib import contextmanager
from importlib import import_module
from threading import local
@@ -1091,6 +1092,22 @@ class FormattingTests(SimpleTestCase):
with translation.override('fr', deactivate=True):
self.assertEqual('d/m/Y CUSTOM', get_format('CUSTOM_DAY_FORMAT'))
+ def test_admin_javascript_supported_input_formats(self):
+ """
+ The first input format for DATE_INPUT_FORMATS, TIME_INPUT_FORMATS, and
+ DATETIME_INPUT_FORMATS must not contain %f since that's unsupported by
+ the admin's time picker widget.
+ """
+ regex = re.compile('%([^BcdHImMpSwxXyY%])')
+ for language_code, language_name in settings.LANGUAGES:
+ for format_name in ('DATE_INPUT_FORMATS', 'TIME_INPUT_FORMATS', 'DATETIME_INPUT_FORMATS'):
+ with self.subTest(language=language_code, format=format_name):
+ formatter = get_format(format_name, lang=language_code)[0]
+ self.assertEqual(
+ regex.findall(formatter), [],
+ "%s locale's %s uses an unsupported format code." % (language_code, format_name)
+ )
+
class MiscTests(SimpleTestCase):