--- a/src/pyams_content/features/share/zmi/container.py Wed Jan 16 15:55:23 2019 +0100
+++ b/src/pyams_content/features/share/zmi/container.py Wed Jan 16 19:10:46 2019 +0100
@@ -17,11 +17,18 @@
from pyramid.decorator import reify
from pyramid.exceptions import NotFound
from pyramid.view import view_config
+from z3c.form import field
from z3c.table.interfaces import IColumn, IValues
+from zope.interface import implementer
+from zope.schema import getFieldNamesInOrder
-from pyams_content.features.share.interfaces import ISocialShareManager, ISocialShareManagerTarget
+from pyams_content import _
+from pyams_content.features.share.interfaces import ISocialShareInfo, ISocialShareManager, ISocialShareManagerTarget
+from pyams_content.features.share.zmi.interfaces import ISocialShareMenu
from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION
from pyams_content.zmi import pyams_content
+from pyams_form.form import ajax_config
+from pyams_form.group import NamedWidgetsGroup
from pyams_pagelet.pagelet import pagelet_config
from pyams_skin.help import ContentHelp
from pyams_skin.interfaces import IContentHelp, IPageHeader
@@ -33,15 +40,15 @@
from pyams_utils.fanstatic import get_resource_path
from pyams_utils.url import absolute_url
from pyams_viewlet.viewlet import viewlet_config
-from pyams_zmi.interfaces.menu import IPropertiesMenu
+from pyams_zmi.form import AdminDialogEditForm
+from pyams_zmi.interfaces.menu import ISiteManagementMenu
from pyams_zmi.layer import IAdminLayer
from pyams_zmi.view import ContainerAdminView
-from pyams_content import _
-
@viewlet_config(name='social-share.menu', context=ISocialShareManagerTarget, layer=IPyAMSLayer,
- manager=IPropertiesMenu, permission=MANAGE_SITE_ROOT_PERMISSION, weight=25)
+ manager=ISiteManagementMenu, permission=MANAGE_SITE_ROOT_PERMISSION, weight=25)
+@implementer(ISocialShareMenu)
class SocialShareMenu(MenuItem):
"""Social network share menu"""
@@ -184,3 +191,39 @@
**WARNING**: don't forget to include a toolbox in your presentation template to display social networks shares!!
""")
message_format = 'rest'
+
+
+#
+# General social share info
+#
+
+@viewlet_config(name='social-share-info.menu', context=ISocialShareManagerTarget, layer=IPyAMSLayer,
+ manager=ISocialShareMenu, permission=MANAGE_SITE_ROOT_PERMISSION, weight=10)
+class SocialShareInfoMenu(MenuItem):
+ """Social share info menu"""
+
+ label = _("Social networks info...")
+ icon_class = 'fa-twitter'
+ url = 'social-share-info.html'
+ modal_target = True
+
+
+@pagelet_config(name='social-share-info.html', context=ISocialShareManagerTarget, layer=IPyAMSLayer,
+ permission=MANAGE_SITE_ROOT_PERMISSION)
+@ajax_config(name='social-share-info.json', context=ISocialShareManagerTarget, layer=IPyAMSLayer)
+class SocialShareInfoEditForm(AdminDialogEditForm):
+ """Social share info properties edit form"""
+
+ legend = _("Edit social networks properties")
+
+ fields = field.Fields(ISocialShareInfo)
+
+ label_css_class = 'control-label col-md-4'
+ input_css_class = 'col-md-8'
+
+ def updateGroups(self):
+ self.add_group(NamedWidgetsGroup(self, 'twitter', self.widgets,
+ getFieldNamesInOrder(ISocialShareInfo),
+ legend=_("Twitter account"),
+ css_class='inner'))
+ super(SocialShareInfoEditForm, self).updateGroups()