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)
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)