Extracted specific EventListDesign, due to DRY
This commit is contained in:
parent
53f823fdf2
commit
0a6d0ed2b1
2 changed files with 26 additions and 19 deletions
|
@ -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')
|
|
23
Calendar/SingelDayEventListDesign.py
Normal file
23
Calendar/SingelDayEventListDesign.py
Normal 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')
|
Loading…
Reference in a new issue