src/pyams_content/reference/pictograms/manager.py
changeset 558 d9c6b1d7fefa
parent 501 3407e6940f6a
child 625 abd143a83a07
--- a/src/pyams_content/reference/pictograms/manager.py	Fri May 25 08:05:13 2018 +0200
+++ b/src/pyams_content/reference/pictograms/manager.py	Fri May 25 15:48:59 2018 +0200
@@ -20,18 +20,15 @@
 from pyams_i18n.interfaces import II18n
 from pyams_content.reference.pictograms.interfaces import IPictogramTable, IPictogramManager, IPictogramManagerTarget, \
     PICTOGRAM_MANAGER_KEY, SELECTED_PICTOGRAM_VOCABULARY
-from zope.annotation import IAnnotations
 
 # import packages
-from pyams_utils.adapter import adapter_config
-from pyams_utils.registry import get_current_registry, query_utility
+from pyams_utils.adapter import adapter_config, get_annotation_adapter
+from pyams_utils.registry import query_utility
 from pyams_utils.request import check_request
 from pyams_utils.traversing import get_parent
 from pyams_utils.vocabulary import vocabulary_config
 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
 from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
 
@@ -46,13 +43,7 @@
 @adapter_config(context=IPictogramManagerTarget, provides=IPictogramManager)
 def pictogram_manager_factory(target):
     """Pictogram manager factory"""
-    annotations = IAnnotations(target)
-    manager = annotations.get(PICTOGRAM_MANAGER_KEY)
-    if manager is None:
-        manager = annotations[PICTOGRAM_MANAGER_KEY] = PictogramManager()
-        get_current_registry().notify(ObjectCreatedEvent(manager))
-        locate(manager, target)
-    return manager
+    return get_annotation_adapter(target, PICTOGRAM_MANAGER_KEY, PictogramManager)
 
 
 @vocabulary_config(name=SELECTED_PICTOGRAM_VOCABULARY)