--- a/src/pyams_skin/table.py Wed Mar 04 00:04:11 2015 +0100
+++ b/src/pyams_skin/table.py Wed Mar 04 00:05:22 2015 +0100
@@ -12,11 +12,13 @@
__docformat__ = 'restructuredtext'
+
# import standard library
# import interfaces
-from pyams_skin.interfaces.container import ITable, ITableElementEditor
+from pyams_skin.interfaces.container import ITable, ITableElementEditor, ITableWithActions
from pyams_skin.layer import IPyAMSLayer
+from pyams_viewlet.interfaces import IViewletManager
from z3c.table.interfaces import IColumn
from zope.container.interfaces import IContained
@@ -179,6 +181,26 @@
return absolute_url(item, self.request, self.url)
+@adapter_config(name='actions', context=(Interface, IPyAMSLayer, ITableWithActions), provides=IColumn)
+class MenuActionsColumn(I18nColumn, Column):
+ """Menu actions column"""
+
+ _header = _("Actions")
+ cssClasses = {'th': 'actions-menu',
+ 'td': 'nowrap'}
+ weight = 9000
+
+ def renderCell(self, item):
+ registry = self.request.registry
+ viewlet = registry.queryMultiAdapter((item, self.request, self.table), IViewletManager,
+ name='pyams.table-item.actions')
+ if viewlet is not None:
+ viewlet.update()
+ return viewlet.render()
+ else:
+ return ''
+
+
class TrashColumn(ActionColumn):
"""Trash action icon column"""