src/pyams_content/component/theme/__init__.py
changeset 1240 921ff38f1aae
parent 1163 b15d210297bc
child 1389 1485db1e2b5e
--- a/src/pyams_content/component/theme/__init__.py	Wed Jan 16 19:10:46 2019 +0100
+++ b/src/pyams_content/component/theme/__init__.py	Thu Jan 17 12:17:24 2019 +0100
@@ -14,7 +14,6 @@
 
 from persistent import Persistent
 from zope.container.contained import Contained
-from zope.interface import implementer
 from zope.schema.fieldproperty import FieldProperty
 
 from pyams_content.component.theme.interfaces import IThemesManagerTarget, IThemesManager, THEMES_MANAGER_KEY, \
@@ -24,6 +23,7 @@
 from pyams_content.features.checker import BaseContentChecker
 from pyams_content.features.checker.interfaces import IContentChecker, ERROR_VALUE
 from pyams_utils.adapter import adapter_config, get_annotation_adapter
+from pyams_utils.factory import factory_config
 
 from pyams_content import _
 
@@ -32,7 +32,7 @@
 # Tags management
 #
 
-@implementer(ITagsManager)
+@factory_config(ITagsManager)
 class TagsManager(Persistent, Contained):
     """Tags manager persistent class"""
 
@@ -49,10 +49,11 @@
 @adapter_config(context=ITagsManagerTarget, provides=ITagsManager)
 def tags_manager_factory(target):
     """Tags manager factory"""
-    return get_annotation_adapter(target, TAGS_MANAGER_KEY, TagsManager, name='++tags-manager++')
+    return get_annotation_adapter(target, TAGS_MANAGER_KEY, ITagsManager,
+                                  name='++tags-manager++')
 
 
-@implementer(ITagsInfo)
+@factory_config(ITagsInfo)
 class TagsInfo(Persistent, Contained):
     """Tags info persistent class"""
 
@@ -62,7 +63,8 @@
 @adapter_config(context=ITagsTarget, provides=ITagsInfo)
 def tags_info_factory(target):
     """Tags info factory"""
-    return get_annotation_adapter(target, TAGS_INFO_KEY, TagsInfo, name='++tags++')
+    return get_annotation_adapter(target, TAGS_INFO_KEY, ITagsInfo,
+                                  name='++tags++')
 
 
 @adapter_config(name='tags', context=ITagsTarget, provides=IContentChecker)
@@ -86,7 +88,7 @@
 # Themes management
 #
 
-@implementer(IThemesManager)
+@factory_config(IThemesManager)
 class ThemesManager(Persistent, Contained):
     """Themes manager persistent class"""
 
@@ -97,10 +99,11 @@
 @adapter_config(context=IThemesManagerTarget, provides=IThemesManager)
 def themes_manager_factory(target):
     """Themes manager factory"""
-    return get_annotation_adapter(target, THEMES_MANAGER_KEY, ThemesManager, name='++themes-manager++')
+    return get_annotation_adapter(target, THEMES_MANAGER_KEY, IThemesManager,
+                                  name='++themes-manager++')
 
 
-@implementer(IThemesInfo)
+@factory_config(IThemesInfo)
 class ThemesInfo(Persistent, Contained):
     """Themes info persistent class"""
 
@@ -110,7 +113,8 @@
 @adapter_config(context=IThemesTarget, provides=IThemesInfo)
 def themes_info_factory(target):
     """Themes info factory"""
-    return get_annotation_adapter(target, THEMES_INFO_KEY, ThemesInfo, name='++themes++')
+    return get_annotation_adapter(target, THEMES_INFO_KEY, IThemesInfo,
+                                  name='++themes++')
 
 
 @adapter_config(name='themes', context=IThemesTarget, provides=IContentChecker)
@@ -134,7 +138,7 @@
 # Collections management
 #
 
-@implementer(ICollectionsManager)
+@factory_config(ICollectionsManager)
 class CollectionsManager(Persistent, Contained):
     """Collections manager persistent class"""
 
@@ -145,10 +149,11 @@
 @adapter_config(context=ICollectionsManagerTarget, provides=ICollectionsManager)
 def collections_manager_factory(target):
     """Collections manager factory"""
-    return get_annotation_adapter(target, COLLECTIONS_MANAGER_KEY, CollectionsManager, name='++collections-manager++')
+    return get_annotation_adapter(target, COLLECTIONS_MANAGER_KEY, ICollectionsManager,
+                                  name='++collections-manager++')
 
 
-@implementer(ICollectionsInfo)
+@factory_config(ICollectionsInfo)
 class CollectionsInfo(Persistent, Contained):
     """Collections info persistent class"""
 
@@ -158,7 +163,8 @@
 @adapter_config(context=ICollectionsTarget, provides=ICollectionsInfo)
 def collections_info_factory(target):
     """Collections info factory"""
-    return get_annotation_adapter(target, COLLECTIONS_INFO_KEY, CollectionsInfo, name='++collections++')
+    return get_annotation_adapter(target, COLLECTIONS_INFO_KEY, ICollectionsInfo,
+                                  name='++collections++')
 
 
 @adapter_config(name='collections', context=ICollectionsTarget, provides=IContentChecker)