mirror of
https://github.com/jazzband/django-constance.git
synced 2026-03-16 22:40:24 +00:00
Fixed #211 -- Added datetime.timedelta support.
This commit is contained in:
parent
edbca6dd93
commit
fc5a32f2ac
6 changed files with 14 additions and 3 deletions
|
|
@ -1,4 +1,4 @@
|
|||
from datetime import datetime, date, time
|
||||
from datetime import datetime, date, time, timedelta
|
||||
from decimal import Decimal
|
||||
import hashlib
|
||||
from operator import itemgetter
|
||||
|
|
@ -42,6 +42,9 @@ FIELDS = {
|
|||
datetime: (
|
||||
fields.SplitDateTimeField, {'widget': widgets.AdminSplitDateTime}
|
||||
),
|
||||
timedelta: (
|
||||
fields.DurationField, {'widget': widgets.AdminTextInputWidget}
|
||||
),
|
||||
date: (fields.DateField, {'widget': widgets.AdminDateWidget}),
|
||||
time: (fields.TimeField, {'widget': widgets.AdminTimeWidget}),
|
||||
float: (fields.FloatField, {'widget': NUMERIC_WIDGET}),
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
from django.utils import six
|
||||
|
||||
from datetime import datetime, date, time
|
||||
from datetime import datetime, date, time, timedelta
|
||||
from decimal import Decimal
|
||||
|
||||
|
||||
|
|
@ -75,6 +75,7 @@ CONSTANCE_CONFIG = {
|
|||
'FLOAT_VALUE': (3.1415926536, 'PI'),
|
||||
'DATE_VALUE': (date(2010, 12, 24), 'Merry Chrismas'),
|
||||
'TIME_VALUE': (time(23, 59, 59), 'And happy New Year'),
|
||||
'TIMEDELTA_VALUE': (timedelta(days=1, hours=2, minutes=3), 'Interval'),
|
||||
'CHOICE_VALUE': ('yes', 'select yes or no', 'yes_no_null_select'),
|
||||
'LINEBREAK_VALUE': ('Spam spam', 'eggs\neggs'),
|
||||
'EMAIL_VALUE': ('test@example.com', 'An email', 'email'),
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
from datetime import datetime, date, time
|
||||
from datetime import datetime, date, time, timedelta
|
||||
from decimal import Decimal
|
||||
|
||||
from django.utils import six
|
||||
|
|
@ -28,6 +28,7 @@ class StorageTestsMixin(object):
|
|||
self.assertEqual(self.config.FLOAT_VALUE, 3.1415926536)
|
||||
self.assertEqual(self.config.DATE_VALUE, date(2010, 12, 24))
|
||||
self.assertEqual(self.config.TIME_VALUE, time(23, 59, 59))
|
||||
self.assertEqual(self.config.TIMEDELTA_VALUE, timedelta(days=1, hours=2, minutes=3))
|
||||
self.assertEqual(self.config.CHOICE_VALUE, 'yes')
|
||||
self.assertEqual(self.config.EMAIL_VALUE, 'test@example.com')
|
||||
|
||||
|
|
@ -42,6 +43,7 @@ class StorageTestsMixin(object):
|
|||
self.config.FLOAT_VALUE = 2.718281845905
|
||||
self.config.DATE_VALUE = date(2001, 12, 20)
|
||||
self.config.TIME_VALUE = time(1, 59, 0)
|
||||
self.config.TIMEDELTA_VALUE = timedelta(days=2, hours=3, minutes=4)
|
||||
self.config.CHOICE_VALUE = 'no'
|
||||
self.config.EMAIL_VALUE = 'foo@bar.com'
|
||||
|
||||
|
|
@ -56,6 +58,7 @@ class StorageTestsMixin(object):
|
|||
self.assertEqual(self.config.FLOAT_VALUE, 2.718281845905)
|
||||
self.assertEqual(self.config.DATE_VALUE, date(2001, 12, 20))
|
||||
self.assertEqual(self.config.TIME_VALUE, time(1, 59, 0))
|
||||
self.assertEqual(self.config.TIMEDELTA_VALUE, timedelta(days=2, hours=3, minutes=4))
|
||||
self.assertEqual(self.config.CHOICE_VALUE, 'no')
|
||||
self.assertEqual(self.config.EMAIL_VALUE, 'foo@bar.com')
|
||||
|
||||
|
|
@ -90,3 +93,4 @@ class StorageTestsMixin(object):
|
|||
self.assertEqual(self.config.FLOAT_VALUE, 3.1415926536) # this should be the default value
|
||||
self.assertEqual(self.config.DATE_VALUE, date(2001, 12, 20))
|
||||
self.assertEqual(self.config.TIME_VALUE, time(1, 59, 0))
|
||||
self.assertEqual(self.config.TIMEDELTA_VALUE, timedelta(days=1, hours=2, minutes=3))
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ u""" BOOL_VALUE True
|
|||
LINEBREAK_VALUE Spam spam
|
||||
DATE_VALUE 2010-12-24
|
||||
TIME_VALUE 23:59:59
|
||||
TIMEDELTA_VALUE 1 day, 2:03:00
|
||||
LONG_VALUE 123456
|
||||
STRING_VALUE Hello world
|
||||
UNICODE_VALUE Rivière-Bonjour რუსთაველი
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ class TestForm(TestCase):
|
|||
self.assertIsInstance(f.fields['UNICODE_VALUE'], fields.CharField)
|
||||
self.assertIsInstance(f.fields['DECIMAL_VALUE'], fields.DecimalField)
|
||||
self.assertIsInstance(f.fields['DATETIME_VALUE'], fields.SplitDateTimeField)
|
||||
self.assertIsInstance(f.fields['TIMEDELTA_VALUE'], fields.DurationField)
|
||||
self.assertIsInstance(f.fields['FLOAT_VALUE'], fields.FloatField)
|
||||
self.assertIsInstance(f.fields['DATE_VALUE'], fields.DateField)
|
||||
self.assertIsInstance(f.fields['TIME_VALUE'], fields.TimeField)
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ class UtilsTestCase(TestCase):
|
|||
'CHOICE_VALUE': 'yes',
|
||||
'TIME_VALUE': datetime.time(23, 59, 59),
|
||||
'DATE_VALUE': datetime.date(2010, 12, 24),
|
||||
'TIMEDELTA_VALUE': datetime.timedelta(days=1, hours=2, minutes=3),
|
||||
'LINEBREAK_VALUE': 'Spam spam',
|
||||
'DECIMAL_VALUE': Decimal('0.1'),
|
||||
'STRING_VALUE': 'Hello world',
|
||||
|
|
|
|||
Loading…
Reference in a new issue