1.1 --- a/imip_manager.py Sun Mar 01 00:20:17 2015 +0100
1.2 +++ b/imip_manager.py Sun Mar 01 00:24:11 2015 +0100
1.3 @@ -31,7 +31,8 @@
1.4 sys.path.append(LIBRARY_PATH)
1.5
1.6 from imiptools.content import Handler
1.7 -from imiptools.data import get_address, get_uri, make_freebusy, Object, to_part, \
1.8 +from imiptools.data import get_address, get_uri, get_window_end, make_freebusy, \
1.9 + Object, to_part, \
1.10 uri_dict, uri_item, uri_items, uri_values
1.11 from imiptools.dates import format_datetime, format_time, get_date, get_datetime, \
1.12 get_datetime_item, get_default_timezone, \
1.13 @@ -126,6 +127,16 @@
1.14 prefs = self.get_preferences()
1.15 return prefs.get("TZID") or get_default_timezone()
1.16
1.17 + def get_window_size(self):
1.18 + prefs = self.get_preferences()
1.19 + try:
1.20 + return int(prefs.get("window_size"))
1.21 + except (TypeError, ValueError):
1.22 + return 100
1.23 +
1.24 + def get_window_end(self):
1.25 + return get_window_end(self.get_tzid(), self.get_window_size())
1.26 +
1.27 class ManagerHandler(Handler, Common):
1.28
1.29 """
1.30 @@ -182,9 +193,8 @@
1.31 # newer details (since the outgoing handler updates this user's
1.32 # free/busy details).
1.33
1.34 - tzid = self.get_tzid()
1.35 -
1.36 - _update_freebusy(freebusy, self.obj.get_periods_for_freebusy(tzid),
1.37 + _update_freebusy(freebusy,
1.38 + self.obj.get_periods_for_freebusy(self.get_tzid(), self.get_window_end()),
1.39 self.obj.get_value("TRANSP") or "OPAQUE",
1.40 self.uid, self.recurrenceid)
1.41
1.42 @@ -345,7 +355,7 @@
1.43 for uid, recurrenceid in self._get_requests():
1.44 obj = self._get_object(uid, recurrenceid)
1.45 if obj:
1.46 - for start, end in obj.get_periods_for_freebusy(self.get_tzid()):
1.47 + for start, end in obj.get_periods_for_freebusy(self.get_tzid(), self.get_window_end()):
1.48 summary.append((start, end, uid, obj.get_value("TRANSP"), recurrenceid))
1.49 return summary
1.50
1.51 @@ -381,9 +391,9 @@
1.52 return self.store.remove_event(self.user, uid, recurrenceid)
1.53
1.54 def update_freebusy(self, uid, recurrenceid, obj):
1.55 - tzid = self.get_tzid()
1.56 freebusy = self.store.get_freebusy(self.user)
1.57 - update_freebusy(freebusy, self.user, obj.get_periods_for_freebusy(tzid),
1.58 + update_freebusy(freebusy, self.user,
1.59 + obj.get_periods_for_freebusy(self.get_tzid(), self.get_window_end()),
1.60 obj.get_value("TRANSP"), uid, recurrenceid, self.store)
1.61
1.62 def remove_from_freebusy(self, uid, recurrenceid=None):
1.63 @@ -1035,18 +1045,14 @@
1.64
1.65 page.p("This event modifies a recurring event.")
1.66
1.67 - # Obtain the user's timezone.
1.68 -
1.69 - tzid = self.get_tzid()
1.70 + # Obtain the periods associated with the event in the user's time zone.
1.71
1.72 - window_size = 100
1.73 -
1.74 - periods = obj.get_periods(self.get_tzid(), window_size)
1.75 + periods = obj.get_periods(self.get_tzid(), self.get_window_end())
1.76
1.77 if len(periods) == 1:
1.78 return
1.79
1.80 - page.p("This event occurs on the following occasions within the next %d days:" % window_size)
1.81 + page.p("This event occurs on the following occasions within the next %d days:" % self.get_window_size())
1.82
1.83 page.table(cellspacing=5, cellpadding=5, class_="conflicts")
1.84 page.thead()