コード例 #1
0
ファイル: pyramid.py プロジェクト: do3cc/fa.jquery
 def get_page(self, **kwargs):
     if 'collection' not in kwargs:
         request = self.request
         params = request.params
         query = request.session_factory.query(request.model_class)
         collection = request.query_factory(request, query, id=None)
         fields = request.model_class._sa_class_manager
         # FIXME: use id by default but should use pk field
         sidx = params.get('sidx', 'id').decode()
         if sidx and fields.has_key(sidx):
             sidx = fields[sidx]
             sord = params.get('sord', 'asc').decode().lower()
             if sord in ['asc', 'desc']:
                 collection = collection.order_by(getattr(sidx, sord)())
         if 'searchField' in params:
             field = fields.get(params['searchField'], None)
             if field:
                 op = params['searchOper']
                 value = params['searchString']
                 if op == 'cn':
                     value = '%%%s%%' % value
                     filter = field.ilike(value)
                 else:
                     filter = field==value
                 collection = collection.filter(filter)
         kwargs.update(collection=collection)
     if 'items_per_page' not in kwargs:
         kwargs.update(items_per_page=int(self.request.GET.get('rows', 20)))
     return Base.get_page(self, **kwargs)
コード例 #2
0
 def get_page(self, **kwargs):
     if 'collection' not in kwargs:
         model = self.get_model()
         params = request.params
         session = self.Session()
         fields = model._sa_class_manager
         collection = session.query(model)
         # FIXME: use id by default but should use pk field
         sidx = params.get('sidx', 'id').decode()
         if sidx and fields.has_key(sidx):
             sidx = fields[sidx]
             sord = params.get('sord', 'asc').decode().lower()
             if sord in ['asc', 'desc']:
                 collection = collection.order_by(getattr(sidx, sord)())
         if 'searchField' in params:
             field = fields.get(params['searchField'], None)
             if field:
                 op = params['searchOper']
                 value = params['searchString']
                 if op == 'cn':
                     value = '%%%s%%' % value
                     filter = field.ilike(value)
                 else:
                     filter = field == value
                 collection = collection.filter(filter)
         kwargs.update(collection=collection)
     if 'items_per_page' not in kwargs:
         kwargs.update(items_per_page=int(request.GET.get('rows', 20)))
     return Base.get_page(self, **kwargs)