# HG changeset patch # User Tero Marttila # Date 1360495767 -7200 # Node ID 079bf632442de7dd3f1085c7e5f1a7a32690a5c0 # Parent f7658198c22445636efc954970fe2895298e0708 pvl.verkko.table: fix Column.cell_* also requiring value diff -r f7658198c224 -r 079bf632442d pvl/verkko/table.py --- a/pvl/verkko/table.py Sun Feb 10 13:20:29 2013 +0200 +++ b/pvl/verkko/table.py Sun Feb 10 13:29:27 2013 +0200 @@ -81,20 +81,25 @@ return html.td(class_=self.colcss)(input) - def cell_html (self, item) : + def cell_value (self, item) : + """ + Return value for cell. + """ + + # XXX: this is sometimes broken, figure out how to index by column + return getattr(item, self.attr) + + def cell_html (self, item, value) : """ Render contents for . """ - # XXX: this is sometimes broken, figure out how to index by column - value = getattr(item, self.attr) - if self.rowhtml : return self.rowhtml(item) else : return value - def cell_css (self, item, hilight=None) : + def cell_css (self, item, value=None, hilight=None) : """ Return CSS classes for . """ @@ -112,7 +117,7 @@ if hilight : yield 'hilight' - def cell_title (self, item) : + def cell_title (self, item, value=None) : """ Return title= for """ @@ -127,8 +132,7 @@ hilight - optionally higlight given { attr: value }'s using CSS. """ - # XXX: this is sometimes broken, figure out how to index by column - value = getattr(item, self.attr) + value = self.cell_value(item) if self.rowfilter and filters is not None : # filter-link by row-value @@ -136,8 +140,8 @@ else : filters = None - yield table.render_cell(self.cell_html(item), - css = tuple(self.cell_css(item, hilight=hilight)), + yield table.render_cell(self.cell_html(item, value), + css = tuple(self.cell_css(item, value, hilight=hilight)), filters = filters, title = self.cell_title(item), ) @@ -370,10 +374,12 @@ yield 'id', item.id for column in self.columns : + value = column.cell_value(item) + yield column.attr, dict( - html = unicode(html(column.cell_html(item))), - css = tuple(column.cell_css(item)), - title = column.cell_title(item), + html = unicode(html(column.cell_html(item, value))), + css = tuple(column.cell_css(item, value)), + title = column.cell_title(item, value), ) class TableHandler (object) :