src/pyams_skin/extension.py
changeset 328 277aea3b91ec
parent 294 ca2b091ad80d
child 506 08196fe15f4a
--- 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)