def object_list(self): query = self.get_query() query = self.apply_ordering(query) # create a QueryFilter object with our current query query_filter = self.get_query_filter(query) # process the filters from the request filtered_query = query_filter.get_filtered_query() try: paginate_by = int(request.args.get('limit', self.paginate_by)) except ValueError: paginate_by = self.paginate_by else: paginate_by = min(paginate_by, self.paginate_by) # restrict pq = PaginatedQuery(filtered_query, paginate_by) meta_data = self.get_request_metadata(pq) query_dict = self.serialize_query(pq.get_list()) return self.response({ 'meta': meta_data, 'objects': query_dict, })
def ajax_list(self): field = request.args.get('field') prev_page = 0 next_page = 0 try: models = path_to_models(self.model, field) except AttributeError: data = [] else: rel_model = models.pop() rel_field = rel_model._meta.fields[self.foreign_key_lookups[field]] query = rel_model.select().order_by(rel_field) query_string = request.args.get('query') if query_string: query = query.where(rel_field ** ('%%%s%%' % query_string)) pq = PaginatedQuery(query, self.filter_paginate_by) current_page = pq.get_page() if current_page > 1: prev_page = current_page - 1 if current_page < pq.get_pages(): next_page = current_page + 1 data = [ {'id': obj.get_id(), 'repr': unicode(obj)} \ for obj in pq.get_list() ] json_data = json.dumps({'prev_page': prev_page, 'next_page': next_page, 'object_list': data}) return Response(json_data, mimetype='application/json')
def ajax_list(self): field_name = request.args.get('field') prev_page = 0 next_page = 0 try: models = path_to_models(self.model, field_name) except AttributeError: data = [] else: field = self.model._meta.fields[field_name] rel_model = models.pop() rel_field = rel_model._meta.fields[self.foreign_key_lookups[field_name]] query = rel_model.select().order_by(rel_field) query_string = request.args.get('query') if query_string: query = query.where(rel_field ** ('%%%s%%' % query_string)) pq = PaginatedQuery(query, self.filter_paginate_by) current_page = pq.get_page() if current_page > 1: prev_page = current_page - 1 if current_page < pq.get_pages(): next_page = current_page + 1 data = [] # if the field is nullable, include the "None" option at the top of the list if field.null: data.append({'id': '__None', 'repr': 'None'}) data.extend([{'id': obj.get_id(), 'repr': unicode(obj)} for obj in pq.get_list()]) json_data = json.dumps({'prev_page': prev_page, 'next_page': next_page, 'object_list': data}) return Response(json_data, mimetype='application/json')
def ajax_list(self): field = request.args.get("field") prev_page = 0 next_page = 0 try: models = path_to_models(self.model, field) except AttributeError: data = [] else: rel_model = models.pop() rel_field = self.foreign_key_lookups[field] query = ( rel_model.select() .where(**{"%s__icontains" % rel_field: request.args.get("query", "")}) .order_by(rel_field) ) pq = PaginatedQuery(query, self.filter_paginate_by) current_page = pq.get_page() if current_page > 1: prev_page = current_page - 1 if current_page < pq.get_pages(): next_page = current_page + 1 data = [{"id": obj.get_pk(), "repr": unicode(obj)} for obj in pq.get_list()] json_data = json.dumps({"prev_page": prev_page, "next_page": next_page, "object_list": data}) return Response(json_data, mimetype="application/json")
def ajax_list(self): field = request.args.get('field') prev_page = 0 next_page = 0 try: models = path_to_models(self.model, field) except AttributeError: data = [] else: rel_model = models.pop() rel_field = self.foreign_key_lookups[field] query = rel_model.select().where(**{ '%s__icontains'% rel_field: request.args.get('query', ''), }).order_by(rel_field) pq = PaginatedQuery(query, self.filter_paginate_by) current_page = pq.get_page() if current_page > 1: prev_page = current_page - 1 if current_page < pq.get_pages(): next_page = current_page + 1 data = [ {'id': obj.get_pk(), 'repr': unicode(obj)} \ for obj in pq.get_list() ] json_data = json.dumps({'prev_page': prev_page, 'next_page': next_page, 'object_list': data}) return Response(json_data, mimetype='application/json')
def paginated_object_list(self, filtered_query): paginate_by = self.get_paginate_by() pq = PaginatedQuery(filtered_query, paginate_by) meta_data = self.get_request_metadata(pq) query_dict = self.serialize_query(pq.get_list()) meta_data['data'] = query_dict return self.response(meta_data)
def paginated_object_list(self, filtered_query): paginate_by = self.get_paginate_by() pq = PaginatedQuery(filtered_query, paginate_by) meta_data = self.get_request_metadata(pq) query_dict = self.serialize_query(pq.get_list()) return self.response({ 'meta': meta_data, 'objects': query_dict, })
def details(id, page=20): actor = Schedule.select().where(Schedule.id == id).get() actor_requests = Request.select().where(Request.url_id == id).order_by(Request.insert_date.desc()) pages = PaginatedQuery(actor_requests, page) content = pages.get_list() stats = {} stats['site_changes'] = actor_requests.select(Request.content_len).distinct().count() stats['total_hits'] = actor_requests.count() stats['ok_hits'] = actor_requests.select(Request.id).where(Request.status_code == '200').count() stats['avg_response_time'] = (sum([row.response_time for row in actor_requests])/stats['total_hits']) return render_template('details.html', actor=actor, actor_requests=content, pages=pages, stats=stats)
def paginated_object_list(self, filtered_query): try: paginate_by = int(request.args.get("limit", self.paginate_by)) except ValueError: paginate_by = self.paginate_by else: if self.paginate_by: paginate_by = min(paginate_by, self.paginate_by) # restrict pq = PaginatedQuery(filtered_query, paginate_by) meta_data = self.get_request_metadata(pq) query_dict = self.serialize_query(pq.get_list()) return self.response({"meta": meta_data, "objects": query_dict})
def ajax_list(self): field_name = request.args.get('field') prev_page = 0 next_page = 0 try: models = path_to_models(self.model, field_name) except AttributeError: data = [] else: field = self.model._meta.fields[field_name] rel_model = models.pop() rel_field = rel_model._meta.fields[ self.foreign_key_lookups[field_name]] query = rel_model.select().order_by(rel_field) query_string = request.args.get('query') if query_string: query = query.where(rel_field**('%%%s%%' % query_string)) pq = PaginatedQuery(query, self.filter_paginate_by) current_page = pq.get_page() if current_page > 1: prev_page = current_page - 1 if current_page < pq.get_pages(): next_page = current_page + 1 data = [] # if the field is nullable, include the "None" option at the top of the list if field.null: data.append({'id': '__None', 'repr': 'None'}) data.extend([{ 'id': obj._pk, 'repr': str(obj) } for obj in pq.get_list()]) json_data = json.dumps( { 'prev_page': prev_page, 'next_page': next_page, 'object_list': data }, cls=StringifyingEncoder) return Response(json_data, mimetype='application/json')
def paginated_object_list(self, filtered_query): try: paginate_by = int(request.args.get('limit', self.paginate_by)) except ValueError: paginate_by = self.paginate_by else: if self.paginate_by: paginate_by = min(paginate_by, self.paginate_by) # restrict pq = PaginatedQuery(filtered_query, paginate_by) meta_data = self.get_request_metadata(pq) query_dict = self.serialize_query(pq.get_list()) return self.response({ 'meta': meta_data, 'objects': query_dict, })