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