[Checkins] SVN: z3c.table/trunk/src/z3c/table/column.py Implemented
generic link column
Roger Ineichen
roger at projekt01.ch
Thu Mar 20 09:43:53 EDT 2008
Log message for revision 84805:
Implemented generic link column
TODO:
Needs some tests, I only tested them in one of our application
Changed:
U z3c.table/trunk/src/z3c/table/column.py
-=-
Modified: z3c.table/trunk/src/z3c/table/column.py
===================================================================
--- z3c.table/trunk/src/z3c/table/column.py 2008-03-20 13:39:53 UTC (rev 84804)
+++ z3c.table/trunk/src/z3c/table/column.py 2008-03-20 13:43:53 UTC (rev 84805)
@@ -22,6 +22,7 @@
from zope.dublincore.interfaces import IZopeDublinCore
from zope.security.interfaces import Unauthorized
from zope.traversing import api
+from zope.traversing.browser import absoluteURL
from z3c.table import interfaces
@@ -259,3 +260,55 @@
if value:
value = formatter.format(value)
return value
+
+
+class LinkColumn(Column):
+ """Name column."""
+
+ header = _('Name')
+ linkName = None
+ linkTarget = None
+ linkContent = None
+ linkCSS = None
+
+ def getLinkURL(self, item):
+ """Setup link url."""
+ if self.linkName is not None:
+ return '%s/%s' % (absoluteURL(item, self.request), self.linkName)
+ return absoluteURL(item, self.request)
+
+ def getLinkCSS(self, item):
+ """Setup link css."""
+ return self.linkCSS and ' css="%s"' % self.linkCSS or ''
+
+ def getLinkTarget(self, item):
+ """Setup link css."""
+ return self.linkTarget and ' target="%s"' % self.linkTarget or ''
+
+ def getLinkConent(self, item):
+ """Setup link content."""
+ return self.linkContent or api.getName(item)
+
+ def renderCell(self, item):
+ # setup a tag
+ return '<a href="%s"%s%s>%s</a>' % (self.getLinkURL(item),
+ self.getLinkTarget(item), self.getLinkCSS(item),
+ self.getLinkConent(item))
+
+
+class ContentsLinkColumn(LinkColumn):
+ """Link pointing to contents.html."""
+
+ linkName = 'contents.html'
+
+
+class IndexLinkColumn(LinkColumn):
+ """Link pointing to index.html."""
+
+ linkName = 'index.html'
+
+
+class EditLinkColumn(LinkColumn):
+ """Link pointing to edit.html."""
+
+ linkName = 'edit.html'
More information about the Checkins
mailing list