src/pyams_content/shared/form/__init__.py
changeset 618 3c48622a2937
parent 501 3407e6940f6a
child 621 a75b1fc09fde
--- a/src/pyams_content/shared/form/__init__.py	Mon Jun 11 15:18:58 2018 +0200
+++ b/src/pyams_content/shared/form/__init__.py	Mon Jun 11 15:22:01 2018 +0200
@@ -21,11 +21,13 @@
 from pyams_content.features.review.interfaces import IReviewTarget
 from pyams_content.shared.form.interfaces import IWfForm, IForm, FORM_CONTENT_TYPE, FORM_CONTENT_NAME, \
     IFormFieldContainerTarget, IFormHandler, IFormFieldContainer, IWfFormFactory
+from pyams_portal.interfaces import IPortalPage, PORTAL_PAGE_KEY, IPortalContext
 
 # import packages
 from pyams_content.shared.common import WfSharedContent, SharedContent, register_content_type, WfSharedContentChecker, \
     IWfSharedContentFactory
-from pyams_utils.adapter import adapter_config
+from pyams_content.shared.common.portal import SharedContentPortalPage
+from pyams_utils.adapter import adapter_config, get_annotation_adapter
 from pyams_utils.registry import get_global_registry
 from zope.interface import implementer, provider, alsoProvides, noLongerProvides
 from zope.schema.fieldproperty import FieldProperty
@@ -34,7 +36,7 @@
 
 
 @implementer(IWfForm, IFormFieldContainerTarget,
-             IPreviewTarget, IReviewTarget)
+             IPortalContext, IPreviewTarget, IReviewTarget)
 class WfForm(WfSharedContent):
     """Base form"""
 
@@ -88,6 +90,12 @@
     return WfForm
 
 
+@adapter_config(context=IWfForm, provides=IPortalPage)
+def form_portal_page_adapter(context):
+    """Form portal page adapter"""
+    return get_annotation_adapter(context, PORTAL_PAGE_KEY, SharedContentPortalPage)
+
+
 @adapter_config(name='properties', context=IWfForm, provides=IContentChecker)
 class WfFormContentChecker(WfSharedContentChecker):
     """Form content checker"""