src/pyams_content/shared/form/__init__.py
changeset 1370 87bcbf37ad6d
parent 1363 4518951655df
--- 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)