src/pyams_content/component/paragraph/keynumber.py
changeset 558 d9c6b1d7fefa
parent 555 8e8a14452567
child 586 28445044f6e3
--- a/src/pyams_content/component/paragraph/keynumber.py	Fri May 25 08:05:13 2018 +0200
+++ b/src/pyams_content/component/paragraph/keynumber.py	Fri May 25 15:48:59 2018 +0200
@@ -24,7 +24,6 @@
 from pyams_content.features.checker.interfaces import IContentChecker, MISSING_VALUE, MISSING_LANG_VALUE
 from pyams_form.interfaces.form import IFormContextPermissionChecker
 from pyams_i18n.interfaces import II18n, II18nManager, INegotiator
-from zope.annotation.interfaces import IAnnotations
 from zope.lifecycleevent.interfaces import IObjectAddedEvent, IObjectModifiedEvent, IObjectRemovedEvent
 from zope.location.interfaces import ISublocations
 from zope.traversing.interfaces import ITraversable
@@ -34,7 +33,7 @@
 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphFactory, BaseParagraphContentChecker
 from pyams_content.features.checker import BaseContentChecker
 from pyams_content.features.renderer import RenderersVocabulary
-from pyams_utils.adapter import adapter_config, ContextAdapter
+from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter
 from pyams_utils.factory import factory_config
 from pyams_utils.registry import get_current_registry, get_utility, utility_config
 from pyams_utils.request import check_request
@@ -158,13 +157,7 @@
 @adapter_config(context=IKeyNumberContainerTarget, provides=IKeyNumberContainer)
 def keynumber_container_factory(target):
     """Key number container factory"""
-    annotations = IAnnotations(target)
-    container = annotations.get(KEYNUMBER_CONTAINER_KEY)
-    if container is None:
-        container = annotations[KEYNUMBER_CONTAINER_KEY] = KeyNumberContainer()
-        get_current_registry().notify(ObjectCreatedEvent(container))
-        locate(container, target, '++keynumbers++')
-    return container
+    return get_annotation_adapter(target, KEYNUMBER_CONTAINER_KEY, KeyNumberContainer, name='++keynumbers++')
 
 
 @adapter_config(name='keynumbers', context=IKeyNumberContainerTarget, provides=ITraversable)