Example #1
0
def download_key(request, report, file_name):
    user = request.user
    if file_name:
        files = FileRecord.objects.filter(
            Q(author=user) & Q(report__report_id=report) & Q(name=file_name))
        if len(files) > 0:
            if file_name == 'output_pnl.png':
                ret = StreamingHttpResponse(files[0].content)
                print(ret)
                ret['Content-Type'] = 'image/jpeg'
            elif file_name == 'output_performance.csv':
                ret = []
                r = files[0].content.split('\n')
                regex = re.compile('\s+')
                columns = regex.split(r[0].strip())
                columns[0] = 'period'
                for i in range(1, len(r)):
                    ret.append(dict(zip(columns, regex.split(r[i].strip()))))
                return HttpResponse(json.dumps({'ret': ret}),
                                    content_type="application/json")

            else:
                ret = StreamingHttpResponse(files[0].content)
                ret['Content-Type'] = 'application/octet-stream'
            return ret
        else:
            raise Http404("File Not Found")
    else:
        serializer = FileSerializer(FileRecord.objects.filter(
            Q(author=user) & Q(report__alpha_name=report)),
                                    many=True)
        return Response(serializer.data)
Example #2
0
def download_key(request, report, file_name):
    user = request.user  
    if file_name:
        files = FileRecord.objects.filter(Q(author=user) & Q(report__report_id=report) & Q(name=file_name))
        if len(files) > 0:
            if file_name == 'output_pnl.png':
                ret = StreamingHttpResponse(files[0].content)
                print(ret)
                ret['Content-Type'] = 'image/jpeg'
            elif file_name == 'output_performance.csv':
                ret = []
                r=files[0].content.split('\n')
                regex = re.compile('\s+')
                columns = regex.split(r[0].strip())
                columns[0] = 'period'
                for i in range(1, len(r)):
                    ret.append(dict(zip(columns, regex.split(r[i].strip()))))
                return HttpResponse(json.dumps({'ret':ret}), content_type="application/json")

            else:
                ret = StreamingHttpResponse(files[0].content)
                ret['Content-Type']='application/octet-stream'
            return ret
        else:
            raise Http404("File Not Found")
    else:
        serializer = FileSerializer(FileRecord.objects.filter(Q(author=user) & Q(report__alpha_name=report)), many=True)
        return Response(serializer.data)