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

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')