Пример #1
0
def reporting(request):
    from forms import ReportForm
    from analytics import get_html, get_html_table, get_flash_chart
    from models import Users
    report = ""
    errors = []
    if request.POST:
        report_form = ReportForm(request.POST)
        if report_form.is_valid():
            if request.session.has_key("analytics"):
                aa_obj = request.session['analytics']
            else:
                user = Users.objects.get(organization=request.organization)
                aa_obj = AqAnalytics(user_name=user.email,
                                     password=user.password)
            aa_obj.authenticate()

            if report_form.cleaned_data['chart_type'] == 'table':
                report, row_count, is_valid = aa_obj.DataFeedQuery(
                    parse_as='flat', **report_form.cleaned_data)
                if is_valid == True:
                    report = get_html_table(report[0], report[1], row_count)

            elif report_form.cleaned_data['chart_type'][:5] == 'chart':
                report = get_flash_chart(**report_form.cleaned_data)

            else:
                report = ''
                errors = is_valid
    else:
        report_form = ReportForm(
            initial={"table_id": request.analytics.selected_site})

    if request.is_ajax():
        return report
    else:
        return render_to_response("reports.html", {
            "report": report,
            "form": report_form,
            'error_list': errors
        },
                                  context_instance=RequestContext(request))
Пример #2
0
def site_list(request):
    if request.session.has_key("analytics"):
        aa_obj = request.session["analytics"]
    else:
        user = Users.objects.get(organization=request.organization)
        aa_obj = AqAnalytics(user_name=user.email, password=user.password)
    if aa_obj.authenticate():
        sites = aa_obj.GetSiteList()
    else:
        sites = []
    return render_to_response("site_list.html", {"site_list": sites}, context_instance=RequestContext(request))
Пример #3
0
def site_list(request):
    if request.session.has_key("analytics"):
        aa_obj = request.session['analytics']
    else:
        user = Users.objects.get(organization=request.organization)
        aa_obj = AqAnalytics(user_name=user.email, password=user.password)
    if aa_obj.authenticate():
        sites = aa_obj.GetSiteList()
    else:
        sites = []
    return render_to_response("site_list.html", {"site_list": sites},
                              context_instance=RequestContext(request))
Пример #4
0
def reporting(request):
    from forms import ReportForm
    from analytics import get_html, get_html_table, get_flash_chart
    from models import Users

    report = ""
    errors = []
    if request.POST:
        report_form = ReportForm(request.POST)
        if report_form.is_valid():
            if request.session.has_key("analytics"):
                aa_obj = request.session["analytics"]
            else:
                user = Users.objects.get(organization=request.organization)
                aa_obj = AqAnalytics(user_name=user.email, password=user.password)
            aa_obj.authenticate()

            if report_form.cleaned_data["chart_type"] == "table":
                report, row_count, is_valid = aa_obj.DataFeedQuery(parse_as="flat", **report_form.cleaned_data)
                if is_valid == True:
                    report = get_html_table(report[0], report[1], row_count)

            elif report_form.cleaned_data["chart_type"][:5] == "chart":
                report = get_flash_chart(**report_form.cleaned_data)

            else:
                report = ""
                errors = is_valid
    else:
        report_form = ReportForm(initial={"table_id": request.analytics.selected_site})

    if request.is_ajax():
        return report
    else:
        return render_to_response(
            "reports.html",
            {"report": report, "form": report_form, "error_list": errors},
            context_instance=RequestContext(request),
        )
Пример #5
0
def get_flash_chart_data(request, chart_type, start_date, end_date):
    from datetime import datetime
    from atrinsic.web import openFlashChart
    from atrinsic.web.openFlashChart_varieties import Styler
    table_id = request.GET.get('table_id')
    report_type = request.GET.get('report_type')
    max_results = request.GET.get('max_results')
    sort = request.GET.get('sort')
    filters = request.GET.get('filters')
    if request.session.has_key("analytics"):
        aa_obj = request.session['analytics']
    else:
        user = Users.objects.get(organization=request.organization)
        aa_obj = AqAnalytics(user_name=user.email, password=user.password)
    aa_obj.authenticate()
    report, row_count, is_valid = aa_obj.DataFeedQuery(start_date, end_date,
                                                       table_id, report_type,
                                                       'array', sort, filters,
                                                       max_results, chart_type)
    Style = Styler(chart_type[6:])

    labels = []
    var1 = []
    var2 = []
    for row in report[0]:
        try:
            labels.append(row[0])
        except:
            pass
        try:
            var1.append(row[1])
        except:
            pass
        try:
            var2.append(row[2])
        except:
            pass
    chart = openFlashChart.template('')
    chart.set_bg_colour(colour='#ffffff')
    if len(var1) > 0:
        range_y1_min = round(float(min(var1)) * 0.95, 0)
        range_y1_max = round(float(max(var1)) * 1.05, 0)
        range_y1_steps = round(round(float(max(var1)) * 1.05, 0) / 10, 0)
    else:
        if len(var2) > 0:
            range_y1_min = round(float(min(var2)) * 0.95, 0)
            range_y1_max = round(float(max(var2)) * 1.05, 0)
            range_y1_steps = round(round(float(max(var2)) * 1.05, 0) / 10, 0)
        else:
            range_y1_min = 0
            range_y1_max = 0
            range_y1_steps = 0
    if len(var2) > 0:
        range_y2_min = round(float(min(var2)) * 0.95, 0)
        range_y2_max = round(float(max(var2)) * 1.05, 0)
        range_y2_steps = round(round(float(max(var2)) * 1.05, 0) / 10, 0)
    else:
        range_y2_min = 0
        range_y2_max = 0
        range_y2_steps = 0

    chart.set_y_axis(min=range_y1_min, max=range_y1_max, steps=range_y1_steps)
    if (range_y2_steps > 0):
        chart.set_y_axis_right(min=range_y2_min,
                               max=range_y2_max,
                               steps=range_y2_steps),
    chart.set_x_axis(labels={'labels': labels, 'rotate': 'vertical'})

    plot1 = Style(fontsize=20, values=var1)
    plot1.set_colour('#4f8dbc')

    plot2 = Style(fontsize=20, values=var2)
    plot2.set_colour('#54b928')
    plot2.set_y_axis_right()

    if chart_type != 'pie':
        chart.add_element(plot1)
        chart.add_element(plot2)
    else:
        chart.add_element(plot1)
    return HttpResponse(chart.encode())
Пример #6
0
def get_flash_chart_data(request, chart_type, start_date, end_date):
    from datetime import datetime
    from atrinsic.web import openFlashChart
    from atrinsic.web.openFlashChart_varieties import Styler

    table_id = request.GET.get("table_id")
    report_type = request.GET.get("report_type")
    max_results = request.GET.get("max_results")
    sort = request.GET.get("sort")
    filters = request.GET.get("filters")
    if request.session.has_key("analytics"):
        aa_obj = request.session["analytics"]
    else:
        user = Users.objects.get(organization=request.organization)
        aa_obj = AqAnalytics(user_name=user.email, password=user.password)
    aa_obj.authenticate()
    report, row_count, is_valid = aa_obj.DataFeedQuery(
        start_date, end_date, table_id, report_type, "array", sort, filters, max_results, chart_type
    )
    Style = Styler(chart_type[6:])

    labels = []
    var1 = []
    var2 = []
    for row in report[0]:
        try:
            labels.append(row[0])
        except:
            pass
        try:
            var1.append(row[1])
        except:
            pass
        try:
            var2.append(row[2])
        except:
            pass
    chart = openFlashChart.template("")
    chart.set_bg_colour(colour="#ffffff")
    if len(var1) > 0:
        range_y1_min = round(float(min(var1)) * 0.95, 0)
        range_y1_max = round(float(max(var1)) * 1.05, 0)
        range_y1_steps = round(round(float(max(var1)) * 1.05, 0) / 10, 0)
    else:
        if len(var2) > 0:
            range_y1_min = round(float(min(var2)) * 0.95, 0)
            range_y1_max = round(float(max(var2)) * 1.05, 0)
            range_y1_steps = round(round(float(max(var2)) * 1.05, 0) / 10, 0)
        else:
            range_y1_min = 0
            range_y1_max = 0
            range_y1_steps = 0
    if len(var2) > 0:
        range_y2_min = round(float(min(var2)) * 0.95, 0)
        range_y2_max = round(float(max(var2)) * 1.05, 0)
        range_y2_steps = round(round(float(max(var2)) * 1.05, 0) / 10, 0)
    else:
        range_y2_min = 0
        range_y2_max = 0
        range_y2_steps = 0

    chart.set_y_axis(min=range_y1_min, max=range_y1_max, steps=range_y1_steps)
    if range_y2_steps > 0:
        chart.set_y_axis_right(min=range_y2_min, max=range_y2_max, steps=range_y2_steps),
    chart.set_x_axis(labels={"labels": labels, "rotate": "vertical"})

    plot1 = Style(fontsize=20, values=var1)
    plot1.set_colour("#4f8dbc")

    plot2 = Style(fontsize=20, values=var2)
    plot2.set_colour("#54b928")
    plot2.set_y_axis_right()

    if chart_type != "pie":
        chart.add_element(plot1)
        chart.add_element(plot2)
    else:
        chart.add_element(plot1)
    return HttpResponse(chart.encode())