src/pyams_content/shared/view/reference.py
changeset 558 d9c6b1d7fefa
parent 501 3407e6940f6a
child 617 2e4dbe6fa156
--- a/src/pyams_content/shared/view/reference.py	Fri May 25 08:05:13 2018 +0200
+++ b/src/pyams_content/shared/view/reference.py	Fri May 25 15:48:59 2018 +0200
@@ -20,20 +20,16 @@
 from hypatia.interfaces import ICatalog
 from pyams_content.shared.view.interfaces import IWfView, IViewSettings, IViewInternalReferencesSettings, \
     IViewQueryFilterExtension, VIEW_REFERENCES_SETTINGS_KEY, ALWAYS_REFERENCE_MODE
-from zope.annotation.interfaces import IAnnotations
 
 # import packages
 from hypatia.catalog import CatalogQuery
 from hypatia.query import Any
 from pyams_catalog.query import CatalogResultSet
 from pyams_content.workflow import VISIBLE_STATES
-from pyams_utils.adapter import adapter_config, ContextAdapter
+from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter
 from pyams_utils.registry import get_utility
-from pyramid.threadlocal import get_current_registry
 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
 
 
@@ -53,13 +49,8 @@
 @adapter_config(name='references', context=IWfView, provides=IViewSettings)
 def view_internal_references_settings_factory(view):
     """View internal references settings factory"""
-    annotations = IAnnotations(view)
-    settings = annotations.get(VIEW_REFERENCES_SETTINGS_KEY)
-    if settings is None:
-        settings = annotations[VIEW_REFERENCES_SETTINGS_KEY] = ViewInternalReferencesSettings()
-        get_current_registry().notify(ObjectCreatedEvent(settings))
-        locate(settings, view, '++view:references++')
-    return settings
+    return get_annotation_adapter(view, VIEW_REFERENCES_SETTINGS_KEY, ViewInternalReferencesSettings,
+                                  name='++view:references++')
 
 
 @adapter_config(name='references', context=IWfView, provides=IViewQueryFilterExtension)