Ignore:
Timestamp:
Jul 13, 2010 3:47:05 PM (14 years ago)
Author:
liebster
Message:

Added choose the titles of columns by contentype

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.gdocs.spreadsheet/trunk/quintagroup/gdocs/spreadsheet/browser/viewworksheetview.py

    r2666 r2667  
    1010from gdata.spreadsheet.service import SpreadsheetsService 
    1111from gdata.spreadsheet.service import DocumentQuery as shDocumentQuery 
     12from gdata.spreadsheet import SpreadsheetsListFeed 
    1213 
    1314from quintagroup.gdocs.spreadsheet import spreadsheetMessageFactory as _ 
    1415from quintagroup.gdocs.spreadsheet import logException, logger 
    15 from quintagroup.gdocs.spreadsheet.config import ORDER_COLUMNS 
    1616 
    1717 
     
    4949 
    5050    @memoize_contextless 
    51     def renderWorksheet(self, ssh_id="", 
    52                         wsh_id='', startrow_idx=0): 
     51    def renderWorksheet(self, ssh_id="", wsh_id='', startrow_idx=0): 
    5352        """ 
    5453        """ 
     54        feed = self.getFeed(ssh_id, wsh_id, startrow_idx) 
     55        if isinstance(feed, SpreadsheetsListFeed): 
     56            indx_keys = filter(None, [elem['select_title'] for elem in self.context.title_column]) 
     57            titles_columns = filter(None, [self.context.order_columns[int(i)] for i in indx_keys]) 
    5558 
     59            # Prepare table 
     60            table = "<table id=\"sshwsh\">" 
     61            table += "<tr>" 
     62            table += ''.join(["<th>%s</th>" % key for key in titles_columns]) 
     63            table += "</tr>" 
     64            for i, entry in enumerate(feed.entry): 
     65                if i+1 > startrow_idx: 
     66                    td_row = "<tr>" 
     67                    for key in titles_columns: 
     68                        td_row += "<td>%s</td>" \ 
     69                            % (not (entry.custom[key].text == 'None') and entry.custom[key].text or '') 
     70                    td_row += "</tr>\n" 
     71                    table += td_row 
     72            table += "</table>" 
     73        else: 
     74            table = '' 
     75        return table 
     76 
     77    def getFeed(self, ssh_id="", wsh_id='', startrow_idx=0): 
     78        """ Get SpreadsheetsListFeed 
     79        """ 
    5680        # Authorization on spreadsheets.google.com 
    5781        gauth = queryUtility(IGAuthUtility) 
    5882        self.sh_client = SpreadsheetsService(email=gauth.email, password=gauth.password) 
    59         sh_client = self.sh_client 
    60         sh_client.ProgrammaticLogin() 
    61  
     83        self.sh_client.ProgrammaticLogin() 
    6284        try: 
    63             feed = sh_client.GetListFeed(ssh_id, wksht_id=wsh_id, query=self.query) 
     85            feed = self.sh_client.GetListFeed(ssh_id, wksht_id=wsh_id, query=self.query) 
     86            self.context.order_columns = len(feed.entry) and feed.entry[0].custom.keys() or [] 
    6487        except Exception: 
    6588            logException('GetListFeed function call: ' 
    66                          'key=%s, wksht_id=%s' % (ssh_id, wsh_id)) 
    67             return "" 
    68  
    69         # Prepare table 
    70         table = "<table id=\"sshwsh\">" 
    71         table += "<tr>" 
    72         table += ''.join(["<th>%s</th>" % key for key in ORDER_COLUMNS]) 
    73         table += "</tr>" 
    74  
    75         for i, entry in enumerate(feed.entry): 
    76             if i+1 > startrow_idx: 
    77                 td_row = "<tr>" 
    78                 for key in ORDER_COLUMNS: 
    79                     td_row += "<td>%s</td>" \ 
    80                         % (not (entry.custom[key].text == 'None') and entry.custom[key].text or '') 
    81                 td_row += "</tr>\n" 
    82                 table += td_row 
    83  
    84         table += "</table>" 
    85         return table 
     89                         'key=%s, wksht_id=%s' % (ssh_id, wsh_id), self.context) 
     90            feed = None 
     91        return feed 
Note: See TracChangeset for help on using the changeset viewer.