From 945857c650947a1d86a2676e0121f1e5d5850730 Mon Sep 17 00:00:00 2001 From: helmutm Date: Sat, 27 Feb 2010 10:54:01 +0000 Subject: [PATCH] form manager improvements git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3752 fd906abe-77d9-0310-91a1-e0d9ade77398 --- composer/schema/browser/schema.py | 11 ++++++++--- composer/schema/field.py | 2 ++ composer/schema/interfaces.py | 2 ++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/composer/schema/browser/schema.py b/composer/schema/browser/schema.py index f659798..b895392 100644 --- a/composer/schema/browser/schema.py +++ b/composer/schema/browser/schema.py @@ -119,9 +119,10 @@ class FormManagerView(BaseView): def update(self): if self.isManageMode: return True - for tpl in self.context.getClientSchemas(): - self.context.request.response.redirect(absoluteURL(tpl, self.request)) - break + self.context.request.response.redirect(self.firstFormUrl()) + #for tpl in self.context.getClientSchemas(): + # self.context.request.response.redirect(absoluteURL(tpl, self.request)) + # break return False def overview(self, ignoreTemporary=True): @@ -137,6 +138,10 @@ class FormManagerView(BaseView): result.append(data) return result + def firstFormUrl(self): + for tpl in self.context.getClientSchemas(): + return absoluteURL(tpl, self.request) + class CheckoutView(BaseView): diff --git a/composer/schema/field.py b/composer/schema/field.py index f5a5551..ce06b16 100644 --- a/composer/schema/field.py +++ b/composer/schema/field.py @@ -290,6 +290,8 @@ class FileUploadFieldInstance(FieldInstance): class EmailFieldInstance(FieldInstance): def validate(self, value, data=None): + if not value and self.context.required: + self.setError('required_missing') if value and '@' not in value: self.setError('invalid_email_address') diff --git a/composer/schema/interfaces.py b/composer/schema/interfaces.py index a6dbdfa..2ee2ab4 100644 --- a/composer/schema/interfaces.py +++ b/composer/schema/interfaces.py @@ -77,6 +77,8 @@ class ISchemaFactory(Interface): class FieldType(SimpleTerm): + hidden = False + def __init__(self, value, token=None, title=None, **kw): super(FieldType, self).__init__(value, token, title) self.name = value