src/pyams_content/shared/form/manager.py
changeset 492 04503227569d
parent 81 3e37d4dd8e3b
child 501 3407e6940f6a
--- a/src/pyams_content/shared/form/manager.py	Thu Mar 22 14:50:32 2018 +0100
+++ b/src/pyams_content/shared/form/manager.py	Thu Mar 22 14:52:22 2018 +0100
@@ -16,7 +16,8 @@
 # import standard library
 
 # import interfaces
-from pyams_content.shared.form.interfaces import IFormsManager, FORM_CONTENT_TYPE
+from pyams_content.shared.common.interfaces import ISharedContentFactory
+from pyams_content.shared.form.interfaces import IFormsManager, FORM_CONTENT_TYPE, IFormsManagerFactory
 from zope.annotation.interfaces import IAttributeAnnotatable
 from zope.component.interfaces import ISite
 from zope.lifecycleevent.interfaces import IObjectAddedEvent
@@ -24,6 +25,8 @@
 # import packages
 from pyams_content.shared.common.manager import SharedTool
 from pyams_content.shared.form import Form
+from pyams_utils.adapter import adapter_config
+from pyams_utils.registry import utility_config
 from pyams_utils.traversing import get_parent
 from pyramid.events import subscriber
 from zope.interface import implementer
@@ -34,7 +37,19 @@
     """Forms manager class"""
 
     shared_content_type = FORM_CONTENT_TYPE
-    shared_content_factory = Form
+
+
+@utility_config(provides=IFormsManagerFactory)
+class FormsManagerFactory(object):
+    """Defautl forms manager factory"""
+
+    def __new__(cls):
+        return FormsManager
+
+
+@adapter_config(context=IFormsManager, provides=ISharedContentFactory)
+def FormsManagerContentFactory(context):
+    return Form
 
 
 @subscriber(IObjectAddedEvent, context_selector=IFormsManager)