src/pyams_content/features/share/container.py
changeset 1239 b6d9396beffd
parent 1138 6de2ab88b4fe
child 1247 2b1abe98ff47
--- a/src/pyams_content/features/share/container.py	Wed Jan 16 15:55:23 2019 +0100
+++ b/src/pyams_content/features/share/container.py	Wed Jan 16 19:10:46 2019 +0100
@@ -12,22 +12,39 @@
 
 __docformat__ = 'restructuredtext'
 
+from persistent import Persistent
+from zope.container.contained import Contained
 from zope.container.ordered import OrderedContainer
-from zope.interface import implementer
 from zope.location import locate
 from zope.location.interfaces import ISublocations
+from zope.schema.fieldproperty import FieldProperty
 from zope.traversing.interfaces import ITraversable
 
 from pyams_catalog.utils import index_object
 from pyams_content.features.share import ISocialShareItem
-from pyams_content.features.share.interfaces import ISocialShareManager, ISocialShareManagerTarget, \
-    SOCIAL_SHARE_MANAGER_KEY
+from pyams_content.features.share.interfaces import ISocialShareInfo, ISocialShareManager, ISocialShareManagerTarget, \
+    SOCIAL_SHARE_INFO_KEY, SOCIAL_SHARE_MANAGER_KEY
 from pyams_utils.adapter import ContextAdapter, adapter_config, get_annotation_adapter
+from pyams_utils.factory import factory_config
 
 
-@implementer(ISocialShareManager)
+@factory_config(ISocialShareInfo)
+class SocialShareInfo(Persistent, Contained):
+    """Social network share general info"""
+
+    twitter_account = FieldProperty(ISocialShareInfo['twitter_account'])
+    twitter_creator_account = FieldProperty(ISocialShareInfo['twitter_creator_account'])
+
+
+@adapter_config(context=ISocialShareManagerTarget, provides=ISocialShareInfo)
+def social_share_info_factory(context):
+    """Social network general info factory"""
+    return get_annotation_adapter(context, SOCIAL_SHARE_INFO_KEY, ISocialShareInfo)
+
+
+@factory_config(ISocialShareManager)
 class SocialShareManager(OrderedContainer):
-    """Social network share manager"""
+    """Social network share links manager"""
 
     last_id = 1
 
@@ -49,7 +66,8 @@
 @adapter_config(context=ISocialShareManagerTarget, provides=ISocialShareManager)
 def social_share_manager_factory(context):
     """Social network share manager factory"""
-    return get_annotation_adapter(context, SOCIAL_SHARE_MANAGER_KEY, SocialShareManager, name='++social-share++')
+    return get_annotation_adapter(context, SOCIAL_SHARE_MANAGER_KEY, ISocialShareManager,
+                                  name='++social-share++')
 
 
 @adapter_config(name='social-share', context=ISocialShareManagerTarget, provides=ITraversable)