Changeset 4461


Ignore:
Timestamp:
28 Jul 2009, 01:14:12 (15 years ago)
Author:
uli
Message:

Enable table provider to hold multiple tables.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • waeup/branches/ulif-rewrite/src/waeup/tables.py

    r4450 r4461  
    3030        return result
    3131   
    32     def getTable(self, view=None):
     32    def getTables(self, view=None):
    3333        data = self.data_source
    3434        context_url = ''
     
    4545            )
    4646        self.table = Table(self.title, cols=cols)
    47         return self.table
     47        return (self.table,)
    4848   
    4949class DepartmentTableProvider(CodeAndTitleTableProvider):
     
    7373        self.data_source = self.context.courses
    7474       
    75     def getTable(self, view=None):
     75    def getTables(self, view=None):
     76        data = self.data_source
     77        context_url = ''
     78        if view:
     79            context_url = view.url(self.context) + '/'
     80
     81        # Create a courses table...
     82        cols = (
     83            Col(
     84                header='Code', sortable=True,
     85                data = tuple([self.getItemURL(view, data[x].code)
     86                              for x in data])),
     87            Col(
     88                header='Title', sortable=True,
     89                data = tuple([data[x].title for x in data])),
     90            )
     91        self.coursetable = Table('Courses', cols=cols)
     92
     93        # Create a certificates table...
     94        self.data_source = self.context.certificates
     95        data = self.data_source
     96        certcols =(
     97            Col(
     98                header='Code', sortable=True,
     99                data = tuple([self.getItemURL(view, data[x].code)
     100                              for x in data])),
     101            Col(
     102                header='Title', sortable=True,
     103                data = tuple([data[x].title for x in data])),
     104            )
     105        self.certtable = Table('Certificates', cols=certcols)
     106        return (self.coursetable, self.certtable)
     107
     108class CourseContainerCourseTableProvider(CodeAndTitleTableProvider):
     109    grok.context(ICourseContainer)
     110    grok.provides(ITableProvider)
     111    title = 'Courses'
     112
     113    def getTables(self, view=None):
    76114        data = self.data_source
    77115        context_url = ''
     
    88126            )
    89127        self.table = Table(self.title, cols=cols)
    90         return self.table
    91 
    92 class CourseContainerCourseTableProvider(CodeAndTitleTableProvider):
    93     grok.context(ICourseContainer)
    94     grok.provides(ITableProvider)
    95     title = 'Courses'
    96 
    97     def getTable(self, view=None):
    98         data = self.data_source
    99         context_url = ''
    100         if view:
    101             context_url = view.url(self.context) + '/'
    102         cols = (
    103             Col(
    104                 header='Code', sortable=True,
    105                 data = tuple([self.getItemURL(view, data[x].code)
    106                               for x in data])),
    107             Col(
    108                 header='Title', sortable=True,
    109                 data = tuple([data[x].title for x in data])),
    110             )
    111         self.table = Table(self.title, cols=cols)
    112         return self.table
     128        return (self.table,)
Note: See TracChangeset for help on using the changeset viewer.