diff -r 3f206017a2c0 -r 87bcbf37ad6d src/pyams_content/shared/form/__init__.py --- a/src/pyams_content/shared/form/__init__.py Mon Oct 07 14:04:31 2019 +0200 +++ b/src/pyams_content/shared/form/__init__.py Wed Oct 16 18:41:45 2019 +0200 @@ -19,10 +19,12 @@ from pyams_content.features.review.interfaces import IReviewTarget from pyams_content.shared.common import IWfSharedContentFactory, SharedContent, WfSharedContent, WfSharedContentChecker, \ register_content_type -from pyams_content.shared.form.interfaces import FORM_CONTENT_NAME, FORM_CONTENT_TYPE, IForm, IFormFieldContainer, \ - IFormFieldContainerTarget, IFormHandler, IWfForm, IWfFormFactory +from pyams_content.shared.form.interfaces import FORM_CONTENT_NAME, FORM_CONTENT_TYPE, IForm, \ + IFormFieldContainer, \ + IFormFieldContainerTarget, IFormHandler, IWfForm, IWfFormFactory, IFormsManager from pyams_utils.adapter import adapter_config from pyams_utils.registry import get_global_registry +from pyams_utils.traversing import get_parent __docformat__ = 'restructuredtext' @@ -45,10 +47,9 @@ submit_label = FieldProperty(IWfForm['submit_label']) submit_message = FieldProperty(IWfForm['submit_message']) _handler = FieldProperty(IWfForm['handler']) - use_captcha = FieldProperty(IWfForm['use_captcha']) + override_captcha = FieldProperty(IWfForm['override_captcha']) client_captcha_key = FieldProperty(IWfForm['client_captcha_key']) server_captcha_key = FieldProperty(IWfForm['server_captcha_key']) - captcha_proxy = FieldProperty(IWfForm['captcha_proxy']) rgpd_consent = FieldProperty(IWfForm['rgpd_consent']) rgpd_warning = FieldProperty(IWfForm['rgpd_warning']) rgpd_user_rights = FieldProperty(IWfForm['rgpd_user_rights']) @@ -86,6 +87,17 @@ registry = get_global_registry() return registry.queryUtility(IFormHandler, name=handler) + def get_captcha_settings(self): + if self.override_captcha: + return { + 'use_captcha': bool(self.client_captcha_key), + 'client_key': self.client_captcha_key, + 'server_key': self.server_captcha_key + } + else: + manager = get_parent(self, IFormsManager) + return manager.get_captcha_settings() + register_content_type(WfForm, shared_content=False)