src/pyams_skin/extension.py
changeset 506 08196fe15f4a
parent 328 277aea3b91ec
child 576 998a3b7cac64
--- a/src/pyams_skin/extension.py	Fri Dec 28 10:58:27 2018 +0100
+++ b/src/pyams_skin/extension.py	Wed Jan 16 11:56:44 2019 +0100
@@ -12,27 +12,24 @@
 
 __docformat__ = 'restructuredtext'
 
-
-# import standard library
+from persistent import Persistent
+from zope.schema.fieldproperty import FieldProperty
 
-# import interfaces
-from pyams_skin.interfaces.extension import \
-    IGoogleAnalyticsInfo, GOOGLE_ANALYTICS_INFO_KEY, \
-    IUserReportInfo, USER_REPORT_INFO_KEY, IGoogleTagManagerInfo, GOOGLE_TAGS_INFO_KEY
+from pyams_skin.interfaces.extension import GOOGLE_ANALYTICS_INFO_KEY, GOOGLE_TAGS_INFO_KEY, IGoogleAnalyticsInfo, \
+    IGoogleTagManagerInfo, IUserReportInfo, USER_REPORT_INFO_KEY
+from pyams_utils.adapter import adapter_config, get_annotation_adapter
+from pyams_utils.factory import factory_config
 from pyams_utils.interfaces.site import ISiteRoot
 
-# import packages
-from persistent import Persistent
-from pyams_utils.adapter import adapter_config, get_annotation_adapter
-from zope.interface import implementer
-from zope.schema.fieldproperty import FieldProperty
 
-
-@implementer(IGoogleTagManagerInfo)
+@factory_config(IGoogleTagManagerInfo)
 class GoogleTagManagerInfo(Persistent):
     """Google tag manager settings class"""
 
     enabled = FieldProperty(IGoogleTagManagerInfo['enabled'])
+    on_accepted_cookie = FieldProperty(IGoogleTagManagerInfo['on_accepted_cookie'])
+    cookie_name = FieldProperty(IGoogleTagManagerInfo['cookie_name'])
+    rejected_cookie_value = FieldProperty(IGoogleTagManagerInfo['rejected_cookie_value'])
     container_id = FieldProperty(IGoogleTagManagerInfo['container_id'])
     activation_mode = FieldProperty(IGoogleTagManagerInfo['activation_mode'])
 
@@ -40,15 +37,18 @@
 @adapter_config(context=ISiteRoot, provides=IGoogleTagManagerInfo)
 def google_tag_manager_info_factory(context):
     """Google Tag Manager settings factory"""
-    return get_annotation_adapter(context, GOOGLE_TAGS_INFO_KEY, GoogleTagManagerInfo,
+    return get_annotation_adapter(context, GOOGLE_TAGS_INFO_KEY, IGoogleTagManagerInfo,
                                   notify=False, locate=False)
 
 
-@implementer(IGoogleAnalyticsInfo)
+@factory_config(IGoogleAnalyticsInfo)
 class GoogleAnalyticsInfo(Persistent):
     """Google Analytics settings class"""
 
     enabled = FieldProperty(IGoogleAnalyticsInfo['enabled'])
+    on_accepted_cookie = FieldProperty(IGoogleAnalyticsInfo['on_accepted_cookie'])
+    cookie_name = FieldProperty(IGoogleAnalyticsInfo['cookie_name'])
+    rejected_cookie_value = FieldProperty(IGoogleAnalyticsInfo['rejected_cookie_value'])
     website_id = FieldProperty(IGoogleAnalyticsInfo['website_id'])
     verification_code = FieldProperty(IGoogleAnalyticsInfo['verification_code'])
     activation_mode = FieldProperty(IGoogleAnalyticsInfo['activation_mode'])
@@ -57,15 +57,18 @@
 @adapter_config(context=ISiteRoot, provides=IGoogleAnalyticsInfo)
 def google_analytics_info_factory(context):
     """Google Analytics settings factory"""
-    return get_annotation_adapter(context, GOOGLE_ANALYTICS_INFO_KEY, GoogleAnalyticsInfo,
+    return get_annotation_adapter(context, GOOGLE_ANALYTICS_INFO_KEY, IGoogleAnalyticsInfo,
                                   notify=False, locate=False)
 
 
-@implementer(IUserReportInfo)
+@factory_config(IUserReportInfo)
 class UserReportInfo(Persistent):
     """User report settings class"""
 
     enabled = FieldProperty(IUserReportInfo['enabled'])
+    on_accepted_cookie = FieldProperty(IUserReportInfo['on_accepted_cookie'])
+    cookie_name = FieldProperty(IUserReportInfo['cookie_name'])
+    rejected_cookie_value = FieldProperty(IUserReportInfo['rejected_cookie_value'])
     account_id = FieldProperty(IUserReportInfo['account_id'])
     activation_mode = FieldProperty(IUserReportInfo['activation_mode'])
 
@@ -73,5 +76,5 @@
 @adapter_config(context=ISiteRoot, provides=IUserReportInfo)
 def user_report_info_factory(context):
     """User report settings factory"""
-    return get_annotation_adapter(context, USER_REPORT_INFO_KEY, UserReportInfo,
+    return get_annotation_adapter(context, USER_REPORT_INFO_KEY, IUserReportInfo,
                                   notify=False, locate=False)