templatetags: add parse_datetime, from django.utils.dateparse (#16178)

This commit is contained in:
Thomas NOËL 2017-05-10 14:12:58 +02:00
parent a1d79e0be9
commit b88c28bdb0
2 changed files with 22 additions and 0 deletions

View File

@ -21,6 +21,7 @@ import datetime
from django import template
from django.template import RequestContext
from django.template.base import TOKEN_BLOCK, TOKEN_VAR
from django.utils import dateparse
from combo.public.menu import get_menu_context
from combo.utils import NothingInCacheException
@ -117,6 +118,13 @@ def strptime(date_string, date_format):
except ValueError:
return None
@register.filter
def parse_datetime(date_string):
try:
return dateparse.parse_datetime(date_string)
except ValueError:
return None
@register.filter
def shown_because_admin(cell, request):
if not (request.user and request.user.is_superuser):

View File

@ -12,6 +12,20 @@ def test_strptime():
assert t.render(Context({'someday': '2015-04-15'})) == '2015'
assert t.render(Context({'someday': 'foobar'})) == ''
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-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
assert t.render(Context({'someday': '2015-04-15T13:11:12.12345Z'})) == expected
assert t.render(Context({'someday': '2015-04-15T13:11:12.12345+00:00'})) == expected
assert t.render(Context({'someday': '2015-04-15T13:11'})) == '2015 04 15 13 11 00 UTC'
assert t.render(Context({'someday': '2015-04-15T13'})) == ''
assert t.render(Context({'someday': 'foobar'})) == ''
assert t.render(Context({'someday': ''})) == ''
def test_has_role():
t = Template('{% load combo %}{{ request.user|has_role:"Role1" }}')