1.1 --- a/imip_manager.py Thu Feb 12 22:56:05 2015 +0100
1.2 +++ b/imip_manager.py Thu Feb 12 22:56:56 2015 +0100
1.3 @@ -185,7 +185,8 @@
1.4 tzid = self.get_tzid()
1.5
1.6 _update_freebusy(freebusy, self.obj.get_periods_for_freebusy(tzid),
1.7 - self.obj.get_value("TRANSP") or "OPAQUE", self.obj.get_value("UID"))
1.8 + self.obj.get_value("TRANSP") or "OPAQUE",
1.9 + self.uid, self.recurrenceid)
1.10
1.11 user_attr = self.messenger and self.messenger.sender != get_address(self.user) and \
1.12 {"SENT-BY" : get_uri(self.messenger.sender)} or {}
1.13 @@ -317,8 +318,12 @@
1.14 except OSError:
1.15 self.publisher = None
1.16
1.17 - def _get_uid(self, path_info):
1.18 - return path_info.lstrip("/").split("/", 1)[0]
1.19 + def _get_identifiers(self, path_info):
1.20 + parts = path_info.lstrip("/").split("/")
1.21 + if len(parts) == 1:
1.22 + return parts[0], None
1.23 + else:
1.24 + return parts[:2]
1.25
1.26 def _get_object(self, uid, recurrenceid=None):
1.27 if self.objects.has_key((uid, recurrenceid)):
1.28 @@ -412,6 +417,12 @@
1.29 self.new_page(title="Redirect")
1.30 self.page.p("Redirecting to: %s" % url)
1.31
1.32 + def link_to(self, uid, recurrenceid=None):
1.33 + if recurrenceid:
1.34 + return self.env.new_url("/".join([uid, recurrenceid]))
1.35 + else:
1.36 + return self.env.new_url(uid)
1.37 +
1.38 # Request logic methods.
1.39
1.40 def handle_newevent(self):
1.41 @@ -517,7 +528,7 @@
1.42 # Redirect to the object (or the first of the objects), where instead of
1.43 # attendee controls, there will be organiser controls.
1.44
1.45 - self.redirect(self.env.new_url("%s-0" % uid))
1.46 + self.redirect(self.link_to("%s-0" % uid))
1.47
1.48 def handle_request(self, uid, obj):
1.49
1.50 @@ -1103,7 +1114,7 @@
1.51
1.52 found_obj = self._get_object(found_uid, found_recurrenceid)
1.53 if found_obj:
1.54 - page.a(found_obj.get_value("SUMMARY"), href=self.env.new_url(found_uid))
1.55 + page.a(found_obj.get_value("SUMMARY"), href=self.link_to(found_uid))
1.56 else:
1.57 page.add("No details available")
1.58
1.59 @@ -1196,8 +1207,8 @@
1.60
1.61 "Show an object request using the given 'path_info' for the current user."
1.62
1.63 - uid = self._get_uid(path_info)
1.64 - obj = self._get_object(uid, None)
1.65 + uid, recurrenceid = self._get_identifiers(path_info)
1.66 + obj = self._get_object(uid, recurrenceid)
1.67
1.68 if not obj:
1.69 return False
1.70 @@ -1600,8 +1611,7 @@
1.71 if (uid, recurrenceid) in self._get_requests() and group_type != "request":
1.72 page.span(summary)
1.73 else:
1.74 - href = "%s/%s" % (self.env.get_url().rstrip("/"), uid)
1.75 - page.a(summary, href=href)
1.76 + page.a(summary, href=self.link_to(uid, recurrenceid))
1.77
1.78 page.td.close()
1.79 else: