web/views/tableview.py
changeset 10609 e2d8e81bfe68
parent 10496 e95b559a06a2
child 10612 84468b90e9c1
equal deleted inserted replaced
10608:7fc548d9dd8e 10609:e2d8e81bfe68
    64 _ = unicode
    64 _ = unicode
    65 
    65 
    66 from warnings import warn
    66 from warnings import warn
    67 from copy import copy
    67 from copy import copy
    68 from types import MethodType
    68 from types import MethodType
       
    69 
       
    70 from six.moves import range
    69 
    71 
    70 from logilab.mtconverter import xml_escape
    72 from logilab.mtconverter import xml_escape
    71 from logilab.common.decorators import cachedproperty
    73 from logilab.common.decorators import cachedproperty
    72 from logilab.common.deprecation import class_deprecated
    74 from logilab.common.deprecation import class_deprecated
    73 from logilab.common.registry import yes
    75 from logilab.common.registry import yes
   223             w(u'</th>')
   225             w(u'</th>')
   224         w(u'</tr></thead>\n')
   226         w(u'</tr></thead>\n')
   225 
   227 
   226     def render_table_body(self, w, colrenderers):
   228     def render_table_body(self, w, colrenderers):
   227         w(u'<tbody>')
   229         w(u'<tbody>')
   228         for rownum in xrange(self.view.table_size):
   230         for rownum in range(self.view.table_size):
   229             self.render_row(w, rownum, colrenderers)
   231             self.render_row(w, rownum, colrenderers)
   230         w(u'</tbody>')
   232         w(u'</tbody>')
   231 
   233 
   232     def render_table(self, w, actions, paginate):
   234     def render_table(self, w, actions, paginate):
   233         view = self.view
   235         view = self.view
   644     def build_column_renderers(self):
   646     def build_column_renderers(self):
   645         headers = self.headers
   647         headers = self.headers
   646         # compute displayed columns
   648         # compute displayed columns
   647         if self.displaycols is None:
   649         if self.displaycols is None:
   648             if headers is not None:
   650             if headers is not None:
   649                 displaycols = range(len(headers))
   651                 displaycols = list(range(len(headers)))
   650             else:
   652             else:
   651                 rqlst = self.cw_rset.syntax_tree()
   653                 rqlst = self.cw_rset.syntax_tree()
   652                 displaycols = range(len(rqlst.children[0].selection))
   654                 displaycols = list(range(len(rqlst.children[0].selection)))
   653         else:
   655         else:
   654             displaycols = self.displaycols
   656             displaycols = self.displaycols
   655         # compute table headers
   657         # compute table headers
   656         main_var_index = self.main_var_index()
   658         main_var_index = self.main_var_index()
   657         computed_titles = self.columns_labels(main_var_index)
   659         computed_titles = self.columns_labels(main_var_index)
   975     def displaycols(self, displaycols, headers):
   977     def displaycols(self, displaycols, headers):
   976         if displaycols is None:
   978         if displaycols is None:
   977             if 'displaycols' in self._cw.form:
   979             if 'displaycols' in self._cw.form:
   978                 displaycols = [int(idx) for idx in self._cw.form['displaycols']]
   980                 displaycols = [int(idx) for idx in self._cw.form['displaycols']]
   979             elif headers is not None:
   981             elif headers is not None:
   980                 displaycols = range(len(headers))
   982                 displaycols = list(range(len(headers)))
   981             else:
   983             else:
   982                 displaycols = range(len(self.cw_rset.syntax_tree().children[0].selection))
   984                 displaycols = list(range(len(self.cw_rset.syntax_tree().children[0].selection)))
   983         return displaycols
   985         return displaycols
   984 
   986 
   985     def _setup_tablesorter(self, divid):
   987     def _setup_tablesorter(self, divid):
   986         req = self._cw
   988         req = self._cw
   987         req.add_js('jquery.tablesorter.js')
   989         req.add_js('jquery.tablesorter.js')
  1296         self.columns = columns or self.columns
  1298         self.columns = columns or self.columns
  1297         sample = self.cw_rset.get_entity(0, 0)
  1299         sample = self.cw_rset.get_entity(0, 0)
  1298         self.w(u'<table class="%s">' % self.table_css)
  1300         self.w(u'<table class="%s">' % self.table_css)
  1299         self.table_header(sample)
  1301         self.table_header(sample)
  1300         self.w(u'<tbody>')
  1302         self.w(u'<tbody>')
  1301         for row in xrange(self.cw_rset.rowcount):
  1303         for row in range(self.cw_rset.rowcount):
  1302             self.cell_call(row=row, col=0)
  1304             self.cell_call(row=row, col=0)
  1303         self.w(u'</tbody>')
  1305         self.w(u'</tbody>')
  1304         self.w(u'</table>')
  1306         self.w(u'</table>')
  1305 
  1307 
  1306     def cell_call(self, row, col):
  1308     def cell_call(self, row, col):