--- a/src/pyams_content/shared/common/types.py Fri May 25 08:05:13 2018 +0200
+++ b/src/pyams_content/shared/common/types.py Fri May 25 15:48:59 2018 +0200
@@ -30,17 +30,13 @@
from persistent import Persistent
from pyams_content.shared.common.manager import SharedTool
from pyams_i18n.property import I18nFileProperty
-from pyams_utils.adapter import adapter_config, ContextAdapter
-from pyams_utils.registry import get_global_registry
+from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter
from pyams_utils.request import check_request
from pyams_utils.traversing import get_parent
from pyams_utils.vocabulary import vocabulary_config
-from zope.annotation.interfaces import IAnnotations
from zope.container.contained import Contained
from zope.container.ordered import OrderedContainer
from zope.interface import implementer
-from zope.lifecycleevent import ObjectCreatedEvent
-from zope.location import locate
from zope.schema import getFieldsInOrder
from zope.schema.fieldproperty import FieldProperty
from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
@@ -93,14 +89,7 @@
@adapter_config(context=ITypedSharedTool, provides=ITypedDataManager)
def typed_shared_tool_data_manager_factory(context):
"""Types shared tool data manager factory"""
- annotations = IAnnotations(context)
- manager = annotations.get(DATA_MANAGER_ANNOTATION_KEY)
- if manager is None:
- manager = annotations[DATA_MANAGER_ANNOTATION_KEY] = TypedDataManager()
- registry = get_global_registry()
- registry.notify(ObjectCreatedEvent(manager))
- locate(manager, context, '++types++')
- return manager
+ return get_annotation_adapter(context, DATA_MANAGER_ANNOTATION_KEY, TypedDataManager, name='++types++')
@adapter_config(name='types', context=ITypedSharedTool, provides=ITraversable)