pvl/verkko/table.py
changeset 242 088d68412650
parent 206 079bf632442d
equal deleted inserted replaced
241:97a0a66e2211 242:088d68412650
   390     CSS = (
   390     CSS = (
   391         "/static/dhcp/table.css", 
   391         "/static/dhcp/table.css", 
   392     )
   392     )
   393     
   393     
   394     TABLE = None
   394     TABLE = None
       
   395     DB_TABLE = None
   395 
   396 
   396     # target Handlers for table links
   397     # target Handlers for table links
   397     TABLE_URL = None
   398     TABLE_URL = None
   398     TABLE_ITEM_URL = None
   399     TABLE_ITEM_URL = None
   399 
   400 
   411 
   412 
   412     def query (self) :
   413     def query (self) :
   413         """
   414         """
   414             Database SELECT query.
   415             Database SELECT query.
   415         """
   416         """
   416 
   417         
   417         raise NotImplementedError()
   418         if self.DB_CLASS is None :
       
   419             raise NotImplementedError()
       
   420 
       
   421         return self.db.query(self.DB_CLASS)
   418     
   422     
   419     def sort (self, query) :
   423     def sort (self, query) :
   420         """
   424         """
   421             Apply ?sort= from requset args to query.
   425             Apply ?sort= from requset args to query.
   422 
   426 
   531             Return a string representing the applied filters.
   535             Return a string representing the applied filters.
   532         """
   536         """
   533 
   537 
   534         return ', '.join(value for values in self.filters.itervalues() for value in values)
   538         return ', '.join(value for values in self.filters.itervalues() for value in values)
   535 
   539 
       
   540     def title (self) :
       
   541         if self.filters :
       
   542             return "{title}: {filters}".format(title=self.TABLE.ITEMS, filters=self.filters_title())
       
   543         else :
       
   544             return self.TABLE.ITEMS
       
   545 
   536     def process (self) :
   546     def process (self) :
   537         """
   547         """
   538             Process request args -> self.filters, self.sorts, self.page, self.query
   548             Process request args -> self.filters, self.sorts, self.page, self.query
   539         """
   549         """
   540 
   550 
   571                 filters = filters,
   581                 filters = filters,
   572                 sort    = sort,
   582                 sort    = sort,
   573                 page    = page,
   583                 page    = page,
   574                 hilight = hilight,
   584                 hilight = hilight,
   575         )
   585         )
   576         
   586 
       
   587     def render (self) :
       
   588         return (
       
   589             self.render_table(self.query, filters=self.filters, sort=self.sorts, page=self.page),
       
   590         )