src/pyams_content/shared/common/zmi/__init__.py
changeset 1394 ed31bfceddda
parent 1358 c682811fa1ea
--- a/src/pyams_content/shared/common/zmi/__init__.py	Wed Jul 01 14:10:50 2020 +0200
+++ b/src/pyams_content/shared/common/zmi/__init__.py	Wed Jul 01 18:05:38 2020 +0200
@@ -24,8 +24,11 @@
 from pyams_content.features.review.interfaces import IReviewComments
 from pyams_content.interfaces import CREATE_CONTENT_PERMISSION, MANAGE_CONTENT_PERMISSION, \
     MANAGE_SITE_ROOT_PERMISSION, PUBLISH_CONTENT_PERMISSION
+from pyams_content.shared.common import IDashboardTypeColumnValue
 from pyams_content.shared.common.interfaces import IBaseSharedTool, IContributorRestrictions, \
     IManagerRestrictions, ISharedContent, IWfSharedContent
+from pyams_content.shared.common.interfaces.types import IWfTypedSharedContent
+from pyams_content.shared.common.interfaces.zmi import IDashboardTable, ISiteRootDashboardTable
 from pyams_form.form import AJAXAddForm, ajax_config
 from pyams_form.interfaces.form import IFormContextPermissionChecker, IWidgetsPrefixViewletsManager
 from pyams_form.schema import CloseButton
@@ -387,6 +390,34 @@
 # Custom columns mixins
 #
 
+@adapter_config(context=(IWfSharedContent, IPyAMSLayer, IDashboardTable),
+                provides=IDashboardTypeColumnValue)
+def typed_shared_content_tool_dashboard_type_adapter(context, request, view):
+    """Typed shared content dashboard type column adapter"""
+    content = IWfTypedSharedContent(context, None)
+    if content is not None:
+        data_type = content.get_data_type()
+        if data_type is not None:
+            return II18n(data_type).query_attribute('navigation_label', request=request) or \
+                II18n(data_type).query_attribute('label', request=request)
+
+
+@adapter_config(context=(IWfSharedContent, IPyAMSLayer, ISiteRootDashboardTable),
+                provides=IDashboardTypeColumnValue)
+def typed_shared_content_root_dashboard_type_adapter(context, request, view):
+    """Typed shared content root dashboard type column adapter"""
+    result = request.localizer.translate(context.content_name)
+    content = IWfTypedSharedContent(context, None)
+    if content is not None:
+        data_type = content.get_data_type()
+        if data_type is not None:
+            result = '{} ({})'.format(
+                result,
+                II18n(data_type).query_attribute('navigation_label', request=request) or
+                II18n(data_type).query_attribute('label', request=request))
+    return result
+
+
 class WfModifiedContentColumnMixin(object):
     """Shared content modified column mixin"""
 
@@ -398,7 +429,7 @@
                 item_dc = IZopeDublinCore(item)
                 if item_dc.modified and (item_dc.modified > IZopeDublinCore(content).created):
                     translate = self.request.localizer.translate
-                    value += '<i class="fa fa-fw fa-circle txt-color-orange hint align-middle padding-left-5" ' \
-                             'title="{0}" data-ams-hint-gravity="w"></i>'.format(
+                    value += '<i class="fa fa-fw fa-circle txt-color-orange hint align-middle ' \
+                             'padding-left-5" title="{0}" data-ams-hint-gravity="w"></i>'.format(
                         translate(_("Created or modified in this version")))
         return value