[TELE-1302]fix bug with str and LazyDateObject

This commit is contained in:
Nicolas Selva 2022-08-10 15:59:51 +02:00
parent 1fcd8758e0
commit 43fde04a8a
1 changed files with 16 additions and 2 deletions

View File

@ -8,10 +8,18 @@ from django import template
from django.utils.safestring import SafeText
from wcs.qommon import misc
from wcs.qommon.templatetags.qommon import unlazy
from wcs.variables import LazyDateObject
register = template.Library()
def unlazy_date(fdate):
if isinstance(fdate, LazyDateObject):
return str(unlazy(fdate))
else:
return fdate
@register.filter
def clean_string(value):
return value.replace(" ", "").replace(".", "").replace("-", "")
@ -57,6 +65,9 @@ def diff_dates(oldest_date, newest_date):
"""
def transform_date(fdate):
if type(fdate) == LazyDateObject:
fdate = unlazy(fdate)
fdate = fdate[:10]
if "/" in fdate:
return datetime.datetime.strptime(fdate, "%d/%m/%Y")
if "-" in fdate:
@ -65,9 +76,12 @@ def diff_dates(oldest_date, newest_date):
if len(fdate.split("-")[0]) == 2:
return datetime.datetime.strptime(fdate, "%d-%m-%Y")
if type(oldest_date) == SafeText:
oldest_date = unlazy_date(oldest_date)
newest_date = unlazy_date(newest_date)
if type(oldest_date) in (SafeText, str):
oldest_date = transform_date(oldest_date)
if type(newest_date) == SafeText:
if type(newest_date) in (SafeText, str):
newest_date = transform_date(newest_date)
diff = abs((oldest_date - newest_date).days)
return str(diff)