[Checkins] SVN: z3c.table/trunk/src/z3c/table/column.py Added
SelectedItemLink column,
Roger Ineichen
roger at projekt01.ch
Mon Apr 21 09:36:30 EDT 2008
Log message for revision 85530:
Added SelectedItemLink column,
this column allows to render a link which is able to select one item
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-04-21 12:37:21 UTC (rev 85529)
+++ z3c.table/trunk/src/z3c/table/column.py 2008-04-21 13:36:27 UTC (rev 85530)
@@ -16,6 +16,8 @@
"""
__docformat__ = "reStructuredText"
+from urllib import urlencode
+
import zope.interface
import zope.location
import zope.i18nmessageid
@@ -301,6 +303,44 @@
self.getLinkConent(item))
+class SelectedItemColumn(LinkColumn):
+ """Link which can set an item."""
+
+ selectedItem = None
+
+ @property
+ def viewURL(self):
+ return '%s/%s' % (absoluteURL(self.context, self.request),
+ self.table.__name__)
+
+ def getItemKey(self, item):
+ return '%s-selectedItems' % self.id
+
+ def getItemValue(self, item):
+ return api.getName(item)
+
+ def getSortKey(self, item):
+ """Returns the sort key used for column sorting."""
+ return self.getLinkConent(item)
+
+ def getLinkConent(self, item):
+ """Setup link content."""
+ return self.linkContent or api.getName(item)
+
+ def getLinkURL(self, item):
+ """Setup link url."""
+ return '%s?%s' % (self.viewURL,
+ urlencode({self.getItemKey(item): self.getItemValue(item)}))
+
+ def update(self):
+ items = [item for item in self.table.values
+ if self.getItemValue(item) in self.request.get(
+ self.getItemKey(item), [])]
+ if len(items):
+ self.selectedItem = items.pop()
+ self.table.selectedItems = [self.selectedItem]
+
+
class ContentsLinkColumn(LinkColumn):
"""Link pointing to contents.html."""
More information about the Checkins
mailing list