/usr/lib/python2.7/dist-packages/kopano/appointment.py is in python-kopano 8.5.5-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | """
Part of the high-level python bindings for Kopano
Copyright 2005 - 2016 Zarafa and its licensors (see LICENSE file)
Copyright 2016 - Kopano and its licensors (see LICENSE file)
"""
from MAPI import (
PT_SYSTIME,
)
from .errors import NotFoundError
from .recurrence import Recurrence, Occurrence
class Appointment(object):
"""Appointment mixin class"""
@property
def start(self): # XXX optimize, guid
return self.prop('common:34070').value
@start.setter
def start(self, val):
# XXX check if exists?
self.create_prop('common:34070', val, PT_SYSTIME)
self.create_prop('appointment:33293', val, PT_SYSTIME)
@property
def end(self): # XXX optimize, guid
return self.prop('common:34071').value
@end.setter
def end(self, val):
# XXX check if exists?
self.create_prop('common:34071', val, PT_SYSTIME)
self.create_prop('appointment:33294', val, PT_SYSTIME)
@property
def location(self):
try:
return self.prop('appointment:33288').value
except NotFoundError:
pass
@property
def recurring(self):
return self.prop('appointment:33315').value
@property
def recurrence(self):
return Recurrence(self)
def occurrences(self, start=None, end=None):
if self.recurring:
for occ in self.recurrence.occurrences(start=start, end=end):
yield occ
else:
if (not start or self.end > start) and \
(not end or self.start < end):
start = max(self.start, start) if start else self.start
end = min(self.end, end) if end else self.end
yield Occurrence(self, start, end)
@property
def rrule(self): # XXX including timezone!
if self.recurring: # XXX rrule for non-recurring makes sense?
return self.recurrence.recurrences
# XXX rrule setter!
|