misc: extend |date filter to support more input types (#25976)
This commit is contained in:
parent
c29d4735ca
commit
12a413ab34
|
@ -716,3 +716,32 @@ def test_form_digest_date(pub):
|
|||
formdata.data = {'0': time.strptime('2015-05-12', '%Y-%m-%d')}
|
||||
formdata.store()
|
||||
assert formdef.data_class().get(formdata.id).digest == 'plop 12/05/2015 plop'
|
||||
|
||||
formdef.digest_template = 'plop {{ form_var_date|date:"Y" }} plop'
|
||||
formdef.store()
|
||||
formdata = formdef.data_class()()
|
||||
formdata.data = {'0': time.strptime('2015-05-12', '%Y-%m-%d')}
|
||||
formdata.store()
|
||||
assert formdef.data_class().get(formdata.id).digest == 'plop 2015 plop'
|
||||
|
||||
formdef.digest_template = 'plop {{ form_var_date_raw|date:"Y" }} plop'
|
||||
formdef.store()
|
||||
formdata = formdef.data_class()()
|
||||
formdata.data = {'0': time.strptime('2015-05-12', '%Y-%m-%d')}
|
||||
formdata.store()
|
||||
assert formdef.data_class().get(formdata.id).digest == 'plop 2015 plop'
|
||||
|
||||
formdef.digest_template = 'plop {{ form_var_date|date:"Y" }} plop'
|
||||
formdef.store()
|
||||
formdata = formdef.data_class()()
|
||||
formdata.data = {'0': None}
|
||||
formdata.store()
|
||||
assert formdef.data_class().get(formdata.id).digest == 'plop plop'
|
||||
|
||||
# check there's no crash when an invaliad variable is given
|
||||
formdef.digest_template = 'plop {{ blah|date:"Y" }} plop'
|
||||
formdef.store()
|
||||
formdata = formdef.data_class()()
|
||||
formdata.data = {'0': time.strptime('2015-05-12', '%Y-%m-%d')}
|
||||
formdata.store()
|
||||
assert formdef.data_class().get(formdata.id).digest == 'plop plop'
|
||||
|
|
|
@ -14,7 +14,10 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import datetime
|
||||
|
||||
from django import template
|
||||
from django.template import defaultfilters
|
||||
from django.utils import dateparse
|
||||
from django.utils.safestring import mark_safe
|
||||
from wcs.qommon import evalutils
|
||||
|
@ -66,6 +69,12 @@ def parse_time(time_string):
|
|||
except (ValueError, TypeError):
|
||||
return None
|
||||
|
||||
@register.filter(expects_localtime=True, is_safe=False)
|
||||
def date(value, arg=None):
|
||||
if not isinstance(value, (datetime.datetime, datetime.date, datetime.time)):
|
||||
value = parse_date(value)
|
||||
return defaultfilters.date(value, arg=arg)
|
||||
|
||||
@register.simple_tag
|
||||
def standard_text(text_id):
|
||||
return mark_safe(TextsDirectory.get_html_text(str(text_id)))
|
||||
|
|
Loading…
Reference in New Issue