[conduit/syncml: 25/244] Boilerplate for syncing calendar items
- From: John Carr <johncarr src gnome org>
- To: svn-commits-list gnome org
- Subject: [conduit/syncml: 25/244] Boilerplate for syncing calendar items
- Date: Thu, 21 May 2009 05:50:53 -0400 (EDT)
commit a13e6e8be7297eabf739445924114f3c29402099
Author: John Carr <john carr unrouted co uk>
Date: Wed Apr 15 04:45:57 2009 -0700
Boilerplate for syncing calendar items
---
conduit/modules/SyncmlModule/SyncmlModule.py | 34 +++++++++++++++++++++++++-
1 files changed, 33 insertions(+), 1 deletions(-)
diff --git a/conduit/modules/SyncmlModule/SyncmlModule.py b/conduit/modules/SyncmlModule/SyncmlModule.py
index 50af349..dc40d24 100644
--- a/conduit/modules/SyncmlModule/SyncmlModule.py
+++ b/conduit/modules/SyncmlModule/SyncmlModule.py
@@ -37,7 +37,8 @@ class BluetoothSyncmlFactory(BluetoothFactory.BluetoothFactory):
def get_dataproviders(self, id, **props):
return [
- ContactsProvider
+ BluetoothContactsProvider,
+ BluetoothEventsProvider
]
@@ -243,12 +244,43 @@ class ContactsProvider(SyncmlDataProvider):
return obj.get_vcard_string()
+class EventsProvider(SyncmlDataProvider):
+
+ _name_ = "Calendar"
+ _description_ = "Calendar"
+ _module_type_ = "twoway"
+ _in_type_ = "event"
+ _out_type_ = "event"
+ _icon_ = "x-office-calendar"
+ _configurable_ = False
+
+ def _setup_datastore(self):
+ err = pysyncml.Error()
+ self.syncobj.add_datastore("text/x-vcalendar", None, "Calendar", pysyncml.byref(err))
+
+ def _blob_to_obj(self, uid, data):
+ e = Event.Event()
+ e.set_UID(uid)
+ e.set_from_ical_string(data)
+ return e
+
+ def _obj_to_blob(self, obj):
+ return obj.get_ical_string()
+
+
#FIXME: Need a nicer design here!
class BluetoothContactsProvider(BluetoothClient, ContactsProvider):
pass
+class BluetoothEventsProvider(BluetoothClient, EventsProvider):
+ pass
class SyncmlContactTwoWay(HttpClientProvider, ContactsProvider):
def __init__(self, *args):
SyncmlDataProvider.__init__(self, "http://localhost:1234")
+class SyncmlEventsTwoWay(HttpClientProvider, EventsProvider):
+
+ def __init__(self, *args):
+ SyncmlDataProvider.__init__(self, "http://localhost:1234")
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]