예제 #1
0
def aws_map_query2(request):
    context = {}
    form = AwsMapQueryForm2(request.user)
    context['form'] = form
    if request.method == 'POST':
        data_table = request.POST.get('data_table')
        aws_site_object = AwsUploadDetails.objects.get(id=data_table)
        data_table_name = aws_site_object.table_name
        data_table1 = request.POST.get('data_table1')
        aws_site_object = AwsUploadDetails.objects.get(id=data_table1)
        data_table_name1 = aws_site_object.table_name
        mapping_table = request.POST.get('mapping_table')
        aws_site_object = AwsUploadDetails.objects.get(id=mapping_table)
        mapping_table_name = aws_site_object.table_name
        fx_table = request.POST.get('fx_table')
        aws_site_object = AwsUploadDetails.objects.get(id=fx_table)
        fx_table_name = aws_site_object.table_name

        aws_details = AwsUserAccessDetails.objects.filter(user_id=request.user)
        aws_details = aws_details.last()
        host = aws_details.host
        database = aws_details.database
        password = aws_details.aws_password
        user = aws_details.aws_user_name
        #2 set up instance
        aws_database_object = PostgresDB(host, database, user, password)
        #run query on above table_list
        data_table = aws_database_object.run_mappping_query(data_table_name, mapping_table_name, fx_table_name)
        data_graph1 = aws_database_object.run_mappping_query_graph(data_table_name, mapping_table_name, fx_table_name)
        data_graph2 = aws_database_object.run_mappping_query_graph(data_table_name1, mapping_table_name, fx_table_name)
        data2 = data_graph1.groupby('class').sum()['amount']
        data1 = data_graph2.groupby('class').sum()['amount']
        versions = ['v1', 'v2']
        x = [(c, v) for c in [i  for i in data1.index] for v in versions]
        counts = []
        for a,b in zip(data1.values, data2.values):
            counts.append(a)
            counts.append(b)
        counts = tuple(counts)
        source = ColumnDataSource(data=dict(x=x, counts=counts))
        p = figure(x_range=FactorRange(*x), plot_height=350, title="Comparison",)
        p.vbar(x='x', top='counts', width=0.9, source=source)
        p.y_range.start = 0
        p.x_range.range_padding = 0.1
        p.xaxis.major_label_orientation = 1
        p.xgrid.grid_line_color = None
        html_graph = file_html(p, CDN, "Data")
        context['html_graph'] = html_graph
        data_table = data_table.replace("""<table border="1" class="dataframe">""","""<table class="table table-hover">""").replace("""<thead>""", """<thead class="thead-inverse">""" )
        context['data_table'] = data_table
        return render(request, "fileprocess/aws_query_output.html", context)
    return render(request, "fileprocess/aws_query_output.html", context)
예제 #2
0
def aws_map_query(request):
    context = {}
    form = AwsMapQueryForm(request.user)
    context['form'] = form
    if request.method == 'POST':
        data_table = request.POST.get('data_table')
        aws_site_object = AwsUploadDetails.objects.get(id=data_table)
        data_table_name = aws_site_object.table_name
        mapping_table = request.POST.get('mapping_table')
        aws_site_object = AwsUploadDetails.objects.get(id=mapping_table)
        mapping_table_name = aws_site_object.table_name
        fx_table = request.POST.get('fx_table')
        aws_site_object = AwsUploadDetails.objects.get(id=fx_table)
        fx_table_name = aws_site_object.table_name

        aws_details = AwsUserAccessDetails.objects.filter(user_id=request.user)
        aws_details = aws_details.last()
        host = aws_details.host
        database = aws_details.database
        password = aws_details.aws_password
        user = aws_details.aws_user_name
        #2 set up instance
        aws_database_object = PostgresDB(host, database, user, password)
        #run query on above table_list
        data_table = aws_database_object.run_mappping_query(data_table_name, mapping_table_name, fx_table_name)
        data_graph = aws_database_object.run_mappping_query_graph(data_table_name, mapping_table_name, fx_table_name)
        data_graph = data_graph.groupby('nominal').sum()['amount']
        p = figure(plot_width=600, plot_height=400)
        p.vbar(x=[data_graph.index[i] for i in range(0,len(data_graph))], width=0.5, bottom=0,top=data_graph.values, color="navy")
        html_graph = file_html(p, CDN, "Data")
        context['html_graph'] = html_graph
        data_table = data_table.replace("""<table border="1" class="dataframe">""","""<table class="table table-hover">""").replace("""<thead>""", """<thead class="thead-inverse">""" )
        context['data_table'] = data_table


        return render(request, "fileprocess/aws_query_output.html", context)
    return render(request, "fileprocess/aws_query_output.html", context)
예제 #3
0
def aws_query_outputJ(request):
    aws_database_object = None
    context = {}
    context['stage'] = 'not_run'
    list_doc_normal = AwsUploadDetails.objects.filter(user_id=request.user)
    list_doc_json = serializers.serialize('json', list_doc_normal)
    form_list = {"f1":"Data table", "f2":"Mapping Table", "f3":"FX Table"}
    form_list_json = json.dumps(form_list)
    context["form_list_json"] = form_list_json
    context["list_doc_json"] = list_doc_json
    if request.method == 'POST' and "request_data" in request.POST and "mapping_2" not in request.POST:
        print(request.POST)
        global data_table_name
        data_table_name = request.POST.get("Data_table")
        global mapping_table_name
        mapping_table_name = request.POST.get('Mapping_Table')
        global fx_table_name
        fx_table_name = request.POST.get('FX_Table')
        aws_details = AwsUserAccessDetails.objects.filter(user_id=request.user)
        aws_details = aws_details.last()
        host = aws_details.host
        database = aws_details.database
        password = aws_details.aws_password
        user = aws_details.aws_user_name
        aws_database_object = PostgresDB(host, database, user, password)
        global data_output
        data_output = aws_database_object.run_mappping_query_fetchall(data_table_name, mapping_table_name, fx_table_name)
        global data_table
        data_table = aws_database_object.run_mappping_query(data_table_name, mapping_table_name, fx_table_name)
        data_table = data_table.replace("""<table border="1" class="dataframe">""","""<table class="table table-hover">""").replace("""<thead>""", """<thead class="thead-inverse">""" )
        context['data_table'] = data_table
        context['stage'] = 'pushed'
        global data_graph
        data_graph = aws_database_object.run_mappping_query_graph(data_table_name, mapping_table_name, fx_table_name)
        data_graph = data_graph.groupby('nominal').sum()['amount']
        p = figure(plot_width=600, plot_height=400)
        p.vbar(x=[data_graph.index[i] for i in range(0,len(data_graph))], width=0.5, bottom=0,top=data_graph.values, color="navy")
        html_graph = file_html(p, CDN, "Data")
        context['html_graph'] = html_graph


    if request.method == 'POST' and "download_request" in request.POST:
        df = pandas.DataFrame(data_output)
        file = df.to_csv()
        response = HttpResponse(file, content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename="financial_calc_output.csv"'
        return response
    if request.method == 'POST' and "mapping_2" in request.POST:
        aws_details = AwsUserAccessDetails.objects.filter(user_id=request.user)
        aws_details = aws_details.last()
        host = aws_details.host
        database = aws_details.database
        password = aws_details.aws_password
        user = aws_details.aws_user_name
        aws_database_object = PostgresDB(host, database, user, password)
        data_table_name = request.POST.get("Data_table")
        mapping_table_name = request.POST.get('Mapping_Table')
        fx_table_name = request.POST.get('FX_Table')
        data_table_name1 = request.POST.get('mapping_2')
        data_graph1 = aws_database_object.run_mappping_query_graph(data_table_name, mapping_table_name, fx_table_name)
        data_graph2 = aws_database_object.run_mappping_query_graph(data_table_name1, mapping_table_name, fx_table_name)
        data2 = data_graph1.groupby('class').sum()['amount']
        data1 = data_graph2.groupby('class').sum()['amount']
        versions = ['v1', 'v2']
        x = [(c, v) for c in [i  for i in data1.index] for v in versions]
        counts = []
        for a,b in zip(data1.values, data2.values):
            counts.append(a)
            counts.append(b)
        counts = tuple(counts)
        source = ColumnDataSource(data=dict(x=x, counts=counts))
        p = figure(x_range=FactorRange(*x), plot_height=350, title="Comparison",)
        p.vbar(x='x', top='counts', width=0.9, source=source)
        p.y_range.start = 0
        p.x_range.range_padding = 0.1
        p.xaxis.major_label_orientation = 1
        p.xgrid.grid_line_color = None
        html_graph = file_html(p, CDN, "Data")
        context['html_graph'] = html_graph





            # form = AwsMapQueryForm2(request.user)
    # context['form'] = form
    # if request.method == 'POST':
    #     data_table = request.POST.get('data_table')
    #     aws_site_object = AwsUploadDetails.objects.get(id=data_table)
    #     data_table_name = aws_site_object.table_name
    #     data_table1 = request.POST.get('data_table1')
    #     aws_site_object = AwsUploadDetails.objects.get(id=data_table1)
    #     data_table_name1 = aws_site_object.table_name
    #     mapping_table = request.POST.get('mapping_table')
    #     aws_site_object = AwsUploadDetails.objects.get(id=mapping_table)
    #     mapping_table_name = aws_site_object.table_name
    #     fx_table = request.POST.get('fx_table')
    #     aws_site_object = AwsUploadDetails.objects.get(id=fx_table)
    #     fx_table_name = aws_site_object.table_name
    #
    #     aws_details = AwsUserAccessDetails.objects.filter(user_id=request.user)
    #     aws_details = aws_details.last()
    #     host = aws_details.host
    #     database = aws_details.database
    #     password = aws_details.aws_password
    #     user = aws_details.aws_user_name
    #     #2 set up instance
    #     aws_database_object = PostgresDB(host, database, user, password)
    #     #run query on above table_list
    #     data_table = aws_database_object.run_mappping_query(data_table_name, mapping_table_name, fx_table_name)
    #     data_graph1 = aws_database_object.run_mappping_query_graph(data_table_name, mapping_table_name, fx_table_name)
    #     data_graph2 = aws_database_object.run_mappping_query_graph(data_table_name1, mapping_table_name, fx_table_name)
    #     data2 = data_graph1.groupby('class').sum()['amount']
    #     data1 = data_graph2.groupby('class').sum()['amount']
    #     versions = ['v1', 'v2']
    #     x = [(c, v) for c in [i  for i in data1.index] for v in versions]
    #     counts = []
    #     for a,b in zip(data1.values, data2.values):
    #         counts.append(a)
    #         counts.append(b)
    #     counts = tuple(counts)
    #     source = ColumnDataSource(data=dict(x=x, counts=counts))
    #     p = figure(x_range=FactorRange(*x), plot_height=350, title="Comparison",)
    #     p.vbar(x='x', top='counts', width=0.9, source=source)
    #     p.y_range.start = 0
    #     p.x_range.range_padding = 0.1
    #     p.xaxis.major_label_orientation = 1
    #     p.xgrid.grid_line_color = None
    #     html_graph = file_html(p, CDN, "Data")
    #     context['html_graph'] = html_graph
    #     data_table = data_table.replace("""<table border="1" class="dataframe">""","""<table class="table table-hover">""").replace("""<thead>""", """<thead class="thead-inverse">""" )
    #     context['data_table'] = data_table
    #     return render(request, "fileprocess/aws_query_output.html", context)
    return render(request, "fileprocess/aws_query_outputJ.html", context)