Ticket #1434: paginate.py.patch

File paginate.py.patch, 1.7 kB (added by rejoc, 1 year ago)

patch proposal

  • paginate.py

    old new  
    1515    # Can't depend on sqlalchemy being available. 
    1616    import sqlalchemy 
    1717    from sqlalchemy.ext.selectresults import SelectResults as SASelectResults 
     18    from sqlalchemy.orm.query import Query 
    1819except ImportError: 
    1920    SASelectResults = None 
    2021    sqlalchemy = None 
     22    Query = None 
    2123  
    2224import turbogears 
    2325from turbogears.decorator import weak_signature_decorator 
     
    114116 
    115117            row_count = 0 
    116118            if (SelectResults and isinstance(var_data, SelectResults)) or \ 
    117                (SASelectResults and isinstance(var_data, SASelectResults)): 
     119               (SASelectResults and isinstance(var_data, SASelectResults)) or \ 
     120               (Query and isinstance(var_data, Query)): 
    118121                row_count = var_data.count() 
    119122                if ordering: 
    120123                    # Build order_by list. 
     
    141144 
    142145            else: 
    143146                raise StandardError( 
    144                     'Variable is not a list or SelectResults (%s)' % type( 
     147                    'Variable is not a list or SelectResults or Query (%s)' % type( 
    145148                            var_data)) 
    146149 
    147150            offset = (page-1) * limit_ 
     
    306309    if isinstance(var_data, SelectResults): 
    307310        col = getattr(var_data.sourceClass.q, colname, None) 
    308311 
    309     elif isinstance(var_data, SASelectResults)
     312    elif isinstance(var_data, SASelectResults) or isinstance(var_data, Query)
    310313        col = getattr( 
    311314                var_data._query.mapper.c, 
    312315                colname[len(var_data._query.mapper.column_prefix or ''):],