diff --git a/udata_front/frontend/helpers.py b/udata_front/frontend/helpers.py index 922efaf3d..3a7858b83 100644 --- a/udata_front/frontend/helpers.py +++ b/udata_front/frontend/helpers.py @@ -287,19 +287,23 @@ def short_day(date): def daterange_with_details(value): '''Display a date range in the shorter possible maner.''' - delta = value.end - value.start + if value.end: + delta = value.end - value.start + else: + delta = None + start, end = None, None - if is_first_year_day(value.start) and is_last_year_day(value.end): + if is_first_year_day(value.start) and (not value.end or is_last_year_day(value.end)): start = value.start.year - if delta.days > 365: + if delta and delta.days > 365: end = value.end.year - elif is_first_month_day(value.start) and is_last_month_day(value.end): + elif is_first_month_day(value.start) and (not value.end or is_last_month_day(value.end)): start = short_month(value.start) - if delta.days > 31: + if delta and delta.days > 31: end = short_month(value.end) else: start = short_day(value.start) - if value.start != value.end: + if value.end and value.start != value.end: end = short_day(value.end) return _('%(start)s to %(end)s', start=start, end=end) if end else start @@ -314,13 +318,15 @@ def daterange(value, details=False): if details: return daterange_with_details(value) - date_format = '%Y' - delta = value.end - value.start - start, end = None, None + date_format = '%Y' start = value.start.strftime(date_format) - if delta.days > 365: - end = value.end.strftime(date_format) + + end = None + if value.end: + delta = value.end - value.start + if delta.days > 365: + end = value.end.strftime(date_format) return '{start!s}–{end!s}'.format(start=start, end=end) if end else start