diff --git a/composer/schema/browser/common.py b/composer/schema/browser/common.py index 33cd0d8..b953388 100644 --- a/composer/schema/browser/common.py +++ b/composer/schema/browser/common.py @@ -28,6 +28,7 @@ from zope import component from zope.app.pagetemplate import ViewPageTemplateFile from zope.app.session.interfaces import ISession from zope.cachedescriptors.property import Lazy +from zope.traversing.browser.absoluteurl import absoluteURL from cybertools.composer.interfaces import IInstance from cybertools.composer.schema.interfaces import IClientFactory, ISchema @@ -153,6 +154,10 @@ class BaseView(object): from zope.traversing.browser import absoluteURL return absoluteURL(self.context, self.request) + def firstFormUrl(self): + for tpl in self.context.getClientSchemas(): + return absoluteURL(tpl, self.request) + def setSessionInfo(self, key, value, packageId=packageId): session = ISession(self.request)[packageId] if session.get(key) != value: diff --git a/composer/schema/browser/report.py b/composer/schema/browser/report.py index c987f6c..a7fe553 100644 --- a/composer/schema/browser/report.py +++ b/composer/schema/browser/report.py @@ -59,7 +59,8 @@ class RegistrationsExportCsv(FormManagerView): context = self.context schemas = [s for s in context.getClientSchemas() if ISchema.providedBy(s)] headline = (['Client ID', 'Time Stamp'] - + list(itertools.chain(*[[self.encode(f.title) + #+ list(itertools.chain(*[[self.encode(f.title) + + list(itertools.chain(*[[self.encode(f.name) for f in s.fields if f.storeData] for s in schemas]))) diff --git a/composer/schema/browser/schema.py b/composer/schema/browser/schema.py index 4b8f5ad..e3c98ec 100644 --- a/composer/schema/browser/schema.py +++ b/composer/schema/browser/schema.py @@ -141,7 +141,10 @@ class FormManagerView(BaseView): def firstFormUrl(self): for tpl in self.context.getClientSchemas(): - return absoluteURL(tpl, self.request) + url = absoluteURL(tpl, self.request) + if self.isManageMode and 'client' in self.request.form: + url = '%s?id=%s' % (url, self.request.form['client']) + return url class CheckoutView(BaseView):