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