templatetags: add parse_date and parse_time, from django.utils.dateparse (#20846)
This commit is contained in:
parent
83120c469a
commit
029271b2a6
|
@ -162,6 +162,13 @@ def strptime(date_string, date_format):
|
|||
except ValueError:
|
||||
return None
|
||||
|
||||
@register.filter
|
||||
def parse_date(date_string):
|
||||
try:
|
||||
return dateparse.parse_date(date_string)
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
@register.filter
|
||||
def parse_datetime(date_string):
|
||||
try:
|
||||
|
@ -169,6 +176,13 @@ def parse_datetime(date_string):
|
|||
except ValueError:
|
||||
return None
|
||||
|
||||
@register.filter
|
||||
def parse_time(time_string):
|
||||
try:
|
||||
return dateparse.parse_time(time_string)
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
@register.filter
|
||||
def shown_because_admin(cell, request):
|
||||
if not (request.user and request.user.is_superuser):
|
||||
|
|
|
@ -17,6 +17,7 @@ def test_parse_datetime():
|
|||
t = Template('{% load combo %}{{ someday|parse_datetime|date:"Y m d H i s T" }}')
|
||||
expected = '2015 04 15 13 11 12 UTC'
|
||||
assert t.render(Context({'someday': '2015-04-15T13:11:12'})) == expected
|
||||
assert t.render(Context({'someday': '2015-04-15 13:11:12'})) == expected
|
||||
assert t.render(Context({'someday': '2015-04-15T13:11:12Z'})) == expected
|
||||
assert t.render(Context({'someday': '2015-04-15T13:11:12+00:00'})) == expected
|
||||
assert t.render(Context({'someday': '2015-04-15T13:11:12.12345'})) == expected
|
||||
|
@ -27,6 +28,27 @@ def test_parse_datetime():
|
|||
assert t.render(Context({'someday': 'foobar'})) == ''
|
||||
assert t.render(Context({'someday': ''})) == ''
|
||||
|
||||
t = Template('{% load combo %}{{ someday|parse_date|date:"Y m d" }}')
|
||||
expected = '2015 04 15'
|
||||
assert t.render(Context({'someday': '2015-04-15'})) == expected
|
||||
assert t.render(Context({'someday': '2015-04-15T13:11:12Z'})) == ''
|
||||
assert t.render(Context({'someday': 'foobar'})) == ''
|
||||
assert t.render(Context({'someday': ''})) == ''
|
||||
|
||||
t = Template('{% load combo %}{{ someday|parse_time|date:"H i s" }}')
|
||||
expected = '13 11 12'
|
||||
assert t.render(Context({'someday': '13:11:12'})) == expected
|
||||
assert t.render(Context({'someday': '13:11:12Z'})) == expected
|
||||
assert t.render(Context({'someday': '13:11:12+00:00'})) == expected
|
||||
assert t.render(Context({'someday': '13:11:12.12345'})) == expected
|
||||
assert t.render(Context({'someday': '13:11:12.12345Z'})) == expected
|
||||
assert t.render(Context({'someday': '13:11:12.12345+00:00'})) == expected
|
||||
assert t.render(Context({'someday': '13:11'})) == '13 11 00'
|
||||
assert t.render(Context({'someday': '13:99'})) == ''
|
||||
assert t.render(Context({'someday': '13'})) == ''
|
||||
assert t.render(Context({'someday': 'foobar'})) == ''
|
||||
assert t.render(Context({'someday': ''})) == ''
|
||||
|
||||
def test_has_role():
|
||||
t = Template('{% load combo %}{{ request.user|has_role:"Role1" }}')
|
||||
|
||||
|
|
Loading…
Reference in New Issue