misc: allow date and datetime european formats in evalutils and template tags (#21611)
This commit is contained in:
parent
4ba7996883
commit
1b1a64764f
|
@ -84,14 +84,19 @@ def test_template_encoding():
|
|||
|
||||
|
||||
def test_datetime_templatetags():
|
||||
tmpl = Template('{% load qommon %}{{ plop|parse_datetime|date:"d" }}')
|
||||
assert tmpl.render({'plop': '2017-12-21 10:32'}) == '21'
|
||||
tmpl = Template('{% load qommon %}{{ plop|parse_datetime|date:"d i" }}')
|
||||
assert tmpl.render({'plop': '2017-12-21 10:32'}) == '21 32'
|
||||
assert tmpl.render({'plop': '2017-12-21 10:32:42'}) == '21 32'
|
||||
assert tmpl.render({'plop': '21/12/2017 10:32'}) == '21 32'
|
||||
assert tmpl.render({'plop': '21/12/2017 10:32:42'}) == '21 32'
|
||||
assert tmpl.render({'plop': '21/12/2017 10h32'}) == '21 32'
|
||||
assert tmpl.render({'plop': 'x'}) == ''
|
||||
|
||||
tmpl = Template('{% load qommon %}{{ plop|parse_date|date:"d" }}')
|
||||
assert tmpl.render({'plop': '2017-12-21'}) == '21'
|
||||
assert tmpl.render({'plop': '21/12/2017'}) == '21'
|
||||
assert tmpl.render({'plop': 'x'}) == ''
|
||||
|
||||
tmpl = Template('{% load qommon %}{{ plop|parse_time|date:"H" }}')
|
||||
assert tmpl.render({'plop': '10:32'}) == '10'
|
||||
tmpl = Template('{% load qommon %}{{ plop|parse_time|date:"H i" }}')
|
||||
assert tmpl.render({'plop': '10:32'}) == '10 32'
|
||||
assert tmpl.render({'plop': 'x'}) == ''
|
||||
|
|
|
@ -190,7 +190,7 @@ DATE_FORMATS = {
|
|||
|
||||
DATETIME_FORMATS = {
|
||||
'C': ['%Y-%m-%d %H:%M', '%Y-%m-%d %H:%M:%S', '%Y-%m-%dT%H:%M:%S', '%Y-%m-%dT%H:%M:%SZ'],
|
||||
'fr': ['%d/%m/%Y %H:%M'],
|
||||
'fr': ['%d/%m/%Y %H:%M', '%d/%m/%Y %H:%M:%S', '%d/%m/%Y %Hh%M'],
|
||||
}
|
||||
|
||||
def datetime_format():
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
from django import template
|
||||
from django.utils import dateparse
|
||||
from wcs.qommon import evalutils
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
@ -25,6 +26,11 @@ def get(mapping, key):
|
|||
|
||||
@register.filter
|
||||
def parse_date(date_string):
|
||||
try:
|
||||
return evalutils.make_date(date_string)
|
||||
except ValueError:
|
||||
pass
|
||||
# fallback to Django function
|
||||
try:
|
||||
return dateparse.parse_date(date_string)
|
||||
except ValueError:
|
||||
|
@ -32,6 +38,11 @@ def parse_date(date_string):
|
|||
|
||||
@register.filter
|
||||
def parse_datetime(datetime_string):
|
||||
try:
|
||||
return evalutils.make_datetime(datetime_string)
|
||||
except ValueError:
|
||||
pass
|
||||
# fallback to Django function
|
||||
try:
|
||||
return dateparse.parse_datetime(datetime_string)
|
||||
except ValueError:
|
||||
|
|
Loading…
Reference in New Issue