Extracted specific EventListDesign, due to DRY

This commit is contained in:
Maximilian Giller 2019-03-10 15:07:27 +01:00
parent 53f823fdf2
commit 0a6d0ed2b1
2 changed files with 26 additions and 19 deletions

View file

@ -3,8 +3,7 @@ from PIL import ImageDraw
from TextDesign import TextDesign
from WeatherColumnDesign import WeatherColumnDesign
from datetime import date, timedelta
from EventListDesign import EventListDesign
from settings import hours
from SingelDayEventListDesign import SingelDayEventListDesign
numberbox_ypos = 0.15
numberbox_height = 1 - 2 * numberbox_ypos
@ -17,8 +16,6 @@ weekday_ypadding = 0.02
weathercolumn_y_size = (0.4, 1)
eventlist_y_fontsize = 0.093
eventlist_padding = monthbox_xpadding
eventlist_colspacing = 5
eventlist_allday_char = ""
numberbox_font_color = "white"
numberbox_background_color = "red"
@ -63,16 +60,9 @@ class DayHeaderDesign (DesignEntity):
size = (self.size[0] - pos[0] - weather_width, self.size[1] - pos[1] - box_ypos)
fontsize = eventlist_y_fontsize * self.size[1]
prefix_func = lambda x : self.__get_event_prefix__(x)
event_list = EventListDesign(size, calendar, fontsize, event_prefix_func=prefix_func, filter_date=self.date, col_spacing=eventlist_colspacing)
event_list = SingelDayEventListDesign(size, calendar, self.date, fontsize)
event_list.pos = pos
self.draw_design(event_list)
def __get_event_prefix__(self, event):
if event.allday:
return eventlist_allday_char
else:
return self.__get_time__(event.begin_datetime)
def __draw_weekday__ (self):
font_size = int(weekday_height * self.size[1])
@ -121,10 +111,4 @@ class DayHeaderDesign (DesignEntity):
def __get_day_text__ (self):
if self.date.strftime("%d-%m") is "14-03": #PI-Day
return "π"
return str(self.date.day)
def __get_time__ (self, time):
if hours == "24":
return time.strftime('%H:%M')
else:
return time.strftime('%I:%M')
return str(self.date.day)

View file

@ -0,0 +1,23 @@
from EventListDesign import EventListDesign
from settings import hours
eventlist_colspacing = 5
eventlist_allday_char = ""
class SingelDayEventListDesign (EventListDesign):
"""Specialized event list for day list design."""
def __init__ (self, size, calendar, date, font_size = 16):
prefix_func = lambda x : self.__get_event_prefix__(x)
super().__init__(size, calendar, filter_date=date, text_size=font_size, event_prefix_func=prefix_func, col_spacing=eventlist_colspacing)
def __get_event_prefix__ (self, event):
if event.allday:
return eventlist_allday_char
else:
return self.__get_time__(event.begin_datetime)
def __get_time__ (self, time):
if hours == "24":
return time.strftime('%H:%M')
else:
return time.strftime('%I:%M')