From 001493a2416e5177d997d6321ce9c68f0b3906a6 Mon Sep 17 00:00:00 2001 From: helmutm Date: Sun, 2 Sep 2007 20:20:26 +0000 Subject: [PATCH] register and unregister directly on service view; more on buttons and navigation git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@1991 fd906abe-77d9-0310-91a1-e0d9ade77398 --- organize/browser/service.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/organize/browser/service.py b/organize/browser/service.py index bea2276..5721223 100644 --- a/organize/browser/service.py +++ b/organize/browser/service.py @@ -130,6 +130,8 @@ class ServiceManagerView(BaseView): class ServiceView(BaseView): + showCheckoutButton = False + def getRegistrations(self): return self.context.registrations @@ -162,9 +164,15 @@ class ServiceView(BaseView): return instance.applyTemplate() def update(self): + newClient = False + nextUrl = None form = self.request.form clientName = self.getClientName() if not form.get('action'): + data = self.getClientData() + if ('service_registration' in data + and data['service_registration'].number > 0): + self.showCheckoutButton = True return True manager = self.context.getManager() if clientName: @@ -175,18 +183,30 @@ class ServiceView(BaseView): client = IClientFactory(manager)() clientName = manager.addClient(client) self.setClientName(clientName) + newClient = True + nextUrl = self.getSchemaUrl() regs = IClientRegistrations(client) try: number = int(form.get('number', 1)) except ValueError: number = 1 - if 'button.register' in form: + if 'submit_register' in form and number > 0: regs.register([self.context], numbers=[number]) - elif 'button.unregister' in form: + self.showCheckoutButton = True + elif 'submit_unregister' in form: regs.unregister([self.context]) - # TODO: redirect to nextUrl() + number = 0 + elif 'submit_checkout' in form: + nextUrl = self.getSchemaUrl() + if nextUrl: + self.request.response.redirect(nextUrl) + return False return True + def getSchemaUrl(self): + manager = self.context.getManager() + return self.getUrlForObject(manager.getClientSchemas()[0]) + class RegistrationTemplateView(BaseView):