Skip to content

Commit

Permalink
Allow null end for daterange
Browse files Browse the repository at this point in the history
  • Loading branch information
ThibaudDauce committed May 16, 2024
1 parent 5b6a9c6 commit 9fd7177
Showing 1 changed file with 17 additions and 11 deletions.
28 changes: 17 additions & 11 deletions udata_front/frontend/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand Down

0 comments on commit 9fd7177

Please sign in to comment.