From 5f2245c35fae35fda6cd27c799d3894b487d09e1 Mon Sep 17 00:00:00 2001 From: Jochen Sprickerhof Date: Sat, 17 Aug 2013 12:08:40 +0200 Subject: [PATCH] Add color support You can change the default color by changing the props (.props file for the filesystem storage backend). --- radicale/ical.py | 8 ++++++++ radicale/xmlutils.py | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/radicale/ical.py b/radicale/ical.py index e15f4a6..b42f206 100644 --- a/radicale/ical.py +++ b/radicale/ical.py @@ -434,6 +434,14 @@ class Collection(object): with self.props as props: return props.get("D:displayname", self.path.split(os.path.sep)[-1]) + @property + def color(self): + """Collection color.""" + with self.props as props: + if "A:calendar-color" not in props: + props["A:calendar-color"] = "#5ba209" + return props["A:calendar-color"] + @property def headers(self): """Find headers items in collection.""" diff --git a/radicale/xmlutils.py b/radicale/xmlutils.py index a3d7236..f310d44 100644 --- a/radicale/xmlutils.py +++ b/radicale/xmlutils.py @@ -39,6 +39,7 @@ from . import client, config, ical NAMESPACES = { + "A": "http://apple.com/ns/ical/", "C": "urn:ietf:params:xml:ns:caldav", "CR": "urn:ietf:params:xml:ns:carddav", "D": "DAV:", @@ -217,6 +218,7 @@ def propfind(path, xml_request, collections, user=None): _tag("D", "displayname"), _tag("D", "owner"), _tag("D", "getetag"), + _tag("A", "calendar-color"), _tag("CS", "getctag")] # Writing answer @@ -330,6 +332,8 @@ def _propfind_response(path, item, props, user): item.tag, item.headers, item.timezones) elif tag == _tag("D", "displayname"): element.text = item.name + elif tag == _tag("A", "calendar-color"): + element.text = item.color else: human_tag = _tag_from_clark(tag) if human_tag in collection_props: