--- a/src/pyams_content/shared/view/theme.py Fri May 25 08:05:13 2018 +0200
+++ b/src/pyams_content/shared/view/theme.py Fri May 25 15:48:59 2018 +0200
@@ -18,16 +18,12 @@
# import interfaces
from pyams_content.component.theme.interfaces import IThemesInfo
from pyams_content.shared.view.interfaces import IWfView, IViewSettings, IViewThemesSettings, VIEW_THEMES_SETTINGS_KEY
-from zope.annotation.interfaces import IAnnotations
# import packages
from persistent import Persistent
-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
@@ -60,10 +56,5 @@
@adapter_config(name='themes', context=IWfView, provides=IViewSettings)
def view_themes_settings_factory(view):
"""View themes settings factory"""
- annotations = IAnnotations(view)
- settings = annotations.get(VIEW_THEMES_SETTINGS_KEY)
- if settings is None:
- settings = annotations[VIEW_THEMES_SETTINGS_KEY] = ViewThemesSettings()
- get_current_registry().notify(ObjectCreatedEvent(settings))
- locate(settings, view, '++view:themes++')
- return settings
+ return get_annotation_adapter(view, VIEW_THEMES_SETTINGS_KEY, ViewThemesSettings,
+ name='++view:themes++')