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
This commit is contained in:
helmutm 2007-09-02 20:20:26 +00:00
parent a0756037b2
commit 001493a241

View file

@ -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):