--- a/src/pyams_content/shared/blog/zmi/manager.py Wed Jul 01 14:10:50 2020 +0200
+++ b/src/pyams_content/shared/blog/zmi/manager.py Wed Jul 01 18:05:38 2020 +0200
@@ -10,8 +10,6 @@
# FOR A PARTICULAR PURPOSE.
#
-__docformat__ = 'restructuredtext'
-
from datetime import datetime
from pyramid.events import subscriber
@@ -20,23 +18,26 @@
from z3c.form.interfaces import IDataExtractedEvent
from zope.interface import Invalid
-from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION, MANAGE_SITE_PERMISSION, MANAGE_TOOL_PERMISSION
+from pyams_content.interfaces import MANAGE_SITE_PERMISSION, MANAGE_SITE_ROOT_PERMISSION, \
+ MANAGE_TOOL_PERMISSION
from pyams_content.root.interfaces import ISiteRoot
from pyams_content.shared.blog.interfaces import IBlogManager, IBlogManagerFactory
from pyams_content.shared.blog.manager import BlogManager
-from pyams_content.shared.common import IBaseSharedTool
+from pyams_content.shared.common import IBaseSharedTool, IDashboardTypeColumnValue
+from pyams_content.shared.common.interfaces.zmi import IDashboardTable
from pyams_content.shared.common.zmi.manager import SharedToolPropertiesEditForm
from pyams_content.zmi.interfaces import ISiteTreeTable, IUserAddingsMenuLabel
from pyams_form.form import AJAXAddForm, ajax_config
from pyams_i18n.interfaces import II18n, INegotiator
from pyams_pagelet.pagelet import pagelet_config
from pyams_skin.interfaces.container import ITableElementEditor
-from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, ITableItemColumnActionsMenu, IMenuHeader
+from pyams_skin.interfaces.viewlet import IMenuHeader, ITableItemColumnActionsMenu, \
+ IToolbarAddingMenu
from pyams_skin.layer import IPyAMSLayer
from pyams_skin.table import DefaultElementEditorAdapter
from pyams_skin.viewlet.menu import MenuItem
from pyams_skin.viewlet.toolbar import ToolbarMenuItem
-from pyams_utils.adapter import adapter_config, ContextRequestAdapter
+from pyams_utils.adapter import ContextRequestAdapter, adapter_config
from pyams_utils.registry import query_utility
from pyams_utils.timezone import tztime
from pyams_utils.unicode import translate_string
@@ -47,9 +48,19 @@
from pyams_zmi.interfaces.menu import IPropertiesMenu, ISiteManagementMenu
from pyams_zmi.layer import IAdminLayer
+
+__docformat__ = 'restructuredtext'
+
from pyams_content import _
+@adapter_config(context=(IDashboardTable, IPyAMSLayer, IBlogManager),
+ provides=IDashboardTypeColumnValue)
+def blog_manager_dashboard_type(context, request):
+ """Blog manager dashboard type column adapter"""
+ return request.localizer.translate(context.content_name)
+
+
@adapter_config(context=(IBlogManager, ISiteManagementMenu), provides=IMenuHeader)
class BlogManagerSiteManagementMenuHeader(ContextRequestAdapter):
"""Blog manager site management menu header adapter"""
@@ -68,12 +79,14 @@
@property
def label(self):
return '{content} ({blog})'.format(
- content=self.request.localizer.translate(self.context.shared_content_factory.content_class.content_name),
+ content=self.request.localizer.translate(
+ self.context.shared_content_factory.content_class.content_name),
blog=II18n(self.context).query_attribute('title', request=self.request))
@viewlet_config(name='add-blog-manager.menu', context=ISiteRoot, layer=IAdminLayer,
- view=ISiteTreeTable, manager=IToolbarAddingMenu, permission=MANAGE_SITE_ROOT_PERMISSION)
+ view=ISiteTreeTable, manager=IToolbarAddingMenu,
+ permission=MANAGE_SITE_ROOT_PERMISSION)
class BlogManagerAddMenu(ToolbarMenuItem):
"""Blog manager add menu"""
@@ -121,18 +134,22 @@
negotiator = query_utility(INegotiator)
short_name = event.data['short_name'].get(negotiator.server_language)
if not short_name:
- event.form.widgets.errors += (Invalid(_("You must provide a short name for default server language!")),)
+ event.form.widgets.errors += (Invalid(_("You must provide a short name for default "
+ "server language!")),)
return
name = translate_string(short_name, force_lower=True, spaces='-')
if name in container:
- event.form.widgets.errors += (Invalid(_("Specified blog manager name is already used!")),)
+ event.form.widgets.errors += (Invalid(_("Specified blog manager name is already "
+ "used!")),)
return
blog = query_utility(IBlogManager, name=short_name)
if blog is not None:
- event.form.widgets.errors += (Invalid(_("A blog manager is already registered with this name!!")),)
+ event.form.widgets.errors += (Invalid(_("A blog manager is already registered with "
+ "this name!!")),)
-@adapter_config(context=(IBlogManager, IAdminLayer, ISiteTreeTable), provides=ITableElementEditor)
+@adapter_config(context=(IBlogManager, IAdminLayer, ISiteTreeTable),
+ provides=ITableElementEditor)
class BlogManagerTableElementEditor(DefaultElementEditorAdapter):
"""Blog manager table element editor"""
@@ -140,14 +157,16 @@
modal_target = False
-@pagelet_config(name='properties.html', context=IBlogManager, layer=IPyAMSLayer, permission=MANAGE_TOOL_PERMISSION)
+@pagelet_config(name='properties.html', context=IBlogManager, layer=IPyAMSLayer,
+ permission=MANAGE_TOOL_PERMISSION)
@ajax_config(name='properties.json', context=IBlogManager, layer=IPyAMSLayer)
class BlogManagerPropertiesEditForm(SharedToolPropertiesEditForm):
"""Site folder properties edit form"""
legend = _("Blog properties")
- fields = field.Fields(IBlogManager).select('title', 'short_name', 'description', 'notepad') + \
+ fields = field.Fields(IBlogManager).select('title', 'short_name', 'description',
+ 'notepad') + \
field.Fields(IBaseSharedTool).select('shared_content_workflow')
@@ -155,8 +174,9 @@
# Blog manager publication views
#
-@viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IPyAMSLayer, view=ISiteTreeTable,
- manager=ITableItemColumnActionsMenu, permission=MANAGE_SITE_PERMISSION, weight=210)
+@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"""
@@ -167,8 +187,8 @@
stop_propagation = True
-@viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IAdminLayer, manager=IPropertiesMenu,
- permission=MANAGE_SITE_PERMISSION, weight=210)
+@viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IAdminLayer,
+ manager=IPropertiesMenu, permission=MANAGE_SITE_PERMISSION, weight=210)
class BlogManagerWorkflowPublicationMenu(MenuItem):
"""Blog manager workflow publication menu"""
@@ -188,7 +208,8 @@
legend = _("Update publication dates")
- fields = field.Fields(IWorkflowPublicationInfo).select('publication_effective_date', 'publication_expiration_date')
+ fields = field.Fields(IWorkflowPublicationInfo).select('publication_effective_date',
+ 'publication_expiration_date')
edit_permission = MANAGE_SITE_PERMISSION
def updateWidgets(self, prefix=None):
@@ -196,4 +217,5 @@
if 'publication_effective_date' in self.widgets:
pub_info = IWorkflowPublicationInfo(self.context)
if pub_info.publication_effective_date is None:
- self.widgets['publication_effective_date'].value = tztime(datetime.utcnow()).strftime('%d/%m/%y %H:%M')
+ self.widgets['publication_effective_date'].value = \
+ tztime(datetime.utcnow()).strftime('%d/%m/%y %H:%M')