Changeset 2665 in products


Ignore:
Timestamp:
Jul 13, 2010 11:12:40 AM (14 years ago)
Author:
liebster
Message:

Added 'view' for GSpreadsheet content type

Location:
quintagroup.gdocs.spreadsheet/trunk/quintagroup/gdocs/spreadsheet
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.gdocs.spreadsheet/trunk/quintagroup/gdocs/spreadsheet/__init__.py

    r2642 r2665  
    11"""Main product initializer 
    22""" 
     3import logging 
    34 
    45from zope.i18nmessageid import MessageFactory 
     
    1415 
    1516spreadsheetMessageFactory = MessageFactory('quintagroup.gdocs.spreadsheet') 
     17 
     18logger = logging.getLogger('quintagroup.gdocs.spreadsheet') 
     19 
     20def logException(msg, context=None): 
     21    logger.exception(msg) 
     22    if context is not None: 
     23        error_log = getattr(context, 'error_log', None) 
     24        if error_log is not None: 
     25            error_log.raising(sys.exc_info()) 
    1626 
    1727def initialize(context): 
  • quintagroup.gdocs.spreadsheet/trunk/quintagroup/gdocs/spreadsheet/browser/configure.zcml

    r2654 r2665  
    1111      for="*" 
    1212      name="viewworksheet_view" 
    13       class=".viewworksheetview.viewWorksheetView" 
     13      class=".viewworksheetview.ViewWorksheetView" 
    1414      template="viewworksheetview.pt" 
    15       allowed_interface=".viewworksheetview.IviewWorksheetView" 
    16       permission="zope.Public" 
     15      allowed_interface=".viewworksheetview.IViewWorksheetView" 
     16      permission="zope2.View" 
    1717      /> 
    1818 
    19  
    2019</configure> 
  • quintagroup.gdocs.spreadsheet/trunk/quintagroup/gdocs/spreadsheet/browser/viewworksheetview.pt

    r2654 r2665  
    55<body> 
    66    <div metal:fill-slot="main"> 
    7         <tal:main-macro metal:define-macro="main" 
    8                         tal:define="testview view/test"> 
    9  
    10             <span tal:content="testview/dummy">test</span> 
     7        <tal:main-macro metal:define-macro="main"> 
     8        <div tal:replace="structure python:view.renderWorksheet(context.spreadsheet_id, context.worksheet_id, 0)" ></div> 
    119 
    1210        </tal:main-macro> 
  • quintagroup.gdocs.spreadsheet/trunk/quintagroup/gdocs/spreadsheet/browser/viewworksheetview.py

    r2654 r2665  
     1from zope.component import queryUtility 
    12from zope.interface import implements, Interface 
    23 
     
    45from Products.CMFCore.utils import getToolByName 
    56 
     7from plone.memoize.view import memoize_contextless 
     8 
     9from quintagroup.gauth.interfaces import IGAuthUtility 
     10from gdata.spreadsheet.service import SpreadsheetsService 
     11from gdata.spreadsheet.service import DocumentQuery as shDocumentQuery 
     12 
    613from quintagroup.gdocs.spreadsheet import spreadsheetMessageFactory as _ 
     14from quintagroup.gdocs.spreadsheet import logException, logger 
     15from quintagroup.gdocs.spreadsheet.config import ORDER_COLUMNS 
    716 
    817 
    9 class IviewWorksheetView(Interface): 
     18class IViewWorksheetView(Interface): 
    1019    """ 
    11     viewWorksheet view interface 
     20    ViewWorksheet view interface 
    1221    """ 
    1322 
    14     def test(): 
    15         """ test method""" 
     23    def renderWorksheet(ssh_id, wsh_idx, startrow_idx): 
     24        """ 
     25            ssh_id - Id of the spreadsheet 
     26            wsh_id - Id of the worksheet 
     27            startrow_idx - index of row, from which table should be rendered 
     28        """ 
    1629 
    1730 
    18 class viewWorksheetView(BrowserView): 
     31class ViewWorksheetView(BrowserView): 
    1932    """ 
    20     viewWorksheet browser view 
     33    ViewWorksheet browser view 
    2134    """ 
    22     implements(IviewWorksheetView) 
     35    implements(IViewWorksheetView) 
    2336 
    2437    def __init__(self, context, request): 
    2538        self.context = context 
    2639        self.request = request 
     40        self.query = shDocumentQuery() 
    2741 
    2842    @property 
     
    3448        return getToolByName(self.context, 'portal_url').getPortalObject() 
    3549 
    36     def test(self): 
     50    @memoize_contextless 
     51    def renderWorksheet(self, ssh_id="", 
     52                        wsh_id='', startrow_idx=0): 
    3753        """ 
    38         test method 
    3954        """ 
    40         dummy = _(u'a dummy string') 
    4155 
    42         return {'dummy': dummy} 
     56        # Authorization on spreadsheets.google.com 
     57        gauth = queryUtility(IGAuthUtility) 
     58        self.sh_client = SpreadsheetsService(email=gauth.email, password=gauth.password) 
     59        sh_client = self.sh_client 
     60        sh_client.ProgrammaticLogin() 
     61 
     62        try: 
     63            feed = sh_client.GetListFeed(ssh_id, wksht_id=wsh_id, query=self.query) 
     64        except Exception: 
     65            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 
  • quintagroup.gdocs.spreadsheet/trunk/quintagroup/gdocs/spreadsheet/config.py

    r2646 r2665  
    88    'GSpreadsheet': 'quintagroup.gdocs.spreadsheet: Add GSpreadsheet', 
    99} 
     10 
     11ORDER_COLUMNS = ['fddup', 'a', 'xdd', 'lut', 'totalbandwidth', 'country', 
     12                 'region', 'tdd', 'unpairedbandwidth', 'band', 'licother', 
     13                 'b', 'pairedbandwidth', 'lic2g', 'fdddown', 'lic3g'] 
  • quintagroup.gdocs.spreadsheet/trunk/quintagroup/gdocs/spreadsheet/profiles/default/types/GSpreadsheet.xml

    r2646 r2665  
    1414  <property name="filter_content_types">False</property> 
    1515  <property name="allow_discussion">True</property> 
    16   <property name="default_view">base_view</property> 
     16  <property name="default_view">viewworksheet_view</property> 
    1717  <property name="view_methods"> 
    1818    <element value="base_view" /> 
     19    <element value="viewworksheet_view" /> 
    1920  </property> 
    2021  <alias from="(Default)" to="(dynamic view)" /> 
Note: See TracChangeset for help on using the changeset viewer.