--- a/src/pyams_content/component/video/__init__.py Fri May 25 08:05:13 2018 +0200
+++ b/src/pyams_content/component/video/__init__.py Fri May 25 15:48:59 2018 +0200
@@ -9,8 +9,6 @@
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
-from pyams_i18n.interfaces import II18nManager, INegotiator, II18n
-from pyams_utils.traversing import get_parent
__docformat__ = 'restructuredtext'
@@ -21,15 +19,15 @@
# import interfaces
from pyams_content.component.video.interfaces import IExternalVideo, IExternalVideoProvider, IExternalVideoSettings
from pyams_content.features.checker.interfaces import IContentChecker, MISSING_VALUE, MISSING_LANG_VALUE
-from zope.annotation import IAnnotations
+from pyams_i18n.interfaces import II18nManager, INegotiator, II18n
# import packages
from pyams_content.features.checker import BaseContentChecker, VALUE_OK
-from pyams_utils.adapter import adapter_config
+from pyams_utils.adapter import adapter_config, get_annotation_adapter
from pyams_utils.registry import query_utility, get_utility
+from pyams_utils.traversing import get_parent
from zope.container.contained import Contained
from zope.interface import implementer
-from zope.location import locate
from zope.schema.fieldproperty import FieldProperty
from pyams_content import _
@@ -62,15 +60,10 @@
"""External video settings factory"""
if not context.provider_name:
return None
- annotations = IAnnotations(context)
+ provider = context.get_provider()
settings_key = EXTERNAL_VIDEO_SETTINGS_KEY.format(context.provider_name.lower())
- settings = annotations.get(settings_key)
- if settings is None:
- provider = context.get_provider()
- if provider is not None:
- settings = annotations[settings_key] = IExternalVideoSettings(provider)
- locate(settings, context)
- return settings
+ return get_annotation_adapter(context, settings_key,
+ factory=lambda: IExternalVideoSettings(provider))
@adapter_config(context=IExternalVideo, provides=IContentChecker)