1.1 --- a/imiptools/client.py Wed Mar 25 18:05:44 2015 +0100
1.2 +++ b/imiptools/client.py Wed Mar 25 18:15:37 2015 +0100
1.3 @@ -19,7 +19,9 @@
1.4 this program. If not, see <http://www.gnu.org/licenses/>.
1.5 """
1.6
1.7 -from imiptools.data import uri_items
1.8 +from imiptools.data import get_window_end, uri_items
1.9 +from imiptools.dates import get_default_timezone
1.10 +from imiptools.profile import Preferences
1.11
1.12 def update_attendees(obj, added, removed):
1.13
1.14 @@ -54,4 +56,37 @@
1.15
1.16 return to_cancel
1.17
1.18 +class Client:
1.19 +
1.20 + "Common handler and manager methods."
1.21 +
1.22 + def __init__(self, user):
1.23 + self.user = user
1.24 + self.preferences = None
1.25 +
1.26 + def get_preferences(self):
1.27 + if not self.preferences:
1.28 + self.preferences = Preferences(self.user)
1.29 + return self.preferences
1.30 +
1.31 + def get_tzid(self):
1.32 + prefs = self.get_preferences()
1.33 + return prefs.get("TZID") or get_default_timezone()
1.34 +
1.35 + def get_window_size(self):
1.36 + prefs = self.get_preferences()
1.37 + try:
1.38 + return int(prefs.get("window_size"))
1.39 + except (TypeError, ValueError):
1.40 + return 100
1.41 +
1.42 + def get_window_end(self):
1.43 + return get_window_end(self.get_tzid(), self.get_window_size())
1.44 +
1.45 + def is_sharing(self):
1.46 + return self.get_preferences().get("freebusy_sharing") == "share"
1.47 +
1.48 + def is_bundling(self):
1.49 + return self.get_preferences().get("freebusy_bundling") == "always"
1.50 +
1.51 # vim: tabstop=4 expandtab shiftwidth=4