--- 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 '--'