adds calendar_type settings to calendar

This commit is contained in:
Raphael Maenle 2020-07-25 11:27:24 +02:00
parent 45cd71cc4b
commit fec09edb88

View File

@ -16,8 +16,9 @@ API_SERVICE_NAME = 'calendar'
API_VERSION = 'v3' API_VERSION = 'v3'
class Calendar: class Calendar:
def __init__(self, name, calendarId, toggle='False', color="#000000"): def __init__(self, name, calendarId, calType, toggle='False', color="#000000"):
self.name = name self.name = name
self.calType = calType
self.color = color self.color = color
self.toggle=toggle self.toggle=toggle
self.calendarId = calendarId self.calendarId = calendarId
@ -81,6 +82,7 @@ def updateCalendars(user, calendars, colors):
if not user.hasCalendar(calendar.calendarId): if not user.hasCalendar(calendar.calendarId):
color = fromColorIdGetColor(calendar.color, colormap, colors) color = fromColorIdGetColor(calendar.color, colormap, colors)
c = dbCalendar(calendar_id = calendar.calendarId, c = dbCalendar(calendar_id = calendar.calendarId,
calendar_type = calendar.calType,
name = calendar.name, name = calendar.name,
toggle = "False", toggle = "False",
color = color) color = color)
@ -96,8 +98,9 @@ def calendarsFromDb(user):
calendarId = calendar.calendar_id calendarId = calendar.calendar_id
toggle = calendar.toggle toggle = calendar.toggle
color = calendar.color color = calendar.color
calType = calendar.calendar_type
pyCalendars.append(Calendar(name, calendarId, toggle, color)) pyCalendars.append(Calendar(name, calendarId, calType, toggle, color))
return pyCalendars return pyCalendars
@ -110,6 +113,7 @@ def purgeCalendars(calendars, visibleCalendars):
return purged return purged
# remaps a event color id to a calendar color id # remaps a event color id to a calendar color id
# for google calendars
def toCalendarColorId(colormap, colorId): def toCalendarColorId(colormap, colorId):
for remap in colormap['eventRemap']: for remap in colormap['eventRemap']:
if remap['from'] == colorId: if remap['from'] == colorId:
@ -119,6 +123,7 @@ def toCalendarColorId(colormap, colorId):
return colorId return colorId
# remaps a calendar color ID to its natural color # remaps a calendar color ID to its natural color
# for google calendars
def toNaturalColor(colormap, orgColor): def toNaturalColor(colormap, orgColor):
for remap in colormap['colors']: for remap in colormap['colors']:
if remap['api'] == orgColor: if remap['api'] == orgColor:
@ -127,7 +132,9 @@ def toNaturalColor(colormap, orgColor):
print(f"failed with {orgColor}") print(f"failed with {orgColor}")
return orgColor return orgColor
# use the event color id to convert it to a hex color # uses the event color id to convert it to a hex color
# does this for every event in events
# this is used for Google Calendars
def colorizeEvents(events, colors): def colorizeEvents(events, colors):
COLORS_FILE = os.path.join(os.path.dirname(__file__), 'colors.json') COLORS_FILE = os.path.join(os.path.dirname(__file__), 'colors.json')
with open(COLORS_FILE) as f: with open(COLORS_FILE) as f:
@ -138,10 +145,12 @@ def colorizeEvents(events, colors):
event.colorHex = forEventGetColor(event, colormap, colors) event.colorHex = forEventGetColor(event, colormap, colors)
# returns a color for a specific calendar color id # returns a color for a specific calendar color id
# for google calendars
def fromColorIdGetColor(color, colormap, colors): def fromColorIdGetColor(color, colormap, colors):
return toNaturalColor(colormap, colors['calendar'][color]['background']) return toNaturalColor(colormap, colors['calendar'][color]['background'])
# generates the natural color for a event color id # generates the natural color for a event color id
# for google calendars
def forEventGetColor(event, colormap, colors): def forEventGetColor(event, colormap, colors):
calColorId = toCalendarColorId(colormap, event.eventColorId) calColorId = toCalendarColorId(colormap, event.eventColorId)
bg = colors['calendar'][calColorId]['background'] bg = colors['calendar'][calColorId]['background']