1.1 --- a/imip_manager.py Tue Dec 09 22:29:46 2014 +0100
1.2 +++ b/imip_manager.py Tue Dec 09 22:53:45 2014 +0100
1.3 @@ -178,7 +178,10 @@
1.4 self.page.init(title=title, charset=self.encoding)
1.5
1.6 def status(self, code, message):
1.7 - print >>self.out, "Status:", code, message
1.8 + self.header("Status", "%s %s" % (code, message))
1.9 +
1.10 + def header(self, header, value):
1.11 + print >>self.out, "%s: %s" % (header, value)
1.12
1.13 def no_user(self):
1.14 self.status(403, "Forbidden")
1.15 @@ -190,6 +193,12 @@
1.16 self.new_page(title="Not Found")
1.17 self.page.p("No page is provided at the given address.")
1.18
1.19 + def redirect(self, url):
1.20 + self.status(302, "Redirect")
1.21 + self.header("Location", url)
1.22 + self.new_page(title="Redirect")
1.23 + self.page.p("Redirecting to: %s" % url)
1.24 +
1.25 # Request logic and page fragment methods.
1.26
1.27 def handle_request(self, uid, request):
1.28 @@ -199,7 +208,7 @@
1.29 # Handle a submitted form.
1.30
1.31 args = self.env.get_args()
1.32 - show_form = False
1.33 + handled = True
1.34
1.35 accept = args.has_key("accept")
1.36 decline = args.has_key("decline")
1.37 @@ -221,9 +230,12 @@
1.38 self.remove_request(uid)
1.39
1.40 else:
1.41 - show_form = True
1.42 + handled = False
1.43
1.44 - return show_form
1.45 + if handled:
1.46 + self.redirect(self.env.get_path())
1.47 +
1.48 + return handled
1.49
1.50 def show_request_form(self):
1.51
1.52 @@ -319,15 +331,17 @@
1.53 if not obj:
1.54 return False
1.55
1.56 - self.new_page(title="Event")
1.57 + is_request = uid in self._get_requests()
1.58 + handled = is_request and self.handle_request(uid, obj)
1.59
1.60 - is_request = uid in self._get_requests()
1.61 + if handled:
1.62 + return True
1.63
1.64 - show_form = is_request and self.handle_request(uid, obj)
1.65 + self.new_page(title="Event")
1.66
1.67 self.show_object_on_page(uid, obj)
1.68
1.69 - if show_form:
1.70 + if is_request and not handled:
1.71 self.show_request_form()
1.72
1.73 return True