def list(self, request, *args, **kwargs): lookup_field = self.lookup_field lookup = self.kwargs.get(lookup_field) if lookup_field not in kwargs.keys(): self.object_list = self.filter_queryset(self.get_queryset()) serializer = self.get_serializer(self.object_list, many=True) return Response(serializer.data) if lookup == self.public_data_endpoint: self.object_list = self._get_public_forms_queryset() page = self.paginate_queryset(self.object_list) if page is not None: serializer = self.get_pagination_serializer(page) else: serializer = self.get_serializer(self.object_list, many=True) return Response(serializer.data) xform = self.get_object() query = request.GET.get("query", {}) export_type = kwargs.get('format') if export_type is None or export_type in ['json']: # perform default viewset retrieve, no data export return super(DataViewSet, self).list(request, *args, **kwargs) return custom_response_handler(request, xform, query, export_type)
def list(self, request, *args, **kwargs): lookup_field = self.lookup_field lookup = self.kwargs.get(lookup_field) if lookup_field not in kwargs.keys(): self.object_list = self.filter_queryset(self.get_queryset()) serializer = self.get_serializer(self.object_list, many=True) return Response(serializer.data) if lookup == self.public_data_endpoint: self.object_list = self._get_public_forms_queryset() page = self.paginate_queryset(self.object_list) if page is not None: serializer = self.get_pagination_serializer(page) else: serializer = self.get_serializer(self.object_list, many=True) return Response(serializer.data) xform = self.get_object() query = request.GET.get("query", {}) export_type = kwargs.get('format') if export_type is None or export_type in ['json']: # perform default viewset retrieve, no data export return super(DataViewSet, self).list(request, *args, **kwargs) return custom_response_handler(request, xform, query, export_type)
def list(self, request, *args, **kwargs): lookup_field = self.lookup_field lookup = self.kwargs.get(lookup_field) if lookup_field not in kwargs.keys(): self.object_list = self.filter_queryset(self.get_queryset()) serializer = self.get_serializer(self.object_list, many=True) return Response(serializer.data) if lookup == self.public_data_endpoint: self.object_list = self._get_public_forms_queryset() page = self.paginate_queryset(self.object_list) if page is not None: serializer = self.get_pagination_serializer(page) else: serializer = self.get_serializer(self.object_list, many=True) return Response(serializer.data) xform = self.get_object() query = request.GET.get("query", {}) export_type = kwargs.get('format') if export_type is None or export_type in ['json']: # perform default viewset retrieve, no data export # With DRF ListSerializer are automatically created and wraps # everything in a list. Since this returns a list # # already, we unwrap it. res = super(DataViewSet, self).list(request, *args, **kwargs) res.data = res.data[0] return res return custom_response_handler(request, xform, query, export_type)
def list(self, request, *args, **kwargs): lookup_field = self.lookup_field lookup = self.kwargs.get(lookup_field) if lookup_field not in kwargs.keys(): self.object_list = self.filter_queryset(self.get_queryset()) serializer = self.get_serializer(self.object_list, many=True) return Response(serializer.data) if lookup == self.public_data_endpoint: self.object_list = self._get_public_forms_queryset() page = self.paginate_queryset(self.object_list) if page is not None: serializer = self.get_pagination_serializer(page) else: serializer = self.get_serializer(self.object_list, many=True) return Response(serializer.data) xform = self.get_object() query = request.GET.get("query", {}) export_type = kwargs.get('format') if export_type is None or export_type in ['json']: # perform default viewset retrieve, no data export # With DRF ListSerializer are automatically created and wraps # everything in a list. Since this returns a list # # already, we unwrap it. res = super(DataViewSet, self).list(request, *args, **kwargs) res.data = res.data[0] return res return custom_response_handler(request, xform, query, export_type)
def list(self, request, *args, **kwargs): fields = request.GET.get("fields") query = request.GET.get("query", {}) sort = request.GET.get("sort") start = parse_int(request.GET.get("start")) limit = parse_int(request.GET.get("limit")) export_type = kwargs.get('format', request.GET.get("format")) lookup_field = self.lookup_field lookup = self.kwargs.get(lookup_field) is_public_request = lookup == self.public_data_endpoint if lookup_field not in kwargs.keys(): self.object_list = self.filter_queryset(self.get_queryset()) serializer = self.get_serializer(self.object_list, many=True) return Response(serializer.data) if is_public_request: self.object_list = self._get_public_forms_queryset() elif lookup: qs = self.filter_queryset(self.get_queryset()) self.object_list = Instance.objects.filter(xform__in=qs, deleted_at=None) tags = self.request.QUERY_PARAMS.get('tags') not_tagged = self.request.QUERY_PARAMS.get('not_tagged') if tags and isinstance(tags, six.string_types): tags = tags.split(',') self.object_list = self.object_list.filter(tags__name__in=tags) if not_tagged and isinstance(not_tagged, six.string_types): not_tagged = not_tagged.split(',') self.object_list = \ self.object_list.exclude(tags__name__in=not_tagged) if (export_type is None or export_type in ['json']) \ and hasattr(self, 'object_list'): return self._get_data(query, fields, sort, start, limit, is_public_request) xform = self.get_object() if export_type == Attachment.OSM: page = self.paginate_queryset(self.object_list) serializer = self.get_pagination_serializer(page) return Response(serializer.data) elif export_type is None or export_type in ['json']: # perform default viewset retrieve, no data export return super(DataViewSet, self).list(request, *args, **kwargs) elif export_type == 'geojson': serializer = self.get_serializer(self.object_list, many=True) return Response(serializer.data) return custom_response_handler(request, xform, query, export_type)