diff --git a/imio_teleservices_templatetags/templatetags/imio_teleservices.py b/imio_teleservices_templatetags/templatetags/imio_teleservices.py index 542d8c9..ba92067 100644 --- a/imio_teleservices_templatetags/templatetags/imio_teleservices.py +++ b/imio_teleservices_templatetags/templatetags/imio_teleservices.py @@ -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)