--- 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)