Beispiel #1
0
    def test_response_for_format(self):
        self._publish_xlsx_file()
        xform = XForm.objects.filter().last()
        self.assertIsNotNone(xform)
        self.assertIsInstance(response_for_format(xform).data, dict)
        self.assertIsInstance(response_for_format(xform, 'json').data, dict)
        self.assertTrue(hasattr(
            response_for_format(xform, 'xls').data, 'file'))

        xform.xls.storage.delete(xform.xls.name)
        with self.assertRaises(Http404):
            response_for_format(xform, 'xls')
Beispiel #2
0
    def test_response_for_format(self):
        """
        Test response format type.
        """
        self._publish_xlsx_file()
        xform = XForm.objects.filter().last()
        self.assertIsNotNone(xform)
        self.assertIsInstance(response_for_format(xform).data, dict)
        self.assertIsInstance(response_for_format(xform, 'json').data, dict)
        self.assertTrue(
            hasattr(response_for_format(xform, 'xls').data, 'file'))

        xform.xls.storage.delete(xform.xls.name)
        with self.assertRaises(Http404):
            response_for_format(xform, 'xls')
Beispiel #3
0
    def form(self, request, format='json', **kwargs):
        form = self.get_object()
        if format not in ['json', 'xml', 'xls', 'csv']:
            return HttpResponseBadRequest('400 BAD REQUEST',
                                          content_type='application/json',
                                          status=400)
        self.etag_data = '{}'.format(form.date_modified)
        filename = form.id_string + "." + format
        response = response_for_format(form, format=format)
        response['Content-Disposition'] = 'attachment; filename=' + filename

        return response
Beispiel #4
0
    def form(self, request, format='json', **kwargs):
        dataview = self.get_object()
        xform = dataview.xform
        if format not in ['json', 'xml', 'xls']:
            return HttpResponseBadRequest('400 BAD REQUEST',
                                          content_type='application/json',
                                          status=400)
        filename = xform.id_string + "." + format
        response = response_for_format(xform, format=format)
        response['Content-Disposition'] = 'attachment; filename=' + filename

        return response
Beispiel #5
0
    def form(self, request, format='json', **kwargs):
        form = self.get_object()
        if format not in ['json', 'xml', 'xls', 'csv']:
            return HttpResponseBadRequest('400 BAD REQUEST',
                                          content_type='application/json',
                                          status=400)
        self.etag_data = '{}'.format(form.date_modified)
        filename = form.id_string + "." + format
        response = response_for_format(form, format=format)
        response['Content-Disposition'] = 'attachment; filename=' + filename

        return response
Beispiel #6
0
    def form(self, request, format='json', **kwargs):
        dataview = self.get_object()
        xform = dataview.xform
        if format not in ['json', 'xml', 'xls']:
            return HttpResponseBadRequest('400 BAD REQUEST',
                                          content_type='application/json',
                                          status=400)
        filename = xform.id_string + "." + format
        response = response_for_format(xform, format=format)
        response['Content-Disposition'] = 'attachment; filename=' + filename

        return response
Beispiel #7
0
    def versions(self, request, *args, **kwargs):
        xform = self.get_object()
        version_id = kwargs.get('version_id')
        requested_format = kwargs.get('format') or 'json'

        if not version_id:
            queryset = XFormVersion.objects.filter(xform=xform)
            serializer = XFormVersionListSerializer(
                queryset, many=True, context={'request': request})
            return Response(
                data=serializer.data, status=status.HTTP_200_OK)

        if version_id:
            version = get_object_or_404(
                XFormVersion, version=version_id, xform=xform)
            return response_for_format(version, format=requested_format)