src/pyams_content/shared/logo/manager.py
changeset 492 04503227569d
parent 392 8fc847d83992
child 501 3407e6940f6a
--- a/src/pyams_content/shared/logo/manager.py	Thu Mar 22 14:50:32 2018 +0100
+++ b/src/pyams_content/shared/logo/manager.py	Thu Mar 22 14:52:22 2018 +0100
@@ -16,7 +16,8 @@
 # import standard library
 
 # import interfaces
-from pyams_content.shared.logo.interfaces import ILogosManager
+from pyams_content.shared.common.interfaces import ISharedContentFactory
+from pyams_content.shared.logo.interfaces import ILogosManager, ILogosManagerFactory
 from zope.annotation import IAttributeAnnotatable
 from zope.component.interfaces import ISite
 from zope.lifecycleevent import IObjectAddedEvent
@@ -24,6 +25,8 @@
 # import packages
 from pyams_content.shared.common.manager import SharedTool
 from pyams_content.shared.logo import LOGO_CONTENT_TYPE, Logo
+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,20 @@
     """Logos manager class"""
 
     shared_content_type = LOGO_CONTENT_TYPE
-    shared_content_factory = Logo
+
+
+@utility_config(provides=ILogosManagerFactory)
+class LogosManagerFactory(object):
+    """Default logos manager factory"""
+
+    def __new__(cls):
+        return LogosManager
+
+
+@adapter_config(context=ILogosManager, provides=ISharedContentFactory)
+def LogosManagerContentFactory(context):
+    """Logos manager content factory"""
+    return Logo
 
 
 @subscriber(IObjectAddedEvent, context_selector=ILogosManager)