From dbd06a195283d3ca6afa06f7e7e868a610be950b Mon Sep 17 00:00:00 2001 From: Unrud Date: Fri, 9 Jun 2017 02:29:55 +0200 Subject: [PATCH] Default implementation for BaseCollection.serialize --- radicale/storage.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/radicale/storage.py b/radicale/storage.py index 83027be..cf50bc9 100644 --- a/radicale/storage.py +++ b/radicale/storage.py @@ -504,7 +504,16 @@ class BaseCollection: def serialize(self): """Get the unicode string representing the whole collection.""" - raise NotImplementedError + if self.get_meta("tag") == "VCALENDAR": + collection = vobject.iCalendar() + for item in self.get_all(): + for content in ("vevent", "vtodo", "vjournal"): + for component in getattr(item, "%s_list" % content, ()): + collection.add(component) + return collection.serialize() + elif self.get_meta("tag") == "VADDRESSBOOK": + return "".join(item.serialize() for item in self.get_all()) + return "" @classmethod @contextmanager