[Checkins] SVN: z3c.table/trunk/ - Added sorting (``cssClassSortedOn`` and ``getCSSSortClass``) CSS options
Adam Groszer
cvs-admin at zope.org
Thu Aug 9 09:16:18 UTC 2012
Log message for revision 127442:
- Added sorting (``cssClassSortedOn`` and ``getCSSSortClass``) CSS options
- Added cell highlight (``getCSSHighlightClass``) CSS option
Changed:
U z3c.table/trunk/CHANGES.txt
U z3c.table/trunk/TODO.txt
U z3c.table/trunk/src/z3c/table/README.txt
U z3c.table/trunk/src/z3c/table/batch.txt
U z3c.table/trunk/src/z3c/table/column.py
U z3c.table/trunk/src/z3c/table/column.txt
U z3c.table/trunk/src/z3c/table/header.py
U z3c.table/trunk/src/z3c/table/miscellaneous.txt
U z3c.table/trunk/src/z3c/table/sequence.txt
U z3c.table/trunk/src/z3c/table/sort.txt
U z3c.table/trunk/src/z3c/table/table.py
U z3c.table/trunk/src/z3c/table/testing.py
-=-
Modified: z3c.table/trunk/CHANGES.txt
===================================================================
--- z3c.table/trunk/CHANGES.txt 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/CHANGES.txt 2012-08-09 09:16:10 UTC (rev 127442)
@@ -5,9 +5,11 @@
0.9.2 (unreleased)
------------------
-- Nothing changed yet.
+- Added sorting (``cssClassSortedOn`` and ``getCSSSortClass``) CSS options
+- Added cell highlight (``getCSSHighlightClass``) CSS option
+
0.9.1 (2011-08-03)
------------------
Modified: z3c.table/trunk/TODO.txt
===================================================================
--- z3c.table/trunk/TODO.txt 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/TODO.txt 2012-08-09 09:16:10 UTC (rev 127442)
@@ -7,3 +7,8 @@
- implement render methods for each batch status, e.g. renderFirstBatch,
renderLastBatch.
+
+- push the current sorted status to the Column objects/class
+ it's just mad that we try to figure this at several places
+ (SortingColumnHeader, Table.getCSSSortClass)
+ possibly with different results ;-)
\ No newline at end of file
Modified: z3c.table/trunk/src/z3c/table/README.txt
===================================================================
--- z3c.table/trunk/src/z3c/table/README.txt 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/src/z3c/table/README.txt 2012-08-09 09:16:10 UTC (rev 127442)
@@ -75,6 +75,7 @@
>>> from z3c.table import table
>>> request = TestRequest()
>>> plainTable = table.Table(container, request)
+ >>> plainTable.cssClassSortedOn = None
Now we can update and render the table. As you can see with an empty container
we will not get anything that looks like a table. We just get an empty string:
@@ -260,6 +261,7 @@
that we do not return the columns in the correct order:
>>> class PrivateTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... firstColumn = TitleColumn(self.context, self.request, self)
@@ -315,6 +317,7 @@
... 'th': 'th',
... 'tr': 'tr',
... 'td': 'td'}
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... firstColumn = TitleColumn(self.context, self.request, self)
@@ -378,6 +381,7 @@
...
... cssClassEven = u'even'
... cssClassOdd = u'odd'
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... firstColumn = TitleColumn(self.context, self.request, self)
@@ -448,6 +452,7 @@
...
... cssClassEven = u'even'
... cssClassOdd = u'odd'
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -565,7 +570,7 @@
>>> container[u'third'] = Content('Third', 3)
>>> class myTableClass(table.Table):
- ... pass
+ ... cssClassSortedOn = None
>>> myTable = myTableClass(container, request)
@@ -619,7 +624,8 @@
...
</table>
-If the table is ascending but the request was descending, the link should allow to switch again to ascending:
+If the table is ascending but the request was descending,
+the link should allow to switch again to ascending:
>>> descendingRequest = TestRequest(form={'table-sortOn': 'table-titleColumn-0',
... 'table-sortOrder':'descending'})
@@ -635,6 +641,3 @@
title="Sort">Title</a></th>
...
</table>
-
-
-
Modified: z3c.table/trunk/src/z3c/table/batch.txt
===================================================================
--- z3c.table/trunk/src/z3c/table/batch.txt 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/src/z3c/table/batch.txt 2012-08-09 09:16:10 UTC (rev 127442)
@@ -22,6 +22,7 @@
>>> root['container-1'] = container
>>> request = TestRequest()
>>> batchingTable = SimpleTable(container, request)
+ >>> batchingTable.cssClassSortedOn = None
We also need to give the table a location and a name like we normally setup
in traversing:
@@ -382,7 +383,8 @@
... 'table-batchSize': '5',
... 'table-sortOn': 'table-number-1'})
>>> requestBatchingTable = SimpleTable(container, batchingRequest)
-
+ >>> requestBatchingTable.cssClassSortedOn = None
+
We also need to give the table a location and a name like we normally set up
in traversing:
@@ -483,6 +485,7 @@
... 'table-sortOn': 'table-number-1'})
>>> requestBatchingTable = SimpleTable(container, batchingRequest)
>>> requestBatchingTable.startBatchingAt = 5
+ >>> requestBatchingTable.cssClassSortedOn = None
We also need to give the table a location and a name like we normally setup
in traversing:
@@ -647,4 +650,3 @@
<a href="...html?table-batchSize=5&table-batchStart=100&table-sortOn=table-number-1" class="current">21</a>
xxx
<a href="...html?table-batchSize=5&table-batchStart=1015&table-sortOn=table-number-1" class="last">204</a>
-
Modified: z3c.table/trunk/src/z3c/table/column.py
===================================================================
--- z3c.table/trunk/src/z3c/table/column.py 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/src/z3c/table/column.py 2012-08-09 09:16:10 UTC (rev 127442)
@@ -31,7 +31,7 @@
def addColumn(self, class_, name, cellRenderer=None, headCellRenderer=None,
- colspan= None, weight=None, header=None, cssClasses=None, **kws):
+ colspan=None, weight=None, header=None, cssClasses=None, **kws):
if not interfaces.IColumn.implementedBy(class_):
raise ValueError('class_ %s must implement IColumn.' % class_)
column = class_(self.context, self.request, self)
Modified: z3c.table/trunk/src/z3c/table/column.txt
===================================================================
--- z3c.table/trunk/src/z3c/table/column.txt 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/src/z3c/table/column.txt 2012-08-09 09:16:10 UTC (rev 127442)
@@ -56,6 +56,7 @@
>>> from z3c.table import table
>>> class NameTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -111,6 +112,7 @@
Let's define a table using the RadioColumn:
>>> class RadioTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -202,6 +204,7 @@
Let's define a table using the RadioColumn:
>>> class CheckBoxTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -377,6 +380,7 @@
Let's define a table using the CreatedColumn:
>>> class CreatedColumnTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -423,6 +427,7 @@
Let's define a table using the CreatedColumn:
>>> class ModifiedColumnTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -477,6 +482,7 @@
... defaultValue = u'missing'
>>> class GetAttrColumnTable(table.Table):
+ ... cssClassSortedOn = None
...
... attrName = 'title'
... defaultValue = u'missing'
@@ -526,6 +532,7 @@
... defaultValue = u'missing'
>>> class GetAttrColumnTable(table.Table):
+ ... cssClassSortedOn = None
...
... attrName = 'title'
... defaultValue = u'missing'
@@ -627,6 +634,7 @@
... return dc.created
>>> class GetAttrFormatterColumnTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -679,6 +687,7 @@
... return dc.created
>>> class LongFormatterColumnTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -732,6 +741,7 @@
... defaultValue = u'missing'
>>> class EMailColumnTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -779,6 +789,7 @@
... linkContent = 'Mail me'
>>> class StaticEMailColumnTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -829,6 +840,7 @@
... linkCSS = 'myClass'
>>> class MyLinkTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -886,6 +898,7 @@
``contents.html`` link for each item:
>>> class ContentsLinkTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -938,6 +951,7 @@
This one will generate a ``index.html`` link for each item:
>>> class IndexLinkTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
@@ -990,6 +1004,7 @@
And this one will generate a ``edit.html`` link for each item:
>>> class EditLinkTable(table.Table):
+ ... cssClassSortedOn = None
...
... def setUpColumns(self):
... return [
Modified: z3c.table/trunk/src/z3c/table/header.py
===================================================================
--- z3c.table/trunk/src/z3c/table/header.py 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/src/z3c/table/header.py 2012-08-09 09:16:10 UTC (rev 127442)
@@ -99,4 +99,3 @@
queryString,
zope.i18n.translate(_('Sort'), context=self.request),
zope.i18n.translate(self.column.header, context=self.request))
-
Modified: z3c.table/trunk/src/z3c/table/miscellaneous.txt
===================================================================
--- z3c.table/trunk/src/z3c/table/miscellaneous.txt 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/src/z3c/table/miscellaneous.txt 2012-08-09 09:16:10 UTC (rev 127442)
@@ -27,6 +27,7 @@
Try to render an empty table adapting an empty mapping:
>>> simpleTable = table.Table({}, request)
+ >>> simpleTable.cssClassSortedOn = None
>>> simpleTable.render()
u''
@@ -85,7 +86,7 @@
>>> simpleColumn.counter
99
-The NoneCell class provides some methods which never get called. But these
+The NoneCell class provides some methods which never get called. But these
are defined in the interface. Let's test the default values
and make coverage report happy.
Modified: z3c.table/trunk/src/z3c/table/sequence.txt
===================================================================
--- z3c.table/trunk/src/z3c/table/sequence.txt 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/src/z3c/table/sequence.txt 2012-08-09 09:16:10 UTC (rev 127442)
@@ -52,6 +52,7 @@
>>> sequenceRequest = TestRequest(form={'table-batchStart': '0',
... 'table-sortOn': 'table-number-1'})
>>> sequenceTable = SequenceTable(dataSequence, sequenceRequest)
+ >>> sequenceTable.cssClassSortedOn = None
We also need to give the table a location and a name like we normally setup
in traversing:
@@ -250,4 +251,3 @@
</tr>
</tbody>
</table>
-
Modified: z3c.table/trunk/src/z3c/table/sort.txt
===================================================================
--- z3c.table/trunk/src/z3c/table/sort.txt 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/src/z3c/table/sort.txt 2012-08-09 09:16:10 UTC (rev 127442)
@@ -38,8 +38,8 @@
Create a container:
- >>> from z3c.table.testing import Container
- >>> container = Container()
+ >>> from z3c.table.testing import OrderedContainer
+ >>> container = OrderedContainer()
We also need some container items that we can use for sorting:
@@ -60,20 +60,57 @@
<table>
<thead>
<tr>
- <th>Title</th>
+ <th class="sorted-on ascending">Title</th>
<th>Number</th>
</tr>
</thead>
<tbody>
<tr>
- <td>Title: First</td>
+ <td class="sorted-on ascending">Title: First</td>
<td>number: 1</td>
</tr>
<tr>
- <td>Title: Fourth</td>
+ <td class="sorted-on ascending">Title: Fourth</td>
<td>number: 4</td>
</tr>
<tr>
+ <td class="sorted-on ascending">Title: Second</td>
+ <td>number: 2</td>
+ </tr>
+ <tr>
+ <td class="sorted-on ascending">Title: Third</td>
+ <td>number: 3</td>
+ </tr>
+ <tr>
+ <td class="sorted-on ascending">Title: Zero</td>
+ <td>number: 0</td>
+ </tr>
+ </tbody>
+ </table>
+
+Ooops, well, by default the table is sorted on the first column, ascending.
+
+ >>> sortingTable.sortOn
+ 0
+
+Now switch off sorting, now we get the original order:
+
+ >>> sortingTable.sortOn = None
+ >>> sortingTable.update()
+ >>> print sortingTable.render()
+ <table>
+ <thead>
+ <tr>
+ <th>Title</th>
+ <th>Number</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Title: First</td>
+ <td>number: 1</td>
+ </tr>
+ <tr>
<td>Title: Second</td>
<td>number: 2</td>
</tr>
@@ -82,12 +119,17 @@
<td>number: 3</td>
</tr>
<tr>
+ <td>Title: Fourth</td>
+ <td>number: 4</td>
+ </tr>
+ <tr>
<td>Title: Zero</td>
<td>number: 0</td>
</tr>
</tbody>
</table>
+
As you can see this table doesn't provide any explicit order. Let's find out
the index of our column that we like to sort on:
@@ -107,29 +149,29 @@
<thead>
<tr>
<th>Title</th>
- <th>Number</th>
+ <th class="sorted-on ascending">Number</th>
</tr>
</thead>
<tbody>
<tr>
<td>Title: Zero</td>
- <td>number: 0</td>
+ <td class="sorted-on ascending">number: 0</td>
</tr>
<tr>
<td>Title: First</td>
- <td>number: 1</td>
+ <td class="sorted-on ascending">number: 1</td>
</tr>
<tr>
<td>Title: Second</td>
- <td>number: 2</td>
+ <td class="sorted-on ascending">number: 2</td>
</tr>
<tr>
<td>Title: Third</td>
- <td>number: 3</td>
+ <td class="sorted-on ascending">number: 3</td>
</tr>
<tr>
<td>Title: Fourth</td>
- <td>number: 4</td>
+ <td class="sorted-on ascending">number: 4</td>
</tr>
</tbody>
</table>
@@ -143,29 +185,29 @@
<thead>
<tr>
<th>Title</th>
- <th>Number</th>
+ <th class="sorted-on reverse">Number</th>
</tr>
</thead>
<tbody>
<tr>
<td>Title: Fourth</td>
- <td>number: 4</td>
+ <td class="sorted-on reverse">number: 4</td>
</tr>
<tr>
<td>Title: Third</td>
- <td>number: 3</td>
+ <td class="sorted-on reverse">number: 3</td>
</tr>
<tr>
<td>Title: Second</td>
- <td>number: 2</td>
+ <td class="sorted-on reverse">number: 2</td>
</tr>
<tr>
<td>Title: First</td>
- <td>number: 1</td>
+ <td class="sorted-on reverse">number: 1</td>
</tr>
<tr>
<td>Title: Zero</td>
- <td>number: 0</td>
+ <td class="sorted-on reverse">number: 0</td>
</tr>
</tbody>
</table>
@@ -186,29 +228,154 @@
<thead>
<tr>
<th>Title</th>
- <th>Number</th>
+ <th class="sorted-on descending">Number</th>
</tr>
</thead>
<tbody>
<tr>
<td>Title: Fourth</td>
- <td>number: 4</td>
+ <td class="sorted-on descending">number: 4</td>
</tr>
<tr>
<td>Title: Third</td>
- <td>number: 3</td>
+ <td class="sorted-on descending">number: 3</td>
</tr>
<tr>
<td>Title: Second</td>
- <td>number: 2</td>
+ <td class="sorted-on descending">number: 2</td>
</tr>
<tr>
<td>Title: First</td>
+ <td class="sorted-on descending">number: 1</td>
+ </tr>
+ <tr>
+ <td>Title: Zero</td>
+ <td class="sorted-on descending">number: 0</td>
+ </tr>
+ </tbody>
+ </table>
+
+There's a header renderer, which provides a handy link rendering for sorting:
+
+ >>> import zope.component
+ >>> from z3c.table import interfaces
+ >>> from z3c.table.header import SortingColumnHeader
+ >>> zope.component.provideAdapter(SortingColumnHeader,
+ ... (None, None, interfaces.ITable, interfaces.IColumn),
+ ... provides=interfaces.IColumnHeader)
+
+Let's see now various sortings:
+
+ >>> request = TestRequest()
+ >>> sortingTable = SortingTable(container, request)
+ >>> sortingTable.update()
+ >>> sortingTable.sortOn
+ 0
+ >>> sortingTable.sortOrder
+ u'ascending'
+ >>> print sortingTable.render()
+ <table>
+ <thead>
+ <tr>
+ <th class="sorted-on ascending"><a href="?table-sortOrder=descending&table-sortOn=table-title-0" title="Sort">Title</a></th>
+ <th><a href="?table-sortOrder=ascending&table-sortOn=table-number-1" title="Sort">Number</a></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="sorted-on ascending">Title: First</td>
<td>number: 1</td>
</tr>
<tr>
+ <td class="sorted-on ascending">Title: Fourth</td>
+ <td>number: 4</td>
+ </tr>
+ <tr>
+ <td class="sorted-on ascending">Title: Second</td>
+ <td>number: 2</td>
+ </tr>
+ <tr>
+ <td class="sorted-on ascending">Title: Third</td>
+ <td>number: 3</td>
+ </tr>
+ <tr>
+ <td class="sorted-on ascending">Title: Zero</td>
+ <td>number: 0</td>
+ </tr>
+ </tbody>
+ </table>
+
+Let's see the `number` column:
+
+ >>> sortingTable.sortOn = u'table-number-1'
+
+ >>> sortingTable.update()
+ >>> print sortingTable.render()
+ <table>
+ <thead>
+ <tr>
+ <th><a href="?table-sortOrder=ascending&table-sortOn=table-title-0" title="Sort">Title</a></th>
+ <th class="sorted-on ascending"><a href="?table-sortOrder=descending&table-sortOn=table-number-1" title="Sort">Number</a></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
<td>Title: Zero</td>
+ <td class="sorted-on ascending">number: 0</td>
+ </tr>
+ <tr>
+ <td>Title: First</td>
+ <td class="sorted-on ascending">number: 1</td>
+ </tr>
+ <tr>
+ <td>Title: Second</td>
+ <td class="sorted-on ascending">number: 2</td>
+ </tr>
+ <tr>
+ <td>Title: Third</td>
+ <td class="sorted-on ascending">number: 3</td>
+ </tr>
+ <tr>
+ <td>Title: Fourth</td>
+ <td class="sorted-on ascending">number: 4</td>
+ </tr>
+ </tbody>
+ </table>
+
+Let's see the `title` column but descending:
+
+ >>> sortingTable.sortOn = u'table-title-0'
+ >>> sortingTable.sortOrder = 'descending'
+
+ >>> sortingTable.update()
+ >>> print sortingTable.render()
+ <table>
+ <thead>
+ <tr>
+ <th class="sorted-on descending"><a href="?table-sortOrder=ascending&table-sortOn=table-title-0" title="Sort">Title</a></th>
+ <th><a href="?table-sortOrder=descending&table-sortOn=table-number-1" title="Sort">Number</a></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="sorted-on descending">Title: Zero</td>
<td>number: 0</td>
</tr>
+ <tr>
+ <td class="sorted-on descending">Title: Third</td>
+ <td>number: 3</td>
+ </tr>
+ <tr>
+ <td class="sorted-on descending">Title: Second</td>
+ <td>number: 2</td>
+ </tr>
+ <tr>
+ <td class="sorted-on descending">Title: Fourth</td>
+ <td>number: 4</td>
+ </tr>
+ <tr>
+ <td class="sorted-on descending">Title: First</td>
+ <td>number: 1</td>
+ </tr>
</tbody>
</table>
Modified: z3c.table/trunk/src/z3c/table/table.py
===================================================================
--- z3c.table/trunk/src/z3c/table/table.py 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/src/z3c/table/table.py 2012-08-09 09:16:10 UTC (rev 127442)
@@ -68,6 +68,8 @@
cssClassEven = u''
cssClassOdd = u''
cssClassSelected = u''
+ # css to show sorting, set to None to turn off
+ cssClassSortedOn = 'sorted-on'
# sort attributes
sortOn = 0
@@ -99,7 +101,37 @@
# order columns
self.orderColumns()
+ @property
+ def values(self):
+ adapter = zope.component.getMultiAdapter(
+ (self.context, self.request, self), interfaces.IValues)
+ return adapter.values
+
+# CSS helpers
+
+ def getCSSHighlightClass(self, column, item, cssClass):
+ """Provide a highlight option for any cell"""
+ return cssClass
+
+ def getCSSSortClass(self, column, cssClass):
+ """Add CSS class based on current sorting"""
+ if self.cssClassSortedOn and self.sortOn is not None:
+ try:
+ currentSortID = int(self.sortOn)
+ except ValueError:
+ currentSortID = self.sortOn.rsplit('-', 1)[-1]
+ sortID = column.id.rsplit('-', 1)[-1]
+
+ if int(sortID) == int(currentSortID):
+ klass = self.cssClassSortedOn + ' ' + self.sortOrder
+ if cssClass:
+ cssClass += ' ' + klass
+ else:
+ cssClass = klass
+ return cssClass
+
def getCSSClass(self, element, cssClass=None):
+ """Add CSS class based on HTML tag, make a `class=` attribute"""
klass = self.cssClasses.get(element)
if klass and cssClass:
klass = '%s %s' % (cssClass, klass)
@@ -107,12 +139,6 @@
klass = cssClass
return klass and ' class=%s' % quoteattr(klass) or ''
- @property
- def values(self):
- adapter = zope.component.getMultiAdapter(
- (self.context, self.request, self), interfaces.IValues)
- return adapter.values
-
# setup
def setUpColumns(self):
@@ -147,11 +173,11 @@
colspan = colspanCounter = col.getColspan(item)
# adjust colspan because we define 0, 2, 3, etc.
if colspanCounter > 0:
- colspanCounter -=1
+ colspanCounter -= 1
if colspan == 0 and colspanCounter > 0:
# override col if colspan is 0 and colspan coutner not 0
- colspanCounter -=1
+ colspanCounter -= 1
colspan = 0
# now we are ready to setup dummy colspan cells
col = column.NoneCell(self.context, self.request, self)
@@ -171,11 +197,11 @@
def getSortOn(self):
"""Returns sort on column id."""
- return self.request.get(self.prefix +'-sortOn', self.sortOn)
+ return self.request.get(self.prefix + '-sortOn', self.sortOn)
def getSortOrder(self):
"""Returns sort order criteria."""
- return self.request.get(self.prefix +'-sortOrder',
+ return self.request.get(self.prefix + '-sortOrder',
self.sortOrder)
def sortRows(self):
@@ -190,11 +216,11 @@
# batch
def getBatchSize(self):
- return int(self.request.get(self.prefix +'-batchSize',
+ return int(self.request.get(self.prefix + '-batchSize',
self.batchSize))
def getBatchStart(self):
- return int(self.request.get(self.prefix +'-batchStart',
+ return int(self.request.get(self.prefix + '-batchStart',
self.batchStart))
def batchRows(self):
@@ -242,6 +268,7 @@
def renderHeadCell(self, column):
cssClass = column.cssClasses.get('th')
+ cssClass = self.getCSSSortClass(column, cssClass)
cssClass = self.getCSSClass('th', cssClass)
return u'\n <th%s>%s</th>' % (cssClass, column.renderHeadCell())
@@ -275,6 +302,8 @@
if interfaces.INoneCell.providedBy(column):
return u''
cssClass = column.cssClasses.get('td')
+ cssClass = self.getCSSHighlightClass(column, item, cssClass)
+ cssClass = self.getCSSSortClass(column, cssClass)
cssClass = self.getCSSClass('td', cssClass)
colspanStr = colspan and ' colspan="%s"' % colspan or ''
return u'\n <td%s%s>%s</td>' % (cssClass, colspanStr,
Modified: z3c.table/trunk/src/z3c/table/testing.py
===================================================================
--- z3c.table/trunk/src/z3c/table/testing.py 2012-08-09 08:33:26 UTC (rev 127441)
+++ z3c.table/trunk/src/z3c/table/testing.py 2012-08-09 09:16:10 UTC (rev 127442)
@@ -19,7 +19,7 @@
import datetime
import zope.interface
import zope.component
-from zope.container import btree
+from zope.container import btree, ordered
from zope.dublincore.interfaces import IZopeDublinCore
from zope.security import checker
from zope.app.testing import setup
@@ -54,6 +54,11 @@
__name__ = u'container'
+class OrderedContainer(ordered.OrderedContainer):
+ """Sample container."""
+ __name__ = u'container'
+
+
class Content(object):
"""Sample content."""
More information about the checkins
mailing list