diff -r a78ade534b97 -r d9c6b1d7fefa src/pyams_content/shared/view/reference.py --- 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)