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:
parent
a0756037b2
commit
001493a241
1 changed files with 23 additions and 3 deletions
|
@ -130,6 +130,8 @@ class ServiceManagerView(BaseView):
|
||||||
|
|
||||||
class ServiceView(BaseView):
|
class ServiceView(BaseView):
|
||||||
|
|
||||||
|
showCheckoutButton = False
|
||||||
|
|
||||||
def getRegistrations(self):
|
def getRegistrations(self):
|
||||||
return self.context.registrations
|
return self.context.registrations
|
||||||
|
|
||||||
|
@ -162,9 +164,15 @@ class ServiceView(BaseView):
|
||||||
return instance.applyTemplate()
|
return instance.applyTemplate()
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
|
newClient = False
|
||||||
|
nextUrl = None
|
||||||
form = self.request.form
|
form = self.request.form
|
||||||
clientName = self.getClientName()
|
clientName = self.getClientName()
|
||||||
if not form.get('action'):
|
if not form.get('action'):
|
||||||
|
data = self.getClientData()
|
||||||
|
if ('service_registration' in data
|
||||||
|
and data['service_registration'].number > 0):
|
||||||
|
self.showCheckoutButton = True
|
||||||
return True
|
return True
|
||||||
manager = self.context.getManager()
|
manager = self.context.getManager()
|
||||||
if clientName:
|
if clientName:
|
||||||
|
@ -175,18 +183,30 @@ class ServiceView(BaseView):
|
||||||
client = IClientFactory(manager)()
|
client = IClientFactory(manager)()
|
||||||
clientName = manager.addClient(client)
|
clientName = manager.addClient(client)
|
||||||
self.setClientName(clientName)
|
self.setClientName(clientName)
|
||||||
|
newClient = True
|
||||||
|
nextUrl = self.getSchemaUrl()
|
||||||
regs = IClientRegistrations(client)
|
regs = IClientRegistrations(client)
|
||||||
try:
|
try:
|
||||||
number = int(form.get('number', 1))
|
number = int(form.get('number', 1))
|
||||||
except ValueError:
|
except ValueError:
|
||||||
number = 1
|
number = 1
|
||||||
if 'button.register' in form:
|
if 'submit_register' in form and number > 0:
|
||||||
regs.register([self.context], numbers=[number])
|
regs.register([self.context], numbers=[number])
|
||||||
elif 'button.unregister' in form:
|
self.showCheckoutButton = True
|
||||||
|
elif 'submit_unregister' in form:
|
||||||
regs.unregister([self.context])
|
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
|
return True
|
||||||
|
|
||||||
|
def getSchemaUrl(self):
|
||||||
|
manager = self.context.getManager()
|
||||||
|
return self.getUrlForObject(manager.getClientSchemas()[0])
|
||||||
|
|
||||||
|
|
||||||
class RegistrationTemplateView(BaseView):
|
class RegistrationTemplateView(BaseView):
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue