[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