Changed transmitting of calendar to transmitting of events
This commit is contained in:
parent
672d7058d8
commit
5838734c9f
6 changed files with 33 additions and 23 deletions
|
@ -42,7 +42,10 @@ class DayHeaderDesign (DesignEntity):
|
||||||
self.draw_design(design)
|
self.draw_design(design)
|
||||||
|
|
||||||
def add_calendar (self, calendar):
|
def add_calendar (self, calendar):
|
||||||
self.__draw_event_list__(calendar)
|
self.__draw_event_list__(calendar.get_today_events())
|
||||||
|
|
||||||
|
def add_events (self, events):
|
||||||
|
self.__draw_event_list__(events)
|
||||||
|
|
||||||
def add_rssfeed (self, rss):
|
def add_rssfeed (self, rss):
|
||||||
pass
|
pass
|
||||||
|
@ -52,7 +55,7 @@ class DayHeaderDesign (DesignEntity):
|
||||||
self.__draw_month__()
|
self.__draw_month__()
|
||||||
self.__draw_weekday__()
|
self.__draw_weekday__()
|
||||||
|
|
||||||
def __draw_event_list__ (self, calendar):
|
def __draw_event_list__ (self, events):
|
||||||
box_ypos = numberbox_ypos * self.size[1]
|
box_ypos = numberbox_ypos * self.size[1]
|
||||||
box_xpos = numberbox_ypos * self.size[1]
|
box_xpos = numberbox_ypos * self.size[1]
|
||||||
box_height = numberbox_height * self.size[1]
|
box_height = numberbox_height * self.size[1]
|
||||||
|
@ -63,7 +66,7 @@ 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]
|
||||||
|
|
||||||
event_list = SingelDayEventListDesign(size, calendar, self.date, fontsize, general_color=general_text_color, background_color=background_color, highlight_color=highlight_color)
|
event_list = SingelDayEventListDesign(size, events, fontsize, general_color=general_text_color, background_color=background_color, highlight_color=highlight_color)
|
||||||
event_list.pos = pos
|
event_list.pos = pos
|
||||||
self.draw_design(event_list)
|
self.draw_design(event_list)
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,8 @@ class DayRowDesign (DesignEntity):
|
||||||
size = (self.size[0] - pos[0] - weather_width, self.size[1] - pos[1])
|
size = (self.size[0] - pos[0] - weather_width, self.size[1] - pos[1])
|
||||||
fontsize = eventlist_y_fontsize * self.size[1]
|
fontsize = eventlist_y_fontsize * self.size[1]
|
||||||
|
|
||||||
event_list = SingelDayEventListDesign(size, calendar, self.date, fontsize, line_spacing=0, general_color=general_text_color, background_color=background_color, highlight_color=highlight_text_color)
|
events = calendar.get_day_events(self.date)
|
||||||
|
event_list = SingelDayEventListDesign(size, events, fontsize, line_spacing=0, general_color=general_text_color, background_color=background_color, highlight_color=highlight_text_color)
|
||||||
event_list.pos = pos
|
event_list.pos = pos
|
||||||
self.draw_design(event_list)
|
self.draw_design(event_list)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
from PanelDesign import PanelDesign
|
from PanelDesign import PanelDesign
|
||||||
from datetime import datetime, timedelta, date
|
from datetime import datetime, timedelta, date
|
||||||
|
from DayHeaderDesign import DayHeaderDesign
|
||||||
|
|
||||||
|
header_size = (1, 0.2)
|
||||||
|
|
||||||
class DayViewPanel (PanelDesign):
|
class DayViewPanel (PanelDesign):
|
||||||
"""Overview that focuses on the current day and
|
"""Overview that focuses on the current day and
|
||||||
|
@ -9,13 +12,13 @@ class DayViewPanel (PanelDesign):
|
||||||
self.__first_render__()
|
self.__first_render__()
|
||||||
|
|
||||||
def __first_render__ (self):
|
def __first_render__ (self):
|
||||||
pass
|
self.__init_header__()
|
||||||
|
|
||||||
def add_weather (self, weather):
|
def add_weather (self, weather):
|
||||||
pass
|
self.__header__.add_weather(weather)
|
||||||
|
|
||||||
def add_calendar (self, calendar):
|
def add_calendar (self, calendar):
|
||||||
pass
|
self.__add_allday_events__(calendar)
|
||||||
|
|
||||||
def add_rssfeed (self, rss):
|
def add_rssfeed (self, rss):
|
||||||
pass
|
pass
|
||||||
|
@ -24,7 +27,15 @@ class DayViewPanel (PanelDesign):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def __finish_image__ (self):
|
def __finish_image__ (self):
|
||||||
pass
|
self.draw_design(self.__header__)
|
||||||
|
|
||||||
|
def __init_header__ (self):
|
||||||
|
self.__header__ = DayHeaderDesign(self.__abs_co__(header_size), date.today())
|
||||||
|
self.__header__.pos = (0, 0)
|
||||||
|
|
||||||
|
def __add_allday_events__ (self, calendar):
|
||||||
|
allday_events = [event for event in calendar.get_today_events() if event.allday]
|
||||||
|
self.__header__.add_events(allday_events)
|
||||||
|
|
||||||
def __abs_co__ (self, coordinates):
|
def __abs_co__ (self, coordinates):
|
||||||
return (int(coordinates[0] * self.size[0]),int(coordinates[1] * self.size[1]))
|
return (int(coordinates[0] * self.size[0]),int(coordinates[1] * self.size[1]))
|
|
@ -4,13 +4,12 @@ from TableTextDesign import TableTextDesign
|
||||||
class EventListDesign (DesignEntity):
|
class EventListDesign (DesignEntity):
|
||||||
"""Creates a TableTextDesign filled with event
|
"""Creates a TableTextDesign filled with event
|
||||||
begin date and title"""
|
begin date and title"""
|
||||||
def __init__ (self, size, calendar, text_size = 16, filter_date=None, line_spacing=2, col_spacing=10, event_prefix_func=None, font_family=None, general_color="black", background_color="white", highlight_color="red"):
|
def __init__ (self, size, events, text_size = 16, line_spacing=2, col_spacing=10, event_prefix_func=None, font_family=None, general_color="black", background_color="white", highlight_color="red"):
|
||||||
super(EventListDesign, self).__init__(size)
|
super(EventListDesign, self).__init__(size)
|
||||||
self.calendar = calendar
|
self.events = events
|
||||||
self.__event_matrix__ = []
|
self.__event_matrix__ = []
|
||||||
self.__props_matrix__ = []
|
self.__props_matrix__ = []
|
||||||
self.text_size = text_size
|
self.text_size = text_size
|
||||||
self.filter_date = filter_date
|
|
||||||
self.line_spacing = line_spacing
|
self.line_spacing = line_spacing
|
||||||
self.col_spacing = col_spacing
|
self.col_spacing = col_spacing
|
||||||
self.font_family = font_family
|
self.font_family = font_family
|
||||||
|
@ -39,17 +38,11 @@ class EventListDesign (DesignEntity):
|
||||||
return text
|
return text
|
||||||
|
|
||||||
def __fill_event_matrix__ (self):
|
def __fill_event_matrix__ (self):
|
||||||
for event in self.__get_events__():
|
for event in self.events:
|
||||||
row = self.__get_formatted_event__(event)
|
row = self.__get_formatted_event__(event)
|
||||||
self.__event_matrix__.append(row)
|
self.__event_matrix__.append(row)
|
||||||
self.__props_matrix__.append(self.__get_row_props__(event))
|
self.__props_matrix__.append(self.__get_row_props__(event))
|
||||||
|
|
||||||
def __get_events__(self):
|
|
||||||
upcoming = self.calendar.get_upcoming_events()
|
|
||||||
if self.filter_date is not None:
|
|
||||||
upcoming = [event for event in upcoming if event.begin_datetime.date() == self.filter_date]
|
|
||||||
return upcoming
|
|
||||||
|
|
||||||
def __get_row_props__(self, event):
|
def __get_row_props__(self, event):
|
||||||
color = self.general_color
|
color = self.general_color
|
||||||
bg_color = self.background_color
|
bg_color = self.background_color
|
||||||
|
|
|
@ -80,7 +80,9 @@ class MonthOvPanel (PanelDesign):
|
||||||
month_height = self.month_block.get_real_height()
|
month_height = self.month_block.get_real_height()
|
||||||
size = self.__abs_pos__(infolistsize)
|
size = self.__abs_pos__(infolistsize)
|
||||||
size = (size[0], size[1] - month_height)
|
size = (size[0], size[1] - month_height)
|
||||||
info_list = EventListDesign(size, calendar, text_size=infolisttextsizeize)
|
|
||||||
|
events = calendar.get_upcoming_events()
|
||||||
|
info_list = EventListDesign(size, events, text_size=infolisttextsizeize)
|
||||||
info_list.pos = (int(month_pos[0] + infolisthorizontalpos * self.size[0]), int(month_pos[1] + month_height))
|
info_list.pos = (int(month_pos[0] + infolisthorizontalpos * self.size[0]), int(month_pos[1] + month_height))
|
||||||
self.draw_design(info_list)
|
self.draw_design(info_list)
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,9 @@ font = fonts["regular"]
|
||||||
|
|
||||||
class SingelDayEventListDesign (EventListDesign):
|
class SingelDayEventListDesign (EventListDesign):
|
||||||
"""Specialized event list for day list design."""
|
"""Specialized event list for day list design."""
|
||||||
def __init__ (self, size, calendar, date, font_size = 16, line_spacing=2, col_spacing=5, general_color="black", background_color="white", highlight_color="red"):
|
def __init__ (self, size, events, font_size = 16, line_spacing=2, col_spacing=5, general_color="black", background_color="white", highlight_color="red"):
|
||||||
prefix_func = lambda x : self.__get_event_prefix__(x)
|
prefix_func = lambda x : self.__get_event_prefix__(x)
|
||||||
super().__init__(size, calendar, filter_date=date, text_size=font_size, line_spacing=line_spacing, col_spacing=col_spacing, event_prefix_func=prefix_func, font_family=font)
|
super().__init__(size, events, text_size=font_size, line_spacing=line_spacing, col_spacing=col_spacing, event_prefix_func=prefix_func, font_family=font)
|
||||||
|
|
||||||
def __get_event_prefix__ (self, event):
|
def __get_event_prefix__ (self, event):
|
||||||
if event.allday:
|
if event.allday:
|
||||||
|
|
Loading…
Reference in a new issue