Fine tuned displayed texts for multi-day events

This commit is contained in:
Maximilian Giller 2019-04-05 22:23:01 +02:00
parent afd94ea10f
commit d7f485cba6

View file

@ -4,7 +4,10 @@ from datetime import timedelta, datetime, timezone
first_occurrence_char = '[' first_occurrence_char = '['
middle_occurrence_char = '|' middle_occurrence_char = '|'
last_occurrence_char = ']' last_occurrence_char = ']'
multiday_begin_character = ' >'
multiday_end_character = '< '
until_character = '-' until_character = '-'
allday_character = ""
allday_lang = { allday_lang = {
"en" : "All day", "en" : "All day",
@ -12,6 +15,12 @@ allday_lang = {
} }
allday_detailed = allday_lang[language] allday_detailed = allday_lang[language]
multiday_lang = {
"en" : "Multi-day",
"de" : "Mehrtägig"
}
multiday_detailed = multiday_lang[language]
def time_str (dt): def time_str (dt):
if hours is "12": if hours is "12":
return dt.strftime("%I:%M%p") return dt.strftime("%I:%M%p")
@ -20,7 +29,7 @@ def time_str (dt):
else: else:
return str(dt) return str(dt)
def event_prefix_str (event, relative_date=None): def event_prefix_str_md_dif (event, relative_date=None):
if relative_date is None: if relative_date is None:
relative_date = event.begin_datetime.date() relative_date = event.begin_datetime.date()
@ -30,21 +39,30 @@ def event_prefix_str (event, relative_date=None):
#Relative to #Relative to
#First day #First day
elif __equal__(event.begin_datetime, relative_date): elif __equal__(event.begin_datetime, relative_date):
return event_time_summary(event) + until_character return event_time_summary(event) + multiday_begin_character
#Last day #Last day
elif __equal__(event.end_datetime, relative_date) or \ elif __equal__(event.end_datetime, relative_date) or \
(__day_duration__(event.end_datetime) == timedelta(0) and __equal__(relative_date + timedelta(1), event.end_datetime)): (__day_duration__(event.end_datetime) == timedelta(0) and __equal__(relative_date + timedelta(1), event.end_datetime)):
return until_character + event_time_summary(event) return multiday_end_character + event_time_summary(event)
#Some day #Some day
else: else:
event.allday = True event.allday = True
return until_character + event_time_summary(event) + until_character return multiday_end_character + event_time_summary(event) + multiday_begin_character
def event_prefix_str (event, relative_date=None):
if relative_date is None:
relative_date = event.begin_datetime.date()
if __is_multiday__(event):
return multiday_detailed
else:
return event_time_summary(event)
def event_time_summary (event): def event_time_summary (event):
if event.allday: if event.allday:
return "" return allday_character
else: else:
return time_str(event.begin_datetime) return time_str(event.begin_datetime)
@ -63,7 +81,13 @@ def remove_leading_zero (text):
return text return text
def date_summary_str(dt): def date_summary_str(dt):
return dt.strftime('%a %d. %b') day = remove_leading_zero(dt.strftime("%d"))
if language is "en":
return dt.strftime('%a ' + day + '. %b')
elif language is "de":
return dt.strftime(day + '. %b., %a')
else:
return dt.strftime('%a ' + day + '. %b')
def __is_multiday__ (event): def __is_multiday__ (event):
if event.allday and event.duration == timedelta(1): if event.allday and event.duration == timedelta(1):