src/pyams_content/root/zmi/sites.py
changeset 304 14b2ae98f78c
parent 301 9bdda3bcd680
child 334 6b2f75e60076
--- a/src/pyams_content/root/zmi/sites.py	Mon Dec 04 15:36:40 2017 +0100
+++ b/src/pyams_content/root/zmi/sites.py	Fri Dec 08 10:41:32 2017 +0100
@@ -23,20 +23,25 @@
 from pyams_content.zmi.interfaces import ISiteTreeMenu, ISiteTreeTable
 from pyams_sequence.interfaces import ISequentialIdInfo
 from pyams_skin.interfaces import IInnerPage, IPageHeader
+from pyams_skin.interfaces.container import ITableWithActions
 from pyams_skin.layer import IPyAMSLayer
 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
 from pyams_workflow.interfaces import IWorkflowPublicationInfo
 from pyams_zmi.interfaces.menu import ISiteManagementMenu
 from pyams_zmi.layer import IAdminLayer
 from z3c.table.interfaces import IColumn, IValues
+from zope.intid.interfaces import IIntIds
 
 # import packages
+from pyams_content.skin import pyams_content
 from pyams_pagelet.pagelet import pagelet_config
 from pyams_skin.container import ContainerView
 from pyams_skin.page import DefaultPageHeaderAdapter
 from pyams_skin.table import BaseTable, TrashColumn, ActionColumn, I18nColumn
 from pyams_skin.viewlet.menu import MenuItem
 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
+from pyams_utils.fanstatic import get_resource_path
+from pyams_utils.registry import get_utility
 from pyams_utils.url import absolute_url
 from pyams_viewlet.manager import viewletmanager_config
 from pyams_viewlet.viewlet import viewlet_config
@@ -52,7 +57,7 @@
 # Sites and blogs view
 #
 
-@viewlet_config(name='site-tree.menu', layer=IAdminLayer, context=ISiteRoot, manager=ISiteManagementMenu,
+@viewlet_config(name='site-tree.menu', context=ISiteRoot, layer=IAdminLayer, manager=ISiteManagementMenu,
                 permission=VIEW_SYSTEM_PERMISSION, weight=5)
 @viewletmanager_config(name='site-tree.menu', layer=IAdminLayer, context=ISiteRoot, provides=ISiteTreeMenu)
 @implementer(ISiteTreeMenu)
@@ -64,7 +69,7 @@
     url = '#site-tree.html'
 
 
-@implementer(IDashboardTable, ISiteTreeTable)
+@implementer(IDashboardTable, ITableWithActions, ISiteTreeTable)
 class SiteTreeTable(BaseTable):
     """Site tree table"""
 
@@ -76,8 +81,19 @@
     @property
     def data_attributes(self):
         attributes = super(SiteTreeTable, self).data_attributes
-        attributes['table'] = {'data-ams-location': absolute_url(self.context, self.request),
-                               'data-ams-delete-target': 'delete-shared-site.json'}
+        intids = get_utility(IIntIds)
+        attributes.setdefault('table', {}).update({
+            'data-ams-plugins': 'pyams_content',
+            'data-ams-plugin-pyams_content-src': get_resource_path(pyams_content),
+            'data-ams-location': absolute_url(self.context, self.request),
+            'data-ams-delete-target': 'delete-shared-site.json'
+        })
+        attributes.setdefault('tr', {}).update({
+            'id': lambda x, col: '{0}::{1}'.format(self.id, intids.queryId(x)),
+            'data-ams-location': lambda x, col: absolute_url(x.__parent__, self.request),
+            'data-ams-tree-node-id': lambda x, col: intids.queryId(x),
+            'data-ams-tree-node-parent-id': lambda x, col: intids.queryId(x.__parent__)
+        })
         return attributes
 
 
@@ -123,7 +139,7 @@
             return '--'
         else:
             try:
-                return sequence.get_short_oid()
+                return sequence.get_base_oid()
             except TypeError:
                 return '--'