diff -r 237378166902 -r 277aea3b91ec src/pyams_skin/extension.py --- a/src/pyams_skin/extension.py Fri May 25 16:14:59 2018 +0200 +++ b/src/pyams_skin/extension.py Mon May 28 14:06:21 2018 +0200 @@ -20,11 +20,10 @@ IGoogleAnalyticsInfo, GOOGLE_ANALYTICS_INFO_KEY, \ IUserReportInfo, USER_REPORT_INFO_KEY, IGoogleTagManagerInfo, GOOGLE_TAGS_INFO_KEY from pyams_utils.interfaces.site import ISiteRoot -from zope.annotation.interfaces import IAnnotations # import packages from persistent import Persistent -from pyams_utils.adapter import adapter_config +from pyams_utils.adapter import adapter_config, get_annotation_adapter from zope.interface import implementer from zope.schema.fieldproperty import FieldProperty @@ -41,11 +40,8 @@ @adapter_config(context=ISiteRoot, provides=IGoogleTagManagerInfo) def google_tag_manager_info_factory(context): """Google Tag Manager settings factory""" - annotations = IAnnotations(context) - info = annotations.get(GOOGLE_TAGS_INFO_KEY) - if info is None: - info = annotations[GOOGLE_TAGS_INFO_KEY] = GoogleTagManagerInfo() - return info + return get_annotation_adapter(context, GOOGLE_TAGS_INFO_KEY, GoogleTagManagerInfo, + notify=False, locate=False) @implementer(IGoogleAnalyticsInfo) @@ -61,11 +57,8 @@ @adapter_config(context=ISiteRoot, provides=IGoogleAnalyticsInfo) def google_analytics_info_factory(context): """Google Analytics settings factory""" - annotations = IAnnotations(context) - info = annotations.get(GOOGLE_ANALYTICS_INFO_KEY) - if info is None: - info = annotations[GOOGLE_ANALYTICS_INFO_KEY] = GoogleAnalyticsInfo() - return info + return get_annotation_adapter(context, GOOGLE_ANALYTICS_INFO_KEY, GoogleAnalyticsInfo, + notify=False, locate=False) @implementer(IUserReportInfo) @@ -80,8 +73,5 @@ @adapter_config(context=ISiteRoot, provides=IUserReportInfo) def user_report_info_factory(context): """User report settings factory""" - annotations = IAnnotations(context) - info = annotations.get(USER_REPORT_INFO_KEY) - if info is None: - info = annotations[USER_REPORT_INFO_KEY] = UserReportInfo() - return info + return get_annotation_adapter(context, USER_REPORT_INFO_KEY, UserReportInfo, + notify=False, locate=False)