Changeset 2667 in products for quintagroup.gdocs.spreadsheet/trunk/quintagroup/gdocs/spreadsheet/browser/viewworksheetview.py
- Timestamp:
- Jul 13, 2010 3:47:05 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.gdocs.spreadsheet/trunk/quintagroup/gdocs/spreadsheet/browser/viewworksheetview.py
r2666 r2667 10 10 from gdata.spreadsheet.service import SpreadsheetsService 11 11 from gdata.spreadsheet.service import DocumentQuery as shDocumentQuery 12 from gdata.spreadsheet import SpreadsheetsListFeed 12 13 13 14 from quintagroup.gdocs.spreadsheet import spreadsheetMessageFactory as _ 14 15 from quintagroup.gdocs.spreadsheet import logException, logger 15 from quintagroup.gdocs.spreadsheet.config import ORDER_COLUMNS16 16 17 17 … … 49 49 50 50 @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): 53 52 """ 54 53 """ 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]) 55 58 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 """ 56 80 # Authorization on spreadsheets.google.com 57 81 gauth = queryUtility(IGAuthUtility) 58 82 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() 62 84 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 [] 64 87 except Exception: 65 88 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.