From a76a7f76a6088f98a043ed6672ad78b1a62817cc Mon Sep 17 00:00:00 2001 From: Timo Stollenwerk Date: Wed, 12 Aug 2009 11:16:53 +0000 Subject: [PATCH] Move the registration of the captcha validator from validator.py to the (demo) form. This is the only way to allow the creator of a form to register the captcha validator for a form without touching the p.f.c. code. This is somehow ugly. Maybe there is a more elegant way to do this?! svn path=/plone.formwidget.captcha/trunk/; revision=28729 --- plone/formwidget/captcha/configure.zcml | 5 ----- plone/formwidget/captcha/demo/configure.zcml | 5 +++++ plone/formwidget/captcha/demo/form.py | 10 +++++++--- plone/formwidget/captcha/validator.py | 6 +----- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/plone/formwidget/captcha/configure.zcml b/plone/formwidget/captcha/configure.zcml index a3a1c28..f395f7a 100644 --- a/plone/formwidget/captcha/configure.zcml +++ b/plone/formwidget/captcha/configure.zcml @@ -40,11 +40,6 @@ provides="Products.GenericSetup.interfaces.EXTENSION" /> - - - + + diff --git a/plone/formwidget/captcha/demo/form.py b/plone/formwidget/captcha/demo/form.py index 8a78609..5c2cf70 100644 --- a/plone/formwidget/captcha/demo/form.py +++ b/plone/formwidget/captcha/demo/form.py @@ -2,9 +2,10 @@ from Acquisition import aq_inner from zope import interface from zope import schema -from zope.component import getMultiAdapter -from z3c.form import form, field, button +from zope.component import getMultiAdapter, provideAdapter + +from z3c.form import form, field, button, validator from plone.z3cform.layout import wrap_form @@ -43,4 +44,7 @@ class BaseForm(form.Form): print data['subject'] return -CaptchaForm = wrap_form(BaseForm) \ No newline at end of file +CaptchaForm = wrap_form(BaseForm) + +# Register Captcha Validator for the captcha field in the ICaptchaForm +validator.WidgetValidatorDiscriminators(CaptchaValidator, field=ICaptchaForm['captcha']) \ No newline at end of file diff --git a/plone/formwidget/captcha/validator.py b/plone/formwidget/captcha/validator.py index 5d72637..f290b3d 100644 --- a/plone/formwidget/captcha/validator.py +++ b/plone/formwidget/captcha/validator.py @@ -23,8 +23,4 @@ class CaptchaValidator(validator.SimpleFieldValidator): raise WrongCaptchaCode else: return True - raise WrongCaptchaCode - -from plone.formwidget.captcha.demo.form import ICaptchaForm -validator.WidgetValidatorDiscriminators(CaptchaValidator, field=ICaptchaForm['captcha']) -provideAdapter(CaptchaValidator) \ No newline at end of file + raise WrongCaptchaCode \ No newline at end of file