diff -r b6d9396beffd -r 921ff38f1aae src/pyams_content/component/theme/__init__.py --- 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)