view.py
branchstable
changeset 2213 713e220e7425
parent 2207 5fad58e603f4
child 2217 3a8cee8f8778
equal deleted inserted replaced
2212:201ce0d389f3 2213:713e220e7425
   367     """base class for views applying on any non empty result sets"""
   367     """base class for views applying on any non empty result sets"""
   368     __select__ = nonempty_rset()
   368     __select__ = nonempty_rset()
   369 
   369 
   370     category = 'anyrsetview'
   370     category = 'anyrsetview'
   371 
   371 
   372     def columns_labels(self, tr=True):
   372     def columns_labels(self, mainindex=0, tr=True):
   373         if tr:
   373         if tr:
   374             translate = display_name
   374             translate = lambda val, req=self.req: display_name(req, val)
   375         else:
   375         else:
   376             translate = lambda req, val: val
   376             translate = lambda val: val
   377         rqlstdescr = self.rset.syntax_tree().get_description()[0] # XXX missing Union support
   377         # XXX [0] because of missing Union support
       
   378         rqlstdescr = self.rset.syntax_tree().get_description(mainindex,
       
   379                                                              translate)[0]
   378         labels = []
   380         labels = []
   379         for colindex, attr in enumerate(rqlstdescr):
   381         for colindex, label in enumerate(rqlstdescr):
   380             # compute column header
   382             # compute column header
   381             if colindex == 0 or attr == 'Any': # find a better label
   383             if label == 'Any': # find a better label
   382                 label = ','.join(translate(self.req, et)
   384                 label = ','.join(translate(et)
   383                                  for et in self.rset.column_types(colindex))
   385                                  for et in self.rset.column_types(colindex))
   384             else:
       
   385                 label = translate(self.req, attr)
       
   386             labels.append(label)
   386             labels.append(label)
   387         return labels
   387         return labels
   388 
   388 
   389 
   389 
   390 # concrete template base classes ##############################################
   390 # concrete template base classes ##############################################