# HG changeset patch # User Paul Boddie # Date 1418075133 -3600 # Node ID 3ae2bac023664c29af1992de649b759819d786d7 # Parent a1e99f8d7e5396ba91f2ac324a43128c38a8fa70 Show summaries in the calendar view by parsing stored objects. diff -r a1e99f8d7e53 -r 3ae2bac02366 imip_manager.py --- a/imip_manager.py Mon Dec 08 19:30:54 2014 +0100 +++ b/imip_manager.py Mon Dec 08 22:45:33 2014 +0100 @@ -6,8 +6,8 @@ from imiptools.content import Handler, \ format_datetime, get_address, get_datetime, \ - get_item, get_uri, get_utc_datetime, get_values, \ - parse_object, to_part, to_timezone + get_item, get_uri, get_utc_datetime, get_value, \ + get_values, parse_object, to_part, to_timezone from imiptools.mail import Messenger from imiptools.period import have_conflict, get_slots, get_spans from vCalendar import to_node @@ -136,6 +136,20 @@ except OSError: self.publisher = None + def _get_object(self, uid): + f = uid and self.store.get_event(self.user, uid) or None + + if not f: + return None + + obj = parse_object(f, "utf-8") + + if not obj: + return None + + objtype = obj.keys()[0] + return obj[objtype][0] + # Data management methods. def remove_request(self, uid): @@ -190,19 +204,11 @@ "Show a request using the given 'path_info' for the current user." uid = path_info.lstrip("/").split("/", 1)[0] - f = uid and self.store.get_event(self.user, uid) or None - - if not f: - return False - - request = parse_object(f, "utf-8") + request = self._get_object(uid) if not request: return False - objtype = request.keys()[0] - request = request[objtype][0] - # Handle a submitted form. args = self.env.get_args() @@ -325,8 +331,11 @@ start, end, uid = t[:3] span = spans[uid] if point == start: + page.td(class_="event", rowspan=span) - page.add(uid) + obj = self._get_object(uid) + if obj: + page.add(get_value(obj, "SUMMARY")) page.td.close() else: page.td(class_="empty")