src/pyams_content/shared/blog/zmi/manager.py
changeset 492 04503227569d
parent 334 6b2f75e60076
child 527 5dd1aa8bedd9
--- a/src/pyams_content/shared/blog/zmi/manager.py	Thu Mar 22 14:50:32 2018 +0100
+++ b/src/pyams_content/shared/blog/zmi/manager.py	Thu Mar 22 14:52:22 2018 +0100
@@ -16,11 +16,11 @@
 # import standard library
 from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION, MANAGE_SITE_PERMISSION
 from pyams_content.root.interfaces import ISiteRoot
-from pyams_content.shared.blog.interfaces import IBlogManager
+from pyams_content.shared.blog.interfaces import IBlogManager, IBlogManagerFactory
 from pyams_content.skin.zmi.interfaces import ISiteTreeTable, IUserAddingsMenuLabel
 from pyams_i18n.interfaces import II18n, INegotiator
 from pyams_skin.interfaces.container import ITableElementEditor
-from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
+from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, ITableItemColumnActionsMenu
 from pyams_skin.layer import IPyAMSLayer
 from pyams_workflow.interfaces import IWorkflowPublicationInfo
 from pyams_zmi.interfaces.menu import IPropertiesMenu
@@ -30,6 +30,7 @@
 from z3c.form.interfaces import IDataExtractedEvent
 
 # import packages
+from pyams_content.shared.blog.manager import BlogManager
 from pyams_form.form import AJAXAddForm, AJAXEditForm
 from pyams_pagelet.pagelet import pagelet_config
 from pyams_skin.table import DefaultElementEditorAdapter
@@ -91,9 +92,10 @@
 
     def create(self, data):
         factory = self.request.registry.settings.get('pyams_content.config.blog_factory')
-        if factory is None:
-            factory = 'pyams_content.shared.blog.manager.BlogManager'
-        factory = DottedNameResolver().resolve(factory)
+        if factory:
+            factory = DottedNameResolver().resolve(factory)
+        else:
+            factory = IBlogManagerFactory(self.context, BlogManager)
         return factory()
 
     def add(self, object):
@@ -141,8 +143,20 @@
 # Blog manager publication views
 #
 
+@viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IPyAMSLayer, view=ISiteTreeTable,
+                manager=ITableItemColumnActionsMenu, permission=MANAGE_SITE_PERMISSION, weight=210)
+class BlogManagerTableItemWorkflowPublicationMenu(ToolbarMenuItem):
+    """Blog manager tree item workflow publication menu"""
+
+    label = _("Publication dates...")
+    label_css_class = 'fa fa-fw fa-eye'
+    url = 'workflow-publication.html'
+    modal_target = True
+    stop_propagation = True
+
+
 @viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IAdminLayer, manager=IPropertiesMenu,
-                permission=MANAGE_SITE_PERMISSION, weight=2)
+                permission=MANAGE_SITE_PERMISSION, weight=210)
 class BlogManagerWorkflowPublicationMenu(MenuItem):
     """Blog manager workflow publication menu"""