Code

Ticket #12472: 12472.diff

File 12472.diff, 6.6 KB (added by ramiro, 4 years ago)
Line 
1diff -r 1c03bc321e39 django/contrib/databrowse/datastructures.py
2--- a/django/contrib/databrowse/datastructures.py       Wed Dec 30 19:11:11 2009 -0300
3+++ b/django/contrib/databrowse/datastructures.py       Thu Dec 31 10:03:16 2009 -0300
4@@ -158,7 +158,7 @@
5                 if isinstance(self.field, models.DateTimeField):
6                     objs = capfirst(formats.date_format(self.raw_value, 'DATETIME_FORMAT'))
7                 elif isinstance(self.field, models.TimeField):
8-                    objs = capfirst(formats.date_format(self.raw_value, 'TIME_FORMAT'))
9+                    objs = capfirst(formats.time_format(self.raw_value, 'TIME_FORMAT'))
10                 else:
11                     objs = capfirst(formats.date_format(self.raw_value, 'DATE_FORMAT'))
12             else:
13diff -r 1c03bc321e39 django/template/defaultfilters.py
14--- a/django/template/defaultfilters.py Wed Dec 30 19:11:11 2009 -0300
15+++ b/django/template/defaultfilters.py Thu Dec 31 10:03:16 2009 -0300
16@@ -18,7 +18,7 @@
17 from django.utils.translation import ugettext, ungettext
18 from django.utils.encoding import force_unicode, iri_to_uri
19 from django.utils.safestring import mark_safe, SafeData
20-from django.utils.formats import date_format, number_format
21+from django.utils.formats import date_format, time_format, number_format
22 
23 register = Library()
24 
25@@ -696,16 +696,16 @@
26 
27 def time(value, arg=None):
28     """Formats a time according to the given format."""
29-    from django.utils.dateformat import time_format
30+    from django.utils.dateformat import time_format as df_time_format
31     if value in (None, u''):
32         return u''
33     if arg is None:
34         arg = settings.TIME_FORMAT
35     try:
36-        return date_format(value, arg)
37+        return time_format(value, arg)
38     except AttributeError:
39         try:
40-            return time_format(value, arg)
41+            return df_time_format(value, arg)
42         except AttributeError:
43             return ''
44 time.is_safe = False
45diff -r 1c03bc321e39 django/utils/formats.py
46--- a/django/utils/formats.py   Wed Dec 30 19:11:11 2009 -0300
47+++ b/django/utils/formats.py   Thu Dec 31 10:03:16 2009 -0300
48@@ -53,6 +53,12 @@
49     """
50     return dateformat.format(value, get_format(format or 'DATE_FORMAT'))
51 
52+def time_format(value, format=None):
53+    """
54+    Formats a datetime.time object using a localizable format
55+    """
56+    return dateformat.time_format(value, get_format(format or 'TIME_FORMAT'))
57+
58 def number_format(value, decimal_pos=None):
59     """
60     Formats a numeric value using localization settings
61@@ -90,7 +96,7 @@
62                 return value.strftime(get_format('DATE_INPUT_FORMATS')[0])
63         elif isinstance(value, datetime.time):
64             if not is_input:
65-                return date_format(value, 'TIME_FORMAT')
66+                return time_format(value, 'TIME_FORMAT')
67             else:
68                 return value.strftime(get_format('TIME_INPUT_FORMATS')[0])
69     return value
70diff -r 1c03bc321e39 tests/regressiontests/i18n/tests.py
71--- a/tests/regressiontests/i18n/tests.py       Wed Dec 30 19:11:11 2009 -0300
72+++ b/tests/regressiontests/i18n/tests.py       Thu Dec 31 10:03:16 2009 -0300
73@@ -4,7 +4,7 @@
74 
75 from django.template import Template, Context
76 from django.conf import settings
77-from django.utils.formats import get_format, date_format, number_format, localize
78+from django.utils.formats import get_format, date_format, time_format, number_format, localize
79 from django.utils.numberformat import format
80 from django.test import TestCase, client
81 from django.utils.translation import ugettext, ugettext_lazy, activate, deactivate, gettext_lazy
82@@ -90,8 +90,10 @@
83         self.f = 99999.999
84         self.d = datetime.date(2009, 12, 31)
85         self.dt = datetime.datetime(2009, 12, 31, 20, 50)
86+        self.t = datetime.time(10, 15, 48)
87         self.ctxt = Context({
88             'n': self.n,
89+            't': self.t,
90             'd': self.d,
91             'dt': self.dt,
92             'f': self.f
93@@ -102,10 +104,10 @@
94         settings.USE_I18N = self._use_i18n
95         settings.USE_L10N = self._use_l10n
96         settings.USE_THOUSAND_SEPARATOR = self._use_thousand_separator
97-   
98+
99     def test_locale_independent(self):
100         """
101-        Localization of dates and numbers
102+        Localization of numbers
103         """
104         settings.USE_L10N = True
105         settings.USE_THOUSAND_SEPARATOR = False
106@@ -129,6 +131,7 @@
107             self.assertEqual('N j, Y', get_format('DATE_FORMAT'))
108             self.assertEqual(0, get_format('FIRST_DAY_OF_WEEK'))
109             self.assertEqual('.', get_format('DECIMAL_SEPARATOR'))
110+            self.assertEqual(u'10:15 a.m.', time_format(self.t))
111             self.assertEqual(u'des. 31, 2009', date_format(self.d))
112             self.assertEqual(u'desembre 2009', date_format(self.d, 'YEAR_MONTH_FORMAT'))
113             self.assertEqual(u'12/31/2009 8:50 p.m.', date_format(self.dt, 'SHORT_DATETIME_FORMAT'))
114@@ -143,6 +146,7 @@
115             self.assertEqual(u'2009-12-31 20:50:00', Template('{{ dt }}').render(self.ctxt))
116             self.assertEqual(u'66666.67', Template('{{ n|floatformat:2 }}').render(self.ctxt))
117             self.assertEqual(u'100000.0', Template('{{ f|floatformat }}').render(self.ctxt))
118+            self.assertEqual(u'10:15 a.m.', Template('{{ t|time:"TIME_FORMAT" }}').render(self.ctxt))
119             self.assertEqual(u'12/31/2009', Template('{{ d|date:"SHORT_DATE_FORMAT" }}').render(self.ctxt))
120             self.assertEqual(u'12/31/2009 8:50 p.m.', Template('{{ dt|date:"SHORT_DATETIME_FORMAT" }}').render(self.ctxt))
121 
122@@ -183,6 +187,7 @@
123             self.assertEqual('j \de F \de Y', get_format('DATE_FORMAT'))
124             self.assertEqual(1, get_format('FIRST_DAY_OF_WEEK'))
125             self.assertEqual(',', get_format('DECIMAL_SEPARATOR'))
126+            self.assertEqual(u'10:15:48', time_format(self.t))
127             self.assertEqual(u'31 de desembre de 2009', date_format(self.d))
128             self.assertEqual(u'desembre del 2009', date_format(self.d, 'YEAR_MONTH_FORMAT'))
129             self.assertEqual(u'31/12/2009 20:50', date_format(self.dt, 'SHORT_DATETIME_FORMAT'))
130@@ -209,6 +214,7 @@
131             self.assertEqual(u'31 de desembre de 2009 a les 20:50', Template('{{ dt }}').render(self.ctxt))
132             self.assertEqual(u'66666,67', Template('{{ n|floatformat:2 }}').render(self.ctxt))
133             self.assertEqual(u'100000,0', Template('{{ f|floatformat }}').render(self.ctxt))
134+            self.assertEqual(u'10:15:48', Template('{{ t|time:"TIME_FORMAT" }}').render(self.ctxt))
135             self.assertEqual(u'31/12/2009', Template('{{ d|date:"SHORT_DATE_FORMAT" }}').render(self.ctxt))
136             self.assertEqual(u'31/12/2009 20:50', Template('{{ dt|date:"SHORT_DATETIME_FORMAT" }}').render(self.ctxt))
137