Loading AUTHORS +1 −0 Original line number Diff line number Diff line Loading @@ -521,6 +521,7 @@ answer newbie questions, and generally made Django that much better: Olivier Sels <olivier.sels@gmail.com> Orestis Markou <orestis@orestis.gr> Orne Brocaar <http://brocaar.com/> Oscar Ramirez <tuxskar@gmail.com> Ossama M. Khayat <okhayat@yahoo.com> Owen Griffiths Pablo Martín <goinnn@gmail.com> Loading django/db/migrations/writer.py +2 −0 Original line number Diff line number Diff line Loading @@ -305,6 +305,8 @@ class MigrationWriter(object): # Times elif isinstance(value, datetime.time): value_repr = repr(value) if isinstance(value, datetime_safe.time): value_repr = "datetime.%s" % value_repr return value_repr, {"import datetime"} # Settings references elif isinstance(value, SettingsReference): Loading django/utils/datetime_safe.py +8 −4 Original line number Diff line number Diff line Loading @@ -7,9 +7,9 @@ # >>> datetime_safe.date(1850, 8, 2).strftime("%Y/%m/%d was a %A") # '1850/08/02 was a Friday' from datetime import date as real_date, datetime as real_datetime from datetime import date as real_date, time as real_time, datetime as real_datetime import re import time import time as ttime class date(real_date): Loading @@ -31,6 +31,10 @@ class datetime(real_datetime): return date(self.year, self.month, self.day) class time(real_time): pass def new_date(d): "Generate a safe date from a datetime.date object." return date(d.year, d.month, d.day) Loading Loading @@ -80,10 +84,10 @@ def strftime(dt, fmt): # Move to around the year 2000 year = year + ((2000 - year) // 28) * 28 timetuple = dt.timetuple() s1 = time.strftime(fmt, (year,) + timetuple[1:]) s1 = ttime.strftime(fmt, (year,) + timetuple[1:]) sites1 = _findall(s1, str(year)) s2 = time.strftime(fmt, (year + 28,) + timetuple[1:]) s2 = ttime.strftime(fmt, (year + 28,) + timetuple[1:]) sites2 = _findall(s2, str(year + 28)) sites = [] Loading docs/releases/1.7.2.txt +2 −0 Original line number Diff line number Diff line Loading @@ -158,3 +158,5 @@ Bugfixes * Added quoting to field indexes in the SQL generated by migrations to prevent a crash when the index name requires it (:ticket:`#24015`). * Added ``datetime.time`` support to migrations questioner (:ticket:`23998`). tests/migrations/test_writer.py +4 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,10 @@ class WriterTests(TestCase): string, imports = MigrationWriter.serialize(safe_date) self.assertEqual(string, repr(datetime.date(2014, 3, 31))) self.assertEqual(imports, {'import datetime'}) safe_time = datetime_safe.time(10, 25) string, imports = MigrationWriter.serialize(safe_time) self.assertEqual(string, repr(datetime.time(10, 25))) self.assertEqual(imports, {'import datetime'}) safe_datetime = datetime_safe.datetime(2014, 3, 31, 16, 4, 31) string, imports = MigrationWriter.serialize(safe_datetime) self.assertEqual(string, repr(datetime.datetime(2014, 3, 31, 16, 4, 31))) Loading Loading
AUTHORS +1 −0 Original line number Diff line number Diff line Loading @@ -521,6 +521,7 @@ answer newbie questions, and generally made Django that much better: Olivier Sels <olivier.sels@gmail.com> Orestis Markou <orestis@orestis.gr> Orne Brocaar <http://brocaar.com/> Oscar Ramirez <tuxskar@gmail.com> Ossama M. Khayat <okhayat@yahoo.com> Owen Griffiths Pablo Martín <goinnn@gmail.com> Loading
django/db/migrations/writer.py +2 −0 Original line number Diff line number Diff line Loading @@ -305,6 +305,8 @@ class MigrationWriter(object): # Times elif isinstance(value, datetime.time): value_repr = repr(value) if isinstance(value, datetime_safe.time): value_repr = "datetime.%s" % value_repr return value_repr, {"import datetime"} # Settings references elif isinstance(value, SettingsReference): Loading
django/utils/datetime_safe.py +8 −4 Original line number Diff line number Diff line Loading @@ -7,9 +7,9 @@ # >>> datetime_safe.date(1850, 8, 2).strftime("%Y/%m/%d was a %A") # '1850/08/02 was a Friday' from datetime import date as real_date, datetime as real_datetime from datetime import date as real_date, time as real_time, datetime as real_datetime import re import time import time as ttime class date(real_date): Loading @@ -31,6 +31,10 @@ class datetime(real_datetime): return date(self.year, self.month, self.day) class time(real_time): pass def new_date(d): "Generate a safe date from a datetime.date object." return date(d.year, d.month, d.day) Loading Loading @@ -80,10 +84,10 @@ def strftime(dt, fmt): # Move to around the year 2000 year = year + ((2000 - year) // 28) * 28 timetuple = dt.timetuple() s1 = time.strftime(fmt, (year,) + timetuple[1:]) s1 = ttime.strftime(fmt, (year,) + timetuple[1:]) sites1 = _findall(s1, str(year)) s2 = time.strftime(fmt, (year + 28,) + timetuple[1:]) s2 = ttime.strftime(fmt, (year + 28,) + timetuple[1:]) sites2 = _findall(s2, str(year + 28)) sites = [] Loading
docs/releases/1.7.2.txt +2 −0 Original line number Diff line number Diff line Loading @@ -158,3 +158,5 @@ Bugfixes * Added quoting to field indexes in the SQL generated by migrations to prevent a crash when the index name requires it (:ticket:`#24015`). * Added ``datetime.time`` support to migrations questioner (:ticket:`23998`).
tests/migrations/test_writer.py +4 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,10 @@ class WriterTests(TestCase): string, imports = MigrationWriter.serialize(safe_date) self.assertEqual(string, repr(datetime.date(2014, 3, 31))) self.assertEqual(imports, {'import datetime'}) safe_time = datetime_safe.time(10, 25) string, imports = MigrationWriter.serialize(safe_time) self.assertEqual(string, repr(datetime.time(10, 25))) self.assertEqual(imports, {'import datetime'}) safe_datetime = datetime_safe.datetime(2014, 3, 31, 16, 4, 31) string, imports = MigrationWriter.serialize(safe_datetime) self.assertEqual(string, repr(datetime.datetime(2014, 3, 31, 16, 4, 31))) Loading