[Checkins] SVN: z3c.table/trunk/ - Bad typo in columns.py: Renamed
``getLinkConent`` to ``getLinkContent``
Roger Ineichen
roger at projekt01.ch
Tue Apr 22 08:49:49 EDT 2008
Log message for revision 85594:
- Bad typo in columns.py: Renamed ``getLinkConent`` to ``getLinkContent``
- Bug: Changed return string in getLinkCSS. It was using css="" instead of
class="" for CSS classes. Thanks to Dan for reporting this bugs.
-Added more tests for link columns. There is still one left for SelectedItemColumn
Changed:
U z3c.table/trunk/CHANGES.txt
U z3c.table/trunk/src/z3c/table/column.py
U z3c.table/trunk/src/z3c/table/column.txt
-=-
Modified: z3c.table/trunk/CHANGES.txt
===================================================================
--- z3c.table/trunk/CHANGES.txt 2008-04-22 12:46:00 UTC (rev 85593)
+++ z3c.table/trunk/CHANGES.txt 2008-04-22 12:49:40 UTC (rev 85594)
@@ -5,6 +5,11 @@
Version 0.5.1dev (unreleased)
-----------------------------
+- Bad typo in columns.py: Renamed ``getLinkConent`` to ``getLinkContent``
+
+- Bug: Changed return string in getLinkCSS. It was using css="" instead of
+ class="" for CSS classes. Thanks to Dan for reporting this bugs.
+
- Implemented SelectedItemColumn
- Fix CheckBoxColumn, use always the correct selectedItems. Use always real
@@ -13,6 +18,7 @@
- Fix RadioColumn, use always the correct selectedItem from the selectedItems
list. Use always the first selectedItems form the tables selectedItems
+
Version 0.5.0 (2008-04-13)
--------------------------
Modified: z3c.table/trunk/src/z3c/table/column.py
===================================================================
--- z3c.table/trunk/src/z3c/table/column.py 2008-04-22 12:46:00 UTC (rev 85593)
+++ z3c.table/trunk/src/z3c/table/column.py 2008-04-22 12:49:40 UTC (rev 85594)
@@ -300,13 +300,13 @@
def getLinkCSS(self, item):
"""Setup link css."""
- return self.linkCSS and ' css="%s"' % self.linkCSS or ''
+ return self.linkCSS and ' class="%s"' % self.linkCSS or ''
def getLinkTarget(self, item):
"""Setup link css."""
return self.linkTarget and ' target="%s"' % self.linkTarget or ''
- def getLinkConent(self, item):
+ def getLinkContent(self, item):
"""Setup link content."""
return self.linkContent or api.getName(item)
@@ -314,7 +314,7 @@
# setup a tag
return '<a href="%s"%s%s>%s</a>' % (self.getLinkURL(item),
self.getLinkTarget(item), self.getLinkCSS(item),
- self.getLinkConent(item))
+ self.getLinkContent(item))
class SelectedItemColumn(LinkColumn):
@@ -335,9 +335,9 @@
def getSortKey(self, item):
"""Returns the sort key used for column sorting."""
- return self.getLinkConent(item)
+ return self.getLinkContent(item)
- def getLinkConent(self, item):
+ def getLinkContent(self, item):
"""Setup link content."""
return self.linkContent or api.getName(item)
Modified: z3c.table/trunk/src/z3c/table/column.txt
===================================================================
--- z3c.table/trunk/src/z3c/table/column.txt 2008-04-22 12:46:00 UTC (rev 85593)
+++ z3c.table/trunk/src/z3c/table/column.txt 2008-04-22 12:49:40 UTC (rev 85594)
@@ -15,6 +15,7 @@
>>> class Container(btree.BTreeContainer):
... """Sample container."""
>>> container = Container()
+ >>> root['container'] = container
and create a sample content object which we use as container item:
@@ -609,3 +610,222 @@
>>> badColumn = column.addColumn(simpleTable, ForbiddenAttributeColumn, u'x')
>>> badColumn.renderCell(protectedItem)
u'missing'
+
+
+LinkColumn
+----------
+
+Let's define a table using the LinkColumn. This column allows us to write
+columns which can point to a page with the item as context:
+
+ >>> class MyLinkColumns(column.LinkColumn):
+ ... linkName = 'myLink.html'
+ ... linkTarget = '_blank'
+ ... linkCSS = 'myClass'
+
+ >>> class MyLinkTable(table.Table):
+ ...
+ ... def setUpColumns(self):
+ ... return [
+ ... column.addColumn(self, MyLinkColumns, u'link',
+ ... weight=1),
+ ... column.addColumn(self, NumberColumn, name=u'number',
+ ... weight=2, header=u'Number')
+ ... ]
+
+Now create, update and render our table:
+
+ >>> from zope.publisher.browser import TestRequest
+ >>> request = TestRequest()
+ >>> myLinkTable = MyLinkTable(container, request)
+ >>> myLinkTable.__parent__ = container
+ >>> myLinkTable.__name__ = u'myLinkTable.html'
+ >>> myLinkTable.update()
+ >>> print myLinkTable.render()
+ <table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Number</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a href="http://127.0.0.1/container/first/myLink.html" target="_blank" class="myClass">first</a></td>
+ <td>number: 1</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/fourth/myLink.html" target="_blank" class="myClass">fourth</a></td>
+ <td>number: 4</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/second/myLink.html" target="_blank" class="myClass">second</a></td>
+ <td>number: 2</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/third/myLink.html" target="_blank" class="myClass">third</a></td>
+ <td>number: 3</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/zero/myLink.html" target="_blank" class="myClass">zero</a></td>
+ <td>number: 0</td>
+ </tr>
+ </tbody>
+ </table>
+
+
+ContentsLinkColumn
+------------------
+
+There are some predefined link columns available. This one will generate a
+``contents.html`` link for each item:
+
+ >>> class ContentsLinkTable(table.Table):
+ ...
+ ... def setUpColumns(self):
+ ... return [
+ ... column.addColumn(self, column.ContentsLinkColumn, u'link',
+ ... weight=1),
+ ... column.addColumn(self, NumberColumn, name=u'number',
+ ... weight=2, header=u'Number')
+ ... ]
+
+ >>> contentsLinkTable = ContentsLinkTable(container, request)
+ >>> contentsLinkTable.__parent__ = container
+ >>> contentsLinkTable.__name__ = u'contentsLinkTable.html'
+ >>> contentsLinkTable.update()
+ >>> print contentsLinkTable.render()
+ <table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Number</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a href="http://127.0.0.1/container/first/contents.html">first</a></td>
+ <td>number: 1</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/fourth/contents.html">fourth</a></td>
+ <td>number: 4</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/second/contents.html">second</a></td>
+ <td>number: 2</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/third/contents.html">third</a></td>
+ <td>number: 3</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/zero/contents.html">zero</a></td>
+ <td>number: 0</td>
+ </tr>
+ </tbody>
+ </table>
+
+
+IndexLinkColumn
+---------------
+
+This one will generate a ``index.html`` link for each item:
+
+ >>> class IndexLinkTable(table.Table):
+ ...
+ ... def setUpColumns(self):
+ ... return [
+ ... column.addColumn(self, column.IndexLinkColumn, u'link',
+ ... weight=1),
+ ... column.addColumn(self, NumberColumn, name=u'number',
+ ... weight=2, header=u'Number')
+ ... ]
+
+ >>> indexLinkTable = IndexLinkTable(container, request)
+ >>> indexLinkTable.__parent__ = container
+ >>> indexLinkTable.__name__ = u'indexLinkTable.html'
+ >>> indexLinkTable.update()
+ >>> print indexLinkTable.render()
+ <table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Number</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a href="http://127.0.0.1/container/first/index.html">first</a></td>
+ <td>number: 1</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/fourth/index.html">fourth</a></td>
+ <td>number: 4</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/second/index.html">second</a></td>
+ <td>number: 2</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/third/index.html">third</a></td>
+ <td>number: 3</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/zero/index.html">zero</a></td>
+ <td>number: 0</td>
+ </tr>
+ </tbody>
+ </table>
+
+
+EditLinkColumn
+--------------
+
+And this one will generate a ``edit.html`` link for each item:
+
+ >>> class EditLinkTable(table.Table):
+ ...
+ ... def setUpColumns(self):
+ ... return [
+ ... column.addColumn(self, column.EditLinkColumn, u'link',
+ ... weight=1),
+ ... column.addColumn(self, NumberColumn, name=u'number',
+ ... weight=2, header=u'Number')
+ ... ]
+
+ >>> editLinkTable = EditLinkTable(container, request)
+ >>> editLinkTable.__parent__ = container
+ >>> editLinkTable.__name__ = u'editLinkTable.html'
+ >>> editLinkTable.update()
+ >>> print editLinkTable.render()
+ <table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Number</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a href="http://127.0.0.1/container/first/edit.html">first</a></td>
+ <td>number: 1</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/fourth/edit.html">fourth</a></td>
+ <td>number: 4</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/second/edit.html">second</a></td>
+ <td>number: 2</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/third/edit.html">third</a></td>
+ <td>number: 3</td>
+ </tr>
+ <tr>
+ <td><a href="http://127.0.0.1/container/zero/edit.html">zero</a></td>
+ <td>number: 0</td>
+ </tr>
+ </tbody>
+ </table>
More information about the Checkins
mailing list