--- a/src/pyams_content/component/theme/__init__.py Fri May 25 08:05:13 2018 +0200
+++ b/src/pyams_content/component/theme/__init__.py Fri May 25 15:48:59 2018 +0200
@@ -19,17 +19,13 @@
from pyams_content.component.theme.interfaces import IThemesManagerTarget, IThemesManager, THEMES_MANAGER_KEY, \
IThemesTarget, IThemesInfo, THEMES_INFO_KEY
from pyams_content.features.checker.interfaces import IContentChecker, ERROR_VALUE
-from zope.annotation.interfaces import IAnnotations
# import packages
from persistent import Persistent
from pyams_content.features.checker import BaseContentChecker
-from pyams_utils.adapter import adapter_config
-from pyramid.threadlocal import get_current_registry
+from pyams_utils.adapter import adapter_config, get_annotation_adapter
from zope.container.contained import Contained
from zope.interface import implementer
-from zope.lifecycleevent import ObjectCreatedEvent
-from zope.location import locate
from zope.schema.fieldproperty import FieldProperty
from pyams_content import _
@@ -46,13 +42,7 @@
@adapter_config(context=IThemesManagerTarget, provides=IThemesManager)
def themes_manager_factory(target):
"""Themes manager factory"""
- annotations = IAnnotations(target)
- manager = annotations.get(THEMES_MANAGER_KEY)
- if manager is None:
- manager = annotations[THEMES_MANAGER_KEY] = ThemesManager()
- get_current_registry().notify(ObjectCreatedEvent(manager))
- locate(manager, target, '++themes-manager++')
- return manager
+ return get_annotation_adapter(target, THEMES_MANAGER_KEY, ThemesManager, name='++themes-manager++')
@implementer(IThemesInfo)
@@ -65,13 +55,7 @@
@adapter_config(context=IThemesTarget, provides=IThemesInfo)
def themes_info_factory(target):
"""Themes info factory"""
- annotations = IAnnotations(target)
- info = annotations.get(THEMES_INFO_KEY)
- if info is None:
- info = annotations[THEMES_INFO_KEY] = ThemesInfo()
- get_current_registry().notify(ObjectCreatedEvent(info))
- locate(info, target, '++themes++')
- return info
+ return get_annotation_adapter(target, THEMES_INFO_KEY, ThemesInfo, name='++themes++')
@adapter_config(name='themes', context=IThemesTarget, provides=IContentChecker)