src/pyams_content/component/theme/portlet.py
changeset 558 d9c6b1d7fefa
parent 501 3407e6940f6a
child 829 f933926ed0a1
--- a/src/pyams_content/component/theme/portlet.py	Fri May 25 08:05:13 2018 +0200
+++ b/src/pyams_content/component/theme/portlet.py	Fri May 25 15:48:59 2018 +0200
@@ -18,15 +18,13 @@
 # import interfaces
 from pyams_content.component.theme.interfaces import IPortletThemesSettings, IPortletThemesSettingsTarget, \
     PORTLET_SETTINGS_THEMES_KEY
-from zope.annotation.interfaces import IAnnotations
 from zope.traversing.interfaces import ITraversable
 
 # import packages
 from persistent import Persistent
-from pyams_utils.adapter import adapter_config, ContextAdapter
+from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter
 from zope.container.contained import Contained
 from zope.interface import implementer
-from zope.location import locate
 
 
 @implementer(IPortletThemesSettings)
@@ -37,12 +35,7 @@
 @adapter_config(context=IPortletThemesSettingsTarget, provides=IPortletThemesSettings)
 def portlet_themes_settings_factory(context):
     """Portlet themes settings adapter"""
-    annotations = IAnnotations(context)
-    settings = annotations.get(PORTLET_SETTINGS_THEMES_KEY)
-    if settings is None:
-        settings = annotations[PORTLET_SETTINGS_THEMES_KEY] = PortletThemesSettings()
-        locate(settings, context, '++themes++')
-    return settings
+    return get_annotation_adapter(context, PORTLET_SETTINGS_THEMES_KEY, PortletThemesSettings, name='++themes++')
 
 
 @adapter_config(name='themes', context=IPortletThemesSettingsTarget, provides=ITraversable)