web/facet.py
branchstable
changeset 3328 76888cd23d83
parent 2996 866a2c135c33
child 3329 8430f6c693a1
equal deleted inserted replaced
3327:44efba78afac 3328:76888cd23d83
   344     # set this to a stored procedure name if you want to sort on the result of
   344     # set this to a stored procedure name if you want to sort on the result of
   345     # this function's result instead of direct value
   345     # this function's result instead of direct value
   346     sortfunc = None
   346     sortfunc = None
   347     # ascendant/descendant sorting
   347     # ascendant/descendant sorting
   348     sortasc = True
   348     sortasc = True
       
   349     # if you want to call a view on the entity instead of using `target_attr`
       
   350     label_vid = None
   349 
   351 
   350     @property
   352     @property
   351     def title(self):
   353     def title(self):
   352         return display_name(self.req, self.rtype, form=self.role)
   354         return display_name(self.req, self.rtype, form=self.role)
   353 
   355 
   382             return [str(x) for x, in self.rqlexec(rqlst.as_string())]
   384             return [str(x) for x, in self.rqlexec(rqlst.as_string())]
   383         finally:
   385         finally:
   384             rqlst.recover()
   386             rqlst.recover()
   385 
   387 
   386     def rset_vocabulary(self, rset):
   388     def rset_vocabulary(self, rset):
   387         _ = self.req._
   389         if self.label_vid is None:
   388         return [(_(label), eid) for eid, label in rset]
   390             _ = self.req._
       
   391             return [(_(label), eid) for eid, label in rset]
       
   392         if self.sortfunc is None:
       
   393             return sorted((entity.view(self.label_vid), entity.eid)
       
   394                           for entity in rset.entities())
       
   395         return [(entity.view(self.label_vid), entity.eid)
       
   396                 for entity in rset.entities()]
   389 
   397 
   390     @cached
   398     @cached
   391     def support_and(self):
   399     def support_and(self):
   392         rschema = self.schema.rschema(self.rtype)
   400         rschema = self.schema.rschema(self.rtype)
   393         if self.role == 'subject':
   401         if self.role == 'subject':