1.1 --- a/imip_manager.py Mon Dec 08 19:30:54 2014 +0100
1.2 +++ b/imip_manager.py Mon Dec 08 22:45:33 2014 +0100
1.3 @@ -6,8 +6,8 @@
1.4
1.5 from imiptools.content import Handler, \
1.6 format_datetime, get_address, get_datetime, \
1.7 - get_item, get_uri, get_utc_datetime, get_values, \
1.8 - parse_object, to_part, to_timezone
1.9 + get_item, get_uri, get_utc_datetime, get_value, \
1.10 + get_values, parse_object, to_part, to_timezone
1.11 from imiptools.mail import Messenger
1.12 from imiptools.period import have_conflict, get_slots, get_spans
1.13 from vCalendar import to_node
1.14 @@ -136,6 +136,20 @@
1.15 except OSError:
1.16 self.publisher = None
1.17
1.18 + def _get_object(self, uid):
1.19 + f = uid and self.store.get_event(self.user, uid) or None
1.20 +
1.21 + if not f:
1.22 + return None
1.23 +
1.24 + obj = parse_object(f, "utf-8")
1.25 +
1.26 + if not obj:
1.27 + return None
1.28 +
1.29 + objtype = obj.keys()[0]
1.30 + return obj[objtype][0]
1.31 +
1.32 # Data management methods.
1.33
1.34 def remove_request(self, uid):
1.35 @@ -190,19 +204,11 @@
1.36 "Show a request using the given 'path_info' for the current user."
1.37
1.38 uid = path_info.lstrip("/").split("/", 1)[0]
1.39 - f = uid and self.store.get_event(self.user, uid) or None
1.40 -
1.41 - if not f:
1.42 - return False
1.43 -
1.44 - request = parse_object(f, "utf-8")
1.45 + request = self._get_object(uid)
1.46
1.47 if not request:
1.48 return False
1.49
1.50 - objtype = request.keys()[0]
1.51 - request = request[objtype][0]
1.52 -
1.53 # Handle a submitted form.
1.54
1.55 args = self.env.get_args()
1.56 @@ -325,8 +331,11 @@
1.57 start, end, uid = t[:3]
1.58 span = spans[uid]
1.59 if point == start:
1.60 +
1.61 page.td(class_="event", rowspan=span)
1.62 - page.add(uid)
1.63 + obj = self._get_object(uid)
1.64 + if obj:
1.65 + page.add(get_value(obj, "SUMMARY"))
1.66 page.td.close()
1.67 else:
1.68 page.td(class_="empty")