--- 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)